diff -Nrcpad gcc-11.3.0/ChangeLog gcc-11.4.0/ChangeLog *** gcc-11.3.0/ChangeLog Thu Apr 21 07:59:16 2022 --- gcc-11.4.0/ChangeLog Mon May 29 08:46:50 2023 *************** *** 1,3 **** --- 1,15 ---- + 2023-05-29 Release Manager + + * GCC 11.4.0 released. + + 2023-05-16 Iain Sandoe + + Backported from master: + 2022-06-26 Iain Sandoe + + * configure: Regenerate. + * configure.ac: Correct use of $host. + 2022-04-21 Release Manager * GCC 11.3.0 released. diff -Nrcpad gcc-11.3.0/INSTALL/binaries.html gcc-11.4.0/INSTALL/binaries.html *** gcc-11.3.0/INSTALL/binaries.html Thu Apr 21 07:59:39 2022 --- gcc-11.4.0/INSTALL/binaries.html Mon May 29 08:49:50 2023 *************** *** 1,5 **** --- 1,8 ---- + + + - - - Installing GCC: Binaries --- 22,27 ---- *************** You have freedom to copy and modify this *** 29,58 **** --- 29,52 ---- + + *************** ul.no-bullet {list-style: none} *** 85,92 **** ! !

We are often asked about pre-compiled versions of GCC. While we cannot provide these for all platforms, below you’ll find links to binaries for --- 79,86 ---- ! !

We are often asked about pre-compiled versions of GCC. While we cannot provide these for all platforms, below you’ll find links to binaries for diff -Nrcpad gcc-11.3.0/INSTALL/build.html gcc-11.4.0/INSTALL/build.html *** gcc-11.3.0/INSTALL/build.html Thu Apr 21 07:59:38 2022 --- gcc-11.4.0/INSTALL/build.html Mon May 29 08:49:50 2023 *************** *** 1,5 **** --- 1,8 ---- + + + - - - Installing GCC: Building --- 22,27 ---- *************** You have freedom to copy and modify this *** 29,58 **** --- 29,52 ---- + + *************** ul.no-bullet {list-style: none} *** 82,88 **** !

Now that GCC is configured, you are ready to build the compiler and runtime libraries. --- 76,82 ---- !

Now that GCC is configured, you are ready to build the compiler and runtime libraries. *************** documentation, you need version 4.7 or l *** 129,135 **** want Info documentation to be regenerated. Releases contain Info documentation pre-built for the unmodified documentation in the release.

!

Building a native compiler

For a native build, the default configuration is to perform --- 123,129 ---- want Info documentation to be regenerated. Releases contain Info documentation pre-built for the unmodified documentation in the release.

!

Building a native compiler

For a native build, the default configuration is to perform *************** following example. This will save rough *** 172,179 **** the bootstrap and the final installation. (Libraries will still contain debugging information.)

!
!
make BOOT_CFLAGS='-O' bootstrap
  

You can place non-default optimization flags into BOOT_CFLAGS; they --- 166,173 ---- the bootstrap and the final installation. (Libraries will still contain debugging information.)

!
!
make BOOT_CFLAGS='-O' bootstrap
  

You can place non-default optimization flags into BOOT_CFLAGS; they *************** configure option --with-build-conf *** 224,241 **** examples of supported build configurations are:

!
bootstrap-O1

Removes any -O-started option from BOOT_CFLAGS, and adds -O1 to it. ‘BUILD_CONFIG=bootstrap-O1’ is equivalent to ‘BOOT_CFLAGS='-g -O1'’.

!
bootstrap-O3
!
bootstrap-Og

Analogous to bootstrap-O1.

!
bootstrap-lto

Enables Link-Time Optimization for host tools during bootstrapping. ‘BUILD_CONFIG=bootstrap-lto’ is equivalent to adding -flto to ‘BOOT_CFLAGS’. This option assumes that the host --- 218,235 ---- examples of supported build configurations are:

!
bootstrap-O1

Removes any -O-started option from BOOT_CFLAGS, and adds -O1 to it. ‘BUILD_CONFIG=bootstrap-O1’ is equivalent to ‘BOOT_CFLAGS='-g -O1'’.

!
bootstrap-O3
!
bootstrap-Og

Analogous to bootstrap-O1.

!
bootstrap-lto

Enables Link-Time Optimization for host tools during bootstrapping. ‘BUILD_CONFIG=bootstrap-lto’ is equivalent to adding -flto to ‘BOOT_CFLAGS’. This option assumes that the host *************** supports the linker plugin (e.g. GNU ld *** 243,249 **** version 2.21 or later).

!
bootstrap-lto-noplugin

This option is similar to bootstrap-lto, 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 --- 237,243 ---- version 2.21 or later).

!
bootstrap-lto-noplugin

This option is similar to bootstrap-lto, 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 < *** 251,264 **** that only the front end is actually LTO optimized.

!
bootstrap-lto-lean

This option is similar to bootstrap-lto, but is intended for faster build by only using LTO in the final bootstrap stage. With ‘make profiledbootstrap’ the LTO frontend is trained only on generator files.

!
bootstrap-debug

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 --- 245,258 ---- that only the front end is actually LTO optimized.

!
bootstrap-lto-lean

This option is similar to bootstrap-lto, but is intended for faster build by only using LTO in the final bootstrap stage. With ‘make profiledbootstrap’ the LTO frontend is trained only on generator files.

!
bootstrap-debug

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 *************** info into identical object files. In ad *** 271,277 **** coverage, this option makes default bootstraps faster and leaner.

!
bootstrap-debug-big

Rather than comparing stripped object files, as in bootstrap-debug, this option saves internal compiler dumps during stage2 and stage3 and compares them as well, which helps catch --- 265,271 ---- coverage, this option makes default bootstraps faster and leaner.

!
bootstrap-debug-big

Rather than comparing stripped object files, as in bootstrap-debug, this option saves internal compiler dumps during stage2 and stage3 and compares them as well, which helps catch *************** additional potential problems, but at a *** 279,285 **** space. It can be specified in addition to ‘bootstrap-debug’.

!
bootstrap-debug-lean

This option saves disk space compared with bootstrap-debug-big, but at the expense of some recompilation. Instead of saving the dumps of stage2 and stage3 until the final compare, it uses --- 273,279 ---- space. It can be specified in addition to ‘bootstrap-debug’.

!
bootstrap-debug-lean

This option saves disk space compared with bootstrap-debug-big, but at the expense of some recompilation. Instead of saving the dumps of stage2 and stage3 until the final compare, it uses *************** during stage3, repeating the compilation *** 288,294 **** stage2, whose dumps were not saved.

!
bootstrap-debug-lib

This option tests executable code invariance over debug information generation on target libraries, just like bootstrap-debug-lean tests it on host programs. It builds stage3 libraries with --- 282,288 ---- stage2, whose dumps were not saved.

!
bootstrap-debug-lib

This option tests executable code invariance over debug information generation on target libraries, just like bootstrap-debug-lean tests it on host programs. It builds stage3 libraries with *************** in stage2 are used in stage3 host progra *** 302,308 **** compile stage2 libraries with different options for comparison purposes.

!
bootstrap-debug-ckovw

Arranges for error messages to be issued if the compiler built on any stage is run without the option -fcompare-debug. This is useful to verify the full -fcompare-debug testing coverage. It --- 296,302 ---- compile stage2 libraries with different options for comparison purposes.

!
bootstrap-debug-ckovw

Arranges for error messages to be issued if the compiler built on any stage is run without the option -fcompare-debug. This is useful to verify the full -fcompare-debug testing coverage. It *************** must be used along with bootstrap- *** 310,316 **** bootstrap-debug-lib.

!
bootstrap-cet

This option enables Intel CET for host tools during bootstrapping. ‘BUILD_CONFIG=bootstrap-cet’ is equivalent to adding -fcf-protection to ‘BOOT_CFLAGS’. This option --- 304,310 ---- bootstrap-debug-lib.

!
bootstrap-cet

This option enables Intel CET for host tools during bootstrapping. ‘BUILD_CONFIG=bootstrap-cet’ is equivalent to adding -fcf-protection to ‘BOOT_CFLAGS’. This option *************** assumes that the host supports Intel CET *** 318,335 **** 2.30 or later).

!
bootstrap-time

Arranges for the run time of each program started by the GCC driver, built in any stage, to be logged to time.log, in the top level of the build tree.

!
bootstrap-asan

Compiles GCC itself using Address Sanitization in order to catch invalid memory accesses within the GCC code.

!
bootstrap-hwasan

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. --- 312,329 ---- 2.30 or later).

!
bootstrap-time

Arranges for the run time of each program started by the GCC driver, built in any stage, to be logged to time.log, in the top level of the build tree.

!
bootstrap-asan

Compiles GCC itself using Address Sanitization in order to catch invalid memory accesses within the GCC code.

!
bootstrap-hwasan

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. *************** systems that are running Linux kernel ve *** 337,343 ****

!

Building a cross compiler

When building a cross compiler, it is not generally possible to do a --- 331,338 ----

!
!

Building a cross compiler

When building a cross compiler, it is not generally possible to do a *************** configuring GCC. Put them in the direct *** 375,394 **** you should put in this directory:

!
as

This should be the cross-assembler.

!
ld

This should be the cross-linker.

!
ar

This should be the cross-archiver: a program which can manipulate archive files (linker libraries) in the target machine’s format.

!
ranlib

This should be a program to construct a symbol table in an archive file.

--- 370,389 ---- you should put in this directory:

!
as

This should be the cross-assembler.

!
ld

This should be the cross-linker.

!
ar

This should be the cross-archiver: a program which can manipulate archive files (linker libraries) in the target machine’s format.

!
ranlib

This should be a program to construct a symbol table in an archive file.

*************** alternatives for crt0.o, fo *** 415,421 **** compilation options. Check your target’s definition of STARTFILE_SPEC to find out what start files it uses.

!

Building in parallel

GNU Make 3.80 and above, which is necessary to build GCC, support --- 410,417 ---- compilation options. Check your target’s definition of STARTFILE_SPEC to find out what start files it uses.

!
!

Building in parallel

GNU Make 3.80 and above, which is necessary to build GCC, support *************** your machine will result in fewer and sh *** 426,437 **** improving overall throughput; this is especially true for slow drives and network filesystems.

!

Building the Ada compiler

GNAT prerequisites.

!

Building with profile feedback

It is possible to use profile feedback to optimize the compiler itself. This --- 422,435 ---- improving overall throughput; this is especially true for slow drives and network filesystems.

!
!

Building the Ada compiler

GNAT prerequisites.

!
!

Building with profile feedback

It is possible to use profile feedback to optimize the compiler itself. This *************** the code quality may be much worse. *** 472,478 **** !


--- 470,476 ---- !
diff -Nrcpad gcc-11.3.0/INSTALL/configure.html gcc-11.4.0/INSTALL/configure.html *** gcc-11.3.0/INSTALL/configure.html Thu Apr 21 07:59:38 2022 --- gcc-11.4.0/INSTALL/configure.html Mon May 29 08:49:49 2023 *************** *** 1,5 **** --- 1,8 ---- + + + - - - Installing GCC: Configuration --- 22,27 ---- *************** You have freedom to copy and modify this *** 29,58 **** --- 29,52 ---- + + *************** ul.no-bullet {list-style: none} *** 81,88 **** ! !

Like most GNU software, GCC must be configured before it can be built. This document describes the recommended configuration procedure --- 75,82 ---- ! !

Like most GNU software, GCC must be configured before it can be built. This document describes the recommended configuration procedure *************** scripts may fail. *** 128,148 ****

To configure GCC:

!
!
% mkdir objdir
  % cd objdir
  % srcdir/configure [options] [target]
  
! !

Distributor options

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.

!
--with-pkgversion=version

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 gcc --version. This suffix does --- 122,141 ----

To configure GCC:

!
!
% mkdir objdir
  % cd objdir
  % srcdir/configure [options] [target]
  
!

Distributor options

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.

!
--with-pkgversion=version

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 gcc --version. This suffix does *************** not replace the default version string, *** 151,157 ****

The default value is ‘GCC’.

!
--with-bugurl=url

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. --- 144,150 ----

The default value is ‘GCC’.

!
--with-bugurl=url

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 *** 159,172 ****

The default value refers to the FSF’s GCC bug tracker.

!
--with-documentation-root-url=url

Specify the URL root that contains GCC option documentation. The url should end with a / character.

The default value is https://gcc.gnu.org/onlinedocs/.

!
--with-changes-root-url=url

Specify the URL root that contains information about changes in GCC releases like gcc-version/changes.html. The url should end with a / character. --- 152,165 ----

The default value refers to the FSF’s GCC bug tracker.

!
--with-documentation-root-url=url

Specify the URL root that contains GCC option documentation. The url should end with a / character.

The default value is https://gcc.gnu.org/onlinedocs/.

!
--with-changes-root-url=url

Specify the URL root that contains information about changes in GCC releases like gcc-version/changes.html. The url should end with a / character. *************** The url should end with a

! !

Target specification

  • GCC has code to correctly determine the correct value for target for nearly all native systems. Therefore, we highly recommend you do --- 169,175 ----
!

Target specification

  • GCC has code to correctly determine the correct value for target for nearly all native systems. Therefore, we highly recommend you do *************** implies that the host defaults to t *** 192,199 ****
! !

Options specification

Use options to override several configure time options for GCC. A list of supported options follows; ‘configure --- 184,190 ---- !

Options specification

Use options to override several configure time options for GCC. A list of supported options follows; ‘configure *************** work and should not normally be used. *** 205,211 **** corresponding --without option.

!
--prefix=dirname

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 --- 196,202 ---- corresponding --without option.

!
--prefix=dirname

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 *************** beneath a user’s home directory tr *** 220,282 ****

The following standard autoconf options are supported. Normally you should not need to use these options.

!
--exec-prefix=dirname

Specify the toplevel installation directory for architecture-dependent files. The default is prefix.

!
--bindir=dirname

Specify the installation directory for the executables called by users (such as gcc and g++). The default is exec-prefix/bin.

!
--libdir=dirname

Specify the installation directory for object code libraries and internal data files of GCC. The default is exec-prefix/lib.

!
--libexecdir=dirname

Specify the installation directory for internal executables of GCC. The default is exec-prefix/libexec.

!
--with-slibdir=dirname

Specify the installation directory for the shared libgcc library. The default is libdir.

!
--datarootdir=dirname

Specify the root of the directory tree for read-only architecture-independent data files referenced by GCC. The default is prefix/share.

!
--infodir=dirname

Specify the installation directory for documentation in info format. The default is datarootdir/info.

!
--datadir=dirname

Specify the installation directory for some architecture-independent data files referenced by GCC. The default is datarootdir.

!
--docdir=dirname

Specify the installation directory for documentation files (other than Info) for GCC. The default is datarootdir/doc.

!
--htmldir=dirname

Specify the installation directory for HTML documentation files. The default is docdir.

!
--pdfdir=dirname

Specify the installation directory for PDF documentation files. The default is docdir.

!
--mandir=dirname

Specify the installation directory for manual pages. The default is datarootdir/man. (Note that the manual pages are only extracts from the full GCC manuals, which are provided in Texinfo format. The manpages --- 211,273 ----

The following standard autoconf options are supported. Normally you should not need to use these options.

!
--exec-prefix=dirname

Specify the toplevel installation directory for architecture-dependent files. The default is prefix.

!
--bindir=dirname

Specify the installation directory for the executables called by users (such as gcc and g++). The default is exec-prefix/bin.

!
--libdir=dirname

Specify the installation directory for object code libraries and internal data files of GCC. The default is exec-prefix/lib.

!
--libexecdir=dirname

Specify the installation directory for internal executables of GCC. The default is exec-prefix/libexec.

!
--with-slibdir=dirname

Specify the installation directory for the shared libgcc library. The default is libdir.

!
--datarootdir=dirname

Specify the root of the directory tree for read-only architecture-independent data files referenced by GCC. The default is prefix/share.

!
--infodir=dirname

Specify the installation directory for documentation in info format. The default is datarootdir/info.

!
--datadir=dirname

Specify the installation directory for some architecture-independent data files referenced by GCC. The default is datarootdir.

!
--docdir=dirname

Specify the installation directory for documentation files (other than Info) for GCC. The default is datarootdir/doc.

!
--htmldir=dirname

Specify the installation directory for HTML documentation files. The default is docdir.

!
--pdfdir=dirname

Specify the installation directory for PDF documentation files. The default is docdir.

!
--mandir=dirname

Specify the installation directory for manual pages. The default is datarootdir/man. (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 p *** 284,297 **** manual.)

!
--with-gxx-include-dir=dirname

Specify the installation directory for G++ header files. The default depends on other configuration options, and differs between cross and native configurations.

!
--with-specs=specs

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’s source code, for instance --- 275,288 ---- manual.)

!
--with-gxx-include-dir=dirname

Specify the installation directory for G++ header files. The default depends on other configuration options, and differs between cross and native configurations.

!
--with-specs=specs

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’s source code, for instance *************** See “Spec Files” in the main *** 302,308 ****

!
--program-prefix=prefix

GCC supports some transformations of the names of its programs when installing them. This option prepends prefix to the names of programs to install in bindir (see above). For example, specifying --- 293,299 ----

!
--program-prefix=prefix

GCC supports some transformations of the names of its programs when installing them. This option prepends prefix to the names of programs to install in bindir (see above). For example, specifying *************** programs to install in bindir *** 310,323 **** being installed as /usr/local/bin/foo-gcc.

!
--program-suffix=suffix

Appends suffix to the names of programs to install in bindir (see above). For example, specifying --program-suffix=-3.1 would result in ‘gcc’ being installed as /usr/local/bin/gcc-3.1.

!
--program-transform-name=pattern

Applies the ‘sed’ script pattern to be applied to the names of programs to install in bindir (see above). pattern has to consist of one or more basic ‘sed’ editing commands, separated by --- 301,314 ---- being installed as /usr/local/bin/foo-gcc.

!
--program-suffix=suffix

Appends suffix to the names of programs to install in bindir (see above). For example, specifying --program-suffix=-3.1 would result in ‘gcc’ being installed as /usr/local/bin/gcc-3.1.

!
--program-transform-name=pattern

Applies the ‘sed’ script pattern to be applied to the names of programs to install in bindir (see above). pattern has to consist of one or more basic ‘sed’ editing commands, separated by *************** resulting binary would be installed as *** 350,356 **** transformed yet, which will be fixed in some time.

!
--with-local-prefix=dirname

Specify the installation directory for local include files. The default is /usr/local. Specify this option if you want the compiler to --- 341,347 ---- transformed yet, which will be fixed in some time.

!
--with-local-prefix=dirname

Specify the installation directory for local include files. The default is /usr/local. Specify this option if you want the compiler to *************** install part of GCC. Perhaps they make *** 423,434 **** installing GCC creates the directory.

!
--with-gcc-major-version-only

Specifies that GCC should use only the major number rather than major.minor.patchlevel in filesystem paths.

!
--with-native-system-header-dir=dirname

Specifies that dirname is the directory that contains native system header files, rather than /usr/include. This option is most useful if you are creating a compiler that should be isolated from the system --- 414,425 ---- installing GCC creates the directory.

!
--with-gcc-major-version-only

Specifies that GCC should use only the major number rather than major.minor.patchlevel in filesystem paths.

!
--with-native-system-header-dir=dirname

Specifies that dirname is the directory that contains native system header files, rather than /usr/include. 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 commonl *** 437,443 **** dirname inside the system root specified by that option.

!
--enable-shared[=package[,…]]

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. --- 428,434 ---- dirname inside the system root specified by that option.

!
--enable-shared[=package[,…]]

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. *************** argument, only --enable-shared

!
--enable-host-shared

Specify that the host code should be built into position-independent machine code (with -fPIC), allowing it to be used within shared libraries, but yielding a slightly slower compiler. --- 449,455 ---- code.

!
--enable-host-shared

Specify that the host code should be built into position-independent machine code (with -fPIC), allowing it to be used within shared libraries, but yielding a slightly slower compiler. *************** but yielding a slightly slower compiler. *** 469,475 **** libraries.

!
--with-gnu-as

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 --- 460,466 ---- libraries.

!
--with-gnu-as

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 *************** whether you use the GNU assembler. On a *** 492,498 ****

!
--with-as=pathname

Specify that the compiler should use the assembler pointed to by pathname, rather than the one found by the standard rules to find an assembler, which are: --- 483,489 ----

!
--with-as=pathname

Specify that the compiler should use the assembler pointed to by pathname, rather than the one found by the standard rules to find an assembler, which are: *************** assemblers installed and want to choose *** 525,559 **** above rules.

!
--with-gnu-ld

Same as --with-gnu-as but for the linker.

!
--with-ld=pathname

Same as --with-as but for the linker.

!
--with-dsymutil=pathname

Same as --with-as but for the debug linker (only used on Darwin platforms so far).

!
--with-stabs

Specify that stabs debugging information should be used instead of whatever format the host normally uses. Normally GCC uses the same debug format as the host system.

!
--with-tls=dialect

Specify the default TLS dialect, for systems were there is a choice. For ARM targets, possible values for dialect are gnu or gnu2, which select between the original GNU dialect and the GNU TLS descriptor-based dialect.

!
--enable-multiarch

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, --- 516,550 ---- above rules.

!
--with-gnu-ld

Same as --with-gnu-as but for the linker.

!
--with-ld=pathname

Same as --with-as but for the linker.

!
--with-dsymutil=pathname

Same as --with-as but for the debug linker (only used on Darwin platforms so far).

!
--with-stabs

Specify that stabs debugging information should be used instead of whatever format the host normally uses. Normally GCC uses the same debug format as the host system.

!
--with-tls=dialect

Specify the default TLS dialect, for systems were there is a choice. For ARM targets, possible values for dialect are gnu or gnu2, which select between the original GNU dialect and the GNU TLS descriptor-based dialect.

!
--enable-multiarch

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, *************** More documentation about multiarch can b *** 563,575 **** https://wiki.debian.org/Multiarch.

!
--enable-sjlj-exceptions

Force use of the setjmp/longjmp-based scheme for exceptions. ‘configure’ ordinarily picks the correct value based on the platform. Only use this option if you are sure you need a different setting.

!
--enable-vtable-verify

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 --- 554,566 ---- https://wiki.debian.org/Multiarch.

!
--enable-sjlj-exceptions

Force use of the setjmp/longjmp-based scheme for exceptions. ‘configure’ ordinarily picks the correct value based on the platform. Only use this option if you are sure you need a different setting.

!
--enable-vtable-verify

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 *************** still be built (see --disable-libv *** 582,593 **** --disable-vtable-verify is the default.

!
--disable-gcov

Specify that the run-time library used for coverage analysis and associated host tools should not be built.

!
--disable-multilib

Specify that multiple target libraries to support different target variants, calling conventions, etc. should not be built. The default is to build a --- 573,584 ---- --disable-vtable-verify is the default.

!
--disable-gcov

Specify that the run-time library used for coverage analysis and associated host tools should not be built.

!
--disable-multilib

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. *** 596,618 ****

Some targets provide finer-grained control over which multilibs are built (e.g., --disable-softfloat):

!
arm-*-*

fpu, 26bit, underscore, interwork, biendian, nofmult.

!
m68*-*-*

softfloat, m68881, m68000, m68020.

!
mips*-*-*

single-float, biendian, softfloat.

!
msp430-*-*

no-exceptions

!
powerpc*-*-*, rs6000*-*-*

aix64, pthread, softfloat, powercpu, powerpccpu, powerpcos, biendian, sysv, aix.

--- 587,609 ----

Some targets provide finer-grained control over which multilibs are built (e.g., --disable-softfloat):

!
arm-*-*

fpu, 26bit, underscore, interwork, biendian, nofmult.

!
m68*-*-*

softfloat, m68881, m68000, m68020.

!
mips*-*-*

single-float, biendian, softfloat.

!
msp430-*-*

no-exceptions

!
powerpc*-*-*, rs6000*-*-*

aix64, pthread, softfloat, powercpu, powerpccpu, powerpcos, biendian, sysv, aix.

*************** sysv, aix. *** 620,634 ****
!
--with-multilib-list=list
!
--without-multilib-list

Specify what multilibs to build. list is a comma separated list of values, possibly consisting of a single value. Currently only implemented for aarch64*-*-*, arm*-*-*, riscv*-*-*, sh*-*-* and x86-64-*-linux*. The accepted values and meaning for each target is given below.

!
aarch64*-*-*

list is a comma separated list of ilp32, and lp64 to enable ILP32 and LP64 run-time libraries, respectively. If list is empty, then there will be no multilibs and only the --- 611,625 ----

!
--with-multilib-list=list
!
--without-multilib-list

Specify what multilibs to build. list is a comma separated list of values, possibly consisting of a single value. Currently only implemented for aarch64*-*-*, arm*-*-*, riscv*-*-*, sh*-*-* and x86-64-*-linux*. The accepted values and meaning for each target is given below.

!
aarch64*-*-*

list is a comma separated list of ilp32, and lp64 to enable ILP32 and LP64 run-time libraries, respectively. If list is empty, then there will be no multilibs and only the *************** default set of libraries is selected bas *** 638,644 **** --target.

!
arm*-*-*

list is a comma separated list of aprofile and rmprofile to build multilibs for A or R and M architecture profiles respectively. Note that, due to some limitation of the current --- 629,635 ---- --target.

!
arm*-*-*

list is a comma separated list of aprofile and rmprofile to build multilibs for A or R and M architecture profiles respectively. Note that, due to some limitation of the current *************** profile. The union of these options is *** 700,706 ****

!
riscv*-*-*

list is a single ABI name. The target architecture must be either rv32gc or rv64gc. This will build a single multilib for the specified architecture and ABI pair. If --with-multilib-list is not --- 691,697 ----

!
riscv*-*-*

list is a single ABI name. The target architecture must be either rv32gc or rv64gc. This will build a single multilib for the specified architecture and ABI pair. If --with-multilib-list is not *************** given, then a default set of multilibs i *** 708,714 **** --target. This is usually a large set of multilibs.

!
sh*-*-*

list is a comma separated list of CPU names. These must be of the form sh* or m* (in which case they match the compiler option for that processor). The list should not contain any endian options - --- 699,705 ---- --target. This is usually a large set of multilibs.

!
sh*-*-*

list is a comma separated list of CPU names. These must be of the form sh* or m* (in which case they match the compiler option for that processor). The list should not contain any endian options - *************** specialized subset. *** 729,747 ****

Example 1: to configure a compiler for SH4A only, but supporting both endians, with little endian being the default: !

!
--with-cpu=sh4a --with-endian=little,big --with-multilib-list=
  

Example 2: to configure a compiler for both SH4A and SH4AL-DSP, but with only little endian SH4AL: !

!
--with-cpu=sh4a --with-endian=little,big \
  --with-multilib-list=sh4al,!mb/m4al
  
!
x86-64-*-linux*

list is a comma separated list of m32, m64 and mx32 to enable 32-bit, 64-bit and x32 run-time libraries, respectively. If list is empty, then there will be no multilibs --- 720,738 ----

Example 1: to configure a compiler for SH4A only, but supporting both endians, with little endian being the default: !

!
--with-cpu=sh4a --with-endian=little,big --with-multilib-list=
  

Example 2: to configure a compiler for both SH4A and SH4AL-DSP, but with only little endian SH4AL: !

!
--with-cpu=sh4a --with-endian=little,big \
  --with-multilib-list=sh4al,!mb/m4al
  
!
x86-64-*-linux*

list is a comma separated list of m32, m64 and mx32 to enable 32-bit, 64-bit and x32 run-time libraries, respectively. If list is empty, then there will be no multilibs *************** and only the default run-time library wi *** 753,759 ****

!
--with-multilib-generator=config

Specify what multilibs to build. config 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. --- 744,750 ----

!
--with-multilib-generator=config

Specify what multilibs to build. config 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. *************** for riscv*-*-elf*. The accepted values *** 763,787 **** reuse rule with architecture string and reuse rule with sub-extension.

Example 1: Add multi-lib suppport for rv32i with ilp32. !

!
rv32i-ilp32--
  

Example 2: Add multi-lib suppport for rv32i with ilp32 and rv32imafd with ilp32. !

!
rv32i-ilp32--;rv32imafd-ilp32--
  

Example 3: Add multi-lib suppport for rv32i with ilp32; rv32im with ilp32 and rv32ic with ilp32 will reuse this multi-lib set. !

!
rv32i-ilp32-rv32im-c
  

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. !

!
rv64ima-lp64--f,c,fc
  

--with-multilib-generator have an optional configuration argument --- 754,778 ---- reuse rule with architecture string and reuse rule with sub-extension.

Example 1: Add multi-lib suppport for rv32i with ilp32. !

!
rv32i-ilp32--
  

Example 2: Add multi-lib suppport for rv32i with ilp32 and rv32imafd with ilp32. !

!
rv32i-ilp32--;rv32imafd-ilp32--
  

Example 3: Add multi-lib suppport for rv32i with ilp32; rv32im with ilp32 and rv32ic with ilp32 will reuse this multi-lib set. !

!
rv32i-ilp32-rv32im-c
  

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. !

!
rv64ima-lp64--f,c,fc
  

--with-multilib-generator have an optional configuration argument *************** currently we support medlow and medany. *** 791,829 ****

Example 5: Add multi-lib suppport for rv64ima with lp64; rv64ima with lp64 and medlow code model !

!
rv64ima-lp64--;--cmodel=medlow
  

Example 6: Add multi-lib suppport for rv64ima with lp64; rv64ima with lp64 and medlow code model; rv64ima with lp64 and medany code model !

!
rv64ima-lp64--;--cmodel=medlow,medany
  
!
--with-endian=endians

Specify what endians to use. Currently only implemented for sh*-*-*.

endians may be one of the following:

!
big

Use big endian exclusively.

!
little

Use little endian exclusively.

!
big,little

Use big endian by default. Provide a multilib for little endian.

!
little,big

Use little endian by default. Provide a multilib for big endian.

!
--enable-threads

Specify that the target supports threads. This affects the Objective-C compiler and runtime library, and exception handling for other languages like C++. --- 782,820 ----

Example 5: Add multi-lib suppport for rv64ima with lp64; rv64ima with lp64 and medlow code model !

!
rv64ima-lp64--;--cmodel=medlow
  

Example 6: Add multi-lib suppport for rv64ima with lp64; rv64ima with lp64 and medlow code model; rv64ima with lp64 and medany code model !

!
rv64ima-lp64--;--cmodel=medlow,medany
  
!
--with-endian=endians

Specify what endians to use. Currently only implemented for sh*-*-*.

endians may be one of the following:

!
big

Use big endian exclusively.

!
little

Use little endian exclusively.

!
big,little

Use big endian by default. Provide a multilib for little endian.

!
little,big

Use little endian by default. Provide a multilib for big endian.

!
--enable-threads

Specify that the target supports threads. This affects the Objective-C compiler and runtime library, and exception handling for other languages like C++. *************** available for the system. In this case, *** 836,890 **** alias for --enable-threads=single.

!
--disable-threads

Specify that threading support should be disabled for the system. This is an alias for --enable-threads=single.

!
--enable-threads=lib

Specify that lib 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 lib are:

!
aix

AIX thread support.

!
dce

DCE thread support.

!
lynx

LynxOS thread support.

!
mipssde

MIPS SDE thread support.

!
no

This is an alias for ‘single’.

!
posix

Generic POSIX/Unix98 thread support.

!
rtems

RTEMS thread support.

!
single

Disable thread support, should work for all platforms.

!
tpf

TPF thread support.

!
vxworks

VxWorks thread support.

!
win32

Microsoft Win32 API thread support.

!
--enable-tls

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 --- 827,881 ---- alias for --enable-threads=single.

!
--disable-threads

Specify that threading support should be disabled for the system. This is an alias for --enable-threads=single.

!
--enable-threads=lib

Specify that lib 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 lib are:

!
aix

AIX thread support.

!
dce

DCE thread support.

!
lynx

LynxOS thread support.

!
mipssde

MIPS SDE thread support.

!
no

This is an alias for ‘single’.

!
posix

Generic POSIX/Unix98 thread support.

!
rtems

RTEMS thread support.

!
single

Disable thread support, should work for all platforms.

!
tpf

TPF thread support.

!
vxworks

VxWorks thread support.

!
win32

Microsoft Win32 API thread support.

!
--enable-tls

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 *************** the assembler supports TLS but the C lib *** 893,912 **** assumptions made by the configure test are incorrect.

!
--disable-tls

Specify that the target does not support TLS. This is an alias for --enable-tls=no.

!
--disable-tm-clone-registry

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.

!
--with-cpu=cpu
!
--with-cpu-32=cpu
!
--with-cpu-64=cpu

Specify which cpu variant the compiler should generate code for by default. cpu will be used as the default value of the -mcpu= switch. This option is only supported on some targets, including ARC, ARM, i386, M68k, --- 884,903 ---- assumptions made by the configure test are incorrect.

!
--disable-tls

Specify that the target does not support TLS. This is an alias for --enable-tls=no.

!
--disable-tm-clone-registry

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.

!
--with-cpu=cpu
!
--with-cpu-32=cpu
!
--with-cpu-64=cpu

Specify which cpu variant the compiler should generate code for by default. cpu will be used as the default value of the -mcpu= switch. This option is only supported on some targets, including ARC, ARM, i386, M68k, *************** PowerPC, and SPARC. It is mandatory for *** 916,931 **** x86-64, PowerPC, and SPARC.

!
--with-schedule=cpu
!
--with-arch=cpu
!
--with-arch-32=cpu
!
--with-arch-64=cpu
!
--with-tune=cpu
!
--with-tune-32=cpu
!
--with-tune-64=cpu
!
--with-abi=abi
!
--with-fpu=type
!
--with-float=type

These configure options provide default values for the -mschedule=, -march=, -mtune=, -mabi=, and -mfpu= options and for -mhard-float or -msoft-float. As with --- 907,922 ---- x86-64, PowerPC, and SPARC.

!
--with-schedule=cpu
!
--with-arch=cpu
!
--with-arch-32=cpu
!
--with-arch-64=cpu
!
--with-tune=cpu
!
--with-tune-32=cpu
!
--with-tune-64=cpu
!
--with-abi=abi
!
--with-fpu=type
!
--with-float=type

These configure options provide default values for the -mschedule=, -march=, -mtune=, -mabi=, and -mfpu= options and for -mhard-float or -msoft-float. As with *************** options and for -mhard-float

!
--with-mode=mode

Specify if the compiler should default to -marm or -mthumb. This option is only supported on ARM targets.

!
--with-stack-offset=num

This option sets the default for the -mstack-offset=num option, and will thus generally also control the setting of this option for libraries. This option is only supported on Epiphany targets.

!
--with-fpmath=isa

This options sets -mfpmath=sse by default and specifies the default ISA for floating-point arithmetics. You can select either ‘sse’ which enables -msse2 or ‘avx’ which enables -mavx by default. This option is only supported on i386 and x86-64 targets.

!
--with-fp-32=mode

On MIPS targets, set the default value for the -mfp option when using the o32 ABI. The possibilities for mode are:

!
32

Use the o32 FP32 ABI extension, as with the -mfp32 command-line option.

!
xx

Use the o32 FPXX ABI extension, as with the -mfpxx command-line option.

!
64

Use the o32 FP64 ABI extension, as with the -mfp64 command-line option.

--- 924,960 ---- of the arguments depend on the target.

!
--with-mode=mode

Specify if the compiler should default to -marm or -mthumb. This option is only supported on ARM targets.

!
--with-stack-offset=num

This option sets the default for the -mstack-offset=num option, and will thus generally also control the setting of this option for libraries. This option is only supported on Epiphany targets.

!
--with-fpmath=isa

This options sets -mfpmath=sse by default and specifies the default ISA for floating-point arithmetics. You can select either ‘sse’ which enables -msse2 or ‘avx’ which enables -mavx by default. This option is only supported on i386 and x86-64 targets.

!
--with-fp-32=mode

On MIPS targets, set the default value for the -mfp option when using the o32 ABI. The possibilities for mode are:

!
32

Use the o32 FP32 ABI extension, as with the -mfp32 command-line option.

!
xx

Use the o32 FPXX ABI extension, as with the -mfpxx command-line option.

!
64

Use the o32 FP64 ABI extension, as with the -mfp64 command-line option.

*************** option. *** 972,998 **** FP32 ABI extension.

!
--with-odd-spreg-32

On MIPS targets, set the -modd-spreg option by default when using the o32 ABI.

!
--without-odd-spreg-32

On MIPS targets, set the -mno-odd-spreg option by default when using the o32 ABI. This is normally used in conjunction with --with-fp-32=64 in order to target the o32 FP64A ABI extension.

!
--with-nan=encoding

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 encoding are:

!
legacy

Use the legacy encoding, as with the -mnan=legacy command-line option.

!
2008

Use the 754-2008 encoding, as with the -mnan=2008 command-line option.

--- 963,989 ---- FP32 ABI extension.

!
--with-odd-spreg-32

On MIPS targets, set the -modd-spreg option by default when using the o32 ABI.

!
--without-odd-spreg-32

On MIPS targets, set the -mno-odd-spreg option by default when using the o32 ABI. This is normally used in conjunction with --with-fp-32=64 in order to target the o32 FP64A ABI extension.

!
--with-nan=encoding

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 encoding are:

!
legacy

Use the legacy encoding, as with the -mnan=legacy command-line option.

!
2008

Use the 754-2008 encoding, as with the -mnan=2008 command-line option.

*************** the legacy encoding, as when neither of *** 1004,1053 **** -mnan=legacy command-line options has been used.

!
--with-divide=type

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 type are:

!
traps

Division by zero checks use conditional traps (this is the default on systems that support conditional traps).

!
breaks

Division by zero checks use the break instruction.

!
--with-llsc

On MIPS targets, make -mllsc the default when no -mno-llsc option is passed. This is the default for Linux-based targets, as the kernel will emulate them if the ISA does not provide them.

!
--without-llsc

On MIPS targets, make -mno-llsc the default when no -mllsc option is passed.

!
--with-synci

On MIPS targets, make -msynci the default when no -mno-synci option is passed.

!
--without-synci

On MIPS targets, make -mno-synci the default when no -msynci option is passed. This is the default.

!
--with-lxc1-sxc1

On MIPS targets, make -mlxc1-sxc1 the default when no -mno-lxc1-sxc1 option is passed. This is the default.

!
--without-lxc1-sxc1

On MIPS targets, make -mno-lxc1-sxc1 the default when no -mlxc1-sxc1 option is passed. The indexed load/store instructions are not directly a problem but can lead to unexpected --- 995,1044 ---- -mnan=legacy command-line options has been used.

!
--with-divide=type

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 type are:

!
traps

Division by zero checks use conditional traps (this is the default on systems that support conditional traps).

!
breaks

Division by zero checks use the break instruction.

!
--with-llsc

On MIPS targets, make -mllsc the default when no -mno-llsc option is passed. This is the default for Linux-based targets, as the kernel will emulate them if the ISA does not provide them.

!
--without-llsc

On MIPS targets, make -mno-llsc the default when no -mllsc option is passed.

!
--with-synci

On MIPS targets, make -msynci the default when no -mno-synci option is passed.

!
--without-synci

On MIPS targets, make -mno-synci the default when no -msynci option is passed. This is the default.

!
--with-lxc1-sxc1

On MIPS targets, make -mlxc1-sxc1 the default when no -mno-lxc1-sxc1 option is passed. This is the default.

!
--without-lxc1-sxc1

On MIPS targets, make -mno-lxc1-sxc1 the default when no -mlxc1-sxc1 option is passed. The indexed load/store instructions are not directly a problem but can lead to unexpected *************** pure 32-bit environment and can hold tru *** 1063,1074 **** the address space is accurately set to be 32-bit for o32 and n32.

!
--with-madd4

On MIPS targets, make -mmadd4 the default when no -mno-madd4 option is passed. This is the default.

!
--without-madd4

On MIPS targets, make -mno-madd4 the default when no -mmadd4 option is passed. The madd4 instruction family can be problematic when targeting a combination of cores that --- 1054,1065 ---- the address space is accurately set to be 32-bit for o32 and n32.

!
--with-madd4

On MIPS targets, make -mmadd4 the default when no -mno-madd4 option is passed. This is the default.

!
--without-madd4

On MIPS targets, make -mno-madd4 the default when no -mmadd4 option is passed. The madd4 instruction family can be problematic when targeting a combination of cores that *************** only way to ensure compatible code is ge *** 1079,1098 **** a performance penalty.

!
--with-mips-plt

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.

!
--with-stack-clash-protection-guard-size=size

On certain targets this option sets the default stack clash protection guard size as a power of two in bytes. On AArch64 size is required to be either 12 (4KB) or 16 (64KB).

!
--enable-__cxa_atexit

Define if you want to use __cxa_atexit, rather than atexit, to register C++ destructors for local statics and global objects. This is essential for fully standards-compliant handling of --- 1070,1089 ---- a performance penalty.

!
--with-mips-plt

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.

!
--with-stack-clash-protection-guard-size=size

On certain targets this option sets the default stack clash protection guard size as a power of two in bytes. On AArch64 size is required to be either 12 (4KB) or 16 (64KB).

!
--enable-__cxa_atexit

Define if you want to use __cxa_atexit, rather than atexit, to register C++ destructors for local statics and global objects. This is essential for fully standards-compliant handling of *************** only available on systems with GNU libc. *** 1101,1128 **** -fuse-cxa-atexit to be passed by default.

!
--enable-gnu-indirect-function

Define if you want to enable the ifunc attribute. This option is currently only available on systems with GNU libc on certain targets.

!
--enable-target-optspace

Specify that target libraries should be optimized for code space instead of code speed. This is the default for the m32r platform.

!
--with-cpp-install-dir=dirname

Specify that the user visible cpp program should be installed in prefix/dirname/cpp, in addition to bindir.

!
--enable-comdat

Enable COMDAT group support. This is primarily used to override the automatically detected value.

!
--enable-initfini-array

Force the use of sections .init_array and .fini_array (instead of .init and .fini) for constructors and destructors. Option --disable-initfini-array has the --- 1092,1119 ---- -fuse-cxa-atexit to be passed by default.

!
--enable-gnu-indirect-function

Define if you want to enable the ifunc attribute. This option is currently only available on systems with GNU libc on certain targets.

!
--enable-target-optspace

Specify that target libraries should be optimized for code space instead of code speed. This is the default for the m32r platform.

!
--with-cpp-install-dir=dirname

Specify that the user visible cpp program should be installed in prefix/dirname/cpp, in addition to bindir.

!
--enable-comdat

Enable COMDAT group support. This is primarily used to override the automatically detected value.

!
--enable-initfini-array

Force the use of sections .init_array and .fini_array (instead of .init and .fini) for constructors and destructors. Option --disable-initfini-array has the *************** will try to guess whether the .ini *** 1131,1143 **** .fini_array sections are supported and, if they are, use them.

!
--enable-link-mutex

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.

!
--enable-link-serialization

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 --- 1122,1134 ---- .fini_array sections are supported and, if they are, use them.

!
--enable-link-mutex

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.

!
--enable-link-serialization

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 *** 1146,1152 **** that number of concurrent link processes for the large binaries.

!
--enable-maintainer-mode

The build rules that regenerate the Autoconf and Automake output files as well as the GCC master message catalog gcc.pot are normally disabled. This is because it can only be rebuilt if the complete source --- 1137,1143 ---- that number of concurrent link processes for the large binaries.

!
--enable-maintainer-mode

The build rules that regenerate the Autoconf and Automake output files as well as the GCC master message catalog gcc.pot are normally disabled. This is because it can only be rebuilt if the complete source *************** this. Note that you need a recent versi *** 1156,1169 **** to do so.

!
--disable-bootstrap

For a native build, the default configuration is to perform a 3-stage bootstrap of the compiler when ‘make’ is invoked, testing that GCC can compile itself correctly. If you want to disable this process, you can configure with --disable-bootstrap.

!
--enable-bootstrap

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 --- 1147,1160 ---- to do so.

!
--disable-bootstrap

For a native build, the default configuration is to perform a 3-stage bootstrap of the compiler when ‘make’ is invoked, testing that GCC can compile itself correctly. If you want to disable this process, you can configure with --disable-bootstrap.

!
--enable-bootstrap

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 *************** Starting from GCC 4.2, to do this you ha *** 1172,1178 **** with --enable-bootstrap.

!
--enable-generated-files-in-srcdir

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, --- 1163,1169 ---- with --enable-bootstrap.

!
--enable-generated-files-in-srcdir

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, *************** is not a requirement that the users of s *** 1187,1193 **** or makeinfo.

!
--enable-version-specific-runtime-libs

Specify that runtime libraries should be installed in the compiler specific subdirectory (libdir/gcc) rather than the usual places. In --- 1178,1184 ---- or makeinfo.

!
--enable-version-specific-runtime-libs

Specify that runtime libraries should be installed in the compiler specific subdirectory (libdir/gcc) rather than the usual places. In *************** parallel. The default is ‘y *** 1199,1205 **** the remaining libraries.

!
--with-aix-soname=‘aix’, ‘svr4’ or ‘both

Traditional AIX shared library versioning (versioned Shared Object files as members of unversioned Archive Library files named ‘lib.a’) causes numerous headaches for package managers. However, --- 1190,1196 ---- the remaining libraries.

!
--with-aix-soname=‘aix’, ‘svr4’ or ‘both

Traditional AIX shared library versioning (versioned Shared Object files as members of unversioned Archive Library files named ‘lib.a’) causes numerous headaches for package managers. However, *************** where this is called the "SONAME&qu *** 1210,1223 **** linker does search for ‘libNAME.so’ before ‘libNAME.a’ library filenames with the ‘-lNAME’ linker flag.

!

For detailed information please refer to the AIX ld Command reference.

As long as shared library creation is enabled, upon:

!
--with-aix-soname=aix
!
--with-aix-soname=both

A (traditional AIX) Shared Archive Library file is created:

  • using the ‘libNAME.a’ filename scheme --- 1201,1214 ---- linker does search for ‘libNAME.so’ before ‘libNAME.a’ library filenames with the ‘-lNAME’ linker flag.

    !

    For detailed information please refer to the AIX ld Command reference.

    As long as shared library creation is enabled, upon:

    !
    --with-aix-soname=aix
    !
    --with-aix-soname=both

    A (traditional AIX) Shared Archive Library file is created:

    • using the ‘libNAME.a’ filename scheme *************** Command reference. *** 1234,1241 ****
!
--with-aix-soname=both
!
--with-aix-soname=svr4

A (second) Shared Archive Library file is created:

  • using the ‘libNAME.so.V’ filename scheme --- 1225,1232 ----
!
--with-aix-soname=both
!
--with-aix-soname=svr4

A (second) Shared Archive Library file is created:

  • using the ‘libNAME.so.V’ filename scheme *************** Command reference. *** 1273,1279 ****

    As long as static library creation is enabled, upon:

    !
    --with-aix-soname=svr4

    A Static Archive Library is created:

    • using the ‘libNAME.a’ filename scheme --- 1264,1270 ----

      As long as static library creation is enabled, upon:

      !
      --with-aix-soname=svr4

      A Static Archive Library is created:

      • using the ‘libNAME.a’ filename scheme *************** this option is still experimental and no *** 1305,1317 ****

        Default is the traditional behavior --with-aix-soname=‘aix.

      !
      --enable-languages=lang1,lang2,…

      Specify that only a particular subset of compilers and their runtime libraries should be built. For a list of valid values for langN you can issue the following command in the gcc directory of your GCC source tree:
      !

      !
      grep ^language= */config-lang.in
        

      Currently, you can use any of the following: all, default, ada, c, c++, d, --- 1296,1308 ----

      Default is the traditional behavior --with-aix-soname=‘aix.

      !
      --enable-languages=lang1,lang2,…

      Specify that only a particular subset of compilers and their runtime libraries should be built. For a list of valid values for langN you can issue the following command in the gcc directory of your GCC source tree:
      !

      !
      grep ^language= */config-lang.in
        

      Currently, you can use any of the following: all, default, ada, c, c++, d, *************** exception is jit language, *** 1327,1333 **** --enable-host-shared to be included with all.

      !
      --enable-stage1-languages=lang1,lang2,…

      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 --- 1318,1324 ---- --enable-host-shared to be included with all.

      !
      --enable-stage1-languages=lang1,lang2,…

      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 *************** stage1-bubble all-target, or run *** 1343,1394 **** for the specified languages using make stage1-start check-gcc.

      !
      --disable-libada

      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 ‘make -C gcc gnatlib_and_tools’.

      !
      --disable-libsanitizer

      Specify that the run-time libraries for the various sanitizers should not be built.

      !
      --disable-libssp

      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.

      !
      --disable-libquadmath

      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 --disable-libquadmath-support is used.

      !
      --disable-libquadmath-support

      Specify that the Fortran front end and libgfortran do not add support for libquadmath on systems supporting it.

      !
      --disable-libgomp

      Specify that the GNU Offloading and Multi Processing Runtime Library should not be built.

      !
      --disable-libvtv

      Specify that the run-time libraries used by vtable verification should not be built.

      !
      --with-dwarf2

      Specify that the compiler should use DWARF 2 debugging information as the default.

      !
      --with-advance-toolchain=at

      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 at instead of the default versions that are --- 1334,1385 ---- for the specified languages using make stage1-start check-gcc.

      !
      --disable-libada

      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 ‘make -C gcc gnatlib_and_tools’.

      !
      --disable-libsanitizer

      Specify that the run-time libraries for the various sanitizers should not be built.

      !
      --disable-libssp

      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.

      !
      --disable-libquadmath

      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 --disable-libquadmath-support is used.

      !
      --disable-libquadmath-support

      Specify that the Fortran front end and libgfortran do not add support for libquadmath on systems supporting it.

      !
      --disable-libgomp

      Specify that the GNU Offloading and Multi Processing Runtime Library should not be built.

      !
      --disable-libvtv

      Specify that the run-time libraries used by vtable verification should not be built.

      !
      --with-dwarf2

      Specify that the compiler should use DWARF 2 debugging information as the default.

      !
      --with-advance-toolchain=at

      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 at instead of the default versions that are *************** intended for the developers of GCC, and *** 1397,1404 **** use.

      !
      --enable-targets=all
      !
      --enable-targets=target_list

      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. --- 1388,1395 ---- use.

      !
      --enable-targets=all
      !
      --enable-targets=target_list

      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 *** 1412,1436 **** mips-linux and s390-linux.

      !
      --enable-default-pie

      Turn on -fPIE and -pie by default.

      !
      --enable-secureplt

      This option enables -msecure-plt by default for powerpc-linux. See “RS/6000 and PowerPC Options” in the main manual

      !
      --enable-default-ssp

      Turn on -fstack-protector-strong by default.

      !
      --enable-cld

      This option enables -mcld by default for 32-bit x86 targets. See “i386 and x86-64 Options” in the main manual

      !
      --enable-large-address-aware

      The --enable-large-address-aware option arranges for MinGW executables to be linked using the --large-address-aware option, that enables the use of more than 2GB of memory. If GCC is --- 1403,1427 ---- mips-linux and s390-linux.

      !
      --enable-default-pie

      Turn on -fPIE and -pie by default.

      !
      --enable-secureplt

      This option enables -msecure-plt by default for powerpc-linux. See “RS/6000 and PowerPC Options” in the main manual

      !
      --enable-default-ssp

      Turn on -fstack-protector-strong by default.

      !
      --enable-cld

      This option enables -mcld by default for 32-bit x86 targets. See “i386 and x86-64 Options” in the main manual

      !
      --enable-large-address-aware

      The --enable-large-address-aware option arranges for MinGW executables to be linked using the --large-address-aware option, that enables the use of more than 2GB of memory. If GCC is *************** configured with this option, its effects *** 1439,1452 **** compiler driver.

      !
      --enable-win32-registry
      !
      --enable-win32-registry=key
      !
      --disable-win32-registry

      The --enable-win32-registry option enables Microsoft Windows-hosted GCC to look up installations paths in the registry using the following key:

      !
      !
      HKEY_LOCAL_MACHINE\SOFTWARE\Free Software Foundation\key
        

      key defaults to GCC version number, and can be overridden by the --- 1430,1443 ---- compiler driver.

      !
      --enable-win32-registry
      !
      --enable-win32-registry=key
      !
      --disable-win32-registry

      The --enable-win32-registry option enables Microsoft Windows-hosted GCC to look up installations paths in the registry using the following key:

      !
      !
      HKEY_LOCAL_MACHINE\SOFTWARE\Free Software Foundation\key
        

      key defaults to GCC version number, and can be overridden by the *************** by default, and can be disabled by

      !
      --nfp

      Specify that the machine does not have a floating point unit. This option only applies to ‘m68k-sun-sunosn’. On any other system, --nfp has no effect.

      !
      --enable-werror
      !
      --disable-werror
      !
      --enable-werror=yes
      !
      --enable-werror=no

      When you specify this option, it controls whether certain files in the compiler are built with -Werror in bootstrap stage2 and later. If you don’t specify it, -Werror is turned on for the main --- 1449,1464 ---- option. This option has no effect on the other hosts.

      !
      --nfp

      Specify that the machine does not have a floating point unit. This option only applies to ‘m68k-sun-sunosn’. On any other system, --nfp has no effect.

      !
      --enable-werror
      !
      --disable-werror
      !
      --enable-werror=yes
      !
      --enable-werror=no

      When you specify this option, it controls whether certain files in the compiler are built with -Werror in bootstrap stage2 and later. If you don’t specify it, -Werror is turned on for the main *************** final releases. The specific files whic *** 1476,1484 **** controlled by the Makefiles.

      !
      --enable-checking
      !
      --disable-checking
      !
      --enable-checking=list

      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 --- 1467,1475 ---- controlled by the Makefiles.

      !
      --enable-checking
      !
      --disable-checking
      !
      --enable-checking=list

      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 *************** expensive and the ‘df *** 1516,1524 **** expensive.

      !
      --disable-stage1-checking
      !
      --enable-stage1-checking
      !
      --enable-stage1-checking=list

      This option affects only bootstrap build. If no --enable-checking option is specified the stage1 compiler is built with ‘yes’ checking enabled, otherwise the stage1 checking flags are the same as specified by --- 1507,1515 ---- expensive.

      !
      --disable-stage1-checking
      !
      --enable-stage1-checking
      !
      --enable-stage1-checking=list

      This option affects only bootstrap build. If no --enable-checking option is specified the stage1 compiler is built with ‘yes’ checking enabled, otherwise the stage1 checking flags are the same as specified by *************** with checking for stage1 enabled, you ca *** 1530,1537 **** to disable checking for the stage1 compiler.

      !
      --enable-coverage
      !
      --enable-coverage=level

      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 --- 1521,1528 ---- to disable checking for the stage1 compiler.

      !
      --enable-coverage
      !
      --enable-coverage=level

      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 *************** enable optimization. When coverage is e *** 1542,1572 **** without optimization.

      !
      --enable-gather-detailed-mem-stats

      When this option is specified more detailed information on memory allocation is gathered. This information is printed when using -fmem-report.

      !
      --enable-valgrind-annotations

      Mark selected memory related operations in the compiler when run under valgrind to suppress false positives.

      !
      --enable-nls
      !
      --disable-nls

      The --enable-nls 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 --disable-nls option disables NLS.

      !
      --with-included-gettext

      If NLS is enabled, the --with-included-gettext option causes the build procedure to prefer its copy of GNU gettext.

      !
      --with-catgets

      If NLS is enabled, and if the host lacks gettext but has the inferior catgets interface, the GCC build procedure normally ignores catgets and instead uses GCC’s copy of the GNU --- 1533,1563 ---- without optimization.

      !
      --enable-gather-detailed-mem-stats

      When this option is specified more detailed information on memory allocation is gathered. This information is printed when using -fmem-report.

      !
      --enable-valgrind-annotations

      Mark selected memory related operations in the compiler when run under valgrind to suppress false positives.

      !
      --enable-nls
      !
      --disable-nls

      The --enable-nls 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 --disable-nls option disables NLS.

      !
      --with-included-gettext

      If NLS is enabled, the --with-included-gettext option causes the build procedure to prefer its copy of GNU gettext.

      !
      --with-catgets

      If NLS is enabled, and if the host lacks gettext but has the inferior catgets interface, the GCC build procedure normally ignores catgets and instead uses GCC’s copy of the GNU *************** ignores catgets and instead *** 1574,1585 **** build procedure to use the host’s catgets in this situation.

      !
      --with-libiconv-prefix=dir

      Search for libiconv header files in dir/include and libiconv library files in dir/lib.

      !
      --enable-obsolete

      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 --- 1565,1576 ---- build procedure to use the host’s catgets in this situation.

      !
      --with-libiconv-prefix=dir

      Search for libiconv header files in dir/include and libiconv library files in dir/lib.

      !
      --enable-obsolete

      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 *** 1590,1601 **** forward to maintain the port.

      !
      --enable-decimal-float
      !
      --enable-decimal-float=yes
      !
      --enable-decimal-float=no
      !
      --enable-decimal-float=bid
      !
      --enable-decimal-float=dpd
      !
      --disable-decimal-float

      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 PowerPC, i386, and x86_64 GNU/Linux systems. Other systems may also --- 1581,1592 ---- forward to maintain the port.

      !
      --enable-decimal-float
      !
      --enable-decimal-float=yes
      !
      --enable-decimal-float=no
      !
      --enable-decimal-float=bid
      !
      --enable-decimal-float=dpd
      !
      --disable-decimal-float

      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 PowerPC, i386, and x86_64 GNU/Linux systems. Other systems may also *************** format is default on i386 and x86_64 sys *** 1606,1620 **** (densely packed decimal) format is default on PowerPC systems.

      !
      --enable-fixed-point
      !
      --disable-fixed-point

      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.

      !
      --with-long-double-128

      Specify if long double type should be 128-bit by default on selected GNU/Linux architectures. If using --without-long-double-128, long double will be by default 64-bit, the same as double type. --- 1597,1611 ---- (densely packed decimal) format is default on PowerPC systems.

      !
      --enable-fixed-point
      !
      --disable-fixed-point

      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.

      !
      --with-long-double-128

      Specify if long double type should be 128-bit by default on selected GNU/Linux architectures. If using --without-long-double-128, long double will be by default 64-bit, the same as double type. *************** When neither of these configure options *** 1623,1630 **** 64-bit long double otherwise.

      !
      --with-long-double-format=ibm
      !
      --with-long-double-format=ieee

      Specify whether long double 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 --- 1614,1621 ---- 64-bit long double otherwise.

      !
      --with-long-double-format=ibm
      !
      --with-long-double-format=ieee

      Specify whether long double 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 *************** the compiler using the --with-syst *** 1653,1671 **** will be generated.

      !
      --enable-fdpic

      On SH Linux systems, generate ELF FDPIC code.

      !
      --with-gmp=pathname
      !
      --with-gmp-include=pathname
      !
      --with-gmp-lib=pathname
      !
      --with-mpfr=pathname
      !
      --with-mpfr-include=pathname
      !
      --with-mpfr-lib=pathname
      !
      --with-mpc=pathname
      !
      --with-mpc-include=pathname
      !
      --with-mpc-lib=pathname

      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 --- 1644,1662 ---- will be generated.

      !
      --enable-fdpic

      On SH Linux systems, generate ELF FDPIC code.

      !
      --with-gmp=pathname
      !
      --with-gmp-include=pathname
      !
      --with-gmp-lib=pathname
      !
      --with-mpfr=pathname
      !
      --with-mpfr-include=pathname
      !
      --with-mpfr-lib=pathname
      !
      --with-mpc=pathname
      !
      --with-mpc-include=pathname
      !
      --with-mpc-lib=pathname

      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 *************** variable (LD_LIBRARY_PATH o *** 1692,1700 **** a cross compiler, they will not be used to configure target libraries.

      !
      --with-isl=pathname
      !
      --with-isl-include=pathname
      !
      --with-isl-lib=pathname

      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 (‘--with-isl=islinstalldir’). The --- 1683,1691 ---- a cross compiler, they will not be used to configure target libraries.

      !
      --with-isl=pathname
      !
      --with-isl-include=pathname
      !
      --with-isl-lib=pathname

      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 (‘--with-isl=islinstalldir’). The *************** include and lib options directly. *** 1708,1714 **** a cross compiler, they will not be used to configure target libraries.

      !
      --with-stage1-ldflags=flags

      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 --disable-bootstrap. If --with-stage1-libs is not set to a --- 1699,1705 ---- a cross compiler, they will not be used to configure target libraries.

      !
      --with-stage1-ldflags=flags

      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 --disable-bootstrap. If --with-stage1-libs is not set to a *************** value, then the default is ‘ *** 1716,1746 **** supported.

      !
      --with-stage1-libs=libs

      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 --disable-bootstrap.

      !
      --with-boot-ldflags=flags

      This option may be used to set linker flags to be used when linking stage 2 and later when bootstrapping GCC. If –with-boot-libs is not is set to a value, then the default is ‘-static-libstdc++ -static-libgcc’.

      !
      --with-boot-libs=libs

      This option may be used to set libraries to be used when linking stage 2 and later when bootstrapping GCC.

      !
      --with-debug-prefix-map=map

      Convert source directory names using -fdebug-prefix-map when building runtime libraries. ‘map’ is a space-separated list of maps of the form ‘old=new’.

      !
      --enable-linker-build-id

      Tells GCC to pass --build-id option to the linker for all final links (links performed without the -r or --relocatable option), if the linker supports it. If you specify --- 1707,1737 ---- supported.

      !
      --with-stage1-libs=libs

      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 --disable-bootstrap.

      !
      --with-boot-ldflags=flags

      This option may be used to set linker flags to be used when linking stage 2 and later when bootstrapping GCC. If –with-boot-libs is not is set to a value, then the default is ‘-static-libstdc++ -static-libgcc’.

      !
      --with-boot-libs=libs

      This option may be used to set libraries to be used when linking stage 2 and later when bootstrapping GCC.

      !
      --with-debug-prefix-map=map

      Convert source directory names using -fdebug-prefix-map when building runtime libraries. ‘map’ is a space-separated list of maps of the form ‘old=new’.

      !
      --enable-linker-build-id

      Tells GCC to pass --build-id option to the linker for all final links (links performed without the -r or --relocatable option), if the linker supports it. If you specify *************** support --build-id option, *** 1749,1769 **** --enable-linker-build-id option is ignored. The default is off.

      !
      --with-linker-hash-style=choice

      Tells GCC to pass --hash-style=choice option to the linker for all final links. choice can be one of ‘sysv’, ‘gnu’, and ‘both’ where ‘sysv’ is the default.

      !
      --enable-gnu-unique-object
      !
      --disable-gnu-unique-object

      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.

      !
      --with-diagnostics-color=choice

      Tells GCC to use choice as the default for -fdiagnostics-color= option (if not used explicitly on the command line). choice can be one of ‘never’, ‘auto’, ‘always’, and ‘auto-if-env’ --- 1740,1760 ---- --enable-linker-build-id option is ignored. The default is off.

      !
      --with-linker-hash-style=choice

      Tells GCC to pass --hash-style=choice option to the linker for all final links. choice can be one of ‘sysv’, ‘gnu’, and ‘both’ where ‘sysv’ is the default.

      !
      --enable-gnu-unique-object
      !
      --disable-gnu-unique-object

      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.

      !
      --with-diagnostics-color=choice

      Tells GCC to use choice as the default for -fdiagnostics-color= option (if not used explicitly on the command line). choice can be one of ‘never’, ‘auto’, ‘always’, and ‘auto-if-env’ *************** is present and non-empty in the environm *** 1773,1779 **** -fdiagnostics-color=never otherwise.

      !
      --with-diagnostics-urls=choice

      Tells GCC to use choice as the default for -fdiagnostics-urls= option (if not used explicitly on the command line). choice can be one of ‘never’, ‘auto’, ‘always’, and ‘auto-if-env’ --- 1764,1770 ---- -fdiagnostics-color=never otherwise.

      !
      --with-diagnostics-urls=choice

      Tells GCC to use choice as the default for -fdiagnostics-urls= option (if not used explicitly on the command line). choice can be one of ‘never’, ‘auto’, ‘always’, and ‘auto-if-env’ *************** or TERM_URLS is present and *** 1783,1796 **** compiler, and -fdiagnostics-urls=never otherwise.

      !
      --enable-lto
      !
      --disable-lto

      Enable support for link-time optimization (LTO). This is enabled by default, and may be disabled using --disable-lto.

      !
      --enable-linker-plugin-configure-flags=FLAGS
      !
      --enable-linker-plugin-flags=FLAGS

      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 --- 1774,1787 ---- compiler, and -fdiagnostics-urls=never otherwise.

      !
      --enable-lto
      !
      --disable-lto

      Enable support for link-time optimization (LTO). This is enabled by default, and may be disabled using --disable-lto.

      !
      --enable-linker-plugin-configure-flags=FLAGS
      !
      --enable-linker-plugin-flags=FLAGS

      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 *************** GNU/Linux (‘i686-pc-linux-gn *** 1801,1815 **** executable on the former system), you can configure GCC as follows for getting compatible linker plugins:

      !
      !
      % srcdir/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'
        
      !
      --with-plugin-ld=pathname

      Enable an alternate linker to be used at link-time optimization (LTO) link time when -fuse-linker-plugin is enabled. This linker should have plugin support such as gold starting with --- 1792,1806 ---- executable on the former system), you can configure GCC as follows for getting compatible linker plugins:

      !
      !
      % srcdir/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'
        
      !
      --with-plugin-ld=pathname

      Enable an alternate linker to be used at link-time optimization (LTO) link time when -fuse-linker-plugin is enabled. This linker should have plugin support such as gold starting with *************** version 2.20 or GNU ld starting with ver *** 1817,1824 **** See -fuse-linker-plugin for details.

      !
      --enable-canonical-system-headers
      !
      --disable-canonical-system-headers

      Enable system header path canonicalization for libcpp. This can produce shorter header file paths in diagnostics and dependency output files, but these changed header paths may conflict with some compilation --- 1808,1815 ---- See -fuse-linker-plugin for details.

      !
      --enable-canonical-system-headers
      !
      --disable-canonical-system-headers

      Enable system header path canonicalization for libcpp. 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 m *** 1826,1832 **** --disable-canonical-system-headers.

      !
      --with-glibc-version=major.minor

      Tell GCC that when the GNU C Library (glibc) is used on the target it will be version major.minor or later. Normally this can be detected from the C library’s header files, but this option may be --- 1817,1823 ---- --disable-canonical-system-headers.

      !
      --with-glibc-version=major.minor

      Tell GCC that when the GNU C Library (glibc) is used on the target it will be version major.minor or later. Normally this can be detected from the C library’s header files, but this option may be *************** However, such configurations may not wor *** 1839,1863 **** configuration in GCC is on a per-multilib basis.

      !
      --enable-as-accelerator-for=target

      Build as offload target compiler. Specify offload host triple by target.

      !
      --enable-offload-targets=target1[=path1],…,targetN[=pathN]

      Enable offloading to targets target1, …, targetN. Offload compilers are expected to be already installed. Default search path for them is exec-prefix, but it can be changed by specifying paths path1, …, pathN.

      !
      !
      % srcdir/configure \
            --enable-offload-targets=x86_64-intelmicemul-linux-gnu=/path/to/x86_64/compiler,nvptx-none
        
      !
      --with-hsa-runtime=pathname
      !
      --with-hsa-runtime-include=pathname
      !
      --with-hsa-runtime-lib=pathname

      If you configure GCC with offloading which uses an HSA run-time such as AMDGCN but do not have the HSA run-time library installed in a standard --- 1830,1854 ---- configuration in GCC is on a per-multilib basis.

      !
      --enable-as-accelerator-for=target

      Build as offload target compiler. Specify offload host triple by target.

      !
      --enable-offload-targets=target1[=path1],…,targetN[=pathN]

      Enable offloading to targets target1, …, targetN. Offload compilers are expected to be already installed. Default search path for them is exec-prefix, but it can be changed by specifying paths path1, …, pathN.

      !
      !
      % srcdir/configure \
            --enable-offload-targets=x86_64-intelmicemul-linux-gnu=/path/to/x86_64/compiler,nvptx-none
        
      !
      --with-hsa-runtime=pathname
      !
      --with-hsa-runtime-include=pathname
      !
      --with-hsa-runtime-lib=pathname

      If you configure GCC with offloading which uses an HSA run-time such as AMDGCN but do not have the HSA run-time library installed in a standard *************** is a shorthand for *** 1868,1875 **** --with-hsa-runtime-include=hsainstalldir/include.

      !
      --enable-cet
      !
      --disable-cet

      Enable building target run-time libraries with control-flow instrumentation, see -fcf-protection option. When --enable-cet is specified target libraries are configured --- 1859,1866 ---- --with-hsa-runtime-include=hsainstalldir/include.

      !
      --enable-cet
      !
      --disable-cet

      Enable building target run-time libraries with control-flow instrumentation, see -fcf-protection option. When --enable-cet is specified target libraries are configured *************** otherwise. In this case, the target lib *** 1882,1888 **** additional -fcf-protection option.

      !
      --with-riscv-attribute=‘yes’, ‘no’ or ‘default

      Generate RISC-V attribute by default, in order to record extra build information in object.

      --- 1873,1879 ---- additional -fcf-protection option.

      !
      --with-riscv-attribute=‘yes’, ‘no’ or ‘default

      Generate RISC-V attribute by default, in order to record extra build information in object.

      *************** information in object. *** 1890,1897 **** target if target binutils supported.

      !
      --enable-s390-excess-float-precision
      !
      --disable-s390-excess-float-precision

      On s390(x) targets, enable treatment of float expressions with double precision when in standards-compliant mode (e.g., when --std=c99 or -fexcess-precision=standard are given). --- 1881,1888 ---- target if target binutils supported.

      !
      --enable-s390-excess-float-precision
      !
      --disable-s390-excess-float-precision

      On s390(x) targets, enable treatment of float expressions with double precision when in standards-compliant mode (e.g., when --std=c99 or -fexcess-precision=standard are given). *************** disabled. *** 1903,1920 ****

      ! !

      Cross-Compiler-Specific Options

      The following options only apply to building cross compilers.

      !
      --with-toolexeclibdir=dir

      Specify the installation directory for libraries built with a cross compiler. The default is ${gcc_tooldir}/lib.

      !
      --with-sysroot
      !
      --with-sysroot=dir

      Tells GCC to consider dir 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 --- 1894,1910 ----

      !

      Cross-Compiler-Specific Options

      The following options only apply to building cross compilers.

      !
      --with-toolexeclibdir=dir

      Specify the installation directory for libraries built with a cross compiler. The default is ${gcc_tooldir}/lib.

      !
      --with-sysroot
      !
      --with-sysroot=dir

      Tells GCC to consider dir 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 *************** option then the compiler will search tha *** 1938,1945 **** native system headers rather than the default /usr/include.

      !
      --with-build-sysroot
      !
      --with-build-sysroot=dir

      Tells GCC to consider dir as the system root (see --with-sysroot) while building target libraries, instead of the directory specified with --with-sysroot. This option is --- 1928,1935 ---- native system headers rather than the default /usr/include.

      !
      --with-build-sysroot
      !
      --with-build-sysroot=dir

      Tells GCC to consider dir as the system root (see --with-sysroot) while building target libraries, instead of the directory specified with --with-sysroot. This option is *************** option then the compiler will search tha *** 1957,1964 **** native system headers rather than the default /usr/include.

      !
      --with-headers
      !
      --with-headers=dir

      Deprecated in favor of --with-sysroot. Specifies that target headers are available when building a cross compiler. The dir argument specifies a directory which has the target include --- 1947,1954 ---- native system headers rather than the default /usr/include.

      !
      --with-headers
      !
      --with-headers=dir

      Deprecated in favor of --with-sysroot. Specifies that target headers are available when building a cross compiler. The dir argument specifies a directory which has the target include *************** pre-exist, the dir argument m *** 1970,1983 **** will be run on these files to make them compatible with GCC.

      !
      --without-headers

      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.

      !
      --with-libs
      !
      --with-libs="dir1 dir2dirN"

      Deprecated in favor of --with-sysroot. Specifies a list of directories which contain the target runtime libraries. These libraries will be copied into the gcc install --- 1960,1973 ---- will be run on these files to make them compatible with GCC.

      !
      --without-headers

      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.

      !
      --with-libs
      !
      --with-libs="dir1 dir2dirN"

      Deprecated in favor of --with-sysroot. Specifies a list of directories which contain the target runtime libraries. These libraries will be copied into the gcc install *************** directory. If the directory list is omi *** 1985,1991 **** effect.

      !
      --with-newlib

      Specifies that ‘newlib’ is being used as the target C library. This causes __eprintf to be omitted from libgcc.a on the assumption that it will be provided by --- 1975,1981 ---- effect.

      !
      --with-newlib

      Specifies that ‘newlib’ is being used as the target C library. This causes __eprintf to be omitted from libgcc.a on the assumption that it will be provided by *************** omitted from libgcc.a on th *** 1993,1999 ****

      !
      --with-avrlibc

      Only supported for the AVR target. Specifies that ‘AVR-Libc’ is being used as the target C  library. This causes float support functions like __addsf3 to be omitted from libgcc.a on --- 1983,1989 ----

      !
      --with-avrlibc

      Only supported for the AVR target. Specifies that ‘AVR-Libc’ is being used as the target C  library. This causes float support functions like __addsf3 to be omitted from libgcc.a on *************** RTEMS configurations, which currently us *** 2004,2011 **** supported since version 4.7.2 and is the default in 4.8.0 and newer.

      !
      --with-double={32|64|32,64|64,32}
      !
      --with-long-double={32|64|32,64|64,32|double}

      Only supported for the AVR target since version 10. Specify the default layout available for the C/C++ ‘double’ and ‘long double’ type, respectively. The following rules apply: --- 1994,2001 ---- supported since version 4.7.2 and is the default in 4.8.0 and newer.

      !
      --with-double={32|64|32,64|64,32}
      !
      --with-long-double={32|64|32,64|64,32|double}

      Only supported for the AVR target since version 10. Specify the default layout available for the C/C++ ‘double’ and ‘long double’ type, respectively. The following rules apply: *************** that ‘long double&rsq *** 2032,2038 **** 32 bits wide.

      !
      --with-double-comparison={tristate|bool|libf7}

      Only supported for the AVR target since version 10. Specify what result format is returned by library functions that compare 64-bit floating point values (DFmode). --- 2022,2028 ---- 32 bits wide.

      !
      --with-double-comparison={tristate|bool|libf7}

      Only supported for the AVR target since version 10. Specify what result format is returned by library functions that compare 64-bit floating point values (DFmode). *************** The GCC default is ‘tristate *** 2040,2046 **** implementation returns a boolean instead, set it to ‘bool’.

      !
      --with-libf7={libgcc|math|math-symbols|no}

      Only supported for the AVR target since version 10. Specify to which degree code from LibF7 is included in libgcc. LibF7 is an ad-hoc, AVR-specific, 64-bit floating point emulation --- 2030,2036 ---- implementation returns a boolean instead, set it to ‘bool’.

      !
      --with-libf7={libgcc|math|math-symbols|no}

      Only supported for the AVR target since version 10. Specify to which degree code from LibF7 is included in libgcc. LibF7 is an ad-hoc, AVR-specific, 64-bit floating point emulation *************** from elsewhere. This option sets *** 2056,2068 **** to ‘bool’.

      !
      --with-nds32-lib=library

      Specifies that library setting is used for building libgcc.a. Currently, the valid library is ‘newlib’ or ‘mculib’. This option is only supported for the NDS32 target.

      !
      --with-build-time-tools=dir

      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 --- 2046,2058 ---- to ‘bool’.

      !
      --with-nds32-lib=library

      Specifies that library setting is used for building libgcc.a. Currently, the valid library is ‘newlib’ or ‘mculib’. This option is only supported for the NDS32 target.

      !
      --with-build-time-tools=dir

      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 *************** tools. *** 2081,2088 ****

      ! !

      Overriding configure test results

      Sometimes, it might be necessary to override the result of some configure test, for example in order to ease porting to a new --- 2071,2077 ----

    !

    Overriding configure test results

    Sometimes, it might be necessary to override the result of some configure test, for example in order to ease porting to a new *************** system or work around a bug in a test. *** 2090,2110 **** script provides three variables for this:

    !
    build_configargs
    !
    !

    The contents of this variable is passed to all build configure scripts.

    !
    host_configargs
    !
    !

    The contents of this variable is passed to all host configure scripts.

    !
    target_configargs
    !
    !

    The contents of this variable is passed to all target configure scripts.

    --- 2079,2096 ---- script provides three variables for this:

    !
    build_configargs
    !

    The contents of this variable is passed to all build configure scripts.

    !
    host_configargs
    !

    The contents of this variable is passed to all host configure scripts.

    !
    target_configargs
    !

    The contents of this variable is passed to all target configure scripts.

    *************** scripts. *** 2114,2126 **** overrides, you can pass a setting for CONFIG_SITE and set variables in the site file.

    ! !

    Objective-C-Specific Options

    The following options apply to the build of the Objective-C runtime library.

    !
    --enable-objc-gc

    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 (https://www.hboehm.info/gc/). This library needs to be --- 2100,2111 ---- overrides, you can pass a setting for CONFIG_SITE and set variables in the site file.

    !

    Objective-C-Specific Options

    The following options apply to the build of the Objective-C runtime library.

    !
    --enable-objc-gc

    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 (https://www.hboehm.info/gc/). This library needs to be *************** additional runtime library is skipped wh *** 2130,2138 **** continues.

    !
    --with-target-bdw-gc=list
    !
    --with-target-bdw-gc-include=list
    !
    --with-target-bdw-gc-lib=list

    Specify search directories for the garbage collector header files and libraries. list is a comma separated list of key value pairs of the form ‘multilibdir=path’, where the default multilib key --- 2115,2123 ---- continues.

    !
    --with-target-bdw-gc=list
    !
    --with-target-bdw-gc-include=list
    !
    --with-target-bdw-gc-lib=list

    Specify search directories for the garbage collector header files and libraries. list is a comma separated list of key value pairs of the form ‘multilibdir=path’, where the default multilib key *************** default locations. *** 2151,2165 ****

    ! !

    D-Specific Options

    The following options apply to the build of the D runtime library.

    !
    --enable-libphobos-checking
    !
    --disable-libphobos-checking
    !
    --enable-libphobos-checking=list

    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 ‘release’ checking. When the option is specified without a --- 2136,2149 ----

    !

    D-Specific Options

    The following options apply to the build of the D runtime library.

    !
    --enable-libphobos-checking
    !
    --disable-libphobos-checking
    !
    --enable-libphobos-checking=list

    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 ‘release’ checking. When the option is specified without a *************** libphobos with -fno-release *** 2176,2183 **** with an extra option -fassert).

    !
    --with-libphobos-druntime-only
    !
    --with-libphobos-druntime-only=choice

    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 --- 2160,2167 ---- with an extra option -fassert).

    !
    --with-libphobos-druntime-only
    !
    --with-libphobos-druntime-only=choice

    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 *************** When the option is specified without a < *** 2190,2196 **** ‘--with-libphobos-druntime-only=yes’.

    !
    --with-target-system-zlib

    Use installed ‘zlib’ rather than that included with GCC. This needs to be available for each multilib variant, unless configured with --with-target-system-zlib=‘auto in which case the GCC included --- 2174,2180 ---- ‘--with-libphobos-druntime-only=yes’.

    !
    --with-target-system-zlib

    Use installed ‘zlib’ rather than that included with GCC. This needs to be available for each multilib variant, unless configured with --with-target-system-zlib=‘auto in which case the GCC included diff -Nrcpad gcc-11.3.0/INSTALL/download.html gcc-11.4.0/INSTALL/download.html *** gcc-11.3.0/INSTALL/download.html Thu Apr 21 07:59:38 2022 --- gcc-11.4.0/INSTALL/download.html Mon May 29 08:49:49 2023 *************** *** 1,5 **** --- 1,8 ---- + + + - - - Downloading GCC --- 22,27 ---- *************** You have freedom to copy and modify this *** 29,58 **** --- 29,52 ---- + + *************** ul.no-bullet {list-style: none} *** 80,87 **** ! !

    GCC is distributed via git and via HTTPS as tarballs compressed with gzip or bzip2. --- 74,81 ---- ! !

    GCC is distributed via git and via HTTPS as tarballs compressed with gzip or bzip2. diff -Nrcpad gcc-11.3.0/INSTALL/finalinstall.html gcc-11.4.0/INSTALL/finalinstall.html *** gcc-11.3.0/INSTALL/finalinstall.html Thu Apr 21 07:59:39 2022 --- gcc-11.4.0/INSTALL/finalinstall.html Mon May 29 08:49:50 2023 *************** *** 1,5 **** --- 1,8 ---- + + + - - - Installing GCC: Final installation --- 22,27 ---- *************** You have freedom to copy and modify this *** 29,58 **** --- 29,52 ---- + + *************** ul.no-bullet {list-style: none} *** 86,93 ****

    Now that GCC has been built (and optionally tested), you can install it with !

    !
    cd objdir && make install
      

    We strongly recommend to install into a target directory where there is --- 80,87 ----

    Now that GCC has been built (and optionally tested), you can install it with !

    !
    cd objdir && make install
      

    We strongly recommend to install into a target directory where there is *************** binutils, including assembler and linker *** 119,126 ****

    Installation into a temporary staging area or into a chroot jail can be achieved with the command

    !
    !
    make DESTDIR=path-to-rootdir install
      

    where path-to-rootdir is the absolute path of --- 113,120 ----

    Installation into a temporary staging area or into a chroot jail can be achieved with the command

    !
    !
    make DESTDIR=path-to-rootdir install
      

    where path-to-rootdir is the absolute path of *************** using the DESTDIR feature. *** 139,146 ****

    You can install stripped programs and libraries with

    !
    !
    make install-strip
      

    If you are bootstrapping a released version of GCC then please --- 133,140 ----

    You can install stripped programs and libraries with

    !
    !
    make install-strip
      

    If you are bootstrapping a released version of GCC then please diff -Nrcpad gcc-11.3.0/INSTALL/gfdl.html gcc-11.4.0/INSTALL/gfdl.html *** gcc-11.3.0/INSTALL/gfdl.html Thu Apr 21 07:59:40 2022 --- gcc-11.4.0/INSTALL/gfdl.html Mon May 29 08:49:51 2023 *************** *** 1,5 **** --- 1,8 ---- + + + - - - Installing GCC: GNU Free Documentation License --- 22,27 ---- *************** You have freedom to copy and modify this *** 29,58 **** --- 29,52 ---- + + *************** ul.no-bullet {list-style: none} *** 90,96 ****

    Installing GCC: GNU Free Documentation License

    !
    Version 1.3, 3 November 2008
    --- 84,90 ----

    Installing GCC: GNU Free Documentation License

    !
    Version 1.3, 3 November 2008
    *************** provided the MMC is eligible for relicen *** 523,537 ****

  • !

    ADDENDUM: How to use this License for your documents

    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:

    !
    !
      Copyright (C)  year  your name.
        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;
    --- 517,531 ----
      

    !

    ADDENDUM: How to use this License for your documents

    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:

    !
    !
      Copyright (C)  year  your name.
        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;
    *************** license notices just after the title pag
    *** 543,550 ****
      

    If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the “with...Texts.” line with this:

    !
    !
        with the Invariant Sections being list their titles, with
          the Front-Cover Texts being list, and with the Back-Cover Texts
          being list.
      
    --- 537,544 ----

    If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the “with...Texts.” line with this:

    !
    !
        with the Invariant Sections being list their titles, with
          the Front-Cover Texts being list, and with the Back-Cover Texts
          being list.
      
    *************** to permit their use in free software. *** 564,570 ****

    Return to the GCC Installation page

    !
    --- 558,564 ----

    Return to the GCC Installation page

    !
    diff -Nrcpad gcc-11.3.0/INSTALL/index.html gcc-11.4.0/INSTALL/index.html *** gcc-11.3.0/INSTALL/index.html Thu Apr 21 07:59:37 2022 --- gcc-11.4.0/INSTALL/index.html Mon May 29 08:49:48 2023 *************** *** 1,5 **** --- 1,8 ---- + + + - - - Installing GCC --- 22,27 ---- *************** You have freedom to copy and modify this *** 29,58 **** --- 29,52 ---- + + *************** Free Documentation License”. *** 149,155 **** - --- 143,148 ---- diff -Nrcpad gcc-11.3.0/INSTALL/old.html gcc-11.4.0/INSTALL/old.html *** gcc-11.3.0/INSTALL/old.html Thu Apr 21 07:59:39 2022 --- gcc-11.4.0/INSTALL/old.html Mon May 29 08:49:50 2023 *************** *** 1,5 **** --- 1,8 ---- + + + - - - Installing GCC: Old documentation --- 22,27 ---- *************** You have freedom to copy and modify this *** 29,58 **** --- 29,52 ---- + + *************** the same as the host machine. *** 130,137 ****

    Here is an example:

    !
    !
    ./configure --host=sparc-sun-sunos4.1
      

    A configuration name may be canonical or it may be more or less --- 124,131 ----

    Here is an example:

    !
    !
    ./configure --host=sparc-sun-sunos4.1
      

    A configuration name may be canonical or it may be more or less *************** section before proceeding any further wi *** 157,164 ****

    !

    Configurations Supported by GCC

    !

    Here are the possible CPU types:

    --- 151,158 ----

    !

    Configurations Supported by GCC

    !

    Here are the possible CPU types:

    diff -Nrcpad gcc-11.3.0/INSTALL/prerequisites.html gcc-11.4.0/INSTALL/prerequisites.html *** gcc-11.3.0/INSTALL/prerequisites.html Thu Apr 21 07:59:37 2022 --- gcc-11.4.0/INSTALL/prerequisites.html Mon May 29 08:49:49 2023 *************** *** 1,5 **** --- 1,8 ---- + + + - - - Prerequisites for GCC --- 22,27 ---- *************** You have freedom to copy and modify this *** 29,58 **** --- 29,52 ---- + + *************** ul.no-bullet {list-style: none} *** 79,94 **** !

    GCC requires that various tools and packages be available for use in the build procedure. Modifying GCC sources requires additional tools described below.

    ! !

    Tools/packages necessary for building GCC

    !
    ISO C++11 compiler

    Necessary to bootstrap GCC.

    Versions of GCC prior to 11 also allow bootstrapping with an ISO C++98 --- 73,87 ---- !

    GCC requires that various tools and packages be available for use in the build procedure. Modifying GCC sources requires additional tools described below.

    !

    Tools/packages necessary for building GCC

    !
    ISO C++11 compiler

    Necessary to bootstrap GCC.

    Versions of GCC prior to 11 also allow bootstrapping with an ISO C++98 *************** bootstrapping the compiler with such ear *** 107,113 **** discouraged.

    !
    C standard library and headers

    In order to build GCC, the C standard library and headers must be present for all target variants for which target libraries will be built (and not --- 100,106 ---- discouraged.

    !
    C standard library and headers

    In order to build GCC, the C standard library and headers must be present for all target variants for which target libraries will be built (and not *************** name of the package depends on your dist *** 124,130 **** ‘fatal error: gnu/stubs-32.h: No such file

    !
    GNAT

    In order to build GNAT, the Ada compiler, you need a working GNAT compiler (GCC version 4.7 or later). --- 117,123 ---- ‘fatal error: gnu/stubs-32.h: No such file

    !
    GNAT

    In order to build GNAT, the Ada compiler, you need a working GNAT compiler (GCC version 4.7 or later). *************** by verifying that ‘gnatls -v *** 154,160 **** section.

    !
    A “working” POSIX compatible shell, or GNU bash

    Necessary when running configure because some /bin/sh shells have bugs and may crash when configuring the --- 147,153 ---- section.

    !
    A “working” POSIX compatible shell, or GNU bash

    Necessary when running configure because some /bin/sh shells have bugs and may crash when configuring the *************** environment to your “good” s *** 173,212 **** work when configuring GCC.

    !
    A POSIX or SVR4 awk

    Necessary for creating some of the generated source files for GCC. If in doubt, use a recent GNU awk version, as some of the older ones are broken. GNU awk version 3.1.5 is known to work.

    !
    GNU binutils

    Necessary in some circumstances, optional in others. See the host/target specific instructions for your platform for the exact requirements.

    !
    gzip version 1.2.4 (or later) or
    !
    bzip2 version 1.0.2 (or later)

    Necessary to uncompress GCC tar files when source code is obtained via HTTPS mirror sites.

    !
    GNU make version 3.80 (or later)

    You must have GNU make installed to build GCC.

    !
    GNU tar version 1.14 (or later)

    Necessary (only on some platforms) to untar the source code. Many systems’ tar programs will also work, only try GNU tar if you have problems.

    !
    Perl version between 5.6.1 and 5.6.24

    Necessary when targeting Darwin, building ‘libstdc++’, and not using --disable-symvers. --- 166,205 ---- work when configuring GCC.

    !
    A POSIX or SVR4 awk

    Necessary for creating some of the generated source files for GCC. If in doubt, use a recent GNU awk version, as some of the older ones are broken. GNU awk version 3.1.5 is known to work.

    !
    GNU binutils

    Necessary in some circumstances, optional in others. See the host/target specific instructions for your platform for the exact requirements.

    !
    gzip version 1.2.4 (or later) or
    !
    bzip2 version 1.0.2 (or later)

    Necessary to uncompress GCC tar files when source code is obtained via HTTPS mirror sites.

    !
    GNU make version 3.80 (or later)

    You must have GNU make installed to build GCC.

    !
    GNU tar version 1.14 (or later)

    Necessary (only on some platforms) to untar the source code. Many systems’ tar programs will also work, only try GNU tar if you have problems.

    !
    Perl version between 5.6.1 and 5.6.24

    Necessary when targeting Darwin, building ‘libstdc++’, and not using --disable-symvers. *************** support libraries then using those packa *** 235,241 **** install the libraries.

    !
    GNU Multiple Precision Library (GMP) version 4.3.2 (or later)

    Necessary to build GCC. If a GMP source distribution is found in a subdirectory of your GCC sources named gmp, it will be built --- 228,234 ---- install the libraries.

    !
    GNU Multiple Precision Library (GMP) version 4.3.2 (or later)

    Necessary to build GCC. If a GMP source distribution is found in a subdirectory of your GCC sources named gmp, it will be built *************** The in-tree build is only supported with *** 247,253 **** download_prerequisites installs.

    !
    MPFR Library version 3.1.0 (or later)

    Necessary to build GCC. It can be downloaded from https://www.mpfr.org. If an MPFR source distribution is found --- 240,246 ---- download_prerequisites installs.

    !
    MPFR Library version 3.1.0 (or later)

    Necessary to build GCC. It can be downloaded from https://www.mpfr.org. If an MPFR source distribution is found *************** The in-tree build is only supported with *** 260,266 **** download_prerequisites installs.

    !
    MPC Library version 1.0.1 (or later)

    Necessary to build GCC. It can be downloaded from http://www.multiprecision.org/mpc/. If an MPC source distribution --- 253,259 ---- download_prerequisites installs.

    !
    MPC Library version 1.0.1 (or later)

    Necessary to build GCC. It can be downloaded from http://www.multiprecision.org/mpc/. If an MPC source distribution *************** The in-tree build is only supported with *** 273,279 **** download_prerequisites installs.

    !
    isl Library version 0.15 or later.

    Necessary to build GCC with the Graphite loop optimizations. It can be downloaded from https://gcc.gnu.org/pub/gcc/infrastructure/. --- 266,272 ---- download_prerequisites installs.

    !
    isl Library version 0.15 or later.

    Necessary to build GCC with the Graphite loop optimizations. It can be downloaded from https://gcc.gnu.org/pub/gcc/infrastructure/. *************** option should be used if isl is not inst *** 284,290 **** search path.

    !
    zstd Library.

    Necessary to build GCC with zstd compression used for LTO bytecode. The library is searched in your default library patch search. --- 277,283 ---- search path.

    !
    zstd Library.

    Necessary to build GCC with zstd compression used for LTO bytecode. The library is searched in your default library patch search. *************** Alternatively, the --with-zstd

    ! !

    Tools/packages necessary for modifying GCC

    !
    autoconf version 2.69
    !
    GNU m4 version 1.4.6 (or later)

    Necessary when modifying configure.ac, aclocal.m4, etc. to regenerate configure and config.in files.

    !
    automake version 1.15.1

    Necessary when modifying a Makefile.am file to regenerate its associated Makefile.in. --- 286,301 ----

    !

    Tools/packages necessary for modifying GCC

    !
    autoconf version 2.69
    !
    GNU m4 version 1.4.6 (or later)

    Necessary when modifying configure.ac, aclocal.m4, etc. to regenerate configure and config.in files.

    !
    automake version 1.15.1

    Necessary when modifying a Makefile.am file to regenerate its associated Makefile.in. *************** to a newer version, please update all th *** 319,346 **** to the latest released version.

    !
    gettext version 0.14.5 (or later)

    Needed to regenerate gcc.pot.

    !
    gperf version 2.7.2 (or later)

    Necessary when modifying gperf input files, e.g. gcc/cp/cfns.gperf to regenerate its associated header file, e.g. gcc/cp/cfns.h.

    !
    DejaGnu 1.4.4
    !
    Expect
    !
    Tcl

    Necessary to run the GCC testsuite; see the section on testing for details.

    !
    autogen version 5.5.4 (or later) and
    !
    guile version 1.4.1 (or later)

    Necessary to regenerate fixinc/fixincl.x from fixinc/inclhack.def and fixinc/*.tpl. --- 311,338 ---- to the latest released version.

    !
    gettext version 0.14.5 (or later)

    Needed to regenerate gcc.pot.

    !
    gperf version 2.7.2 (or later)

    Necessary when modifying gperf input files, e.g. gcc/cp/cfns.gperf to regenerate its associated header file, e.g. gcc/cp/cfns.h.

    !
    DejaGnu 1.4.4
    !
    Expect
    !
    Tcl

    Necessary to run the GCC testsuite; see the section on testing for details.

    !
    autogen version 5.5.4 (or later) and
    !
    guile version 1.4.1 (or later)

    Necessary to regenerate fixinc/fixincl.x from fixinc/inclhack.def and fixinc/*.tpl. *************** details. *** 351,357 **** Makefile.tpl and Makefile.def.

    !
    Flex version 2.5.4 (or later)

    Necessary when modifying *.l files.

    --- 343,349 ---- Makefile.tpl and Makefile.def.

    !
    Flex version 2.5.4 (or later)

    Necessary when modifying *.l files.

    *************** files are not included in the version-co *** 360,366 **** They are included in releases.

    !
    Texinfo version 4.7 (or later)

    Necessary for running makeinfo when modifying *.texi files to test your changes. --- 352,358 ---- They are included in releases.

    !
    Texinfo version 4.7 (or later)

    Necessary for running makeinfo when modifying *.texi files to test your changes. *************** generated output files are not included *** 374,405 **** included in releases.

    !
    TeX (any working version)

    Necessary for running texi2dvi and texi2pdf, which are used when running make dvi or make pdf to create DVI or PDF files, respectively.

    !
    Sphinx version 1.0 (or later)

    Necessary to regenerate jit/docs/_build/texinfo from the .rst files in the directories below jit/docs.

    !
    git (any version)
    !
    SSH (any version)

    Necessary to access the source repository. Public releases and weekly snapshots of the development sources are also available via HTTPS.

    !
    GNU diffutils version 2.7 (or later)

    Useful when submitting patches for the GCC source code.

    !
    patch version 2.5.4 (or later)

    Necessary when applying patches, created with diff, to one’s own sources. --- 366,397 ---- included in releases.

    !
    TeX (any working version)

    Necessary for running texi2dvi and texi2pdf, which are used when running make dvi or make pdf to create DVI or PDF files, respectively.

    !
    Sphinx version 1.0 (or later)

    Necessary to regenerate jit/docs/_build/texinfo from the .rst files in the directories below jit/docs.

    !
    git (any version)
    !
    SSH (any version)

    Necessary to access the source repository. Public releases and weekly snapshots of the development sources are also available via HTTPS.

    !
    GNU diffutils version 2.7 (or later)

    Useful when submitting patches for the GCC source code.

    !
    patch version 2.5.4 (or later)

    Necessary when applying patches, created with diff, to one’s own sources. diff -Nrcpad gcc-11.3.0/INSTALL/specific.html gcc-11.4.0/INSTALL/specific.html *** gcc-11.3.0/INSTALL/specific.html Thu Apr 21 07:59:37 2022 --- gcc-11.4.0/INSTALL/specific.html Mon May 29 08:49:49 2023 *************** *** 1,5 **** --- 1,8 ---- + + + - - - Host/Target specific installation notes for GCC --- 22,27 ---- *************** You have freedom to copy and modify this *** 29,58 **** --- 29,52 ---- + + *************** ul.no-bullet {list-style: none} *** 86,96 **** ! ! ! ! !

    Please read this document carefully before installing the GNU Compiler Collection on your machine. --- 80,90 ---- ! ! ! ! !

    Please read this document carefully before installing the GNU Compiler Collection on your machine. *************** information have to. *** 180,187 ****


    ! !

    aarch64*-*-*

    Binutils pre 2.24 does not have support for selecting -mabi and does not support ILP32. If it is used to build GCC 4.9 or later, GCC will not support option -mabi=ilp32. --- 174,180 ----


    !

    aarch64*-*-*

    Binutils pre 2.24 does not have support for selecting -mabi and does not support ILP32. If it is used to build GCC 4.9 or later, GCC will not support option -mabi=ilp32. *************** protections by default. This mechanism *** 218,237 **** of the options are given at configure time.


    ! !

    alpha*-*-*

    This section contains general configuration information for all Alpha-based platforms using ELF. In addition to reading this section, please read all other sections that match your target.


    ! !

    amd64-*-solaris2*

    This is a synonym for ‘x86_64-*-solaris2*’.


    ! !

    amdgcn-*-amdhsa

    AMD GCN GPU target.

    Instead of GNU Binutils, you will need to install LLVM 6, or later, and copy --- 211,227 ---- of the options are given at configure time.


    !

    alpha*-*-*

    This section contains general configuration information for all Alpha-based platforms using ELF. In addition to reading this section, please read all other sections that match your target.


    !

    amd64-*-solaris2*

    This is a synonym for ‘x86_64-*-solaris2*’.


    !

    amdgcn-*-amdhsa

    AMD GCN GPU target.

    Instead of GNU Binutils, you will need to install LLVM 6, or later, and copy *************** section, please read all other sections *** 249,270 **** on the GPU.


    ! !

    arc-*-elf32

    Use ‘configure --target=arc-elf32 --with-cpu=cpu --enable-languages="c,c++"’ to configure GCC, with cpu being one of ‘arc600’, ‘arc601’, or ‘arc700’.


    ! !

    arc-linux-uclibc

    Use ‘configure --target=arc-linux-uclibc --with-cpu=arc700 --enable-languages="c,c++"’ to configure GCC.


    ! !

    arm-*-eabi

    ARM-family processors.

    Building the Ada frontend commonly fails (an infinite loop executing --- 239,257 ---- on the GPU.


    !

    arc-*-elf32

    Use ‘configure --target=arc-elf32 --with-cpu=cpu --enable-languages="c,c++"’ to configure GCC, with cpu being one of ‘arc600’, ‘arc601’, or ‘arc700’.


    !

    arc-linux-uclibc

    Use ‘configure --target=arc-linux-uclibc --with-cpu=arc700 --enable-languages="c,c++"’ to configure GCC.


    !

    arm-*-eabi

    ARM-family processors.

    Building the Ada frontend commonly fails (an infinite loop executing *************** or ‘arc700’. *** 272,279 **** GNAT 4.6, 4.9 or 5 release branches are known to succeed.


    ! !

    avr

    ATMEL AVR-family micro controllers. These are used in embedded applications. There are no standard Unix configurations. See “AVR Options” in the main manual --- 259,265 ---- GNAT 4.6, 4.9 or 5 release branches are known to succeed.


    !

    avr

    ATMEL AVR-family micro controllers. These are used in embedded applications. There are no standard Unix configurations. See “AVR Options” in the main manual *************** can also be obtained from: *** 290,304 ****

The following error: !

!
Error: register required
  

indicates that you should upgrade to a newer version of the binutils.


! !

Blackfin

The Blackfin processor, an Analog Devices DSP. See “Blackfin Options” in the main manual

--- 276,289 ----

The following error: !

!
Error: register required
  

indicates that you should upgrade to a newer version of the binutils.


!

Blackfin

The Blackfin processor, an Analog Devices DSP. See “Blackfin Options” in the main manual

*************** See “Blackfin Options” in th *** 306,313 **** are available at https://sourceforge.net/projects/adi-toolchain/.


! !

CR16

The CR16 CompactRISC architecture is a 16-bit architecture. This architecture is used in embedded applications.

--- 291,297 ---- are available at https://sourceforge.net/projects/adi-toolchain/.


!

CR16

The CR16 CompactRISC architecture is a 16-bit architecture. This architecture is used in embedded applications.

*************** GCC for building a CR16 elf cross-c *** 321,328 **** configure GCC for building a CR16 uclinux cross-compiler.


! !

CRIS

CRIS is a CPU architecture in Axis Communications systems-on-a-chip, for example the ETRAX series. These are used in embedded applications.

--- 305,311 ---- configure GCC for building a CR16 uclinux cross-compiler.


!

CRIS

CRIS is a CPU architecture in Axis Communications systems-on-a-chip, for example the ETRAX series. These are used in embedded applications.

*************** for a list of CRIS-specific options. *** 332,339 ****

Use ‘configure --target=cris-elf’ to configure GCC for building a cross-compiler for CRIS.


!

!

DOS

Please have a look at the binaries page.

You cannot install GCC by itself on MSDOS; it will not compile under --- 315,321 ----

Use ‘configure --target=cris-elf’ to configure GCC for building a cross-compiler for CRIS.


!

DOS

Please have a look at the binaries page.

You cannot install GCC by itself on MSDOS; it will not compile under *************** compilation package DJGPP, which include *** 342,355 **** and includes all the necessary compilation tools and libraries.


! !

epiphany-*-elf

Adapteva Epiphany. This configuration is intended for embedded systems.


! !

*-*-freebsd*

Support for FreeBSD 1 was discontinued in GCC 3.2. Support for FreeBSD 2 (and any mutant a.out variants of FreeBSD 3) was discontinued in GCC 4.0. --- 324,335 ---- and includes all the necessary compilation tools and libraries.


!

epiphany-*-elf

Adapteva Epiphany. This configuration is intended for embedded systems.


!

*-*-freebsd*

Support for FreeBSD 1 was discontinued in GCC 3.2. Support for FreeBSD 2 (and any mutant a.out variants of FreeBSD 3) was discontinued in GCC 4.0. *************** properly on FreeBSD prior to the FreeBSD *** 384,397 **** after 2.16.1.


! !

ft32-*-elf

The FT32 processor. This configuration is intended for embedded systems.


! !

h8300-hms

Renesas H8/300 series of processors.

Please have a look at the binaries page. --- 364,375 ---- after 2.16.1.


!

ft32-*-elf

The FT32 processor. This configuration is intended for embedded systems.


!

h8300-hms

Renesas H8/300 series of processors.

Please have a look at the binaries page. *************** first three arguments in function calls *** 402,409 **** longer a multiple of 2 bytes.


! !

hppa*-hp-hpux*

Support for HP-UX version 9 and older was discontinued in GCC 3.4.

We require using gas/binutils on all hppa platforms. Version 2.19 or --- 380,386 ---- longer a multiple of 2 bytes.


!

hppa*-hp-hpux*

Support for HP-UX version 9 and older was discontinued in GCC 3.4.

We require using gas/binutils on all hppa platforms. Version 2.19 or *************** a list of the predefines used with each *** 453,460 ****

More specific information to ‘hppa*-hp-hpux*’ targets follows.


! !

hppa*-hp-hpux10

For hpux10.20, we highly recommend you pick up the latest sed patch PHCO_19798 from HP.

--- 430,436 ----

More specific information to ‘hppa*-hp-hpux*’ targets follows.


!

hppa*-hp-hpux10

For hpux10.20, we highly recommend you pick up the latest sed patch PHCO_19798 from HP.

*************** problems in using C++ on this target. H *** 464,471 **** with the one implemented under HP-UX 11 using secondary definitions.


! !

hppa*-hp-hpux11

GCC 3.0 and up support HP-UX 11. GCC 2.95.x is not supported and cannot be used to compile GCC 3.0 and up.

--- 440,446 ---- with the one implemented under HP-UX 11 using secondary definitions.


!

hppa*-hp-hpux11

GCC 3.0 and up support HP-UX 11. GCC 2.95.x is not supported and cannot be used to compile GCC 3.0 and up.

*************** versioning with --disable-symvers< *** 568,582 **** supported, so --enable-threads=dce does not work.


! !

*-*-linux-gnu

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.


! !

i?86-*-linux*

As of GCC 3.3, binutils 2.13.1 or later is required for this platform. See bug 10877 for more information.

--- 543,555 ---- supported, so --enable-threads=dce does not work.


!

*-*-linux-gnu

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.


!

i?86-*-linux*

As of GCC 3.3, binutils 2.13.1 or later is required for this platform. See bug 10877 for more information.

*************** possible you have a hardware problem. F *** 585,592 **** found on www.bitwizard.nl.


! !

i?86-*-solaris2*

Use this for Solaris 11.3 or later on x86 and x86-64 systems. Starting with GCC 4.7, there is also a 64-bit ‘amd64-*-solaris2*’ or ‘x86_64-*-solaris2*’ configuration that corresponds to --- 558,564 ---- found on www.bitwizard.nl.


!

i?86-*-solaris2*

Use this for Solaris 11.3 or later on x86 and x86-64 systems. Starting with GCC 4.7, there is also a 64-bit ‘amd64-*-solaris2*’ or ‘x86_64-*-solaris2*’ configuration that corresponds to *************** to configure with --without-gnu-ld *** 610,617 **** guarantee use of Solaris ld.


! !

ia64-*-linux

IA-64 processor (also known as IPF, or Itanium Processor Family) running GNU/Linux.

--- 582,588 ---- guarantee use of Solaris ld.


!

ia64-*-linux

IA-64 processor (also known as IPF, or Itanium Processor Family) running GNU/Linux.

*************** As of version 3.1 GCC is believed to be *** 629,636 **** more major ABI changes are expected.


! !

ia64-*-hpux*

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 --with-gnu-as may be necessary. --- 600,606 ---- more major ABI changes are expected.


!

ia64-*-hpux*

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 --with-gnu-as may be necessary. *************** removed and the system libunwind library *** 643,650 ****


! !

*-ibm-aix*

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.

--- 613,619 ----


!

*-ibm-aix*

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.

*************** with an earlier release of GCC is recomm *** 661,668 **** requires a larger data segment, which can be enabled through the LDR_CNTRL environment variable, e.g.,

!
!
% LDR_CNTRL=MAXDATA=0x50000000
  % export LDR_CNTRL
  
--- 630,637 ---- requires a larger data segment, which can be enabled through the LDR_CNTRL environment variable, e.g.,

!
!
% LDR_CNTRL=MAXDATA=0x50000000
  % export LDR_CNTRL
  
*************** with a version of GCC built for an earli *** 673,680 ****

To speed up the configuration phases of bootstrapping and installing GCC, one may use GNU Bash instead of AIX /bin/sh, e.g.,

!
!
% CONFIG_SHELL=/opt/freeware/bin/bash
  % export CONFIG_SHELL
  
--- 642,649 ----

To speed up the configuration phases of bootstrapping and installing GCC, one may use GNU Bash instead of AIX /bin/sh, e.g.,

!
!
% CONFIG_SHELL=/opt/freeware/bin/bash
  % export CONFIG_SHELL
  
*************** APAR IY26685 (AIX 4.3) or APAR IY25528 ( *** 724,730 **** 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)

!

libstdc++’ in GCC 3.4 increments the major version number of the shared object and GCC installation places the libstdc++.a shared library in a common location which will overwrite the and GCC 3.3 version of the shared library. Applications either need to be --- 693,699 ---- 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)

!

libstdc++’ in GCC 3.4 increments the major version number of the shared object and GCC installation places the libstdc++.a shared library in a common location which will overwrite the and GCC 3.3 version of the shared library. Applications either need to be *************** multilib libstdc++.a instal *** 738,757 ****

Extract the shared objects from the currently installed libstdc++.a archive: !

!
% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5
  

Enable the ‘F_LOADONLY’ flag so that the shared object will be available for runtime dynamic loading, but not linking: !

!
% strip -e libstdc++.so.4 libstdc++.so.5
  

Archive the runtime-only shared object in the GCC 3.4 libstdc++.a archive: !

!
% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5
  

Eventually, the --- 707,726 ----

Extract the shared objects from the currently installed libstdc++.a archive: !

!
% ar -x libstdc++.a libstdc++.so.4 libstdc++.so.5
  

Enable the ‘F_LOADONLY’ flag so that the shared object will be available for runtime dynamic loading, but not linking: !

!
% strip -e libstdc++.so.4 libstdc++.so.5
  

Archive the runtime-only shared object in the GCC 3.4 libstdc++.a archive: !

!
% ar -q libstdc++.a libstdc++.so.4 libstdc++.so.5
  

Eventually, the *************** environment variable to ‘C--with-cpu-cpu_type.


! !

iq2000-*-elf

Vitesse IQ2000 processors. These are used in embedded applications. There are no standard Unix configurations.


! !

lm32-*-elf

Lattice Mico32 processor. This configuration is intended for embedded systems.


! !

lm32-*-uclinux

Lattice Mico32 processor. This configuration is intended for embedded systems running uClinux.


! !

m32c-*-elf

Renesas M32C processor. This configuration is intended for embedded systems.


! !

m32r-*-elf

Renesas M32R processor. This configuration is intended for embedded systems.


! !

m68k-*-*

By default, ‘m68k-*-elf*’, ‘m68k-*-rtems’, ‘m68k-*-uclinux’ and ‘m68k-*-linux’ --- 777,808 ---- switch and using the configure option --with-cpu-cpu_type.


!

iq2000-*-elf

Vitesse IQ2000 processors. These are used in embedded applications. There are no standard Unix configurations.


!

lm32-*-elf

Lattice Mico32 processor. This configuration is intended for embedded systems.


!

lm32-*-uclinux

Lattice Mico32 processor. This configuration is intended for embedded systems running uClinux.


!

m32c-*-elf

Renesas M32C processor. This configuration is intended for embedded systems.


!

m32r-*-elf

Renesas M32R processor. This configuration is intended for embedded systems.


!

m68k-*-*

By default, ‘m68k-*-elf*’, ‘m68k-*-rtems’, ‘m68k-*-uclinux’ and ‘m68k-*-linux’ *************** be a -mcpu argument or one *** 865,886 ****

GCC requires at least binutils version 2.17 on these targets.


! !

m68k-*-uclinux

GCC 4.3 changed the uClinux configuration so that it uses the ‘m68k-linux-gnu’ ABI rather than the ‘m68k-elf’ ABI. It also added improved support for C++ and flat shared libraries, both of which were ABI changes.


! !

microblaze-*-elf

Xilinx MicroBlaze processor. This configuration is intended for embedded systems.


! !

mips-*-*

If on a MIPS system you get an error message saying “does not have gp sections for all it’s [sic] sectons [sic]”, don’t worry about it. This happens whenever you use GAS with the MIPS linker, but there is not --- 828,846 ----

GCC requires at least binutils version 2.17 on these targets.


!

m68k-*-uclinux

GCC 4.3 changed the uClinux configuration so that it uses the ‘m68k-linux-gnu’ ABI rather than the ‘m68k-elf’ ABI. It also added improved support for C++ and flat shared libraries, both of which were ABI changes.


!

microblaze-*-elf

Xilinx MicroBlaze processor. This configuration is intended for embedded systems.


!

mips-*-*

If on a MIPS system you get an error message saying “does not have gp sections for all it’s [sic] sectons [sic]”, don’t worry about it. This happens whenever you use GAS with the MIPS linker, but there is not *************** the use of break, use the --with-d *** 920,932 **** use traps on systems that support them.


! !

moxie-*-elf

The moxie processor.


! !

msp430-*-elf*

TI MSP430 processor. This configuration is intended for embedded systems.

--- 880,890 ---- use traps on systems that support them.


!

moxie-*-elf

The moxie processor.


!

msp430-*-elf*

TI MSP430 processor. This configuration is intended for embedded systems.

*************** in a minimal run-time environment by def *** 945,962 ****
! !

nds32le-*-elf

Andes NDS32 target in little endian mode.


! !

nds32be-*-elf

Andes NDS32 target in big endian mode.


! !

nvptx-*-none

Nvidia PTX target.

Instead of GNU binutils, you will need to install --- 903,917 ----


!

nds32le-*-elf

Andes NDS32 target in little endian mode.


!

nds32be-*-elf

Andes NDS32 target in big endian mode.


!

nvptx-*-none

Nvidia PTX target.

Instead of GNU binutils, you will need to install *************** the GCC sources. *** 974,1000 **** --enable-newlib-io-long-long options when configuring.


! !

or1k-*-elf

The OpenRISC 1000 32-bit processor with delay slots. This configuration is intended for embedded systems.


! !

or1k-*-linux

The OpenRISC 1000 32-bit processor with delay slots.


! !

powerpc-*-*

You can specify a default version for the -mcpu=cpu_type switch by using the configure option --with-cpu-cpu_type.

You will need GNU binutils 2.20 or newer.


! !

powerpc-*-darwin*

PowerPC running Darwin (Mac OS X kernel).

Pre-installed versions of Mac OS X may not include any developer tools, --- 929,951 ---- --enable-newlib-io-long-long options when configuring.


!

or1k-*-elf

The OpenRISC 1000 32-bit processor with delay slots. This configuration is intended for embedded systems.


!

or1k-*-linux

The OpenRISC 1000 32-bit processor with delay slots.


!

powerpc-*-*

You can specify a default version for the -mcpu=cpu_type switch by using the configure option --with-cpu-cpu_type.

You will need GNU binutils 2.20 or newer.


!

powerpc-*-darwin*

PowerPC running Darwin (Mac OS X kernel).

Pre-installed versions of Mac OS X may not include any developer tools, *************** cctools-590.36 package referenced from *** 1008,1110 **** on systems older than 10.3.9 (aka darwin7.9.0).


! !

powerpc-*-elf

PowerPC system in big endian mode, running System V.4.


! !

powerpc*-*-linux-gnu*

PowerPC system in big endian mode running Linux.


! !

powerpc-*-netbsd*

PowerPC system in big endian mode running NetBSD.


! !

powerpc-*-eabisim

Embedded PowerPC system in big endian mode for use in running under the PSIM simulator.


! !

powerpc-*-eabi

Embedded PowerPC system in big endian mode.


! !

powerpcle-*-elf

PowerPC system in little endian mode, running System V.4.


! !

powerpcle-*-eabisim

Embedded PowerPC system in little endian mode for use in running under the PSIM simulator.


! !

powerpcle-*-eabi

Embedded PowerPC system in little endian mode.


! !

rl78-*-elf

The Renesas RL78 processor. This configuration is intended for embedded systems.


! !

riscv32-*-elf

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.


! !

riscv32-*-linux

The RISC-V RV32 instruction set running GNU/Linux. This (and all other RISC-V) targets require the binutils 2.30 release.


! !

riscv64-*-elf

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.


! !

riscv64-*-linux

The RISC-V RV64 instruction set running GNU/Linux. This (and all other RISC-V) targets require the binutils 2.30 release.


! !

rx-*-elf

The Renesas RX processor.


! !

s390-*-linux*

S/390 system running GNU/Linux for S/390.


! !

s390x-*-linux*

zSeries system (64-bit) running GNU/Linux for zSeries.


! !

s390x-ibm-tpf*

zSeries system (64-bit) running TPF. This platform is supported as cross-compilation target only.


! !

*-*-solaris2*

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. --- 959,1043 ---- on systems older than 10.3.9 (aka darwin7.9.0).


!

powerpc-*-elf

PowerPC system in big endian mode, running System V.4.


!

powerpc*-*-linux-gnu*

PowerPC system in big endian mode running Linux.


!

powerpc-*-netbsd*

PowerPC system in big endian mode running NetBSD.


!

powerpc-*-eabisim

Embedded PowerPC system in big endian mode for use in running under the PSIM simulator.


!

powerpc-*-eabi

Embedded PowerPC system in big endian mode.


!

powerpcle-*-elf

PowerPC system in little endian mode, running System V.4.


!

powerpcle-*-eabisim

Embedded PowerPC system in little endian mode for use in running under the PSIM simulator.


!

powerpcle-*-eabi

Embedded PowerPC system in little endian mode.


!

rl78-*-elf

The Renesas RL78 processor. This configuration is intended for embedded systems.


!

riscv32-*-elf

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.


!

riscv32-*-linux

The RISC-V RV32 instruction set running GNU/Linux. This (and all other RISC-V) targets require the binutils 2.30 release.


!

riscv64-*-elf

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.


!

riscv64-*-linux

The RISC-V RV64 instruction set running GNU/Linux. This (and all other RISC-V) targets require the binutils 2.30 release.


!

rx-*-elf

The Renesas RX processor.


!

s390-*-linux*

S/390 system running GNU/Linux for S/390.


!

s390x-*-linux*

zSeries system (64-bit) running GNU/Linux for zSeries.


!

s390x-ibm-tpf*

zSeries system (64-bit) running TPF. This platform is supported as cross-compilation target only.


!

*-*-solaris2*

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. *************** you can install a pre-built GCC to boots *** 1119,1126 **** ‘libstdc++-v3’. We therefore recommend using the following initial sequence of commands

!
!
% CONFIG_SHELL=/bin/ksh
  % export CONFIG_SHELL
  
--- 1052,1059 ---- ‘libstdc++-v3’. We therefore recommend using the following initial sequence of commands

!
!
% CONFIG_SHELL=/bin/ksh
  % export CONFIG_SHELL
  
*************** need to provide a more recent one. *** 1177,1184 ****
! !

sparc*-*-*

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. --- 1110,1116 ----


!

sparc*-*-*

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. *************** of the exact versions of these libraries *** 1190,1197 **** in the prerequisites.


! !

sparc-sun-solaris2*

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 --- 1122,1128 ---- in the prerequisites.


!

sparc-sun-solaris2*

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 *************** target triplet must be specified as the *** 1211,1227 **** configure line. This target triplet can be obtained by invoking ./config.guess in the toplevel source directory of GCC (and not that of GMP or MPFR or MPC). For example on a Solaris 11 system:

!
!
% ./configure --build=sparc-sun-solaris2.11 --prefix=xxx
  

! !

sparc-*-linux*


! !

sparc64-*-solaris2*

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 ‘CC='gcc -m64' CXX='gcc-m64'’ to configure. --- 1142,1156 ---- configure line. This target triplet can be obtained by invoking ./config.guess in the toplevel source directory of GCC (and not that of GMP or MPFR or MPC). For example on a Solaris 11 system:

!
!
% ./configure --build=sparc-sun-solaris2.11 --prefix=xxx
  

!

sparc-*-linux*


!

sparc64-*-solaris2*

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 ‘CC='gcc -m64' CXX='gcc-m64'’ to configure. *************** library or the MPC library, the canonica *** 1234,1280 **** as the build parameter on the configure line. For example on a Solaris 11 system:

!
!
% ./configure --build=sparc64-sun-solaris2.11 --prefix=xxx
  

! !

sparcv9-*-solaris2*

This is a synonym for ‘sparc64-*-solaris2*’.


! !

c6x-*-*

The C6X family of processors. This port requires binutils-2.22 or newer.


! !

tilegx-*-linux*

The TILE-Gx processor in little endian mode, running GNU/Linux. This port requires binutils-2.22 or newer.


! !

tilegxbe-*-linux*

The TILE-Gx processor in big endian mode, running GNU/Linux. This port requires binutils-2.23 or newer.


! !

tilepro-*-linux*

The TILEPro processor running GNU/Linux. This port requires binutils-2.22 or newer.


! !

visium-*-elf

CDS VISIUMcore processor. This configuration is intended for embedded systems.


! !

*-*-vxworks*

Support for VxWorks is in flux. At present GCC supports only 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. --- 1163,1202 ---- as the build parameter on the configure line. For example on a Solaris 11 system:

!
!
% ./configure --build=sparc64-sun-solaris2.11 --prefix=xxx
  

!

sparcv9-*-solaris2*

This is a synonym for ‘sparc64-*-solaris2*’.


!

c6x-*-*

The C6X family of processors. This port requires binutils-2.22 or newer.


!

tilegx-*-linux*

The TILE-Gx processor in little endian mode, running GNU/Linux. This port requires binutils-2.22 or newer.


!

tilegxbe-*-linux*

The TILE-Gx processor in big endian mode, running GNU/Linux. This port requires binutils-2.23 or newer.


!

tilepro-*-linux*

The TILEPro processor running GNU/Linux. This port requires binutils-2.22 or newer.


!

visium-*-elf

CDS VISIUMcore processor. This configuration is intended for embedded systems.


!

*-*-vxworks*

Support for VxWorks is in flux. At present GCC supports only 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. *************** that file to add the module to your kern *** 1307,1322 **** VxWorks will incorporate this module.)


! !

x86_64-*-*, amd64-*-*

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 -m32 switch).


! !

x86_64-*-solaris2*

GCC also supports the x86-64 architecture implemented by the AMD64 processor (‘amd64-*-*’ is an alias for ‘x86_64-*-*’) on Solaris 10 or later. Unlike other systems, without special options a --- 1229,1242 ---- VxWorks will incorporate this module.)


!

x86_64-*-*, amd64-*-*

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 -m32 switch).


!

x86_64-*-solaris2*

GCC also supports the x86-64 architecture implemented by the AMD64 processor (‘amd64-*-*’ is an alias for ‘x86_64-*-*’) on Solaris 10 or later. Unlike other systems, without special options a *************** as 64-bit code, configure with --t *** 1329,1336 **** and ‘CC=gcc -m64’.


! !

xtensa*-*-elf

This target is intended for embedded Xtensa systems using the ‘newlib’ C library. It uses ELF but does not support shared objects. Designed-defined instructions specified via the --- 1249,1255 ---- and ‘CC=gcc -m64’.


!

xtensa*-*-elf

This target is intended for embedded Xtensa systems using the ‘newlib’ C library. It uses ELF but does not support shared objects. Designed-defined instructions specified via the *************** downloaded files include a customized co *** 1345,1352 **** which you can use to replace the default header file.


! !

xtensa*-*-linux*

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 --- 1264,1270 ---- which you can use to replace the default header file.


!

xtensa*-*-linux*

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 *************** respects, this target is the same as the *** 1355,1373 **** xtensa*-*-elf target.


! !

Microsoft Windows

! !

Intel 16-bit versions

The 16-bit versions of Microsoft Windows, such as Windows 3.1, are not supported.

However, the 32-bit port has limited support for Microsoft Windows 3.11 in the Win32s environment, as a target only. See below.

! !

Intel 32-bit versions

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 --- 1273,1288 ---- xtensa*-*-elf target.


!

Microsoft Windows

!

Intel 16-bit versions

The 16-bit versions of Microsoft Windows, such as Windows 3.1, are not supported.

However, the 32-bit port has limited support for Microsoft Windows 3.11 in the Win32s environment, as a target only. See below.

!

Intel 32-bit versions

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 *************** the Win32 subsystem that provides a subs *** 1382,1402 **** https://www.mkssoftware.com for more information. ! !

Intel 64-bit versions

GCC contains support for x86-64 using the mingw-w64 runtime library, available from http://mingw-w64.org/doku.php. This library should be used with the target triple x86_64-pc-mingw32.

Presently Windows for Itanium is not supported.

! !

Windows CE

Windows CE is supported as a target only on Hitachi SuperH (sh-wince-pe), and MIPS (mips-wince-pe).

! !

Other Windows Platforms

GCC no longer supports Windows NT on the Alpha or PowerPC.

GCC no longer supports the Windows POSIX subsystem. However, it does --- 1297,1314 ---- https://www.mkssoftware.com for more information. !

Intel 64-bit versions

GCC contains support for x86-64 using the mingw-w64 runtime library, available from http://mingw-w64.org/doku.php. This library should be used with the target triple x86_64-pc-mingw32.

Presently Windows for Itanium is not supported.

!

Windows CE

Windows CE is supported as a target only on Hitachi SuperH (sh-wince-pe), and MIPS (mips-wince-pe).

!

Other Windows Platforms

GCC no longer supports Windows NT on the Alpha or PowerPC.

GCC no longer supports the Windows POSIX subsystem. However, it does *************** be inactive. See !

*-*-cygwin

Ports of GCC are included with the Cygwin environment.

--- 1322,1328 ----

UWIN support has been removed due to a lack of maintenance.


!

*-*-cygwin

Ports of GCC are included with the Cygwin environment.

*************** the latest official GNU binutils release *** 1425,1439 **** or version 2.20 or above if building your own.


! !

*-*-mingw32

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 extern inline in -std=c99 and -std=gnu99 modes.


! !

Older systems

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 --- 1336,1348 ---- or version 2.20 or above if building your own.


!

*-*-mingw32

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 extern inline in -std=c99 and -std=gnu99 modes.


!

Older systems

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 *************** about GCC on such systems (which may no *** 1476,1483 **** current GCC) is to be found in the GCC texinfo manual.


! !

all ELF targets (SVR4, Solaris 2, etc.)

C++ support is significantly better on ELF targets if you use the GNU linker; duplicate copies of inlines, vtables and template instantiations will be discarded --- 1385,1391 ---- current GCC) is to be found in the GCC texinfo manual.


!

all ELF targets (SVR4, Solaris 2, etc.)

C++ support is significantly better on ELF targets if you use the GNU linker; duplicate copies of inlines, vtables and template instantiations will be discarded diff -Nrcpad gcc-11.3.0/INSTALL/test.html gcc-11.4.0/INSTALL/test.html *** gcc-11.3.0/INSTALL/test.html Thu Apr 21 07:59:39 2022 --- gcc-11.4.0/INSTALL/test.html Mon May 29 08:49:50 2023 *************** *** 1,5 **** --- 1,8 ---- + + + - - - Installing GCC: Testing --- 22,27 ---- *************** You have freedom to copy and modify this *** 29,58 **** --- 29,52 ---- + + *************** ul.no-bullet {list-style: none} *** 83,91 **** ! ! !

Before you install GCC, we encourage you to run the testsuites and to compare your results with results from a similar configuration that have --- 77,85 ---- ! ! !

Before you install GCC, we encourage you to run the testsuites and to compare your results with results from a similar configuration that have *************** installed are not in the PATH/usr/local):

!
!
TCL_LIBRARY = /usr/local/share/tcl8.0
  DEJAGNULIBS = /usr/local/share/dejagnu
  
--- 109,116 ---- environment variables appropriately, as in the following example (which assumes that DejaGnu has been installed under /usr/local):

!
!
TCL_LIBRARY = /usr/local/share/tcl8.0
  DEJAGNULIBS = /usr/local/share/dejagnu
  
*************** portability in the DejaGnu code.) *** 126,133 ****

Finally, you can run the testsuite (which may take a long time): !

!
cd objdir; make -k check
  

This will test various components of GCC, such as compiler --- 120,127 ----

Finally, you can run the testsuite (which may take a long time): !

!
cd objdir; make -k check
  

This will test various components of GCC, such as compiler *************** might emit some harmless messages resemb *** 139,145 ****

If you are testing a cross-compiler, you may want to run the testsuite on a simulator as described at http://gcc.gnu.org/simtest-howto.html.

!

How can you run the testsuite on selected tests?

In order to run sets of tests selectively, there are targets --- 133,139 ----

If you are testing a cross-compiler, you may want to run the testsuite on a simulator as described at http://gcc.gnu.org/simtest-howto.html.

!

How can you run the testsuite on selected tests?

In order to run sets of tests selectively, there are targets *************** just run ‘make check& *** 154,168 ****

A more selective way to just run all gcc execute tests in the testsuite is to use

!
!
make check-gcc RUNTESTFLAGS="execute.exp other-options"
  

Likewise, in order to run only the g++ “old-deja” tests in the testsuite with filenames matching ‘9805*’, you would use

!
!
make check-g++ RUNTESTFLAGS="old-deja.exp=9805* other-options"
  

The file-matching expression following filename.exp= is treated --- 148,162 ----

A more selective way to just run all gcc execute tests in the testsuite is to use

!
!
make check-gcc RUNTESTFLAGS="execute.exp other-options"
  

Likewise, in order to run only the g++ “old-deja” tests in the testsuite with filenames matching ‘9805*’, you would use

!
!
make check-g++ RUNTESTFLAGS="old-deja.exp=9805* other-options"
  

The file-matching expression following filename.exp= is treated *************** as a series of whitespace-delimited glob *** 170,177 **** may be passed, although any whitespace must either be escaped or surrounded by single quotes if multiple expressions are desired. For example,

!
!
make check-g++ RUNTESTFLAGS="old-deja.exp=9805*\ virtual2.c other-options"
  make check-g++ RUNTESTFLAGS="'old-deja.exp=9805* virtual2.c' other-options"
  
--- 164,171 ---- may be passed, although any whitespace must either be escaped or surrounded by single quotes if multiple expressions are desired. For example,

!
!
make check-g++ RUNTESTFLAGS="old-deja.exp=9805*\ virtual2.c other-options"
  make check-g++ RUNTESTFLAGS="'old-deja.exp=9805* virtual2.c' other-options"
  
*************** To get a list of the possible *.ex *** 182,188 **** output of ‘make check’ into a file and look at the ‘Running … .exp’ lines.

!

Passing options and running multiple testsuites

You can pass multiple options to the testsuite using the --- 176,183 ---- output of ‘make check’ into a file and look at the ‘Running … .exp’ lines.

!
!

Passing options and running multiple testsuites

You can pass multiple options to the testsuite using the *************** output of ‘make check *** 190,197 **** ‘RUNTESTFLAGS’, or directly to runtest if you prefer to work outside the makefiles. For example,

!
!
make check-g++ RUNTESTFLAGS="--target_board=unix/-O3/-fmerge-constants"
  

will run the standard g++ testsuites (“unix” is the target name --- 185,192 ---- ‘RUNTESTFLAGS’, or directly to runtest if you prefer to work outside the makefiles. For example,

!
!
make check-g++ RUNTESTFLAGS="--target_board=unix/-O3/-fmerge-constants"
  

will run the standard g++ testsuites (“unix” is the target name *************** slashes separate options. *** 202,217 ****

You can run the testsuites multiple times using combinations of options with a syntax similar to the brace expansion of popular shells:

!
!
…"--target_board=arm-sim\{-mhard-float,-msoft-float\}\{-O1,-O2,-O3,\}"
  

(Note the empty option caused by the trailing comma in the final group.) The following will run each testsuite eight times using the ‘arm-sim’ target, as if you had specified all possible combinations yourself:

!
!
--target_board='arm-sim/-mhard-float/-O1 \
                  arm-sim/-mhard-float/-O2 \
                  arm-sim/-mhard-float/-O3 \
                  arm-sim/-mhard-float \
--- 197,212 ----
  

You can run the testsuites multiple times using combinations of options with a syntax similar to the brace expansion of popular shells:

!
!
…"--target_board=arm-sim\{-mhard-float,-msoft-float\}\{-O1,-O2,-O3,\}"
  

(Note the empty option caused by the trailing comma in the final group.) The following will run each testsuite eight times using the ‘arm-sim’ target, as if you had specified all possible combinations yourself:

!
!
--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
*** 224,231 ****
  

They can be combined as many times as you wish, in arbitrary ways. This list:

!
!
…"--target_board=unix/-Wextra\{-O3,-fno-strength\}\{-fomit-frame,\}"
  

will generate four combinations, all involving ‘-Wextra’. --- 219,226 ----

They can be combined as many times as you wish, in arbitrary ways. This list:

!
!
…"--target_board=unix/-Wextra\{-O3,-fno-strength\}\{-fomit-frame,\}"
  

will generate four combinations, all involving ‘-Wextra’. *************** parallel by having the shell perform the *** 237,250 **** do the parallel runs. Instead of using ‘--target_board’, use a special makefile target:

!
!
make -jN check-testsuite//test-target/option1/option2/…
  

For example,

!
!
make -j3 check-gcc//sh-hms-sim/{-m1,-m2,-m3,-m3e,-m4}/{,-nofpu}
  

will run three concurrent “make-gcc” testsuites, eventually testing all --- 232,245 ---- do the parallel runs. Instead of using ‘--target_board’, use a special makefile target:

!
!
make -jN check-testsuite//test-target/option1/option2/…
  

For example,

!
!
make -j3 check-gcc//sh-hms-sim/{-m1,-m2,-m3,-m3e,-m4}/{,-nofpu}
  

will run three concurrent “make-gcc” testsuites, eventually testing all *************** supported in the gcc subdir *** 253,259 **** typing echo before the example given here.)

!

How to interpret test results

The result of running the testsuite are various *.sum and *.log --- 248,255 ---- typing echo before the example given here.)

!
!

How to interpret test results

The result of running the testsuite are various *.sum and *.log *************** over whether or not a test is expected t *** 278,291 **** be fixed in future releases.

!

Submitting test results

If you want to report the results to the GCC project, use the contrib/test_summary shell script. Start it in the objdir with

!
!
srcdir/contrib/test_summary -p your_commentary.txt \
      -m gcc-testresults@gcc.gnu.org |sh
  
--- 274,288 ---- be fixed in future releases.

!
!

Submitting test results

If you want to report the results to the GCC project, use the contrib/test_summary shell script. Start it in the objdir with

!
!
srcdir/contrib/test_summary -p your_commentary.txt \
      -m gcc-testresults@gcc.gnu.org |sh
  
*************** messages may be automatically processed. *** 306,312 **** !
--- 303,309 ---- !
diff -Nrcpad gcc-11.3.0/LAST_UPDATED gcc-11.4.0/LAST_UPDATED *** gcc-11.3.0/LAST_UPDATED Thu Apr 21 07:59:37 2022 --- gcc-11.4.0/LAST_UPDATED Mon May 29 08:49:48 2023 *************** *** 1 **** ! Obtained from git: releases/gcc-11.3.0 revision 2d280e7eafc086e9df85f50ed1a6526d6a3a204d --- 1 ---- ! Obtained from git: releases/gcc-11.4.0 revision ff4bf326d03e750a8d4905ea49425fe7d15a04b8 diff -Nrcpad gcc-11.3.0/MD5SUMS gcc-11.4.0/MD5SUMS *** gcc-11.3.0/MD5SUMS Thu Apr 21 08:32:17 2022 --- gcc-11.4.0/MD5SUMS Mon May 29 09:09:03 2023 *************** *** 1,5 **** # This file contains the MD5 checksums of the files in the ! # gcc-11.3.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-11.4.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 *************** c0eb7bac11479e0032693e4e55297c40 .dir-l *** 17,59 **** fe60d87048567d4fe8c8a0ed2448bcc8 COPYING.RUNTIME d32239bcb673463ab874e80d47fae504 COPYING3 6a6a8e020838b23406c81b19c1d46df6 COPYING3.LIB ! fad7e1929ef6bb608fa937fc5a03bb45 ChangeLog fd4ecdf5d672efe2b0e409aca9cf9446 ChangeLog.jit 09538b708302f1735f6fa05b622ecf5e ChangeLog.tree-ssa 24ab760126489e69436a43185dc3d202 INSTALL/README ! bc7bdcccf93f4034179af78f65536f21 INSTALL/binaries.html ! 47057783bb8704ed0f9a9b77196febec INSTALL/build.html ! 4e1d74971c4f88186a2f719f8119f026 INSTALL/configure.html ! 4ad42e872d55de846185619a86a9acab INSTALL/download.html ! 2ebc451429ebe4a0f55bc64b839512fc INSTALL/finalinstall.html ! 035bd0aca4c9df3c4b92a8978e95a67b INSTALL/gfdl.html ! b6a001358f0bb55ee8a22d7fedf3a639 INSTALL/index.html ! b1c9de1da8a8a66ea54722abde3498b1 INSTALL/old.html ! 3b37510298c2b0d3e77ed664a1653da1 INSTALL/prerequisites.html ! 343ae5d41e1449e92582e99bbbd039d1 INSTALL/specific.html ! 7d9e6352d151d352657bd02f0e09c3ef INSTALL/test.html ! 726f348a8d755b1d266468f41b9a9d0a LAST_UPDATED 863d0fffeb06d7a45df38d7836e342bd MAINTAINERS 8a667df3c1ab240343b2f6a644f92970 Makefile.def 468d396660b8969b6f51738c94ad90ef Makefile.in 87a68bd7215bdcd229ae57f7f8c3622f Makefile.tpl ! f95caff4339451dfc8ad6a08cd2aa87d NEWS 80d26bc3b1ad4f6969a96a24c9181bf5 README a657821f65bab77f4fbf3a75cdee6da9 ar-lib ! 9e739efdd890bfa55fe3e5546c20d6e6 c++tools/ChangeLog 436118acd883073ecd4bbbc8e56f8e5c c++tools/Makefile.in ! c4735269d3a60846e4e67459fe4c4811 c++tools/config.h.in ! dc92ffb2a8f3fefb9cf3381e7474d193 c++tools/configure ! 187429e66ff4a4f1dfd106cdfeab9a91 c++tools/configure.ac dbf071e12c975472c7fb6dbc22cb6f81 c++tools/resolver.cc 638228e6632a53edcfe90c75fe725be8 c++tools/resolver.h ! c7a6315035957c9c2b36f5d267723408 c++tools/server.cc 500b9244caa7a7ab23ece1db37efa76d compile 0a5df71d999a1a0135a99ab79fb42e4f config-ml.in c64564b7c7563dae5ebe016f340c9cd9 config.guess 040359150cf11493f973a46d8a25b06b config.rpath d320a9a1a5eb63901563ae5adf268433 config.sub ! 57ccaa30ed28f1d0ad5d75ec89dca553 config/ChangeLog 0fcd4badfe2a2191778bdf5ab94aa40c config/acinclude.m4 2ea0edfde0ce5ce69b49317a5650f048 config/acx.m4 6b030f5cf640bdd401ea739f54a667f8 config/asmcfi.m4 --- 17,59 ---- fe60d87048567d4fe8c8a0ed2448bcc8 COPYING.RUNTIME d32239bcb673463ab874e80d47fae504 COPYING3 6a6a8e020838b23406c81b19c1d46df6 COPYING3.LIB ! 91527d13bb817eaeb5917fca04ac7145 ChangeLog fd4ecdf5d672efe2b0e409aca9cf9446 ChangeLog.jit 09538b708302f1735f6fa05b622ecf5e ChangeLog.tree-ssa 24ab760126489e69436a43185dc3d202 INSTALL/README ! ccedb1976a7698c56c2f3733215e7cbc INSTALL/binaries.html ! ccc61f276d8b592f97d9cf860e9c7110 INSTALL/build.html ! e743a32d149c2f90518f1e496be89989 INSTALL/configure.html ! 92963bc11ee047c71e75a858f18cae2c INSTALL/download.html ! 01e27054249668196814a39d0dc9942f INSTALL/finalinstall.html ! 811e3531ce4e684b8f6d1071a3b6e815 INSTALL/gfdl.html ! 1b8396843f3662cb57832e447eb0fcb3 INSTALL/index.html ! 481330a2b003513f04cbe0c5970e0fce INSTALL/old.html ! bd23b67765f31d5d8699bd13487a1a62 INSTALL/prerequisites.html ! 65f698d023562e20bd5076ae83fa7845 INSTALL/specific.html ! ad5aba0a030831fbe9ac857e94760dd2 INSTALL/test.html ! fd7fdcd0850a3e1fb07c536c6098bc47 LAST_UPDATED 863d0fffeb06d7a45df38d7836e342bd MAINTAINERS 8a667df3c1ab240343b2f6a644f92970 Makefile.def 468d396660b8969b6f51738c94ad90ef Makefile.in 87a68bd7215bdcd229ae57f7f8c3622f Makefile.tpl ! 811371f0f1a9c5e5de7f8ac066616195 NEWS 80d26bc3b1ad4f6969a96a24c9181bf5 README a657821f65bab77f4fbf3a75cdee6da9 ar-lib ! 286434648fa4afd02d1bf5fdd68badba c++tools/ChangeLog 436118acd883073ecd4bbbc8e56f8e5c c++tools/Makefile.in ! edf805e559bf9ecb62db313d2e6edb47 c++tools/config.h.in ! ccd3498e6b247dfe4e65793a88a27296 c++tools/configure ! f2436417442e4bc6a20ff3fb2c4b51e0 c++tools/configure.ac dbf071e12c975472c7fb6dbc22cb6f81 c++tools/resolver.cc 638228e6632a53edcfe90c75fe725be8 c++tools/resolver.h ! f11b68d46f7c108116f0f010090c5a62 c++tools/server.cc 500b9244caa7a7ab23ece1db37efa76d compile 0a5df71d999a1a0135a99ab79fb42e4f config-ml.in c64564b7c7563dae5ebe016f340c9cd9 config.guess 040359150cf11493f973a46d8a25b06b config.rpath d320a9a1a5eb63901563ae5adf268433 config.sub ! 0e7985fe9286abad010861e1a6473db6 config/ChangeLog 0fcd4badfe2a2191778bdf5ab94aa40c config/acinclude.m4 2ea0edfde0ce5ce69b49317a5650f048 config/acx.m4 6b030f5cf640bdd401ea739f54a667f8 config/asmcfi.m4 *************** e2dc6b4fd62b77bff96b7951ef74f78f config *** 154,162 **** 5cabffc02a90bd9698105b9eef507f11 config/warnings.m4 7ef51b0adb98e5c5f7aba46d2c7293f1 config/weakref.m4 0163b672c888aaf1c8ad3e867a0ec9f1 config/zlib.m4 ! cb1e93e58dff05f85e66aa5c2e04475f configure ! 587878b0d48aa2561ab3250371bee056 configure.ac ! a15cac46215dff88bd5478b79e7704db contrib/ChangeLog 5fc435c7928f858246df931ea3f3ece7 contrib/ChangeLog.jit 7af8d2979bf1a7cfa88e30d05fa22be2 contrib/ChangeLog.tree-ssa 8498c0cdfe3f444ad6f540ec9e11cbec contrib/analyze_brprob.py --- 154,162 ---- 5cabffc02a90bd9698105b9eef507f11 config/warnings.m4 7ef51b0adb98e5c5f7aba46d2c7293f1 config/weakref.m4 0163b672c888aaf1c8ad3e867a0ec9f1 config/zlib.m4 ! fc86d469e83d79fd74b5f41bd1834a0c configure ! dee2062eecdaa1396a97737e94a6a755 configure.ac ! fa51a76a6819869b56080030b1cdfb4a contrib/ChangeLog 5fc435c7928f858246df931ea3f3ece7 contrib/ChangeLog.jit 7af8d2979bf1a7cfa88e30d05fa22be2 contrib/ChangeLog.tree-ssa 8498c0cdfe3f444ad6f540ec9e11cbec contrib/analyze_brprob.py *************** e9bac7c82bdb5f92b354d9da854d463b contri *** 209,215 **** e462c83bdf45bf6e9b434d18fa9f66e4 contrib/git-fix-changelog.py 6996a054c7e7aaf9f27737c3d6f2518c contrib/git-undescr.sh 59304fc08afa489baa6b920cc76dc625 contrib/gthr_supp_vxw_5x.c ! fde7eaaf5d043e049d3eef60ad615b0c contrib/header-tools/ChangeLog 4f7d3bf5dd67c6b144a7a1ea0bb4127b contrib/header-tools/README 05ef7fb87e90ba93ee04659be072a357 contrib/header-tools/count-headers ba0485a3c721bce9e32407ef996d2a9d contrib/header-tools/gcc-order-headers --- 209,215 ---- e462c83bdf45bf6e9b434d18fa9f66e4 contrib/git-fix-changelog.py 6996a054c7e7aaf9f27737c3d6f2518c contrib/git-undescr.sh 59304fc08afa489baa6b920cc76dc625 contrib/gthr_supp_vxw_5x.c ! f27dbe1d4fb0a171d84218ac09648bb7 contrib/header-tools/ChangeLog 4f7d3bf5dd67c6b144a7a1ea0bb4127b contrib/header-tools/README 05ef7fb87e90ba93ee04659be072a357 contrib/header-tools/count-headers ba0485a3c721bce9e32407ef996d2a9d contrib/header-tools/gcc-order-headers *************** a34668cfad9dec733354503fbc67fb24 contri *** 235,241 **** 87a19b40fbd220938cf6c23c42c255e2 contrib/prepare_patch.sh 6bc8415291f74dbbb7994622ca9a7b28 contrib/prerequisites.md5 2a7fbcbf9b708ecbd31408646f9dd122 contrib/prerequisites.sha512 ! 2ec57861b5624197c06ffe94ea485ca2 contrib/reghunt/ChangeLog cf247a580e49d212518de409793db0a8 contrib/reghunt/bin/gcc-build-full 724e70ea3e80f87f2a201bbe2f1eef37 contrib/reghunt/bin/gcc-build-simple 3f2318bae7562a4ad1639e686916a545 contrib/reghunt/bin/gcc-cleanup --- 235,241 ---- 87a19b40fbd220938cf6c23c42c255e2 contrib/prepare_patch.sh 6bc8415291f74dbbb7994622ca9a7b28 contrib/prerequisites.md5 2a7fbcbf9b708ecbd31408646f9dd122 contrib/prerequisites.sha512 ! a4af345aec55374f8cc816f58293c009 contrib/reghunt/ChangeLog cf247a580e49d212518de409793db0a8 contrib/reghunt/bin/gcc-build-full 724e70ea3e80f87f2a201bbe2f1eef37 contrib/reghunt/bin/gcc-build-simple 3f2318bae7562a4ad1639e686916a545 contrib/reghunt/bin/gcc-cleanup *************** f251d49dd87647250fcd74dd50b7835f contri *** 294,300 **** e2829fc4af4f433a6a328a62d5ce8066 contrib/reghunt/examples/reg-watch afd863c2ec84c906e20f9b9787b1f0fe contrib/reghunt/examples/reg-watch.awk 8955535523d4b5f48006bcb851ba9b4b contrib/reghunt/examples/testall ! 00346ff11b28235c16270018e1093185 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 --- 294,300 ---- e2829fc4af4f433a6a328a62d5ce8066 contrib/reghunt/examples/reg-watch afd863c2ec84c906e20f9b9787b1f0fe contrib/reghunt/examples/reg-watch.awk 8955535523d4b5f48006bcb851ba9b4b contrib/reghunt/examples/testall ! 67ddba458b99683c1bf2fd06e544aa44 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 *************** a0d12be401961a2557883b7c09dc71eb contri *** 334,340 **** 57440d4c6da7b6438ebfa203135f381a contrib/vimrc da7aeedeb5a86ee6f5982e559a2d6dcc contrib/warn_summary 8b59f0d0a2dcdced14765c514fbad719 depcomp ! 61562441855348f5513747ba4de446c1 fixincludes/ChangeLog 6de190723745dc3f75080144dfa2215e fixincludes/Makefile.in b6e3f4950abc6e254b467063381f6473 fixincludes/README 455903ad4ff71fa5c5340ef7ae41a0e6 fixincludes/README-fixinc --- 334,340 ---- 57440d4c6da7b6438ebfa203135f381a contrib/vimrc da7aeedeb5a86ee6f5982e559a2d6dcc contrib/warn_summary 8b59f0d0a2dcdced14765c514fbad719 depcomp ! b7e9606922f7df093ed38585d009ed8e fixincludes/ChangeLog 6de190723745dc3f75080144dfa2215e fixincludes/Makefile.in b6e3f4950abc6e254b467063381f6473 fixincludes/README 455903ad4ff71fa5c5340ef7ae41a0e6 fixincludes/README-fixinc *************** a319a505bde6920ddb4832cf41af3488 fixinc *** 347,359 **** a316c9d3351e61998fa688dceaf610a3 fixincludes/fixinc.in 1582ffd94ecc91318eebfb3b81e0bcb1 fixincludes/fixincl.c adf245e3714f799eafba40af16be8eb5 fixincludes/fixincl.tpl ! 0c5a153c3a80883a20851c74a2cdd369 fixincludes/fixincl.x 545875b4fe1c26bc3e1befc75b34e9f5 fixincludes/fixlib.c 620c770139fc32c75b975b614d3156e8 fixincludes/fixlib.h 5b2c1fd3ef9d44fb6beb1a0d45ddd533 fixincludes/fixopts.c ed1415e9dbc8f421fd9288bde0d90ad1 fixincludes/fixtests.c 51e915676df084b64297d3c4fb0d9c18 fixincludes/genfixes ! 2c44f764c039021368e0856e419d1a7c fixincludes/inclhack.def dd5ae70d9f725bcaf2a15212782db49a fixincludes/mkfixinc.sh 516608ac1550577d47f48809bb512629 fixincludes/mkheaders.in 3aa0563cd682ee61ecd9eb6eea0b0bce fixincludes/procopen.c --- 347,359 ---- a316c9d3351e61998fa688dceaf610a3 fixincludes/fixinc.in 1582ffd94ecc91318eebfb3b81e0bcb1 fixincludes/fixincl.c adf245e3714f799eafba40af16be8eb5 fixincludes/fixincl.tpl ! 15a1cac09830dafe2699dcf89c5b970a fixincludes/fixincl.x 545875b4fe1c26bc3e1befc75b34e9f5 fixincludes/fixlib.c 620c770139fc32c75b975b614d3156e8 fixincludes/fixlib.h 5b2c1fd3ef9d44fb6beb1a0d45ddd533 fixincludes/fixopts.c ed1415e9dbc8f421fd9288bde0d90ad1 fixincludes/fixtests.c 51e915676df084b64297d3c4fb0d9c18 fixincludes/genfixes ! 9a5534f1d5cae77ddbfe0bd81381d531 fixincludes/inclhack.def dd5ae70d9f725bcaf2a15212782db49a fixincludes/mkfixinc.sh 516608ac1550577d47f48809bb512629 fixincludes/mkheaders.in 3aa0563cd682ee61ecd9eb6eea0b0bce fixincludes/procopen.c *************** d2cbc665e9046f8acb42c1271592be47 fixinc *** 409,414 **** --- 409,415 ---- a911f5fbb127353024e77149fcf90596 fixincludes/tests/base/netdnet/dnetdb.h f690db296a82aeefa0bfe9ad74a2b71c fixincludes/tests/base/netinet/in.h 2649ccca3396541aeb5e612d4b4a3141 fixincludes/tests/base/netinet/ip.h + 209cd203eddb99971d08755fd4912558 fixincludes/tests/base/objc/runtime.h f4a72388e98f34c098a3467dce9aa4e1 fixincludes/tests/base/obstack.h c213736f179d8de08a09a9278e048d91 fixincludes/tests/base/os/availability.h c3da2b1720112f2adb1c2bbf65563364 fixincludes/tests/base/os/base.h *************** d2f1ddef1ca3edae298e37f7bc892941 fixinc *** 441,447 **** 563eddf934e21ec7f85628e18fb1c641 fixincludes/tests/base/stdint-hpux11.h cc3783f241fa992a305aced8e1195ee9 fixincludes/tests/base/stdint-newlib.h 1ee4e2b61ae5781d35271f3181927037 fixincludes/tests/base/stdint.h ! d47412644cdea4f030ba2744eca6d8ad fixincludes/tests/base/stdio.h 1887d8bc1711dae9922852cda6027877 fixincludes/tests/base/stdio_tag.h 63b7afc35517454fd4753b811e9b6e2e fixincludes/tests/base/stdlib.h 42a7de17fb8f2ac74bc30c7029199637 fixincludes/tests/base/string.h --- 442,448 ---- 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 *************** a5e817d35ded04a0fb03999b50c0e89e fixinc *** 475,486 **** 955462b555900ecd3934223c64e21fa7 fixincludes/tests/base/types/vxTypesBase.h 8baab8698bb83c6b90ef4091c00ddc1e fixincludes/tests/base/unistd.h cdc9afb0404ea932194e623e80f3443f gcc/ABOUT-GCC-NLS ! edbdfaa5c5054804fc72b34949d1cf6e gcc/BASE-VER 59530bdf33659b29e73d4adb9f9f6552 gcc/COPYING a916467b91076e631dd8edb7424769c7 gcc/COPYING.LIB d32239bcb673463ab874e80d47fae504 gcc/COPYING3 6a6a8e020838b23406c81b19c1d46df6 gcc/COPYING3.LIB ! fc634b2d32d48b149245c5eb70684c15 gcc/ChangeLog a3b63c675afa7a655cc2bfa8a907af79 gcc/ChangeLog-1997 d9a88529352a010253c2e8fb1ed6023b gcc/ChangeLog-1998 240f08f81cb4699e8b49347db38233db gcc/ChangeLog-1999 --- 476,487 ---- 955462b555900ecd3934223c64e21fa7 fixincludes/tests/base/types/vxTypesBase.h 8baab8698bb83c6b90ef4091c00ddc1e fixincludes/tests/base/unistd.h cdc9afb0404ea932194e623e80f3443f gcc/ABOUT-GCC-NLS ! adea0b61b6fc8b487b2c9452a2f6494e gcc/BASE-VER 59530bdf33659b29e73d4adb9f9f6552 gcc/COPYING a916467b91076e631dd8edb7424769c7 gcc/COPYING.LIB d32239bcb673463ab874e80d47fae504 gcc/COPYING3 6a6a8e020838b23406c81b19c1d46df6 gcc/COPYING3.LIB ! eb61a01b363ae0c8d7d0b1b066850b3e gcc/ChangeLog a3b63c675afa7a655cc2bfa8a907af79 gcc/ChangeLog-1997 d9a88529352a010253c2e8fb1ed6023b gcc/ChangeLog-1998 240f08f81cb4699e8b49347db38233db gcc/ChangeLog-1999 *************** fb3fadb88e1d2b3b640cfaaa5ff11780 gcc/Ch *** 513,519 **** 3eb07e0b2e542409bf73d359f7f65609 gcc/ChangeLog.ptr e13638e26743ba41e6011b76cc00d9a9 gcc/ChangeLog.tree-ssa 739ab47f6425bcea1d05e4fc0542de54 gcc/ChangeLog.tuples ! 6a93411f698590de2b94f169c9f6d730 gcc/DATESTAMP d41d8cd98f00b204e9800998ecf8427e gcc/DEV-PHASE eb92e1ff5e982ca07e173e0eb286d243 gcc/FSFChangeLog 30e1e33411566388b3164558482dc5e6 gcc/FSFChangeLog.10 --- 514,520 ---- 3eb07e0b2e542409bf73d359f7f65609 gcc/ChangeLog.ptr e13638e26743ba41e6011b76cc00d9a9 gcc/ChangeLog.tree-ssa 739ab47f6425bcea1d05e4fc0542de54 gcc/ChangeLog.tuples ! 92d6ee84ed7ecc87818891b317447589 gcc/DATESTAMP d41d8cd98f00b204e9800998ecf8427e gcc/DEV-PHASE eb92e1ff5e982ca07e173e0eb286d243 gcc/FSFChangeLog 30e1e33411566388b3164558482dc5e6 gcc/FSFChangeLog.10 *************** ec6799501b2eb2923d5de6a66169dbd2 gcc/ON *** 524,530 **** a3349a2ff19906d526e15f8845deb002 gcc/README.Portability 7a09ff48173d234174dd04f94f3d495c gcc/acinclude.m4 6526979dd900a0b58b7691b478a91fec gcc/aclocal.m4 ! 08ed911edc9c9c33433cdc5205d2a507 gcc/ada/ChangeLog 683be0b07dc4f64f118fd5e8ae9cb30d gcc/ada/ChangeLog-2001 7aff25efb203be4136b8776cdc812956 gcc/ada/ChangeLog-2002 cd2379152000f40157d349018fb9364d gcc/ada/ChangeLog-2003 --- 525,531 ---- a3349a2ff19906d526e15f8845deb002 gcc/README.Portability 7a09ff48173d234174dd04f94f3d495c gcc/acinclude.m4 6526979dd900a0b58b7691b478a91fec gcc/aclocal.m4 ! dc913258c77e0a48dcc268f85315a33e gcc/ada/ChangeLog 683be0b07dc4f64f118fd5e8ae9cb30d gcc/ada/ChangeLog-2001 7aff25efb203be4136b8776cdc812956 gcc/ada/ChangeLog-2002 cd2379152000f40157d349018fb9364d gcc/ada/ChangeLog-2003 *************** c309b7a190960aa537e3a7707a67bb65 gcc/ad *** 2975,2986 **** 0031559b96ebc24dd2c747d1f8a00f12 gcc/ada/xutil.ads d3e945808548972240fb2f1b7494a8bd gcc/addresses.h 3045d45db0db300d02be3c139d5f8c5b gcc/adjust-alignment.c ! b7a90c45c5477c6b5975292eb532f64f gcc/alias.c ! 5446b95e14f1a787f9e0a6d82db041bf gcc/alias.h e561a7bae0b2b221a73a390c77be757b gcc/align.h 23442a2d3df1b83bd32978d68e46bcd1 gcc/alloc-pool.c 3ec9e55d9093d096913575231b7b7943 gcc/alloc-pool.h ! 3700ac4b73516aef576260d2391e704d gcc/analyzer/ChangeLog 7ea5759779b2ed252edaea813907bd5a gcc/analyzer/analysis-plan.cc 4717c47360bc5772a2a5d0afdeae18e0 gcc/analyzer/analysis-plan.h 73de39c552e216c1cc1fe1e7d3513cc6 gcc/analyzer/analyzer-logging.cc --- 2976,2987 ---- 0031559b96ebc24dd2c747d1f8a00f12 gcc/ada/xutil.ads d3e945808548972240fb2f1b7494a8bd gcc/addresses.h 3045d45db0db300d02be3c139d5f8c5b gcc/adjust-alignment.c ! 80a14f460e81051a7653f8d9a78c0d99 gcc/alias.c ! 6078725b0f176cea565729f671431eee gcc/alias.h e561a7bae0b2b221a73a390c77be757b gcc/align.h 23442a2d3df1b83bd32978d68e46bcd1 gcc/alloc-pool.c 3ec9e55d9093d096913575231b7b7943 gcc/alloc-pool.h ! f604ed765ca623f0266f02db8e9ccef3 gcc/analyzer/ChangeLog 7ea5759779b2ed252edaea813907bd5a gcc/analyzer/analysis-plan.cc 4717c47360bc5772a2a5d0afdeae18e0 gcc/analyzer/analysis-plan.h 73de39c552e216c1cc1fe1e7d3513cc6 gcc/analyzer/analyzer-logging.cc *************** f120126786d5313c48e4fbdef1deb90f gcc/an *** 3040,3051 **** d126912489f635e7522c41ae704a59c6 gcc/analyzer/store.h 8e4eceefe5a130b8fe395934d81e06f0 gcc/analyzer/supergraph.cc b1345e496e4e4a76d182dc95dd2b92b2 gcc/analyzer/supergraph.h ! b49b0004f99fd470658a7d0207bc8917 gcc/analyzer/svalue.cc 863cc86de6157d498a4f09fdf38c1386 gcc/analyzer/svalue.h 185fe9c53545064ee1e53b91358f7de7 gcc/analyzer/trimmed-graph.cc 74a5cb5dcaf4cfb2dce05019ec345914 gcc/analyzer/trimmed-graph.h 4dc5fb48242295b1a20860e9026ef907 gcc/array-traits.h ! eb3c809269737f7f4c3b94e4a2bd8dbf gcc/asan.c 487ef86d71c549a16efa36238b86952f gcc/asan.h 542d06ea0e3478abe23c1efa8f3be1c9 gcc/attr-fnspec.h 56f7fa0363ae129223b5eb125d069fea gcc/attribs.c --- 3041,3052 ---- d126912489f635e7522c41ae704a59c6 gcc/analyzer/store.h 8e4eceefe5a130b8fe395934d81e06f0 gcc/analyzer/supergraph.cc b1345e496e4e4a76d182dc95dd2b92b2 gcc/analyzer/supergraph.h ! dccee0e7e8d057183607389efcdb458c gcc/analyzer/svalue.cc 863cc86de6157d498a4f09fdf38c1386 gcc/analyzer/svalue.h 185fe9c53545064ee1e53b91358f7de7 gcc/analyzer/trimmed-graph.cc 74a5cb5dcaf4cfb2dce05019ec345914 gcc/analyzer/trimmed-graph.h 4dc5fb48242295b1a20860e9026ef907 gcc/array-traits.h ! 1d47925554745d9ce7e061328377ac6e gcc/asan.c 487ef86d71c549a16efa36238b86952f gcc/asan.h 542d06ea0e3478abe23c1efa8f3be1c9 gcc/attr-fnspec.h 56f7fa0363ae129223b5eb125d069fea gcc/attribs.c *************** b62a19a18359e023c63a5a045f9d97dd gcc/at *** 3055,3066 **** 1963f1d6c80c316f8cdcc8a028d3c9ca gcc/auto-profile.h 3ff58d5a06d5eaee37d7cb2ed6c43edf gcc/backend.h c85b11c624a3273aac7365b0f34125b6 gcc/basic-block.h ! 28009e6ac712423681bc6e96d2da535f gcc/bb-reorder.c d0ab00f1b3fc80f5bfda75adc6c362d6 gcc/bb-reorder.h 49ad33d59190a283fb4c85a41861b83a gcc/bitmap.c 08cf7dff98e7181511efc1517f735186 gcc/bitmap.h 6b9e1cb83032742218edd1600590d286 gcc/brig-builtins.def ! 155f6d9e8fbc91e6580a8d2a5a0d988d gcc/brig/ChangeLog 32f54aacbd7e3a02140d36f7e8f58da6 gcc/brig/Make-lang.in 966892b9e3cc742708ffb50160e7ea6f gcc/brig/brig-builtins.h 0676a7ca45684ceb5fbde93beb5b3950 gcc/brig/brig-c.h --- 3056,3067 ---- 1963f1d6c80c316f8cdcc8a028d3c9ca gcc/auto-profile.h 3ff58d5a06d5eaee37d7cb2ed6c43edf gcc/backend.h c85b11c624a3273aac7365b0f34125b6 gcc/basic-block.h ! 17375ded6219e467729ba2490d77bd3d gcc/bb-reorder.c d0ab00f1b3fc80f5bfda75adc6c362d6 gcc/bb-reorder.h 49ad33d59190a283fb4c85a41861b83a gcc/bitmap.c 08cf7dff98e7181511efc1517f735186 gcc/bitmap.h 6b9e1cb83032742218edd1600590d286 gcc/brig-builtins.def ! 48fc561df0f75d2c8922a29ca4a703d1 gcc/brig/ChangeLog 32f54aacbd7e3a02140d36f7e8f58da6 gcc/brig/Make-lang.in 966892b9e3cc742708ffb50160e7ea6f gcc/brig/brig-builtins.h 0676a7ca45684ceb5fbde93beb5b3950 gcc/brig/brig-c.h *************** a1cc43f2d0aedbd5540d15c4ec568a8d gcc/br *** 3104,3125 **** 746844ca02d1cafc9fb4b3f354b3dc78 gcc/brig/lang.opt 1b7da82494d0c161ca60a8de1b55195a gcc/builtin-attrs.def 0fb3ced35d472c83b8689686b224ad01 gcc/builtin-types.def ! f99fcf4646e7b70fc27e5eb3893e1f40 gcc/builtins.c ae94d8196a803d4a2c69cded88dbbb76 gcc/builtins.def f501faddb738e7422e75672d29bfc823 gcc/builtins.h ! a6e0fcbeafcff3f3e6f0f88984e46c7b gcc/c-family/ChangeLog ea3fa1f4d7390a105fa3caab4f79aaf7 gcc/c-family/ChangeLog.gimple-classes ff19b079a30065b282983bff90d28fe1 gcc/c-family/c-ada-spec.c aaefdc238734ee62a127bef557ad07e3 gcc/c-family/c-ada-spec.h 815dd7c5b46ef4b50d5e40c0da6700c7 gcc/c-family/c-attribs.c ! 031c235f8d46cbe87d86009060c1d846 gcc/c-family/c-common.c e46ad48dbbcefe97d0490955db40eddf gcc/c-family/c-common.def dfe16edb3b81b111e6c4034e30b62631 gcc/c-family/c-common.h b6e403e7f46d368695a66de3ed639255 gcc/c-family/c-cppbuiltin.c e8d118aa27a40cfef46375271877c458 gcc/c-family/c-dump.c 6ec458ba4f30ca4f67e8a0c37cbc852a gcc/c-family/c-format.c 24ddc77a1aaacd70e8638b0cbeb2d12d gcc/c-family/c-format.h ! 77e82f3c8d0ce0df0c22bbf84684cd21 gcc/c-family/c-gimplify.c 47cae120dbbc6dc65b3d06445c7ffd2c gcc/c-family/c-indentation.c d0a5008a37b6b90aad01170ec4597384 gcc/c-family/c-indentation.h 987a47512367efd11640028189ddd6da gcc/c-family/c-lex.c --- 3105,3126 ---- 746844ca02d1cafc9fb4b3f354b3dc78 gcc/brig/lang.opt 1b7da82494d0c161ca60a8de1b55195a gcc/builtin-attrs.def 0fb3ced35d472c83b8689686b224ad01 gcc/builtin-types.def ! 81e6697b6556d13b7a06f08e719ea4d1 gcc/builtins.c ae94d8196a803d4a2c69cded88dbbb76 gcc/builtins.def f501faddb738e7422e75672d29bfc823 gcc/builtins.h ! bfc83212c548a4179f546009c603b2a9 gcc/c-family/ChangeLog ea3fa1f4d7390a105fa3caab4f79aaf7 gcc/c-family/ChangeLog.gimple-classes ff19b079a30065b282983bff90d28fe1 gcc/c-family/c-ada-spec.c aaefdc238734ee62a127bef557ad07e3 gcc/c-family/c-ada-spec.h 815dd7c5b46ef4b50d5e40c0da6700c7 gcc/c-family/c-attribs.c ! e7f8462ca813b129987362c83683b46b gcc/c-family/c-common.c e46ad48dbbcefe97d0490955db40eddf gcc/c-family/c-common.def dfe16edb3b81b111e6c4034e30b62631 gcc/c-family/c-common.h b6e403e7f46d368695a66de3ed639255 gcc/c-family/c-cppbuiltin.c e8d118aa27a40cfef46375271877c458 gcc/c-family/c-dump.c 6ec458ba4f30ca4f67e8a0c37cbc852a gcc/c-family/c-format.c 24ddc77a1aaacd70e8638b0cbeb2d12d gcc/c-family/c-format.h ! 02e25f4fbdb6dafd42c7cc58e402be96 gcc/c-family/c-gimplify.c 47cae120dbbc6dc65b3d06445c7ffd2c gcc/c-family/c-indentation.c d0a5008a37b6b90aad01170ec4597384 gcc/c-family/c-indentation.h 987a47512367efd11640028189ddd6da gcc/c-family/c-lex.c *************** a8a409e310da7c679cbdab6592d319d5 gcc/c- *** 3138,3153 **** 1b4bd0524aaca890cc050af5017a483d gcc/c-family/c-target-def.h 2a979b918b62205beea7e25f63c95fff gcc/c-family/c-target.def 25b2b1b67352149295b6b87a3266dbfd gcc/c-family/c-target.h ! 76c24983e5b87d60c98c49b5e39fd292 gcc/c-family/c-ubsan.c 687717e96ebfecf566b59f5ed52dd61c gcc/c-family/c-ubsan.h ! 4a2cb3c29a7d2f8188445559577ab548 gcc/c-family/c-warn.c bf642fdf30770e997cdf36ff997db522 gcc/c-family/c.opt dda3a883f8b1367723b357a3494a9ad2 gcc/c-family/cppspec.c 03976e75d63506e61159cb33e38a17a4 gcc/c-family/known-headers.cc 24a64eac5a3ca85c2141b26c328e720c gcc/c-family/known-headers.h d945fcf11b0cf9b680801477d4d6dc5d gcc/c-family/name-hint.h 10c210b270bd57796c125ceacb8aacf3 gcc/c-family/stub-objc.c ! ecf4e71780d21ba6285bd549d11cd5ab gcc/c/ChangeLog c2c16ebc27917ec274266a7f0a5de762 gcc/c/Make-lang.in 4b3d7694a2cabd663e29accad2dc49fd gcc/c/c-aux-info.c 477103be514e3fee8add675ebdf6c643 gcc/c/c-convert.c --- 3139,3154 ---- 1b4bd0524aaca890cc050af5017a483d gcc/c-family/c-target-def.h 2a979b918b62205beea7e25f63c95fff gcc/c-family/c-target.def 25b2b1b67352149295b6b87a3266dbfd gcc/c-family/c-target.h ! 615baf02ef518f862ee9e2b8d63137a4 gcc/c-family/c-ubsan.c 687717e96ebfecf566b59f5ed52dd61c gcc/c-family/c-ubsan.h ! 1cd0ffec66f4869c73b58b091a6ed890 gcc/c-family/c-warn.c bf642fdf30770e997cdf36ff997db522 gcc/c-family/c.opt dda3a883f8b1367723b357a3494a9ad2 gcc/c-family/cppspec.c 03976e75d63506e61159cb33e38a17a4 gcc/c-family/known-headers.cc 24a64eac5a3ca85c2141b26c328e720c gcc/c-family/known-headers.h d945fcf11b0cf9b680801477d4d6dc5d gcc/c-family/name-hint.h 10c210b270bd57796c125ceacb8aacf3 gcc/c-family/stub-objc.c ! d89ae831a49c3ce92c9ab504b50d38d3 gcc/c/ChangeLog c2c16ebc27917ec274266a7f0a5de762 gcc/c/Make-lang.in 4b3d7694a2cabd663e29accad2dc49fd gcc/c/c-aux-info.c 477103be514e3fee8add675ebdf6c643 gcc/c/c-convert.c *************** ac32535d53226e7747b1f0c599af0aa6 gcc/c/ *** 3158,3167 **** 7679e451f36a4519a03c17b2df2b1f45 gcc/c/c-lang.h e52e3c088bd255130df86d60669a01b4 gcc/c/c-objc-common.c 6dedcac49f0945db05052a9a1ccdba34 gcc/c/c-objc-common.h ! fd9cc8f7a7047c24872ebbe627edde56 gcc/c/c-parser.c e8275c52f6f57f9005771a7e88cab453 gcc/c/c-parser.h 88b5db93f3375c32222a9f47e689286d gcc/c/c-tree.h ! 9d4291cceb1ce6c6bd32ede937605c34 gcc/c/c-typeck.c 14475dbf3b5b7a18fbbedf33d6d8b389 gcc/c/config-lang.in aa25d2829660b30c35d0853ebf4823c8 gcc/c/gccspec.c 5543668009c8b1a506c088278d56eb1f gcc/c/gimple-parser.c --- 3159,3168 ---- 7679e451f36a4519a03c17b2df2b1f45 gcc/c/c-lang.h e52e3c088bd255130df86d60669a01b4 gcc/c/c-objc-common.c 6dedcac49f0945db05052a9a1ccdba34 gcc/c/c-objc-common.h ! c5a5f04c9253b56554baf8a6a8a4d232 gcc/c/c-parser.c e8275c52f6f57f9005771a7e88cab453 gcc/c/c-parser.h 88b5db93f3375c32222a9f47e689286d gcc/c/c-tree.h ! 78814473dc16d12c4e963b8cdc258a4c gcc/c/c-typeck.c 14475dbf3b5b7a18fbbedf33d6d8b389 gcc/c/config-lang.in aa25d2829660b30c35d0853ebf4823c8 gcc/c/gccspec.c 5543668009c8b1a506c088278d56eb1f gcc/c/gimple-parser.c *************** c79281095d98e567b1cdd6bd2e75a3d7 gcc/cf *** 3176,3186 **** ca6328adbf190b5d1895b2f4bf21c53b gcc/cfg.h a3f6082ee8044d951dd495cf2599bd46 gcc/cfganal.c 06649f7ed6b72ab7eec91dad178178ce gcc/cfganal.h ! 2ac76b0a5a1835a7bd0662c6595617d6 gcc/cfgbuild.c 8d2d2838a75a74f980c02a0c1dccc6f7 gcc/cfgbuild.h ! a087ea8cb868ef146a0166e01834b655 gcc/cfgcleanup.c 76493c30b63093a62270af2c53f028b4 gcc/cfgcleanup.h ! a7caec3104f1896bbb3ee04a20132035 gcc/cfgexpand.c c4c6266c4888e09280fdca3bcdd6c927 gcc/cfgexpand.h 241b624068329a0557ba643040ea7a52 gcc/cfghooks.c 2844f8c444cf87319afcc888a92372d4 gcc/cfghooks.h --- 3177,3187 ---- ca6328adbf190b5d1895b2f4bf21c53b gcc/cfg.h a3f6082ee8044d951dd495cf2599bd46 gcc/cfganal.c 06649f7ed6b72ab7eec91dad178178ce gcc/cfganal.h ! 3e3abd08a8e1b887f8ddbda223b9d0d3 gcc/cfgbuild.c 8d2d2838a75a74f980c02a0c1dccc6f7 gcc/cfgbuild.h ! a94deb84dd5fc6b64595cab63c20ef33 gcc/cfgcleanup.c 76493c30b63093a62270af2c53f028b4 gcc/cfgcleanup.h ! 5efc24463a57cd47518baec856520a34 gcc/cfgexpand.c c4c6266c4888e09280fdca3bcdd6c927 gcc/cfgexpand.h 241b624068329a0557ba643040ea7a52 gcc/cfghooks.c 2844f8c444cf87319afcc888a92372d4 gcc/cfghooks.h *************** aa71757a8881b31ac75eda23b83e392d gcc/cf *** 3189,3201 **** 532afc445fb123afc9610af6032bf074 gcc/cfgloopanal.c 11cf49613ab20334c1fc9121524d6381 gcc/cfgloopmanip.c 48131d2e7e0d663e5f4d7a8c8c2863f6 gcc/cfgloopmanip.h ! 4baf418bb54906cefac073f3ff23dd15 gcc/cfgrtl.c 627d4ecbd5c5b924d8cd3e490761285c gcc/cfgrtl.h ! 3c76f58b3f3e0e44a99975afed43c27e gcc/cgraph.c dccdc21f74f0e2a035bc78105bec8a3e gcc/cgraph.h ab4feb9f136b4b239302421056d5aa8a gcc/cgraphbuild.c ! c8a1525cfb171995108034e37d5933a6 gcc/cgraphclones.c ! 2b08a54f89b4650895dbbcdb3e2d34e9 gcc/cgraphunit.c 521bd63dc8fb9c35c26f7a2b7c04f7c6 gcc/cif-code.def b49865466bbb7aec08e5fc1f12b8fee1 gcc/collect-utils.c 35567207ddff3c6a55598c11201c07e9 gcc/collect-utils.h --- 3190,3202 ---- 532afc445fb123afc9610af6032bf074 gcc/cfgloopanal.c 11cf49613ab20334c1fc9121524d6381 gcc/cfgloopmanip.c 48131d2e7e0d663e5f4d7a8c8c2863f6 gcc/cfgloopmanip.h ! 7bf9f75c65dd6f9e9b1da7c72c428e08 gcc/cfgrtl.c 627d4ecbd5c5b924d8cd3e490761285c gcc/cfgrtl.h ! 530c51ce28366a11c1baa106191e926f gcc/cgraph.c dccdc21f74f0e2a035bc78105bec8a3e gcc/cgraph.h ab4feb9f136b4b239302421056d5aa8a gcc/cgraphbuild.c ! 2e0e2270544ae7a62b3b8239ced0ca1c gcc/cgraphclones.c ! ec153e08f4ada3e7c7c719f45eb8a049 gcc/cgraphunit.c 521bd63dc8fb9c35c26f7a2b7c04f7c6 gcc/cif-code.def b49865466bbb7aec08e5fc1f12b8fee1 gcc/collect-utils.c 35567207ddff3c6a55598c11201c07e9 gcc/collect-utils.h *************** f7e4d84c9831e6b006e3abaf0cda296d gcc/co *** 3207,3213 **** ed6f48014eba9e2fdba773c6bbc66f41 gcc/combine-stack-adj.c a75f6f58e211cbfa8cfc60d8948c376d gcc/combine.c 654752e8e1da5146591a7aa1c1503728 gcc/common.md ! e830d7a639390f601506579c91d429ac gcc/common.opt d39719c8a8249d7c11783eb1a99e6629 gcc/common/common-target-def.h 77b5f9067bdf47c77a81595371bc8097 gcc/common/common-target.def e99e94f2234ef2a69147e0d4ee70f2b4 gcc/common/common-target.h --- 3208,3214 ---- ed6f48014eba9e2fdba773c6bbc66f41 gcc/combine-stack-adj.c a75f6f58e211cbfa8cfc60d8948c376d gcc/combine.c 654752e8e1da5146591a7aa1c1503728 gcc/common.md ! 818fcd32d89e72a6db1615fc91582a7c gcc/common.opt d39719c8a8249d7c11783eb1a99e6629 gcc/common/common-target-def.h 77b5f9067bdf47c77a81595371bc8097 gcc/common/common-target.def e99e94f2234ef2a69147e0d4ee70f2b4 gcc/common/common-target.h *************** b9e205cf83be687340f57069d2828c97 gcc/co *** 3230,3238 **** b302028eafbaf815953381baed1c74b4 gcc/common/config/frv/frv-common.c 9b09cc59d4b2abf439f40174f9576a69 gcc/common/config/gcn/gcn-common.c 4c82be520bd57ce5fdb0b57810fa90c9 gcc/common/config/h8300/h8300-common.c ! cc097d962111af656c91ce30b31c5590 gcc/common/config/i386/cpuinfo.h 6dc32a89301fd0b5dcf0460900c0f84a gcc/common/config/i386/i386-common.c ! abdf89aeee73e0bc78d1c7c7096c04de gcc/common/config/i386/i386-cpuinfo.h 2b7433f285684f4da203c7d39cd60be7 gcc/common/config/i386/i386-isas.h 41afdf8ce4284f33a46b2605ce6eafc7 gcc/common/config/ia64/ia64-common.c 48dcb9e9504ab558c9bfeb4d255c570a gcc/common/config/iq2000/iq2000-common.c --- 3231,3239 ---- b302028eafbaf815953381baed1c74b4 gcc/common/config/frv/frv-common.c 9b09cc59d4b2abf439f40174f9576a69 gcc/common/config/gcn/gcn-common.c 4c82be520bd57ce5fdb0b57810fa90c9 gcc/common/config/h8300/h8300-common.c ! a0bdd91975466928ae652590600a9392 gcc/common/config/i386/cpuinfo.h 6dc32a89301fd0b5dcf0460900c0f84a gcc/common/config/i386/i386-common.c ! ec43e15f9e540baed2aa8ddcf0da00ad gcc/common/config/i386/i386-cpuinfo.h 2b7433f285684f4da203c7d39cd60be7 gcc/common/config/i386/i386-isas.h 41afdf8ce4284f33a46b2605ce6eafc7 gcc/common/config/ia64/ia64-common.c 48dcb9e9504ab558c9bfeb4d255c570a gcc/common/config/iq2000/iq2000-common.c *************** adb9f88eafb276d0ce398300d4103015 gcc/co *** 3268,3290 **** b2ffc0034da9ccbf178a5e5748c52c0a gcc/compare-elim.c e4b6829ec591a11a2cb0db458fe65ff2 gcc/conditions.h cc62394ef13d37ac049f14027a48482a gcc/config.build ! 186f10f255472d14437dc2b523ace799 gcc/config.gcc 31bf67644c4d7d8b27828e16398dc1d9 gcc/config.host de5f053f58e1109f62bcdbdef6b90b44 gcc/config.in 8e697813dc96ca90f5d0f4c196efe2cc gcc/config/README 1e9e77d433aa4a980b2aa08ff1ac55db gcc/config/aarch64/aarch64-arches.def 1ab879dfa2a1dd57f0cacc5494704f42 gcc/config/aarch64/aarch64-bti-insert.c ! 73f1d76b1e34329d429fa9dd801cea9e gcc/config/aarch64/aarch64-builtins.c ! 40828c1edbad134cf62039c3f3acb336 gcc/config/aarch64/aarch64-c.c e59a3f748c562e36ae56da5a4a570356 gcc/config/aarch64/aarch64-cc-fusion.cc ! 6fb063c2a47c49fad6e24534f9f99f8b gcc/config/aarch64/aarch64-cores.def ! b4d9dcbbe8caafbf9854283fbc6e3238 gcc/config/aarch64/aarch64-cost-tables.h 7a209f0ae0add87b9144ece813928a90 gcc/config/aarch64/aarch64-d.c 89bdbb01cb73e3f0919c1d6d2ba307bb gcc/config/aarch64/aarch64-elf-raw.h f21ecc1635eb9a794f1d03cc75500f1d gcc/config/aarch64/aarch64-elf.h 90d5a8b0bf7c4aee052f2892bd06cd9f gcc/config/aarch64/aarch64-errata.h 8933374edbf830f362aa88cc9cbf56bf gcc/config/aarch64/aarch64-freebsd.h ! 81e20548549eec1bda12655880536aff gcc/config/aarch64/aarch64-fusion-pairs.def 4bf6eb8aa5d716f9f3868a520832836a gcc/config/aarch64/aarch64-ldpstp.md 02999a24065853e9ae6c97ba1453c6e2 gcc/config/aarch64/aarch64-linux.h 900f62f582105e91c9eba7381f3b34a0 gcc/config/aarch64/aarch64-modes.def --- 3269,3291 ---- b2ffc0034da9ccbf178a5e5748c52c0a gcc/compare-elim.c e4b6829ec591a11a2cb0db458fe65ff2 gcc/conditions.h cc62394ef13d37ac049f14027a48482a gcc/config.build ! f17e0998d15b8c5033cfb753487d8ddf gcc/config.gcc 31bf67644c4d7d8b27828e16398dc1d9 gcc/config.host de5f053f58e1109f62bcdbdef6b90b44 gcc/config.in 8e697813dc96ca90f5d0f4c196efe2cc gcc/config/README 1e9e77d433aa4a980b2aa08ff1ac55db gcc/config/aarch64/aarch64-arches.def 1ab879dfa2a1dd57f0cacc5494704f42 gcc/config/aarch64/aarch64-bti-insert.c ! c95e78d7955efa8d506c30984a8048ac gcc/config/aarch64/aarch64-builtins.c ! 6dfd583d75225a11b336bcdb7689f691 gcc/config/aarch64/aarch64-c.c e59a3f748c562e36ae56da5a4a570356 gcc/config/aarch64/aarch64-cc-fusion.cc ! 056adad61de1c550e16140c80102018b gcc/config/aarch64/aarch64-cores.def ! a8cd1db666eef3a23102e56a5c4b70cb gcc/config/aarch64/aarch64-cost-tables.h 7a209f0ae0add87b9144ece813928a90 gcc/config/aarch64/aarch64-d.c 89bdbb01cb73e3f0919c1d6d2ba307bb gcc/config/aarch64/aarch64-elf-raw.h f21ecc1635eb9a794f1d03cc75500f1d gcc/config/aarch64/aarch64-elf.h 90d5a8b0bf7c4aee052f2892bd06cd9f gcc/config/aarch64/aarch64-errata.h 8933374edbf830f362aa88cc9cbf56bf gcc/config/aarch64/aarch64-freebsd.h ! 55c912c18de2bcf6d2826822bf58c5b3 gcc/config/aarch64/aarch64-fusion-pairs.def 4bf6eb8aa5d716f9f3868a520832836a gcc/config/aarch64/aarch64-ldpstp.md 02999a24065853e9ae6c97ba1453c6e2 gcc/config/aarch64/aarch64-linux.h 900f62f582105e91c9eba7381f3b34a0 gcc/config/aarch64/aarch64-modes.def *************** c5cb6a8b03d65fae0375198834e67a89 gcc/co *** 3292,3301 **** b94d8d3eab975242d7f1db8a1921e2d4 gcc/config/aarch64/aarch64-option-extensions.def 5070a0c7b6edddd4794f877823f6a675 gcc/config/aarch64/aarch64-opts.h bd39101ee7e523cee8589bddf788a863 gcc/config/aarch64/aarch64-passes.def ! 74161d5048d9a6a157d644ae98ba38e0 gcc/config/aarch64/aarch64-protos.h f4e8ddb01a0c073af7bd47950e5052d8 gcc/config/aarch64/aarch64-simd-builtin-types.def a57e7294debe2760574e76f5405efc29 gcc/config/aarch64/aarch64-simd-builtins.def ! 48798f4881b4294ff03e89b3573283b0 gcc/config/aarch64/aarch64-simd.md 5a9f2f65b25636e30ba5254866b36124 gcc/config/aarch64/aarch64-speculation.cc 2193126f11ce458f9f1292dcf8f9f1bf gcc/config/aarch64/aarch64-sve-builtins-base.cc 2e5ac221624603ecfcaff6c29bbc8ff0 gcc/config/aarch64/aarch64-sve-builtins-base.def --- 3293,3302 ---- b94d8d3eab975242d7f1db8a1921e2d4 gcc/config/aarch64/aarch64-option-extensions.def 5070a0c7b6edddd4794f877823f6a675 gcc/config/aarch64/aarch64-opts.h bd39101ee7e523cee8589bddf788a863 gcc/config/aarch64/aarch64-passes.def ! 9818f749993dd987489c455f92286a60 gcc/config/aarch64/aarch64-protos.h f4e8ddb01a0c073af7bd47950e5052d8 gcc/config/aarch64/aarch64-simd-builtin-types.def a57e7294debe2760574e76f5405efc29 gcc/config/aarch64/aarch64-simd-builtins.def ! 671d4d83c0b5e1053427ffbbc085e124 gcc/config/aarch64/aarch64-simd.md 5a9f2f65b25636e30ba5254866b36124 gcc/config/aarch64/aarch64-speculation.cc 2193126f11ce458f9f1292dcf8f9f1bf gcc/config/aarch64/aarch64-sve-builtins-base.cc 2e5ac221624603ecfcaff6c29bbc8ff0 gcc/config/aarch64/aarch64-sve-builtins-base.def *************** a48e47086140739b3f98e0b42b8b2c88 gcc/co *** 3306,3324 **** d825b33742f9b68f8efbad389e7a83ff gcc/config/aarch64/aarch64-sve-builtins-sve2.cc d7b507459d8322632f7a6054d221420c gcc/config/aarch64/aarch64-sve-builtins-sve2.def 27772360ef1e61832d4975722c8f9388 gcc/config/aarch64/aarch64-sve-builtins-sve2.h ! 8b07b4ea6c45579f7a06fee6c687e734 gcc/config/aarch64/aarch64-sve-builtins.cc 84e976c61e7df417c4615f873f6260d9 gcc/config/aarch64/aarch64-sve-builtins.def 2bb49c05f0be70f85d5eb7341a3fed80 gcc/config/aarch64/aarch64-sve-builtins.h ! 6cefef30f3cc1d09d20dbbb0cd69121b gcc/config/aarch64/aarch64-sve.md 024f1f15f2747beb21971036aa2e89d9 gcc/config/aarch64/aarch64-sve2.md ! 93880d302d6c66c857022719598265b0 gcc/config/aarch64/aarch64-tune.md ! 02788d998926c5d56579837ba517a991 gcc/config/aarch64/aarch64-tuning-flags.def 9f502cdcedcd85f77d279b53ea68cfc3 gcc/config/aarch64/aarch64-vxworks.h ! 2a4ac397720238bf00c6070f51b8869f gcc/config/aarch64/aarch64.c ! 0ca942e84e4b92f73aaaec7bfa1ccbc9 gcc/config/aarch64/aarch64.h ! 477f0cc9cbbc752a226b3a17f9a95f90 gcc/config/aarch64/aarch64.md 4923901cd53cde9dcd83c7f0dab8ef58 gcc/config/aarch64/aarch64.opt ! 9fef16059a26a1320f080c830acef3bf gcc/config/aarch64/arm_acle.h ba8c2535e9626ae4e550de5047888287 gcc/config/aarch64/arm_bf16.h 05d7dd122d4058557d659713d2c9b8c7 gcc/config/aarch64/arm_fp16.h ae69dc7e22047d2b46f6970580beb3c1 gcc/config/aarch64/arm_neon.h --- 3307,3325 ---- d825b33742f9b68f8efbad389e7a83ff gcc/config/aarch64/aarch64-sve-builtins-sve2.cc d7b507459d8322632f7a6054d221420c gcc/config/aarch64/aarch64-sve-builtins-sve2.def 27772360ef1e61832d4975722c8f9388 gcc/config/aarch64/aarch64-sve-builtins-sve2.h ! f381214b5d5ff96ed05d9296a8dad996 gcc/config/aarch64/aarch64-sve-builtins.cc 84e976c61e7df417c4615f873f6260d9 gcc/config/aarch64/aarch64-sve-builtins.def 2bb49c05f0be70f85d5eb7341a3fed80 gcc/config/aarch64/aarch64-sve-builtins.h ! 94052bc1aaba0562b41cdec72a6bf3d2 gcc/config/aarch64/aarch64-sve.md 024f1f15f2747beb21971036aa2e89d9 gcc/config/aarch64/aarch64-sve2.md ! 7a4bb120600e31ed57d0f67899d78b73 gcc/config/aarch64/aarch64-tune.md ! 7f19a3ee43fa4e79042af495fd7df059 gcc/config/aarch64/aarch64-tuning-flags.def 9f502cdcedcd85f77d279b53ea68cfc3 gcc/config/aarch64/aarch64-vxworks.h ! 8ae759b088267544c6edf2106d6793cd gcc/config/aarch64/aarch64.c ! 0b52542f189074aa879e806a7668b8a4 gcc/config/aarch64/aarch64.h ! b5668d7c6a7fe3ba62e03202d4bf621d gcc/config/aarch64/aarch64.md 4923901cd53cde9dcd83c7f0dab8ef58 gcc/config/aarch64/aarch64.opt ! f10dcbf353793be47c4ad2b77e1ad69d gcc/config/aarch64/arm_acle.h ba8c2535e9626ae4e550de5047888287 gcc/config/aarch64/arm_bf16.h 05d7dd122d4058557d659713d2c9b8c7 gcc/config/aarch64/arm_fp16.h ae69dc7e22047d2b46f6970580beb3c1 gcc/config/aarch64/arm_neon.h *************** c5e4dc1aa8aa96b1e98708782e715b10 gcc/co *** 3329,3341 **** d1bbf361745ec677a615eb0a11e5b715 gcc/config/aarch64/check-sve-md.awk 3985ee432d883112d1960e775ad320a7 gcc/config/aarch64/constraints.md 1ad03640d8fc76d1f796698531cdb0f1 gcc/config/aarch64/cortex-a57-fma-steering.c ! cf52b0975e4c0d0924ed38da6a43949c gcc/config/aarch64/driver-aarch64.c 9dca576b967f36193e144d26def4a9c5 gcc/config/aarch64/falkor-tag-collision-avoidance.c 72804cc2b3f5d7e52809a06b3c251c54 gcc/config/aarch64/falkor.md 63d0eebbd3376ae240e4547760915f66 gcc/config/aarch64/fractional-cost.h 67157c8970cb22f05a2e298f9a6b84c7 gcc/config/aarch64/geniterators.sh 9a3499491d4a8101f057a66925192785 gcc/config/aarch64/gentune.sh ! 05fb97992a51e3216fc9eb440e168427 gcc/config/aarch64/iterators.md 22bf9e47c529401c9f9ae72aeefdfeb7 gcc/config/aarch64/predicates.md 1a2b7c99ac3e699f010a2a5e143dfb8c gcc/config/aarch64/rtems.h 38550170272505346a8ad5dd6a1b63db gcc/config/aarch64/saphira.md --- 3330,3342 ---- d1bbf361745ec677a615eb0a11e5b715 gcc/config/aarch64/check-sve-md.awk 3985ee432d883112d1960e775ad320a7 gcc/config/aarch64/constraints.md 1ad03640d8fc76d1f796698531cdb0f1 gcc/config/aarch64/cortex-a57-fma-steering.c ! 7484801d7f14ff59d7ec591e7462671c gcc/config/aarch64/driver-aarch64.c 9dca576b967f36193e144d26def4a9c5 gcc/config/aarch64/falkor-tag-collision-avoidance.c 72804cc2b3f5d7e52809a06b3c251c54 gcc/config/aarch64/falkor.md 63d0eebbd3376ae240e4547760915f66 gcc/config/aarch64/fractional-cost.h 67157c8970cb22f05a2e298f9a6b84c7 gcc/config/aarch64/geniterators.sh 9a3499491d4a8101f057a66925192785 gcc/config/aarch64/gentune.sh ! 486ecb4436f44ec8def58519a064e673 gcc/config/aarch64/iterators.md 22bf9e47c529401c9f9ae72aeefdfeb7 gcc/config/aarch64/predicates.md 1a2b7c99ac3e699f010a2a5e143dfb8c gcc/config/aarch64/rtems.h 38550170272505346a8ad5dd6a1b63db gcc/config/aarch64/saphira.md *************** cffb77e28aaee1ef71df44208c8cf08e gcc/co *** 3351,3358 **** 8b41b511cae4a5eda35cf19755875d5a gcc/config/aarch64/x-aarch64 3af502026ddf49d69ce20f7f355413c5 gcc/config/alpha/alpha-modes.def 7b2a95a3c1649335efec41840c0563b4 gcc/config/alpha/alpha-passes.def ! 734c46dde1390585094d037bd921b4be gcc/config/alpha/alpha-protos.h ! 5555e630af513fb70ff81e8224650ddf gcc/config/alpha/alpha.c b583c637be36f7ba4943158c259f9071 gcc/config/alpha/alpha.h 96f465578b3bc22c52447c9dfa49487b gcc/config/alpha/alpha.md c8a659f2d0ece9ed25fb00c2b65109dc gcc/config/alpha/alpha.opt --- 3352,3359 ---- 8b41b511cae4a5eda35cf19755875d5a gcc/config/aarch64/x-aarch64 3af502026ddf49d69ce20f7f355413c5 gcc/config/alpha/alpha-modes.def 7b2a95a3c1649335efec41840c0563b4 gcc/config/alpha/alpha-passes.def ! 42eb8ee353bebcf838d4dac63080b578 gcc/config/alpha/alpha-protos.h ! 1179957aae0dacf5d55cb9af5eea6b54 gcc/config/alpha/alpha.c b583c637be36f7ba4943158c259f9071 gcc/config/alpha/alpha.h 96f465578b3bc22c52447c9dfa49487b gcc/config/alpha/alpha.md c8a659f2d0ece9ed25fb00c2b65109dc gcc/config/alpha/alpha.opt *************** a69c90e08fbd52ed0a529d829106ee0b gcc/co *** 3360,3366 **** 922bc1be27f184824dfc6ee89eb40afb gcc/config/alpha/driver-alpha.c 71b456abb6ba28ef390d8665eb986ca7 gcc/config/alpha/elf.h b2e7fd5895398a60097812bda344908e gcc/config/alpha/elf.opt ! 24c560b186b12f1e569216f1fdee293d gcc/config/alpha/ev4.md 2c40c2dff38fa716014d2a876f121e92 gcc/config/alpha/ev5.md 9548e09fdf569e439f479c3e8d8f6cf9 gcc/config/alpha/ev6.md 94ba2e261cf99a359bb052692241ed4e gcc/config/alpha/linux-elf.h --- 3361,3367 ---- 922bc1be27f184824dfc6ee89eb40afb gcc/config/alpha/driver-alpha.c 71b456abb6ba28ef390d8665eb986ca7 gcc/config/alpha/elf.h b2e7fd5895398a60097812bda344908e gcc/config/alpha/elf.opt ! ab10061cf05df77f5cfdfad95aa094c2 gcc/config/alpha/ev4.md 2c40c2dff38fa716014d2a876f121e92 gcc/config/alpha/ev5.md 9548e09fdf569e439f479c3e8d8f6cf9 gcc/config/alpha/ev6.md 94ba2e261cf99a359bb052692241ed4e gcc/config/alpha/linux-elf.h *************** e697f61ce1f19207b754f9e4e060df79 gcc/co *** 3427,3437 **** cadb5b1cf604bbd9e06000676a096db5 gcc/config/arm/arm-ldmstm.ml 05bf396d4add547832f286e046643971 gcc/config/arm/arm-modes.def 25635e5e9dde05adc23f3ba0d5866385 gcc/config/arm/arm-opts.h ! acae73854486ed7ab4e8e8af88c5eb58 gcc/config/arm/arm-protos.h 095ccfc0877933dc53eb40c2369fcf9a gcc/config/arm/arm-simd-builtin-types.def e15ee919dad399c4e00ca11efe4bcd94 gcc/config/arm/arm-tables.opt d70a50caf4aae1fb3ab57300fd85cd84 gcc/config/arm/arm-tune.md ! a6942f87d3c677f8628741b7c277c775 gcc/config/arm/arm.c fa7937aa82161053523e64455115ac0d gcc/config/arm/arm.h 9b8b431e40e39b11d70fe124e6b05b1e gcc/config/arm/arm.md eabc54f06df24e849baa2f7e1d988bb0 gcc/config/arm/arm.opt --- 3428,3438 ---- cadb5b1cf604bbd9e06000676a096db5 gcc/config/arm/arm-ldmstm.ml 05bf396d4add547832f286e046643971 gcc/config/arm/arm-modes.def 25635e5e9dde05adc23f3ba0d5866385 gcc/config/arm/arm-opts.h ! 2854ea05379432f5a17666cbbef71d82 gcc/config/arm/arm-protos.h 095ccfc0877933dc53eb40c2369fcf9a gcc/config/arm/arm-simd-builtin-types.def e15ee919dad399c4e00ca11efe4bcd94 gcc/config/arm/arm-tables.opt d70a50caf4aae1fb3ab57300fd85cd84 gcc/config/arm/arm-tune.md ! e36e918c57c52b17c910038b841d3f73 gcc/config/arm/arm.c fa7937aa82161053523e64455115ac0d gcc/config/arm/arm.h 9b8b431e40e39b11d70fe124e6b05b1e gcc/config/arm/arm.md eabc54f06df24e849baa2f7e1d988bb0 gcc/config/arm/arm.opt *************** cbca5f0c85ad3b6ac0e5929359764930 gcc/co *** 3454,3460 **** d046918bcae84588bd3674d5fd1379da gcc/config/arm/arm_vfp_builtins.def d38fb86a101a0c45b14efe3c44729d0c gcc/config/arm/bpabi.h f202d6b26eae69e1d38719f4676cf1b9 gcc/config/arm/common.md ! 98b2033272cadcfab68d536db9fd764b gcc/config/arm/constraints.md 3ead1f829830bdb9b191217dd8bed34c gcc/config/arm/cortex-a15-neon.md 995634fa135396159bf8d72f6af5b817 gcc/config/arm/cortex-a15.md 9dce3b82c4f7d4e8e6740b8fd8bac33c gcc/config/arm/cortex-a17-neon.md --- 3455,3461 ---- d046918bcae84588bd3674d5fd1379da gcc/config/arm/arm_vfp_builtins.def d38fb86a101a0c45b14efe3c44729d0c gcc/config/arm/bpabi.h f202d6b26eae69e1d38719f4676cf1b9 gcc/config/arm/common.md ! 1a830e73dea8e1e8bfe04d3c1795829d gcc/config/arm/constraints.md 3ead1f829830bdb9b191217dd8bed34c gcc/config/arm/cortex-a15-neon.md 995634fa135396159bf8d72f6af5b817 gcc/config/arm/cortex-a15.md 9dce3b82c4f7d4e8e6740b8fd8bac33c gcc/config/arm/cortex-a17-neon.md *************** bd2045b2f5d8245c16a45237dce679a6 gcc/co *** 3495,3506 **** 41ed5979d5b4c0328c84b1411af4d063 gcc/config/arm/marvell-f-iwmmxt.md 64a1f7d58f31d526a6b511b59068a296 gcc/config/arm/marvell-pj4.md 43fdc3285e4cf2925affd75f5e519dda gcc/config/arm/mmintrin.h ! de871d10cad9745db0ca15dd6c63933a gcc/config/arm/mve.md 9f532768a1dd1fd1a7115fc72bbf7a88 gcc/config/arm/neon.md e602d4f71105bebaba1f0160067b903c gcc/config/arm/netbsd-eabi.h 4868137991adc2b3ed94f92b94681a5c gcc/config/arm/netbsd-elf.h cae8e4d7062cc8528b86ba742f87b233 gcc/config/arm/parsecpu.awk ! 6cd54aae61604447f82f1f8ce4241e07 gcc/config/arm/predicates.md caa19ea0702740cb515513dc3ffd1b34 gcc/config/arm/rtems.h fd8f292e71a132025a8830e9fb1d20a5 gcc/config/arm/semi.h e726b8b47355a98ca8086010faca628b gcc/config/arm/symbian.h --- 3496,3507 ---- 41ed5979d5b4c0328c84b1411af4d063 gcc/config/arm/marvell-f-iwmmxt.md 64a1f7d58f31d526a6b511b59068a296 gcc/config/arm/marvell-pj4.md 43fdc3285e4cf2925affd75f5e519dda gcc/config/arm/mmintrin.h ! 08e38ef92c274dd24676b4aaf7678b20 gcc/config/arm/mve.md 9f532768a1dd1fd1a7115fc72bbf7a88 gcc/config/arm/neon.md e602d4f71105bebaba1f0160067b903c gcc/config/arm/netbsd-eabi.h 4868137991adc2b3ed94f92b94681a5c gcc/config/arm/netbsd-elf.h cae8e4d7062cc8528b86ba742f87b233 gcc/config/arm/parsecpu.awk ! 2b02d6249135902e69ceb96d1aa7e319 gcc/config/arm/predicates.md caa19ea0702740cb515513dc3ffd1b34 gcc/config/arm/rtems.h fd8f292e71a132025a8830e9fb1d20a5 gcc/config/arm/semi.h e726b8b47355a98ca8086010faca628b gcc/config/arm/symbian.h *************** c1ce8990c1043f299ab96a7d2c9feac2 gcc/co *** 3526,3532 **** 9bc8c1d93425150291f333f13713387d gcc/config/arm/uclinuxfdpiceabi.h 3285e4d14032fb0ae4faa2809a98b43b gcc/config/arm/unknown-elf.h 4d486054574a4f147041002f62b9faa5 gcc/config/arm/unspecs.md ! 63618d304ddef37b30a4e977d5558a61 gcc/config/arm/vec-common.md e03dd376edfeaf6532effda3526527c1 gcc/config/arm/vfp.md 5b03ce06f03ed9738ed6cee13b1475ab gcc/config/arm/vfp11.md 77f809b2e1735d57d8681bbd8e506d7c gcc/config/arm/vxworks.h --- 3527,3533 ---- 9bc8c1d93425150291f333f13713387d gcc/config/arm/uclinuxfdpiceabi.h 3285e4d14032fb0ae4faa2809a98b43b gcc/config/arm/unknown-elf.h 4d486054574a4f147041002f62b9faa5 gcc/config/arm/unspecs.md ! efe5977515d447ef320d17e4fe861fb0 gcc/config/arm/vec-common.md e03dd376edfeaf6532effda3526527c1 gcc/config/arm/vfp.md 5b03ce06f03ed9738ed6cee13b1475ab gcc/config/arm/vfp11.md 77f809b2e1735d57d8681bbd8e506d7c gcc/config/arm/vxworks.h *************** d60f590cb6f4d4348e1e3d111785452e gcc/co *** 3662,3676 **** 50644547da413f442c233fc649602657 gcc/config/csky/t-csky-elf 75c37c753546509bef2946cf75d47653 gcc/config/csky/t-csky-linux 4495725c3c863ee081187ccfd1118a02 gcc/config/csky/t-sysroot-suffix ! a8233b75fe59757a51457ef68fe9678c gcc/config/darwin-c.c bf77a54b5c52ed103705a4e960d9f814 gcc/config/darwin-d.c ! 7c3e8c7f69a5d63e6061bdfeda0ba727 gcc/config/darwin-driver.c dbb6f1d5dc4ceaaf0fd2e5bc4bbb2a29 gcc/config/darwin-f.c 1e7f34ef6b48c907fbf5b2d5a629e957 gcc/config/darwin-ppc-ldouble-patch.def d888c4de74a969d5751349e288d4728d gcc/config/darwin-protos.h fe391a430f76c969aa3909a7239a4812 gcc/config/darwin-sections.def ! 742a51260c78210a2dd5cbd87312e6ba gcc/config/darwin.c ! 050abc87b0d8cec0efab57ee18a61c6e gcc/config/darwin.h 3d206af3a9f3e409c3fa42bc4e807a7b gcc/config/darwin.opt 23bab33707e2ef99310565f620c62080 gcc/config/dbx.h 04c3ad90675d44af0d58b60b7ce96c32 gcc/config/dbxcoff.h --- 3663,3677 ---- 50644547da413f442c233fc649602657 gcc/config/csky/t-csky-elf 75c37c753546509bef2946cf75d47653 gcc/config/csky/t-csky-linux 4495725c3c863ee081187ccfd1118a02 gcc/config/csky/t-sysroot-suffix ! 32fa12cd23b65d83071a707bdc001a13 gcc/config/darwin-c.c bf77a54b5c52ed103705a4e960d9f814 gcc/config/darwin-d.c ! 6c3d6a0a08530389c3655e5d20ab8743 gcc/config/darwin-driver.c dbb6f1d5dc4ceaaf0fd2e5bc4bbb2a29 gcc/config/darwin-f.c 1e7f34ef6b48c907fbf5b2d5a629e957 gcc/config/darwin-ppc-ldouble-patch.def d888c4de74a969d5751349e288d4728d gcc/config/darwin-protos.h fe391a430f76c969aa3909a7239a4812 gcc/config/darwin-sections.def ! ebaf866f07c93c3c0b4d518a42c37d1e gcc/config/darwin.c ! b1ac0459ed54d15d64c9aedddee8aeba gcc/config/darwin.h 3d206af3a9f3e409c3fa42bc4e807a7b gcc/config/darwin.opt 23bab33707e2ef99310565f620c62080 gcc/config/dbx.h 04c3ad90675d44af0d58b60b7ce96c32 gcc/config/dbxcoff.h *************** f4ac9cdd6fe1c388fb12a3695be9e14b gcc/co *** 3814,3820 **** fc95a6779839884b9fc3c3eecfab9669 gcc/config/i386/avx512cdintrin.h 77f8546571fb61d83fb84241a97b7fd0 gcc/config/i386/avx512dqintrin.h 8cc4f2851dfd47e6cbd9f8043434b618 gcc/config/i386/avx512erintrin.h ! 57760a73af5f476ce5071cf19e403644 gcc/config/i386/avx512fintrin.h 06c4e386cd05fafff0c2d017aa8ba05e gcc/config/i386/avx512ifmaintrin.h 3a6a368007d6b7c1d9bc93f91ca4bfc3 gcc/config/i386/avx512ifmavlintrin.h 2c23a2ad463c4660ffec749da97c76b5 gcc/config/i386/avx512pfintrin.h --- 3815,3821 ---- fc95a6779839884b9fc3c3eecfab9669 gcc/config/i386/avx512cdintrin.h 77f8546571fb61d83fb84241a97b7fd0 gcc/config/i386/avx512dqintrin.h 8cc4f2851dfd47e6cbd9f8043434b618 gcc/config/i386/avx512erintrin.h ! 94723ea29a29139d8e88be666b36fb96 gcc/config/i386/avx512fintrin.h 06c4e386cd05fafff0c2d017aa8ba05e gcc/config/i386/avx512ifmaintrin.h 3a6a368007d6b7c1d9bc93f91ca4bfc3 gcc/config/i386/avx512ifmavlintrin.h 2c23a2ad463c4660ffec749da97c76b5 gcc/config/i386/avx512pfintrin.h *************** a2f5dc3cebc9ff380d4e2f7612ee5a71 gcc/co *** 3858,3866 **** c9c593611b6e66ec45e60aa9d4ff592d gcc/config/i386/cygming.opt e54ea527bab7db8b62707abf7d8590ca gcc/config/i386/cygwin-stdint.h b5ae0a1d0b938c1efa427d0072eabbf1 gcc/config/i386/cygwin-w64.h ! 986fdbf17c77b47402de2e1d369fdb93 gcc/config/i386/cygwin.h aa7f76fe99be46381f2818bb1514a2f5 gcc/config/i386/cygwin.opt ! b8fc0b400408d58cc2bb1539185eec9e gcc/config/i386/darwin.h e4db542240e16290cbdc69380f3b9dc6 gcc/config/i386/darwin32-biarch.h 1656f562846ff5f0c45ad1291cc82d18 gcc/config/i386/darwin64-biarch.h 2361d24556fbdcd6f9f833148a1254fa gcc/config/i386/djgpp-stdint.h --- 3859,3867 ---- c9c593611b6e66ec45e60aa9d4ff592d gcc/config/i386/cygming.opt e54ea527bab7db8b62707abf7d8590ca gcc/config/i386/cygwin-stdint.h b5ae0a1d0b938c1efa427d0072eabbf1 gcc/config/i386/cygwin-w64.h ! 0fcac3fd5e4a1cdc600c80238bce281d gcc/config/i386/cygwin.h aa7f76fe99be46381f2818bb1514a2f5 gcc/config/i386/cygwin.opt ! a7f12e2ab124f344ad1fb5c08366d2e7 gcc/config/i386/darwin.h e4db542240e16290cbdc69380f3b9dc6 gcc/config/i386/darwin32-biarch.h 1656f562846ff5f0c45ad1291cc82d18 gcc/config/i386/darwin64-biarch.h 2361d24556fbdcd6f9f833148a1254fa gcc/config/i386/djgpp-stdint.h *************** d87f5906e5cee04c568119528636e1c2 gcc/co *** 3885,3891 **** 150b5138b9224e24e53f821c744484eb gcc/config/i386/glm.md 1875affe4277584801678d7587573a36 gcc/config/i386/gmm_malloc.h 1c08f4ff502d16c18bb54e318e030ce4 gcc/config/i386/gnu-property.c ! c9dd44c13100f270f8dac4c4353d5205 gcc/config/i386/gnu-user-common.h f63afc859775aca634f9c3038a88a2e8 gcc/config/i386/gnu-user.h 69d747426a2cd567127374ec436971c7 gcc/config/i386/gnu-user64.h 54529083ddab72f042302240de5c66c4 gcc/config/i386/gnu.h --- 3886,3892 ---- 150b5138b9224e24e53f821c744484eb gcc/config/i386/glm.md 1875affe4277584801678d7587573a36 gcc/config/i386/gmm_malloc.h 1c08f4ff502d16c18bb54e318e030ce4 gcc/config/i386/gnu-property.c ! 00545303700e436af09d8af7ae78fb8e gcc/config/i386/gnu-user-common.h f63afc859775aca634f9c3038a88a2e8 gcc/config/i386/gnu-user.h 69d747426a2cd567127374ec436971c7 gcc/config/i386/gnu-user64.h 54529083ddab72f042302240de5c66c4 gcc/config/i386/gnu.h *************** f63afc859775aca634f9c3038a88a2e8 gcc/co *** 3896,3920 **** dfd31f5b9f3ae6b0f0cfbc91f34b22d3 gcc/config/i386/hresetintrin.h f416d4c1b5f76b0c32dcfa57cbef9de0 gcc/config/i386/i386-builtin-types.awk 4e99fd2d8e886c8fedca887be1ceccad gcc/config/i386/i386-builtin-types.def ! 61439f21b1fafa107dda0a49e355123a gcc/config/i386/i386-builtin.def 1dc75a552c0d6998bea2786836c26452 gcc/config/i386/i386-builtins.c 2eb66258231da97923f18a6fb2fb2526 gcc/config/i386/i386-builtins.h e93ce5f91f999045596fda2304d9776d gcc/config/i386/i386-c.c e87e1d322f0b5d6d0862f8b523832d11 gcc/config/i386/i386-d.c ! e671600d18912b4f01a5d0fceea3d4df gcc/config/i386/i386-expand.c 68f53a8d27a4bdcd5018b83939e20f6c gcc/config/i386/i386-expand.h dd464cbc7d083f9311116080f270e855 gcc/config/i386/i386-features.c 86c0fda429064123819ee0155f367a5f gcc/config/i386/i386-features.h 04cdac9cb26ba183b03b6f9c7a01b792 gcc/config/i386/i386-modes.def ! b14988c53d21c3bf19b5d157a1503564 gcc/config/i386/i386-options.c fe60119ebc2cc86648e81161137ee957 gcc/config/i386/i386-options.h 6162f2f6d59de8eec399101815b311fb gcc/config/i386/i386-opts.h b52d1366937ad82efd6efd1590e73779 gcc/config/i386/i386-passes.def 1905e9dbeb917e8b2caf32cc98f4b5d3 gcc/config/i386/i386-protos.h ! f9a563f0072fa2e4091c35d5fe3d53c7 gcc/config/i386/i386.c efd333c54c81f2840c9dbb82e80e68e2 gcc/config/i386/i386.h 1f2ce4d81972398ffabd0e5b5795b5e4 gcc/config/i386/i386.md ! b79dc8d1e7ab48a57991e3149abf23cf gcc/config/i386/i386.opt c10c5e5da62216f81b78dd46673df070 gcc/config/i386/i386elf.h e54b0acb11af35cf1d05cfef525dd659 gcc/config/i386/ia32intrin.h fa1c19397f6d7ac84e3a77d2fd9d70bc gcc/config/i386/iamcu.h --- 3897,3921 ---- dfd31f5b9f3ae6b0f0cfbc91f34b22d3 gcc/config/i386/hresetintrin.h f416d4c1b5f76b0c32dcfa57cbef9de0 gcc/config/i386/i386-builtin-types.awk 4e99fd2d8e886c8fedca887be1ceccad gcc/config/i386/i386-builtin-types.def ! 34f102d507622bc6b3890d83f44921da gcc/config/i386/i386-builtin.def 1dc75a552c0d6998bea2786836c26452 gcc/config/i386/i386-builtins.c 2eb66258231da97923f18a6fb2fb2526 gcc/config/i386/i386-builtins.h e93ce5f91f999045596fda2304d9776d gcc/config/i386/i386-c.c e87e1d322f0b5d6d0862f8b523832d11 gcc/config/i386/i386-d.c ! 37234dbeb55c711b9fed925b3e6d1994 gcc/config/i386/i386-expand.c 68f53a8d27a4bdcd5018b83939e20f6c gcc/config/i386/i386-expand.h dd464cbc7d083f9311116080f270e855 gcc/config/i386/i386-features.c 86c0fda429064123819ee0155f367a5f gcc/config/i386/i386-features.h 04cdac9cb26ba183b03b6f9c7a01b792 gcc/config/i386/i386-modes.def ! 922cbea5f57c4c7e89d7b294c9a372f8 gcc/config/i386/i386-options.c fe60119ebc2cc86648e81161137ee957 gcc/config/i386/i386-options.h 6162f2f6d59de8eec399101815b311fb gcc/config/i386/i386-opts.h b52d1366937ad82efd6efd1590e73779 gcc/config/i386/i386-passes.def 1905e9dbeb917e8b2caf32cc98f4b5d3 gcc/config/i386/i386-protos.h ! f9777b60c901ce3e254c92309398b3e3 gcc/config/i386/i386.c efd333c54c81f2840c9dbb82e80e68e2 gcc/config/i386/i386.h 1f2ce4d81972398ffabd0e5b5795b5e4 gcc/config/i386/i386.md ! 9d4643969a5ef2f50d082193dbdf9b47 gcc/config/i386/i386.opt c10c5e5da62216f81b78dd46673df070 gcc/config/i386/i386elf.h e54b0acb11af35cf1d05cfef525dd659 gcc/config/i386/ia32intrin.h fa1c19397f6d7ac84e3a77d2fd9d70bc gcc/config/i386/iamcu.h *************** c912f02783f7a414328c5eb819720dfc gcc/co *** 3937,3943 **** b38248cde141fc9fed08e9ac46211173 gcc/config/i386/mingw-w64.h 4b1f092fa8c0e01719f92b1c69851f1d gcc/config/i386/mingw-w64.opt 3a5730df9219d8ba566f353d1466e6a4 gcc/config/i386/mingw.opt ! 9de786275129d0f546dcac922a1c671a gcc/config/i386/mingw32.h 8c2a40be98f698117815409db5755e07 gcc/config/i386/mm3dnow.h ebadd8939e5045c483e0067e83f84ea5 gcc/config/i386/mmintrin.h a4907954895f6236cf5afcdba2be40d0 gcc/config/i386/mmx.md --- 3938,3944 ---- b38248cde141fc9fed08e9ac46211173 gcc/config/i386/mingw-w64.h 4b1f092fa8c0e01719f92b1c69851f1d gcc/config/i386/mingw-w64.opt 3a5730df9219d8ba566f353d1466e6a4 gcc/config/i386/mingw.opt ! 5bd2e0b86c4dab0b605208942c9a50d6 gcc/config/i386/mingw32.h 8c2a40be98f698117815409db5755e07 gcc/config/i386/mm3dnow.h ebadd8939e5045c483e0067e83f84ea5 gcc/config/i386/mmintrin.h a4907954895f6236cf5afcdba2be40d0 gcc/config/i386/mmx.md *************** c44e6c969a56ce15caac8fb01e42f8b6 gcc/co *** 3958,3964 **** 92edc254628b377d78d6e9491fdce8aa gcc/config/i386/pmmintrin.h b912f7a44accd114d932f1bd128eb83c gcc/config/i386/popcntintrin.h b753cd41f6fdd8ee8be1c1034d4d3e9e gcc/config/i386/ppro.md ! a57d58241691ba144e0ba6d871a157a4 gcc/config/i386/predicates.md 7df26c7af82cf825758be1dddd83d323 gcc/config/i386/prfchwintrin.h 6d07e8e896f2aafcdeabb31c3f68dbac gcc/config/i386/rdos.h f78da15b73fdb639b57920b0a86dd843 gcc/config/i386/rdos64.h --- 3959,3965 ---- 92edc254628b377d78d6e9491fdce8aa gcc/config/i386/pmmintrin.h b912f7a44accd114d932f1bd128eb83c gcc/config/i386/popcntintrin.h b753cd41f6fdd8ee8be1c1034d4d3e9e gcc/config/i386/ppro.md ! 29d2753e85afcb5057a452b95352fb9d gcc/config/i386/predicates.md 7df26c7af82cf825758be1dddd83d323 gcc/config/i386/prfchwintrin.h 6d07e8e896f2aafcdeabb31c3f68dbac gcc/config/i386/rdos.h f78da15b73fdb639b57920b0a86dd843 gcc/config/i386/rdos64.h *************** e1e11d9cd0e8002dee79ab23d590ed1a gcc/co *** 3969,3977 **** 76a58cad0f61b44b8fe7d4915dd50d07 gcc/config/i386/sgxintrin.h 738791e034eae8f304812280d786951d gcc/config/i386/shaintrin.h f808dc4b45bc244b7588e4dbe292d158 gcc/config/i386/slm.md ! aa606ad57b003eaf3855a789cfdbdfda gcc/config/i386/smmintrin.h 86d70f5d5123563facc0d2e2dcfbd9e6 gcc/config/i386/sol2.h ! 3ce3a9d7e8ce3adabd84c82a66ba3692 gcc/config/i386/sse.md df2791f0495a636b555c9a5f3f9ff153 gcc/config/i386/ssemath.h fdb6c5262186a722ee43fabb890960ae gcc/config/i386/stringop.def fdbc1c329d68559ae10ad05554ed8b15 gcc/config/i386/subst.md --- 3970,3978 ---- 76a58cad0f61b44b8fe7d4915dd50d07 gcc/config/i386/sgxintrin.h 738791e034eae8f304812280d786951d gcc/config/i386/shaintrin.h f808dc4b45bc244b7588e4dbe292d158 gcc/config/i386/slm.md ! 03dd452cfd3e49b9807da1ce5a98046d gcc/config/i386/smmintrin.h 86d70f5d5123563facc0d2e2dcfbd9e6 gcc/config/i386/sol2.h ! 429668121fa3ff79143be1f9720eb312 gcc/config/i386/sse.md df2791f0495a636b555c9a5f3f9ff153 gcc/config/i386/ssemath.h fdb6c5262186a722ee43fabb890960ae gcc/config/i386/stringop.def fdbc1c329d68559ae10ad05554ed8b15 gcc/config/i386/subst.md *************** d5339d6e5a09a02383903f617230e19e gcc/co *** 3986,3992 **** 3a1c0dac7740fd9ef48c7bdf5f313c9d gcc/config/i386/t-gmm_malloc d5939c6bccbf8957206c63308ce628a6 gcc/config/i386/t-gnu e6397043c320f46b30091283f4821cbb gcc/config/i386/t-gnu-property ! 3d2dfb3e9e6270ca47e84d8ecc33a902 gcc/config/i386/t-i386 c3fde04ef47ddd6ec0a60c98d7f55224 gcc/config/i386/t-intelmic 51dcf9826007c01cfd67be11d5f0d538 gcc/config/i386/t-kfreebsd 39ad69cb2a2e67aa8d46664a75b02789 gcc/config/i386/t-linux --- 3987,3993 ---- 3a1c0dac7740fd9ef48c7bdf5f313c9d gcc/config/i386/t-gmm_malloc d5939c6bccbf8957206c63308ce628a6 gcc/config/i386/t-gnu e6397043c320f46b30091283f4821cbb gcc/config/i386/t-gnu-property ! 3b0ac015fdbc12edde3e75bc017be6f2 gcc/config/i386/t-i386 c3fde04ef47ddd6ec0a60c98d7f55224 gcc/config/i386/t-intelmic 51dcf9826007c01cfd67be11d5f0d538 gcc/config/i386/t-kfreebsd 39ad69cb2a2e67aa8d46664a75b02789 gcc/config/i386/t-linux *************** c44a21d6173dfc25f9ea06d39259b98b gcc/co *** 4411,4419 **** c2aabf1e8738380511a66426506fe906 gcc/config/nvptx/nvptx-modes.def dca89acc73c1e607543f77bff11454fb gcc/config/nvptx/nvptx-opts.h 9ca7d94c2be28d9abdb34a47582fd30f gcc/config/nvptx/nvptx-protos.h ! 0ae128e298c4577f1c737e010ffb5c34 gcc/config/nvptx/nvptx.c ! c0b0b2bacfa72578f4672edf1c0f50db gcc/config/nvptx/nvptx.h ! 9c8498d440319ec5925062d2d6c68415 gcc/config/nvptx/nvptx.md 6d617ffea69db6bcfe22bbd6fb2c7e29 gcc/config/nvptx/nvptx.opt e917c97da0e4b76432a791778f806d36 gcc/config/nvptx/offload.h 161bfe9f99d4d18fdb67553220ba175a gcc/config/nvptx/t-nvptx --- 4412,4420 ---- c2aabf1e8738380511a66426506fe906 gcc/config/nvptx/nvptx-modes.def dca89acc73c1e607543f77bff11454fb gcc/config/nvptx/nvptx-opts.h 9ca7d94c2be28d9abdb34a47582fd30f gcc/config/nvptx/nvptx-protos.h ! af2ff2b6a23e7aa632d76f44e5af17ce gcc/config/nvptx/nvptx.c ! 96f2f0bbb4ebe8e9651ec1a5ddd23de6 gcc/config/nvptx/nvptx.h ! 913dc062fadd10248f1e6e0614f1160a gcc/config/nvptx/nvptx.md 6d617ffea69db6bcfe22bbd6fb2c7e29 gcc/config/nvptx/nvptx.opt e917c97da0e4b76432a791778f806d36 gcc/config/nvptx/offload.h 161bfe9f99d4d18fdb67553220ba175a gcc/config/nvptx/t-nvptx *************** caff43adac59469f64f1c7e4385c27d2 gcc/co *** 4459,4465 **** 85dc61345aa9b8f74041dfe95eebf2e7 gcc/config/pa/pa-protos.h 0d77b7513676faac2b9365e1786e465c gcc/config/pa/pa.c c3f6aadadbf72faef69e3a2422b6e223 gcc/config/pa/pa.h ! 58b599c016970fec733bd266261ba0fd gcc/config/pa/pa.md 570c43b9b6987181b5756267f6cf7973 gcc/config/pa/pa.opt d414dff3f6a4b50b49f81539036bff88 gcc/config/pa/pa32-linux.h 8e685ad04b0b38e5885bfcc8012cdd92 gcc/config/pa/pa32-netbsd.h --- 4460,4466 ---- 85dc61345aa9b8f74041dfe95eebf2e7 gcc/config/pa/pa-protos.h 0d77b7513676faac2b9365e1786e465c gcc/config/pa/pa.c c3f6aadadbf72faef69e3a2422b6e223 gcc/config/pa/pa.h ! af01de2d6c7c056ee644a22c89654bf2 gcc/config/pa/pa.md 570c43b9b6987181b5756267f6cf7973 gcc/config/pa/pa.opt d414dff3f6a4b50b49f81539036bff88 gcc/config/pa/pa32-linux.h 8e685ad04b0b38e5885bfcc8012cdd92 gcc/config/pa/pa32-netbsd.h *************** c62f794a3016ccd74f1cc0e579e8aea3 gcc/co *** 4494,4504 **** b6607d3410bf037c34e0b8a0422adbe5 gcc/config/pru/pru-pragma.c 8008f645c2d6305298f0f5996b8530a8 gcc/config/pru/pru-protos.h a7fdc306986a7202a2f2b209faf8f5ea gcc/config/pru/pru.c ! 783a6ce5f683fda7f039ad745e09e1f9 gcc/config/pru/pru.h ! 06d17121b1ca155cfd8a17344a5d3f8d gcc/config/pru/pru.md 3b98988e55ce8cf649751cd3d3bf38cd gcc/config/pru/pru.opt 10430f6518a3627421b6e41146222090 gcc/config/pru/t-pru ! 724bf92da89c5b91ba44623b319a2d4e gcc/config/riscv/arch-canonicalize 1b1e5fb14202743e68ddd48543aca24e gcc/config/riscv/constraints.md ef0028af881cf895e537c21cc4643fb8 gcc/config/riscv/elf.h de2fc9c3ace4fd5d8f5573b8bd906069 gcc/config/riscv/freebsd.h --- 4495,4505 ---- b6607d3410bf037c34e0b8a0422adbe5 gcc/config/pru/pru-pragma.c 8008f645c2d6305298f0f5996b8530a8 gcc/config/pru/pru-protos.h a7fdc306986a7202a2f2b209faf8f5ea gcc/config/pru/pru.c ! 85cd9dd4fa944647a140557ba26b7ab5 gcc/config/pru/pru.h ! cc8fd7f5d40a9db5b1ebd4364c0c6f67 gcc/config/pru/pru.md 3b98988e55ce8cf649751cd3d3bf38cd gcc/config/pru/pru.opt 10430f6518a3627421b6e41146222090 gcc/config/pru/t-pru ! 328b5e54d4d9c8c1b0ff7801980a0fda gcc/config/riscv/arch-canonicalize 1b1e5fb14202743e68ddd48543aca24e gcc/config/riscv/constraints.md ef0028af881cf895e537c21cc4643fb8 gcc/config/riscv/elf.h de2fc9c3ace4fd5d8f5573b8bd906069 gcc/config/riscv/freebsd.h *************** f60d94e10e9a0c6a4ddae1f3aae0bbc4 gcc/co *** 4522,4528 **** fe56b04e91c00c9e49f48d845571ab3b gcc/config/riscv/riscv-subset.h 100c0a3c8832058427f3f3ead05a0e99 gcc/config/riscv/riscv.c 3fae617bcb3cc8d28a0150ce3dd2831d gcc/config/riscv/riscv.h ! 669de2f404329e0417902902f3dfab46 gcc/config/riscv/riscv.md eaec766078425731f12d482d8e7a7f03 gcc/config/riscv/riscv.opt 0a71dd013f158a4aa8183a3df7bfead1 gcc/config/riscv/rtems.h 462630614e6e7a6209f8f18b6dff0eef gcc/config/riscv/sifive-7.md --- 4523,4529 ---- fe56b04e91c00c9e49f48d845571ab3b gcc/config/riscv/riscv-subset.h 100c0a3c8832058427f3f3ead05a0e99 gcc/config/riscv/riscv.c 3fae617bcb3cc8d28a0150ce3dd2831d gcc/config/riscv/riscv.h ! 40c1f49c070cb84e5aece42017c81afc gcc/config/riscv/riscv.md eaec766078425731f12d482d8e7a7f03 gcc/config/riscv/riscv.opt 0a71dd013f158a4aa8183a3df7bfead1 gcc/config/riscv/rtems.h 462630614e6e7a6209f8f18b6dff0eef gcc/config/riscv/sifive-7.md *************** eaec766078425731f12d482d8e7a7f03 gcc/co *** 4531,4537 **** d8ae7bee35ef1ecd77143535da9aae78 gcc/config/riscv/t-linux 1ed181a166b1d0e206c4a4e0024cce2a gcc/config/riscv/t-linux-multilib b289440a78dd64e8c68b767f483a39bc gcc/config/riscv/t-riscv ! 7dbd61c5a07b1adefe5429a41008fda5 gcc/config/riscv/t-rtems 97a182737ed075d29be4ab1e848de420 gcc/config/riscv/t-withmultilib 0478f4e79601d91fb8ad8f210b304a7b gcc/config/riscv/t-withmultilib-generator 61a949c3b6e9949677ecb87c7dd89aac gcc/config/rl78/constraints.md --- 4532,4538 ---- d8ae7bee35ef1ecd77143535da9aae78 gcc/config/riscv/t-linux 1ed181a166b1d0e206c4a4e0024cce2a gcc/config/riscv/t-linux-multilib b289440a78dd64e8c68b767f483a39bc gcc/config/riscv/t-riscv ! b46131fe425be428d4d66c8f653f3d13 gcc/config/riscv/t-rtems 97a182737ed075d29be4ab1e848de420 gcc/config/riscv/t-withmultilib 0478f4e79601d91fb8ad8f210b304a7b gcc/config/riscv/t-withmultilib-generator 61a949c3b6e9949677ecb87c7dd89aac gcc/config/rl78/constraints.md *************** ff3f6b224d4ef9f550a96131d45e0003 gcc/co *** 4567,4576 **** d0cdfe5862d3c4d23b88f181a823e824 gcc/config/rs6000/aix71.h cc7b2251556991a7fa60f7bf6b8f4fb8 gcc/config/rs6000/aix72.h 6cf9077f7280ae45fdb83156bcbed199 gcc/config/rs6000/altivec.h ! 65b676e981a532defde7fdd5e321ffe1 gcc/config/rs6000/altivec.md 0c189a8215a637236016075d7153c0dd gcc/config/rs6000/amo.h 8c3585d22f96b860147fbb93ebbbf06f gcc/config/rs6000/biarch64.h ! c82bb588a1f3b6715f005e723b02aaf9 gcc/config/rs6000/bmi2intrin.h f60f0b041683bd09fde61d526b77a06b gcc/config/rs6000/bmiintrin.h fea022102d4856327a0e7478d476825d gcc/config/rs6000/cell.md 39f59e5bae022fcbbef313410d10672c gcc/config/rs6000/constraints.md --- 4568,4577 ---- d0cdfe5862d3c4d23b88f181a823e824 gcc/config/rs6000/aix71.h cc7b2251556991a7fa60f7bf6b8f4fb8 gcc/config/rs6000/aix72.h 6cf9077f7280ae45fdb83156bcbed199 gcc/config/rs6000/altivec.h ! cd111eaaa23c0b87e1a1e3ce85dd2d4a gcc/config/rs6000/altivec.md 0c189a8215a637236016075d7153c0dd gcc/config/rs6000/amo.h 8c3585d22f96b860147fbb93ebbbf06f gcc/config/rs6000/biarch64.h ! a0a45dd2206fad107854ab34a6a8c9ea gcc/config/rs6000/bmi2intrin.h f60f0b041683bd09fde61d526b77a06b gcc/config/rs6000/bmiintrin.h fea022102d4856327a0e7478d476825d gcc/config/rs6000/cell.md 39f59e5bae022fcbbef313410d10672c gcc/config/rs6000/constraints.md *************** e48e30df023432a0999f7219dd167766 gcc/co *** 4592,4598 **** 1645c6c2584fc4d395804e020830ff0f gcc/config/rs6000/eabi.h b106f3dd78c027be0e6fa9e040d3d7d1 gcc/config/rs6000/eabialtivec.h 8fe4344bd8fd32f48a15e10f99d9f820 gcc/config/rs6000/eabisim.h ! bd291b65ad28211370bde89d9e88c7ae gcc/config/rs6000/emmintrin.h fbeee1c894dc51358ee6abecca818f38 gcc/config/rs6000/freebsd.h c815c61d1f8556dee28776379d38f97f gcc/config/rs6000/freebsd64.h b4f8e33b4342aea64cc25b24e2b5ce17 gcc/config/rs6000/fusion.md --- 4593,4599 ---- 1645c6c2584fc4d395804e020830ff0f gcc/config/rs6000/eabi.h b106f3dd78c027be0e6fa9e040d3d7d1 gcc/config/rs6000/eabialtivec.h 8fe4344bd8fd32f48a15e10f99d9f820 gcc/config/rs6000/eabisim.h ! 5fedb3789acc17fe71b855ed4ed39d36 gcc/config/rs6000/emmintrin.h fbeee1c894dc51358ee6abecca818f38 gcc/config/rs6000/freebsd.h c815c61d1f8556dee28776379d38f97f gcc/config/rs6000/freebsd64.h b4f8e33b4342aea64cc25b24e2b5ce17 gcc/config/rs6000/fusion.md *************** eb5963a9afac325222a3cf411425b69b gcc/co *** 4609,4622 **** 254a479975bb0033d38c5532c46689a5 gcc/config/rs6000/linuxaltivec.h b3d3483f2acc61db4751725d0556e646 gcc/config/rs6000/lynx.h 0cc3c5f9101501b8253ce3176c3ffce4 gcc/config/rs6000/milli.exp ! 7151c90fd6e11f55cab19007cca511bc gcc/config/rs6000/mm_malloc.h ! d3dde08c758b098e296736f30b64afac gcc/config/rs6000/mma.md ! c40f50dc03075bb41a64373adb30112d gcc/config/rs6000/mmintrin.h 7da8551ea5a0e205407dfa782c773ce4 gcc/config/rs6000/mpc.md 5bca07190d45ef2ade8d1a237c5ac20b gcc/config/rs6000/netbsd.h d1918653ab5439dfd3636ceb66800628 gcc/config/rs6000/option-defaults.h 46370b1354544906ee1f18bf5ee65e42 gcc/config/rs6000/pcrel-opt.md ! 84d852177b47e1fcd8d20355aeb4a2a4 gcc/config/rs6000/pmmintrin.h 41a5be3155e7ed775bb412cbe0c0ed19 gcc/config/rs6000/power10.md ee97c3d3da7334e31ee2e714ae392125 gcc/config/rs6000/power4.md 377d2d64b0642c07bdab693f542c4988 gcc/config/rs6000/power5.md --- 4610,4623 ---- 254a479975bb0033d38c5532c46689a5 gcc/config/rs6000/linuxaltivec.h b3d3483f2acc61db4751725d0556e646 gcc/config/rs6000/lynx.h 0cc3c5f9101501b8253ce3176c3ffce4 gcc/config/rs6000/milli.exp ! 565b63349f6e114554447b232a5490ec gcc/config/rs6000/mm_malloc.h ! c06a97a99e488b7da4fdb5b8a3255712 gcc/config/rs6000/mma.md ! 77c63d8e54b9dc6ce0aaea2a01888513 gcc/config/rs6000/mmintrin.h 7da8551ea5a0e205407dfa782c773ce4 gcc/config/rs6000/mpc.md 5bca07190d45ef2ade8d1a237c5ac20b gcc/config/rs6000/netbsd.h d1918653ab5439dfd3636ceb66800628 gcc/config/rs6000/option-defaults.h 46370b1354544906ee1f18bf5ee65e42 gcc/config/rs6000/pcrel-opt.md ! 3aa34143693d60ca1db93ff26687b43f gcc/config/rs6000/pmmintrin.h 41a5be3155e7ed775bb412cbe0c0ed19 gcc/config/rs6000/power10.md ee97c3d3da7334e31ee2e714ae392125 gcc/config/rs6000/power4.md 377d2d64b0642c07bdab693f542c4988 gcc/config/rs6000/power5.md *************** bb48fecf965ae77e0dd88aae5488f291 gcc/co *** 4628,4659 **** 751ccf6be4b01d18f226acef853ef444 gcc/config/rs6000/ppc-auxv.h bfe475364cf3901b029f758b9ccfd8b8 gcc/config/rs6000/ppu_intrinsics.h e03ab0dade27c849af56b6b99de13cd4 gcc/config/rs6000/predicates.md ! 90d62e46a8384f3f606d9cacbd7fcf20 gcc/config/rs6000/rs6000-builtin.def 600d0487670d447fdf8b9c3e58e76c9a gcc/config/rs6000/rs6000-c.c ! 92110d3957e94da0c004e1a0ebf2d849 gcc/config/rs6000/rs6000-call.c 928f5d55248167067486388e4cc0a56e gcc/config/rs6000/rs6000-cpus.def 7c18f5387ecc6581faacf61631fecb37 gcc/config/rs6000/rs6000-d.c 2d982a648287d8b1211d52b4f1335bb6 gcc/config/rs6000/rs6000-internal.h bdb01381a7509193220dbd43b881802b gcc/config/rs6000/rs6000-linux.c ! d7eb270fa829edb1e107dc421d30800a gcc/config/rs6000/rs6000-logue.c 8d3fa7c26d80c9ee359e3991e289666e gcc/config/rs6000/rs6000-modes.def e65509760cf40241ff24df3a715c4f43 gcc/config/rs6000/rs6000-modes.h b7cac3afa5fb8f71d3b8ea1a0cd5c7ce gcc/config/rs6000/rs6000-opts.h ! 8b947d2151ae91ad54fac00cb369345c gcc/config/rs6000/rs6000-p8swap.c 26ea894428823455da38add11e434423 gcc/config/rs6000/rs6000-passes.def 00c6fc44dcc86d36065fbda93661b17b gcc/config/rs6000/rs6000-pcrel-opt.c ! 39fa09a60604eae142447fcf0f829606 gcc/config/rs6000/rs6000-protos.h 8cfc3e1c712d5e4cef1250c605cdca98 gcc/config/rs6000/rs6000-string.c 7a14e24f9ddae251943bacda6071c833 gcc/config/rs6000/rs6000-tables.opt ! 6f928343f299cc0a238e78460e5d8611 gcc/config/rs6000/rs6000.c ! 703c5b2480408d2cecd0ae48da054aad gcc/config/rs6000/rs6000.h ! 93f46761638f204b23488e30666a914a gcc/config/rs6000/rs6000.md f5bccc13629fee1e5e80d2c56373e1ab gcc/config/rs6000/rs6000.opt c7f02424d98bd46c451c6c03893132ba gcc/config/rs6000/rs64.md ! 49c33d9ae6a5142ba9a3e0c617c6cdc2 gcc/config/rs6000/rtems.h b13403d0a3113444b4d47950f5cba69e gcc/config/rs6000/secureplt.h f6fd7be6926a0f8aa7fd3c3c105fe905 gcc/config/rs6000/si2vmx.h ! 050357a1637de917eedddffab4cef27f gcc/config/rs6000/smmintrin.h 1cb7c7dac47be97126c30f4b384ab8de gcc/config/rs6000/spu2vmx.h 35284754edbf099ba3f34621db1e14f3 gcc/config/rs6000/sync.md 02b934139a896ec4d1951184fe879275 gcc/config/rs6000/sysv4.h --- 4629,4660 ---- 751ccf6be4b01d18f226acef853ef444 gcc/config/rs6000/ppc-auxv.h bfe475364cf3901b029f758b9ccfd8b8 gcc/config/rs6000/ppu_intrinsics.h e03ab0dade27c849af56b6b99de13cd4 gcc/config/rs6000/predicates.md ! 04b29f32ebcc3af6af38115e27bc6459 gcc/config/rs6000/rs6000-builtin.def 600d0487670d447fdf8b9c3e58e76c9a gcc/config/rs6000/rs6000-c.c ! 20301da7df43e3e4515f20703c568655 gcc/config/rs6000/rs6000-call.c 928f5d55248167067486388e4cc0a56e gcc/config/rs6000/rs6000-cpus.def 7c18f5387ecc6581faacf61631fecb37 gcc/config/rs6000/rs6000-d.c 2d982a648287d8b1211d52b4f1335bb6 gcc/config/rs6000/rs6000-internal.h bdb01381a7509193220dbd43b881802b gcc/config/rs6000/rs6000-linux.c ! 2354aa77e29edefb43b39fdda66e34f2 gcc/config/rs6000/rs6000-logue.c 8d3fa7c26d80c9ee359e3991e289666e gcc/config/rs6000/rs6000-modes.def e65509760cf40241ff24df3a715c4f43 gcc/config/rs6000/rs6000-modes.h b7cac3afa5fb8f71d3b8ea1a0cd5c7ce gcc/config/rs6000/rs6000-opts.h ! dd75bd9fb5a316178a5a865e27dbf5fa gcc/config/rs6000/rs6000-p8swap.c 26ea894428823455da38add11e434423 gcc/config/rs6000/rs6000-passes.def 00c6fc44dcc86d36065fbda93661b17b gcc/config/rs6000/rs6000-pcrel-opt.c ! 7cbb179b585c27591492c12df504bcfb gcc/config/rs6000/rs6000-protos.h 8cfc3e1c712d5e4cef1250c605cdca98 gcc/config/rs6000/rs6000-string.c 7a14e24f9ddae251943bacda6071c833 gcc/config/rs6000/rs6000-tables.opt ! 464524dd01279d36e7088ac36df7f914 gcc/config/rs6000/rs6000.c ! eda531e1209a480df29e9165f839d271 gcc/config/rs6000/rs6000.h ! d7bc1ae2f8d76f6fca7425e1d40039bc gcc/config/rs6000/rs6000.md f5bccc13629fee1e5e80d2c56373e1ab gcc/config/rs6000/rs6000.opt c7f02424d98bd46c451c6c03893132ba gcc/config/rs6000/rs64.md ! 0e39e209d829a36a89d8676fb92a1993 gcc/config/rs6000/rtems.h b13403d0a3113444b4d47950f5cba69e gcc/config/rs6000/secureplt.h f6fd7be6926a0f8aa7fd3c3c105fe905 gcc/config/rs6000/si2vmx.h ! ee85c2dc5dda18f867207527dd696bff gcc/config/rs6000/smmintrin.h 1cb7c7dac47be97126c30f4b384ab8de gcc/config/rs6000/spu2vmx.h 35284754edbf099ba3f34621db1e14f3 gcc/config/rs6000/sync.md 02b934139a896ec4d1951184fe879275 gcc/config/rs6000/sysv4.h *************** a6b51489641a338647ec5c62b2c57063 gcc/co *** 4677,4691 **** 4926b14756498c795fff06e6418c09cc gcc/config/rs6000/t-ppcgas 1b8aba690a39464c4ea9c647d73d6983 gcc/config/rs6000/t-ppcos 67cb48ae93012381975865b9dcd42aa7 gcc/config/rs6000/t-rs6000 ! 6d7850e3ddb17d1bd681815d01556fba gcc/config/rs6000/t-rtems 5b0559fc3febaa083e29dc5d4523f430 gcc/config/rs6000/t-vxworks f11925c88524d2fd457bf77944da1302 gcc/config/rs6000/t-vxworksae 3f0601a68de7a0aee8264b538228d943 gcc/config/rs6000/t-vxworksmils cc0cc82e1a5c2e41b283b3b890368e20 gcc/config/rs6000/titan.md ! e7d9802113af7f106be83e0d60f10bac gcc/config/rs6000/tmmintrin.h 5d59b8706cb4357b0b55b2b15c113f77 gcc/config/rs6000/vec_types.h ! 3583e31aec012fcc7fb04420d37fb7b3 gcc/config/rs6000/vector.md ! 6ca279ba044eebd7d0a7d39898b605af gcc/config/rs6000/vsx.md f36a85a18aa0b7d63a88bb6c96ef28be gcc/config/rs6000/vxworks.h 8d88ff930fb293ccc19693f4198f0ffb gcc/config/rs6000/vxworksae.h 7dc95d3194372c5c0ac2e9b886d11097 gcc/config/rs6000/vxworksmils.h --- 4678,4692 ---- 4926b14756498c795fff06e6418c09cc gcc/config/rs6000/t-ppcgas 1b8aba690a39464c4ea9c647d73d6983 gcc/config/rs6000/t-ppcos 67cb48ae93012381975865b9dcd42aa7 gcc/config/rs6000/t-rs6000 ! 13e3cdcc8fbcdc63ac981e0b0d1d3386 gcc/config/rs6000/t-rtems 5b0559fc3febaa083e29dc5d4523f430 gcc/config/rs6000/t-vxworks f11925c88524d2fd457bf77944da1302 gcc/config/rs6000/t-vxworksae 3f0601a68de7a0aee8264b538228d943 gcc/config/rs6000/t-vxworksmils cc0cc82e1a5c2e41b283b3b890368e20 gcc/config/rs6000/titan.md ! 3c719abb05a40cc37e63b78eda16cddd gcc/config/rs6000/tmmintrin.h 5d59b8706cb4357b0b55b2b15c113f77 gcc/config/rs6000/vec_types.h ! 9321c1123bf88bace0e70513daebeff0 gcc/config/rs6000/vector.md ! bd47d5f6630db57090952b1cd655505c gcc/config/rs6000/vsx.md f36a85a18aa0b7d63a88bb6c96ef28be gcc/config/rs6000/vxworks.h 8d88ff930fb293ccc19693f4198f0ffb gcc/config/rs6000/vxworksae.h 7dc95d3194372c5c0ac2e9b886d11097 gcc/config/rs6000/vxworksmils.h *************** af875b9bcb1ec1da1f33d5e34df8ca7b gcc/co *** 4696,4702 **** 1aff8cb3714b63b6c3367f552dae743f gcc/config/rs6000/x-rs6000 cd352b7dae266946ea1432f3087e478b gcc/config/rs6000/x86intrin.h 1f68ec49be41fcbbc5edf6461732b616 gcc/config/rs6000/xcoff.h ! a395b93932607e082764fd6338f5ddc9 gcc/config/rs6000/xmmintrin.h 6f40de2bceef1102ced6e9e62cf8780f gcc/config/rtems.h 4fc47ba72f6e5bc6ad16e9993ed01536 gcc/config/rtems.opt 7fdcbf6a0552c69e8b6c1b2c0ec17a41 gcc/config/rx/constraints.md --- 4697,4703 ---- 1aff8cb3714b63b6c3367f552dae743f gcc/config/rs6000/x-rs6000 cd352b7dae266946ea1432f3087e478b gcc/config/rs6000/x86intrin.h 1f68ec49be41fcbbc5edf6461732b616 gcc/config/rs6000/xcoff.h ! 97974914e5324f12e6dab5c513193da6 gcc/config/rs6000/xmmintrin.h 6f40de2bceef1102ced6e9e62cf8780f gcc/config/rtems.h 4fc47ba72f6e5bc6ad16e9993ed01536 gcc/config/rtems.opt 7fdcbf6a0552c69e8b6c1b2c0ec17a41 gcc/config/rx/constraints.md *************** b8518a69c0543b0ab9a0194ccd0628c8 gcc/co *** 4735,4741 **** 0a593ac49e545a9bf5dad3b9d13ffead gcc/config/s390/s390-opts.h 0cda88116bff0a5ea22724e0f749d0ea gcc/config/s390/s390-passes.def 82c0fbbcc31f177afdb9a9feec3bb485 gcc/config/s390/s390-protos.h ! 83684bdbbd2861d3047dc9d88135e070 gcc/config/s390/s390.c 12b0051b843bc27c918bc7a7c0621ee1 gcc/config/s390/s390.h b2b097d0d62128852bfcb39d7e0a8e9a gcc/config/s390/s390.md c1758c2e438e31db9a49f289e3d30ad1 gcc/config/s390/s390.opt --- 4736,4742 ---- 0a593ac49e545a9bf5dad3b9d13ffead gcc/config/s390/s390-opts.h 0cda88116bff0a5ea22724e0f749d0ea gcc/config/s390/s390-passes.def 82c0fbbcc31f177afdb9a9feec3bb485 gcc/config/s390/s390-protos.h ! 3bf58ea76c41373b29435d6566a40f1c gcc/config/s390/s390.c 12b0051b843bc27c918bc7a7c0621ee1 gcc/config/s390/s390.h b2b097d0d62128852bfcb39d7e0a8e9a gcc/config/s390/s390.md c1758c2e438e31db9a49f289e3d30ad1 gcc/config/s390/s390.opt *************** a2c001107d11d64a6867b5ad3cf7b5b7 gcc/co *** 4829,4837 **** fcb95746dc487d8860421e2c23676851 gcc/config/sparc/sparc-opts.h d133793a37112a304bbee95d6391bde1 gcc/config/sparc/sparc-passes.def 9da368e6d99a08be41e8a2859745f7d6 gcc/config/sparc/sparc-protos.h ! 33b19a596c65372140a78e376b3d6d02 gcc/config/sparc/sparc.c 76e709251a5150bf023bbfe87bd6697e gcc/config/sparc/sparc.h ! 7ad0daaa5ca1d1686bb621079ea25b7a gcc/config/sparc/sparc.md 64c3cef9b0736ca1716488a3adc1bce2 gcc/config/sparc/sparc.opt b62168c8d25717e777239fb6d2c2bdf7 gcc/config/sparc/sparclet.md c87db0e52fe6f1b5721136e265bd705a gcc/config/sparc/supersparc.md --- 4830,4838 ---- fcb95746dc487d8860421e2c23676851 gcc/config/sparc/sparc-opts.h d133793a37112a304bbee95d6391bde1 gcc/config/sparc/sparc-passes.def 9da368e6d99a08be41e8a2859745f7d6 gcc/config/sparc/sparc-protos.h ! c6d4ece8a5b5fe7970d5ce42ab6ceea6 gcc/config/sparc/sparc.c 76e709251a5150bf023bbfe87bd6697e gcc/config/sparc/sparc.h ! 93f203002000154b4ee62e2d1d9a96d4 gcc/config/sparc/sparc.md 64c3cef9b0736ca1716488a3adc1bce2 gcc/config/sparc/sparc.opt b62168c8d25717e777239fb6d2c2bdf7 gcc/config/sparc/sparclet.md c87db0e52fe6f1b5721136e265bd705a gcc/config/sparc/supersparc.md *************** f4410f8e050ccee97ee129e9063ea8c0 gcc/co *** 4900,4906 **** 557ae9e8eb9d7e236218ae3d90bf8751 gcc/config/tilegx/tilegx.opt c387c44b6e6a7768c8230f9895cb2b2c gcc/config/tilepro/constraints.md f62347fb17ffdccf93a30b860f9f4dc2 gcc/config/tilepro/feedback.h ! 9098dcc4db99d0eaf1d682431bab928e gcc/config/tilepro/gen-mul-tables.cc 73f582498292440c97799a431dd8993e gcc/config/tilepro/linux.h ce9144c5ac87f719213c7fed543cea7d gcc/config/tilepro/mul-tables.c 2aafe04a74fd58c9260f32303a6321b9 gcc/config/tilepro/predicates.md --- 4901,4907 ---- 557ae9e8eb9d7e236218ae3d90bf8751 gcc/config/tilegx/tilegx.opt c387c44b6e6a7768c8230f9895cb2b2c gcc/config/tilepro/constraints.md f62347fb17ffdccf93a30b860f9f4dc2 gcc/config/tilepro/feedback.h ! 2cb67a0d1d46fc2010ab2db9c5cab630 gcc/config/tilepro/gen-mul-tables.cc 73f582498292440c97799a431dd8993e gcc/config/tilepro/linux.h ce9144c5ac87f719213c7fed543cea7d gcc/config/tilepro/mul-tables.c 2aafe04a74fd58c9260f32303a6321b9 gcc/config/tilepro/predicates.md *************** bf27ee51add23d218ca627b3d40fda5d gcc/co *** 5012,5021 **** 84c554b196894a50ca18c5fd8a6edf20 gcc/config/xtensa/xtensa-protos.h 648a531dd6883762e216cc9bea2507d0 gcc/config/xtensa/xtensa.c 06bc01a7ccf9f8e76a200854e3483443 gcc/config/xtensa/xtensa.h ! 6c6d0b85211762c11d2e72a6182bb110 gcc/config/xtensa/xtensa.md f5b73b7b0901f94c273f343137c0a387 gcc/config/xtensa/xtensa.opt ! 1ba5e43f94b8286a6f2912dbb52f200e gcc/configure ! a336102eddc61c8a86cbc237b6a0ce5c gcc/configure.ac 27d42bf7c74759dfd549975615fc5068 gcc/context.c 16c3aa3c912f686f2a31e9390d85475c gcc/context.h f4ce7d4c40b8bd5fdb65296621e3c102 gcc/convert.c --- 5013,5022 ---- 84c554b196894a50ca18c5fd8a6edf20 gcc/config/xtensa/xtensa-protos.h 648a531dd6883762e216cc9bea2507d0 gcc/config/xtensa/xtensa.c 06bc01a7ccf9f8e76a200854e3483443 gcc/config/xtensa/xtensa.h ! 82a6ca8457a439cf22f400bc82844cad gcc/config/xtensa/xtensa.md f5b73b7b0901f94c273f343137c0a387 gcc/config/xtensa/xtensa.opt ! f596f15e03a8815f8dafa0cc201d86c3 gcc/configure ! d939ceb1c0239c3729e69d6f21f15c96 gcc/configure.ac 27d42bf7c74759dfd549975615fc5068 gcc/context.c 16c3aa3c912f686f2a31e9390d85475c gcc/context.h f4ce7d4c40b8bd5fdb65296621e3c102 gcc/convert.c *************** f4ce7d4c40b8bd5fdb65296621e3c102 gcc/co *** 5025,5031 **** b92bf93ad5a628ce259b9055426c0cd4 gcc/coroutine-passes.cc bde87550feaf889731652f27f77bc587 gcc/coverage.c 040e51182a2000cd08580cee4c8591c6 gcc/coverage.h ! d3d396b1c45bdd2d8e6f37a4dc32fdda gcc/cp/ChangeLog d271e3663538ba1f3281cab3838e92cd gcc/cp/ChangeLog-1993 f5a44adbc05521162350ca409d1d95ce gcc/cp/ChangeLog-1994 ac55db48d964cb5469ff03c1cd3ee04d gcc/cp/ChangeLog-1995 --- 5026,5032 ---- b92bf93ad5a628ce259b9055426c0cd4 gcc/coroutine-passes.cc bde87550feaf889731652f27f77bc587 gcc/coverage.c 040e51182a2000cd08580cee4c8591c6 gcc/coverage.h ! 97dcbf8e37e5cf82cbb13299a03a5957 gcc/cp/ChangeLog d271e3663538ba1f3281cab3838e92cd gcc/cp/ChangeLog-1993 f5a44adbc05521162350ca409d1d95ce gcc/cp/ChangeLog-1994 ac55db48d964cb5469ff03c1cd3ee04d gcc/cp/ChangeLog-1995 *************** f6ebb1c64d8e002666e58a4da0d97ecb gcc/cp *** 5056,5092 **** 1ea0510e0c84257e030079fda09b655d gcc/cp/ChangeLog-2020 c1c7801b9b0f379e702a4f6cb83972e7 gcc/cp/ChangeLog.ptr 9aa3cd9f75c785de9f51446e3f295515 gcc/cp/ChangeLog.tree-ssa ! 82f86a266d5edfdd6fbdee627fdfc94d gcc/cp/Make-lang.in ! 805a74c176fc9da5c8c00650be6fa813 gcc/cp/call.c 013fc77930854f5ca6df4b4955b9cd5d gcc/cp/cfns.gperf 94073c4e9f5c434dbd02f5fab8ef2fec gcc/cp/cfns.h aa4071bfecf6b015c47cdbab9841661a gcc/cp/class.c 52c149e840d6ef546324992e040dffc9 gcc/cp/config-lang.in ! 281b240e64442eca3828a39ab3450365 gcc/cp/constexpr.c ! 2d187983f45a0e24913874acf4ab80b9 gcc/cp/constraint.cc ! 774b12ba7796f225fc0b3873743b4046 gcc/cp/coroutines.cc ! 3adde1f450aedb33649d2497891e5bc6 gcc/cp/cp-gimplify.c 9f675ade86f6f438186c3359d251522d gcc/cp/cp-lang.c 3a17e28f03f7b86b06a0f7f2f1b38ee1 gcc/cp/cp-name-hint.h 6546ac35987ddbbd4baddabf4a418fdc gcc/cp/cp-objcp-common.c fc5f614233d1e1aab44be266429426d9 gcc/cp/cp-objcp-common.h e5a3c0227c5d7f6f15753ecf70d86dce gcc/cp/cp-tree.def ! c15606a3bc0492328f29aebce8f255c1 gcc/cp/cp-tree.h ad2891a30f319f1059b3cd8cb85c2a66 gcc/cp/cp-ubsan.c 9f7577d6131c40516642a76a3cd4b349 gcc/cp/cvt.c 80fc2cbdfb0b939d06eb0c83cec629b0 gcc/cp/cxx-pretty-print.c f217ad40ae4095f745573953940bc517 gcc/cp/cxx-pretty-print.h ! 2113714dc6eb431ec3b698883f0a86f7 gcc/cp/decl.c 2ee48334d4ea854bc0b6138b17db0eca gcc/cp/decl.h ! 8f6d5e2435483bb9efe75ff263436eb1 gcc/cp/decl2.c babde369bad84c4348cbb81fef27de19 gcc/cp/dump.c 65e7fee5d2a2ff328b09d262bdeb3b42 gcc/cp/error.c ae9a51d72d46922925309791e4610beb gcc/cp/except.c ! 9ef7eb731264636da96bb3ee4f5d92bd gcc/cp/expr.c ! bf339c04a11eb1ff6ae77b76d8a44e0c gcc/cp/friend.c af1b9753c30b60683233adf6dc1ebed9 gcc/cp/g++spec.c ! b1ac51933647fe1ccb10f6135b3d52df gcc/cp/init.c ! 778410400a5a0810061bddb226c20863 gcc/cp/lambda.c 1b5fe425de21c6959e8fcf809a4d9bf0 gcc/cp/lang-specs.h 8b55a87f580d7fabcd05e1be8bf8678a gcc/cp/lex.c 9a5b5f363f6a7bd9716c92383bbb1288 gcc/cp/logic.cc --- 5057,5093 ---- 1ea0510e0c84257e030079fda09b655d gcc/cp/ChangeLog-2020 c1c7801b9b0f379e702a4f6cb83972e7 gcc/cp/ChangeLog.ptr 9aa3cd9f75c785de9f51446e3f295515 gcc/cp/ChangeLog.tree-ssa ! d2bd0fd46a7f9c4ee3b56d9f428d65e0 gcc/cp/Make-lang.in ! afb087863e6715ff165d052708bf4414 gcc/cp/call.c 013fc77930854f5ca6df4b4955b9cd5d gcc/cp/cfns.gperf 94073c4e9f5c434dbd02f5fab8ef2fec gcc/cp/cfns.h aa4071bfecf6b015c47cdbab9841661a gcc/cp/class.c 52c149e840d6ef546324992e040dffc9 gcc/cp/config-lang.in ! 59ef4b840ac9f1db792009b9bdaa9581 gcc/cp/constexpr.c ! 9ae4cb52106e89d9c5a2e781033620a8 gcc/cp/constraint.cc ! a6a2f78d1d373857ec832b0b31bf44bf gcc/cp/coroutines.cc ! 2a1fbafd31afd2c7f72112e577b564c8 gcc/cp/cp-gimplify.c 9f675ade86f6f438186c3359d251522d gcc/cp/cp-lang.c 3a17e28f03f7b86b06a0f7f2f1b38ee1 gcc/cp/cp-name-hint.h 6546ac35987ddbbd4baddabf4a418fdc gcc/cp/cp-objcp-common.c fc5f614233d1e1aab44be266429426d9 gcc/cp/cp-objcp-common.h e5a3c0227c5d7f6f15753ecf70d86dce gcc/cp/cp-tree.def ! f9a574462af6997cf29648202b551907 gcc/cp/cp-tree.h ad2891a30f319f1059b3cd8cb85c2a66 gcc/cp/cp-ubsan.c 9f7577d6131c40516642a76a3cd4b349 gcc/cp/cvt.c 80fc2cbdfb0b939d06eb0c83cec629b0 gcc/cp/cxx-pretty-print.c f217ad40ae4095f745573953940bc517 gcc/cp/cxx-pretty-print.h ! daa9fe27806f72fe532df355e0b0d748 gcc/cp/decl.c 2ee48334d4ea854bc0b6138b17db0eca gcc/cp/decl.h ! 3280ae91b5be9675d30d1cb050bc959b gcc/cp/decl2.c babde369bad84c4348cbb81fef27de19 gcc/cp/dump.c 65e7fee5d2a2ff328b09d262bdeb3b42 gcc/cp/error.c ae9a51d72d46922925309791e4610beb gcc/cp/except.c ! 241a55f9bb802f8d3cc6054dd4cd9178 gcc/cp/expr.c ! b791a0dba8e31384d08e932019f00711 gcc/cp/friend.c af1b9753c30b60683233adf6dc1ebed9 gcc/cp/g++spec.c ! 035a940de6c2d86dc453e9621c5c5ce8 gcc/cp/init.c ! 037fc13026820d090e2071641efbedf8 gcc/cp/lambda.c 1b5fe425de21c6959e8fcf809a4d9bf0 gcc/cp/lang-specs.h 8b55a87f580d7fabcd05e1be8bf8678a gcc/cp/lex.c 9a5b5f363f6a7bd9716c92383bbb1288 gcc/cp/logic.cc *************** e9bd33d0476c27e8dc7ae163523b0c43 gcc/cp *** 5095,5115 **** 7e088d81d8f48a2718ab084df953d006 gcc/cp/mapper-client.h e9215833b37c3eb15eca691a16a697c2 gcc/cp/mapper-resolver.cc e9a208e30d27c64ecd8cf48641166778 gcc/cp/method.c ! 42305a8479586d5aa1f847d57d4bf6eb gcc/cp/module.cc 4f44ae45107fb19664c4ea6fc1f9617d gcc/cp/name-lookup.c 7942e2da44ee806a67fc5508fa55227c gcc/cp/name-lookup.h 74ef5d5c783b19f58d24af2f5d586229 gcc/cp/operators.def 135e2526b78ff7fba60e97120acd13ce gcc/cp/optimize.c ! 01006045247b7da33610408f203ef633 gcc/cp/parser.c 33e6205b133939ff76752369e76e776e gcc/cp/parser.h ! 3b6f3c5af64170b7fbea87816eec8423 gcc/cp/pt.c 185afe382f5cbb5102c5c681fca68144 gcc/cp/ptree.c d406c7234ce4950b24a30a51bdfdd50a gcc/cp/rtti.c 8cb37681d9be422bc5accc1da48d5a75 gcc/cp/search.c ! 9ed1ff9cfbe2339c04127e55d60e3ea3 gcc/cp/semantics.c ! 192df66d3d7d2e34c2ba762538f4a0a5 gcc/cp/tree.c 7edfa58f1051f1f2f0f0b14381ef44a3 gcc/cp/type-utils.h ! 925b792e840a25f5f671128d881e89f3 gcc/cp/typeck.c e4cc977761b34df297265283c01fd95a gcc/cp/typeck2.c 2106dba4a8c689a23ae0c6ed874a57e3 gcc/cp/vtable-class-hierarchy.c a1dcb34fdd7a1dfb94f27bc0ac1a9306 gcc/cppbuiltin.c --- 5096,5116 ---- 7e088d81d8f48a2718ab084df953d006 gcc/cp/mapper-client.h e9215833b37c3eb15eca691a16a697c2 gcc/cp/mapper-resolver.cc e9a208e30d27c64ecd8cf48641166778 gcc/cp/method.c ! c9c31fd4be4157e651437f69bab47e87 gcc/cp/module.cc 4f44ae45107fb19664c4ea6fc1f9617d gcc/cp/name-lookup.c 7942e2da44ee806a67fc5508fa55227c gcc/cp/name-lookup.h 74ef5d5c783b19f58d24af2f5d586229 gcc/cp/operators.def 135e2526b78ff7fba60e97120acd13ce gcc/cp/optimize.c ! acd2c7b97ff043208e88bf5e6ca82647 gcc/cp/parser.c 33e6205b133939ff76752369e76e776e gcc/cp/parser.h ! d3d3948dd198b0e1166f6543c6a0bd15 gcc/cp/pt.c 185afe382f5cbb5102c5c681fca68144 gcc/cp/ptree.c d406c7234ce4950b24a30a51bdfdd50a gcc/cp/rtti.c 8cb37681d9be422bc5accc1da48d5a75 gcc/cp/search.c ! d5a0695e3c50ba82571f717972d38f63 gcc/cp/semantics.c ! 0396d0f5ebabe1de78784a27789c5579 gcc/cp/tree.c 7edfa58f1051f1f2f0f0b14381ef44a3 gcc/cp/type-utils.h ! 5df4b424167aea4acc1e57d2a76c5b80 gcc/cp/typeck.c e4cc977761b34df297265283c01fd95a gcc/cp/typeck2.c 2106dba4a8c689a23ae0c6ed874a57e3 gcc/cp/vtable-class-hierarchy.c a1dcb34fdd7a1dfb94f27bc0ac1a9306 gcc/cppbuiltin.c *************** a1dcb34fdd7a1dfb94f27bc0ac1a9306 gcc/cp *** 5117,5127 **** 6e7d827a3ec222ae6ca62e9c22436e8a gcc/cppdefault.c 35cd9b2cb53030bd2c74276e74b26538 gcc/cppdefault.h 5c83369d9944aaedc414144a7e855b95 gcc/cprop.c ! 8453e4603f3a5d2e76b69d883c9bb4e9 gcc/cse.c ! a7c636b547b9582524b0bd62c6178487 gcc/cselib.c ! 857b8e6c3caa1a049b93761fde09419a gcc/cselib.h 1ded054093de910d9786c62bc4fe8cc6 gcc/cstamp-h.in ! 4851f4c4d8a370263326460fe4537aab gcc/d/ChangeLog 86f687c485111eedca2eb048294f957e gcc/d/ChangeLog-2006 70ed1c47fd9b3f5dd95055642ed79265 gcc/d/ChangeLog-2007 a7090ab2dd83aa4f44823c17566b83ef gcc/d/ChangeLog-2008 --- 5118,5128 ---- 6e7d827a3ec222ae6ca62e9c22436e8a gcc/cppdefault.c 35cd9b2cb53030bd2c74276e74b26538 gcc/cppdefault.h 5c83369d9944aaedc414144a7e855b95 gcc/cprop.c ! 18ea5d9f80ae5856dd7d8cff50fde036 gcc/cse.c ! c46d05fc82c5d23635826d70bb1bbe79 gcc/cselib.c ! afc06cbc81e04301f2d2ce40e905e36b gcc/cselib.h 1ded054093de910d9786c62bc4fe8cc6 gcc/cstamp-h.in ! b125eb4b51ebc50ff5fad465fdda4e22 gcc/d/ChangeLog 86f687c485111eedca2eb048294f957e gcc/d/ChangeLog-2006 70ed1c47fd9b3f5dd95055642ed79265 gcc/d/ChangeLog-2007 a7090ab2dd83aa4f44823c17566b83ef gcc/d/ChangeLog-2008 *************** ac5afa7752655d02611f15cb06067ee5 gcc/d/ *** 5144,5150 **** 2859511236eb18116b8f704c0893fc82 gcc/d/d-builtins.cc 79699adb49367908f31e0aba2aaaa568 gcc/d/d-codegen.cc 75ceab1f211190aa8a607de211d92550 gcc/d/d-compiler.cc ! cdd16f63672008a0bf919957625a0ae1 gcc/d/d-convert.cc c68cc8b289e0bed7991d8ba214514b52 gcc/d/d-ctfloat.cc 96e81ac3898e23a215821a9ca3faac03 gcc/d/d-diagnostic.cc 9ad7d94122a0e53b642e569ef01bd97c gcc/d/d-frontend.cc --- 5145,5151 ---- 2859511236eb18116b8f704c0893fc82 gcc/d/d-builtins.cc 79699adb49367908f31e0aba2aaaa568 gcc/d/d-codegen.cc 75ceab1f211190aa8a607de211d92550 gcc/d/d-compiler.cc ! 4a98131d73049057f6f45e3f49fde876 gcc/d/d-convert.cc c68cc8b289e0bed7991d8ba214514b52 gcc/d/d-ctfloat.cc 96e81ac3898e23a215821a9ca3faac03 gcc/d/d-diagnostic.cc 9ad7d94122a0e53b642e569ef01bd97c gcc/d/d-frontend.cc *************** c68cc8b289e0bed7991d8ba214514b52 gcc/d/ *** 5153,5159 **** 96052adec5c3542ca6303076367be7f9 gcc/d/d-lang.cc 4caed6522470a27c7bc55349d4e41997 gcc/d/d-longdouble.cc a80cf667b6cde2503c142172b86d4a32 gcc/d/d-port.cc ! 7706828e60cb570bd143b79764e2026a gcc/d/d-spec.cc 5a2b9ffbe1b7e05aae3752561c81df38 gcc/d/d-system.h 269cf45854f0a7573a9c0fee24922f96 gcc/d/d-target-def.h 47901d67a22e6cb06354d26f256b1f44 gcc/d/d-target.cc --- 5154,5160 ---- 96052adec5c3542ca6303076367be7f9 gcc/d/d-lang.cc 4caed6522470a27c7bc55349d4e41997 gcc/d/d-longdouble.cc a80cf667b6cde2503c142172b86d4a32 gcc/d/d-port.cc ! 7ab775debb8937fa24fe04e82def9493 gcc/d/d-spec.cc 5a2b9ffbe1b7e05aae3752561c81df38 gcc/d/d-system.h 269cf45854f0a7573a9c0fee24922f96 gcc/d/d-target-def.h 47901d67a22e6cb06354d26f256b1f44 gcc/d/d-target.cc *************** e510e0920097f33c1584945cb08e080f gcc/d/ *** 5161,5167 **** bd403a5022b9229546c86481f8f9b61e gcc/d/d-target.h 03f0da7679723f02dabef26c57f6b354 gcc/d/d-tree.def ea5292cd7004a68b8465731456abc987 gcc/d/d-tree.h ! 70d017a7d035eb8d878bcf3b962c2237 gcc/d/decl.cc 3b33e14d54fdeb23eedefb85531d96d9 gcc/d/dmd/MERGE 56e5dec62f6a10592384f715f378eef0 gcc/d/dmd/access.c 3791d70488bc98342964c686b935b89c gcc/d/dmd/aggregate.h --- 5162,5168 ---- bd403a5022b9229546c86481f8f9b61e gcc/d/d-target.h 03f0da7679723f02dabef26c57f6b354 gcc/d/d-tree.def ea5292cd7004a68b8465731456abc987 gcc/d/d-tree.h ! 1d03631158cceeca027deedd1a0fa0da gcc/d/decl.cc 3b33e14d54fdeb23eedefb85531d96d9 gcc/d/dmd/MERGE 56e5dec62f6a10592384f715f378eef0 gcc/d/dmd/access.c 3791d70488bc98342964c686b935b89c gcc/d/dmd/aggregate.h *************** dda2e57e23eed0e5d751a553fb16d446 gcc/d/ *** 5212,5218 **** 577fa35cc9a9391c0626f6c86b7ff946 gcc/d/dmd/escape.c 64a57e95f2aafac3bedd65e080c585d9 gcc/d/dmd/expression.c b29b7963b6b682ffdcfde106efa2df33 gcc/d/dmd/expression.h ! 5b8f33811a9cdce4c63c076519318ca3 gcc/d/dmd/expressionsem.c 7f44497a182abfa3fb9dc8a2759f0f64 gcc/d/dmd/func.c 584c6d25fe0605ec4df673034ed70a09 gcc/d/dmd/globals.h 7a04a18c4e7fb560860651d33c970846 gcc/d/dmd/hdrgen.c --- 5213,5219 ---- 577fa35cc9a9391c0626f6c86b7ff946 gcc/d/dmd/escape.c 64a57e95f2aafac3bedd65e080c585d9 gcc/d/dmd/expression.c b29b7963b6b682ffdcfde106efa2df33 gcc/d/dmd/expression.h ! b3dac1966fe6a80f44b42f3cf2a64bf0 gcc/d/dmd/expressionsem.c 7f44497a182abfa3fb9dc8a2759f0f64 gcc/d/dmd/func.c 584c6d25fe0605ec4df673034ed70a09 gcc/d/dmd/globals.h 7a04a18c4e7fb560860651d33c970846 gcc/d/dmd/hdrgen.c *************** df2a78f5b00debf6e042e43602e9d42c gcc/d/ *** 5301,5309 **** 24197b380374c982964e1ded75baa656 gcc/d/dmd/utils.c 4f4d6813c8ea201f84a5a083a752c723 gcc/d/dmd/version.h 0ab1d21cbddf7956fc552e2637e36eb7 gcc/d/dmd/visitor.h ! 972db9b2d0b44561d878e4726d7bf38c gcc/d/expr.cc ! b12d8cdbe556dcc8f51b72d45078d563 gcc/d/gdc.texi ! 4ef002e6f38a41b929d9fb7ee2d7d853 gcc/d/imports.cc fd28164e92119c746c3971d13fd80699 gcc/d/intrinsics.cc 4fe7ce256ef44a3d0fae8336b3d3ed5d gcc/d/intrinsics.def d86483b35c844004766bacbcd21e16ed gcc/d/lang-specs.h --- 5302,5310 ---- 24197b380374c982964e1ded75baa656 gcc/d/dmd/utils.c 4f4d6813c8ea201f84a5a083a752c723 gcc/d/dmd/version.h 0ab1d21cbddf7956fc552e2637e36eb7 gcc/d/dmd/visitor.h ! 6938ab9ac55e68adb6649cc1b3bf25bc gcc/d/expr.cc ! 62330f923806ea0075a632280081c9d1 gcc/d/gdc.texi ! ae93b84454e6dc245479c9951106c132 gcc/d/imports.cc fd28164e92119c746c3971d13fd80699 gcc/d/intrinsics.cc 4fe7ce256ef44a3d0fae8336b3d3ed5d gcc/d/intrinsics.def d86483b35c844004766bacbcd21e16ed gcc/d/lang-specs.h *************** dcd9f842c89c2eb8cda2d4e66cfd3a75 gcc/d/ *** 5312,5319 **** ea64a4d9552ea8f63780ef71e40ad1cc gcc/d/modules.cc 920201a2a1193fcf0af779565d49ea5d gcc/d/runtime.cc fb778fcb2c41447123e9fc33e23ee981 gcc/d/runtime.def ! 099e663fecd3413f5850ddf7c3ac9f1d gcc/d/toir.cc ! 8b2d669e1d76dedad749ae14beb662ac gcc/d/typeinfo.cc 5044f1a2a7c0d860d5f118453582b445 gcc/d/types.cc ffe6cb4083340e61aa80419c3ac2f84a gcc/d/verstr.h 888f179fbed34dff2cb09f3941f28b3f gcc/data-streamer-in.c --- 5313,5320 ---- ea64a4d9552ea8f63780ef71e40ad1cc gcc/d/modules.cc 920201a2a1193fcf0af779565d49ea5d gcc/d/runtime.cc fb778fcb2c41447123e9fc33e23ee981 gcc/d/runtime.def ! 1f4f99a715c4970883a5818197628839 gcc/d/toir.cc ! 268eff5b661319b07d40a36ffb74f97b gcc/d/typeinfo.cc 5044f1a2a7c0d860d5f118453582b445 gcc/d/types.cc ffe6cb4083340e61aa80419c3ac2f84a gcc/d/verstr.h 888f179fbed34dff2cb09f3941f28b3f gcc/data-streamer-in.c *************** d3f48eb6291337b70a8663fea43c5e35 gcc/do *** 5362,5399 **** 218582d80c3a5be7ef0215bc9e37347d gcc/doc/configterms.texi 3f7bc37ecd638efa9217dbc8049586bd gcc/doc/contrib.texi 21f4ebe254eeaf839f14e76f6d98e0f3 gcc/doc/contribute.texi ! 4be347ce540d68ba609652150fe5767b gcc/doc/cpp.1 ! 9a76a8fbb00e749ffe25a45fc4151499 gcc/doc/cpp.info f65281217c508bccc04841ecdb70678e gcc/doc/cpp.texi 9fdf410cbb02057509020001009b7a76 gcc/doc/cppdiropts.texi dab6d92d04827098dfeb7e47e827f2b5 gcc/doc/cppenv.texi ! 83f756111b8b2a66eb68208c84092964 gcc/doc/cppinternals.info 5d6d94ebaaee9c663ccd7de2d90928cb gcc/doc/cppinternals.texi ! 0b1d4f633c271ebe3278233e58d2dd20 gcc/doc/cppopts.texi 5e580ffce6393e71cea1d0f253c2235e gcc/doc/cppwarnopts.texi ! 27adb8013ca72a66619395e712c36d90 gcc/doc/extend.texi 25e9d455e6d1bd64d661a3b9b7c760d1 gcc/doc/fragments.texi b286e11fcfd62c37fae56d6d6c31d1fe gcc/doc/frontends.texi ! 075239552ebe343c2bb5085533a8d05c gcc/doc/fsf-funding.7 ! 473b3a7220fc066052b0d23dab975f24 gcc/doc/g++.1 ! 473b3a7220fc066052b0d23dab975f24 gcc/doc/gcc.1 ! cd525b46194415f97726b78f6f2285dc gcc/doc/gcc.info 1b8b50b15f7f7dfd2bfc10cf04e79196 gcc/doc/gcc.texi ! 768bab962d73747ebeb6173aef123d14 gcc/doc/gccinstall.info ! adcb79b32580efc6524846726aa35b34 gcc/doc/gccint.info e0b2b9651dfdfcc12ee2da87c17e11e1 gcc/doc/gccint.texi ! 8ecc5776d3632343caeed8164ff92289 gcc/doc/gcov-dump.1 d9797edde2661ae0e512c8176c290ae9 gcc/doc/gcov-dump.texi ! 6d5d67fa1aa26eb99fab49466de7340e gcc/doc/gcov-tool.1 ca308b028dbb9daa82d92ccca156e07b gcc/doc/gcov-tool.texi ! e4e5030720d97110126eae7ee4d337b6 gcc/doc/gcov.1 fd33c1e0e0091bc38ffbee7177921ff3 gcc/doc/gcov.texi 3bc5fab4bd53960b1121c87434e0b742 gcc/doc/generic.texi ! 30a6efd42c3982776b9e98891bce5e5b gcc/doc/gfdl.7 ! 6c51c207d22bcba97d015676831faa8d gcc/doc/gfortran.1 587484a2f8ff3cf6b292b5c044724d4b gcc/doc/gimple.texi 290370669f02bef1502ada9273e5261f gcc/doc/gnu.texi ! 5a48d55bc69a52aaf35233f47bebfa85 gcc/doc/gpl.7 c89eb85139a4c6829a59358310920b18 gcc/doc/gty.texi 7bf48d369f1899cf21f53b06605706c6 gcc/doc/headerdirs.texi 880f6eba982285c503ae42d08a7abad8 gcc/doc/hostconfig.texi --- 5363,5400 ---- 218582d80c3a5be7ef0215bc9e37347d gcc/doc/configterms.texi 3f7bc37ecd638efa9217dbc8049586bd gcc/doc/contrib.texi 21f4ebe254eeaf839f14e76f6d98e0f3 gcc/doc/contribute.texi ! 14fbd04eb36b213018c5993ac60d51ba gcc/doc/cpp.1 ! 59651a7abb5ede83c681f52df132035b gcc/doc/cpp.info f65281217c508bccc04841ecdb70678e gcc/doc/cpp.texi 9fdf410cbb02057509020001009b7a76 gcc/doc/cppdiropts.texi dab6d92d04827098dfeb7e47e827f2b5 gcc/doc/cppenv.texi ! 734f69fb27fb3fa9851c4e699a50266d gcc/doc/cppinternals.info 5d6d94ebaaee9c663ccd7de2d90928cb gcc/doc/cppinternals.texi ! e359b49f51098d2b4c6976efb731dfc9 gcc/doc/cppopts.texi 5e580ffce6393e71cea1d0f253c2235e gcc/doc/cppwarnopts.texi ! 13926e62bf1cd272aee181de12224599 gcc/doc/extend.texi 25e9d455e6d1bd64d661a3b9b7c760d1 gcc/doc/fragments.texi b286e11fcfd62c37fae56d6d6c31d1fe gcc/doc/frontends.texi ! 8fbe8de616e2be5d772b751e0a5177a1 gcc/doc/fsf-funding.7 ! 9778b022bec8b1c0a921db6ea7a6a4f8 gcc/doc/g++.1 ! 9778b022bec8b1c0a921db6ea7a6a4f8 gcc/doc/gcc.1 ! 88d46a31abb32e525a7aa5899814ef11 gcc/doc/gcc.info 1b8b50b15f7f7dfd2bfc10cf04e79196 gcc/doc/gcc.texi ! af85ce93c4358a2881582693750f9dbf gcc/doc/gccinstall.info ! bf0ebb94b15f2dfb23ebb897617a2aee gcc/doc/gccint.info e0b2b9651dfdfcc12ee2da87c17e11e1 gcc/doc/gccint.texi ! 9717e1366b655a9f25a402c2c5a0f893 gcc/doc/gcov-dump.1 d9797edde2661ae0e512c8176c290ae9 gcc/doc/gcov-dump.texi ! 7e212eca64c70f8d8770d8f0a143018e gcc/doc/gcov-tool.1 ca308b028dbb9daa82d92ccca156e07b gcc/doc/gcov-tool.texi ! 28c3da211cff17add5beaef80dbd9fde gcc/doc/gcov.1 fd33c1e0e0091bc38ffbee7177921ff3 gcc/doc/gcov.texi 3bc5fab4bd53960b1121c87434e0b742 gcc/doc/generic.texi ! 81fcccd0eab32c91ebbe39f0a173c657 gcc/doc/gfdl.7 ! dd1009edce22831faba3f3e89113976a gcc/doc/gfortran.1 587484a2f8ff3cf6b292b5c044724d4b gcc/doc/gimple.texi 290370669f02bef1502ada9273e5261f gcc/doc/gnu.texi ! 6a965ad7eb3b46ebc57c54a5bc6e4c1b gcc/doc/gpl.7 c89eb85139a4c6829a59358310920b18 gcc/doc/gty.texi 7bf48d369f1899cf21f53b06605706c6 gcc/doc/headerdirs.texi 880f6eba982285c503ae42d08a7abad8 gcc/doc/hostconfig.texi *************** b6389c8331319f90193f11ac084e86e4 gcc/do *** 5408,5418 **** 7af71caf0d189c0c71b7268793e1400f gcc/doc/install.texi 532fb3c092b7b296ddcec4a99a0c475d gcc/doc/install.texi2html 2bdd76b105eea8ff35649ac4ffb8eb5d gcc/doc/interface.texi ! 2d88c68d539e547f3a6a0d8382303341 gcc/doc/invoke.texi c0f8bb0ef887855830a3b2948920db28 gcc/doc/languages.texi 0250c30f49d52e180cf510442a084475 gcc/doc/libgcc.texi 3c5a8fa331cb442336e2ff249f1f0aee gcc/doc/loop.texi ! da6758f13cca915f0ef8e900cadb54e7 gcc/doc/lto-dump.1 45b0e2c9fe4e809535fd2665b7efe706 gcc/doc/lto-dump.texi 1e20b8193e6a33b7a5258cacf05c5634 gcc/doc/lto.texi 959966ff2c0bf27c64314d6bdc06d05a gcc/doc/makefile.texi --- 5409,5419 ---- 7af71caf0d189c0c71b7268793e1400f gcc/doc/install.texi 532fb3c092b7b296ddcec4a99a0c475d gcc/doc/install.texi2html 2bdd76b105eea8ff35649ac4ffb8eb5d gcc/doc/interface.texi ! 60ad39179fc2f76b0983c70e98d87d09 gcc/doc/invoke.texi c0f8bb0ef887855830a3b2948920db28 gcc/doc/languages.texi 0250c30f49d52e180cf510442a084475 gcc/doc/libgcc.texi 3c5a8fa331cb442336e2ff249f1f0aee gcc/doc/loop.texi ! ec4bdb47ad5c8f40b636bd1edca8a682 gcc/doc/lto-dump.1 45b0e2c9fe4e809535fd2665b7efe706 gcc/doc/lto-dump.texi 1e20b8193e6a33b7a5258cacf05c5634 gcc/doc/lto.texi 959966ff2c0bf27c64314d6bdc06d05a gcc/doc/makefile.texi *************** a2f207c234d4682ccf4f6d5aa495a223 gcc/do *** 5442,5460 **** 8cea2a00e1535e5f231ab41a9682ef64 gcc/domwalk.h dd64460f06e1554c5fd8e1fe09836939 gcc/double-int.c a16c69e33dc1ae6808e9a513e2545d03 gcc/double-int.h ! 36eb0e4ab78e524788de3bca959ad797 gcc/dse.c dbe8c1d99e18c5f9a07096a230996e8f gcc/dump-context.h 43bfbc6fc46ac173417adbbceab515a2 gcc/dumpfile.c a0e7d76c9e6820c8c60fd7162484c1aa gcc/dumpfile.h 8731562505e8ee4827d4bffe59b4e5e6 gcc/dwarf2asm.c b301aca61d8288586da32dd2c3e6c7ea gcc/dwarf2asm.h 301a89cf04dc4a12bb77b09ad0daa51f gcc/dwarf2cfi.c ! 91c44eafbc6d9c88d6c660c8f2282309 gcc/dwarf2out.c f9339d6f2072113fa5a26bc27c7764c9 gcc/dwarf2out.h c41773ac5892c49b8063e85e4cf7d803 gcc/early-remat.c 5d0344605084d3d22969ca333fe08a2e gcc/edit-context.c f5dacf671f84564bb73a46cd515800a4 gcc/edit-context.h ! 77e8d660e3de5f5101840e1cf555d5bb gcc/emit-rtl.c 3eb40e7e84207f7a1af03674336f1ab6 gcc/emit-rtl.h f5dba8046a94c319e61cc3cd8a11ad44 gcc/errors.c f22c15861cfd290b1e83fccc65b534d1 gcc/errors.h --- 5443,5461 ---- 8cea2a00e1535e5f231ab41a9682ef64 gcc/domwalk.h dd64460f06e1554c5fd8e1fe09836939 gcc/double-int.c a16c69e33dc1ae6808e9a513e2545d03 gcc/double-int.h ! 5e1456a483345ba8ef171ccba85b0287 gcc/dse.c dbe8c1d99e18c5f9a07096a230996e8f gcc/dump-context.h 43bfbc6fc46ac173417adbbceab515a2 gcc/dumpfile.c a0e7d76c9e6820c8c60fd7162484c1aa gcc/dumpfile.h 8731562505e8ee4827d4bffe59b4e5e6 gcc/dwarf2asm.c b301aca61d8288586da32dd2c3e6c7ea gcc/dwarf2asm.h 301a89cf04dc4a12bb77b09ad0daa51f gcc/dwarf2cfi.c ! 74e83ee581f46a765352afe51eff916d gcc/dwarf2out.c f9339d6f2072113fa5a26bc27c7764c9 gcc/dwarf2out.h c41773ac5892c49b8063e85e4cf7d803 gcc/early-remat.c 5d0344605084d3d22969ca333fe08a2e gcc/edit-context.c f5dacf671f84564bb73a46cd515800a4 gcc/edit-context.h ! 503af89f59665f416858651228b7cab1 gcc/emit-rtl.c 3eb40e7e84207f7a1af03674336f1ab6 gcc/emit-rtl.h f5dba8046a94c319e61cc3cd8a11ad44 gcc/errors.c f22c15861cfd290b1e83fccc65b534d1 gcc/errors.h *************** acf60971867c3bda77169fa63b5d9155 gcc/ex *** 5468,5474 **** 4abb7d44019c01df643228a63102e0a4 gcc/explow.h 12ac80aeab1b9a80e5593f38c6250825 gcc/expmed.c 461a5c7a292b43e45d34d15a6123aa1b gcc/expmed.h ! 0713647c19b8efba960495ff009cf061 gcc/expr.c 8dcbd4db5ca82e1fb16c9af198cace7e gcc/expr.h 361f6eafe4496f203f4bc0ba87d7ef2a gcc/fibonacci_heap.c 8f6ccc49ae1e2133d15bff71830df67c gcc/fibonacci_heap.h --- 5469,5475 ---- 4abb7d44019c01df643228a63102e0a4 gcc/explow.h 12ac80aeab1b9a80e5593f38c6250825 gcc/expmed.c 461a5c7a292b43e45d34d15a6123aa1b gcc/expmed.h ! 930c87db8b77271f2531ed656637aea8 gcc/expr.c 8dcbd4db5ca82e1fb16c9af198cace7e gcc/expr.h 361f6eafe4496f203f4bc0ba87d7ef2a gcc/fibonacci_heap.c 8f6ccc49ae1e2133d15bff71830df67c gcc/fibonacci_heap.h *************** bc014c20048c035718ad5836f6097d78 gcc/fi *** 5483,5491 **** 764f38b5e7ac1b3b4079577b45cb0331 gcc/flags.h 891064e4722e3a6a11417a8a1ecd065a gcc/fold-const-call.c d74e6be78940750833ff959c0f5571bd gcc/fold-const-call.h ! ed239488833de5f1534c1b74cd5ac146 gcc/fold-const.c 3812bf5faa6f093ebc438439b278eb2e gcc/fold-const.h ! 764205aa5c7b9934f7614881a5c9d953 gcc/fortran/ChangeLog 3330102ad3a0217cba963be6b5eefd58 gcc/fortran/ChangeLog-2002 d000ab985b1eeb1ad5749f98b8fef99f gcc/fortran/ChangeLog-2003 bf42f94f0c51dcc7d8051cc7fda1efdc gcc/fortran/ChangeLog-2004 --- 5484,5492 ---- 764f38b5e7ac1b3b4079577b45cb0331 gcc/flags.h 891064e4722e3a6a11417a8a1ecd065a gcc/fold-const-call.c d74e6be78940750833ff959c0f5571bd gcc/fold-const-call.h ! 3c18a183f44bbcb4b76d0e313d8fb763 gcc/fold-const.c 3812bf5faa6f093ebc438439b278eb2e gcc/fold-const.h ! 0d4fe6c4b59135c1966497dc7ea6ab15 gcc/fortran/ChangeLog 3330102ad3a0217cba963be6b5eefd58 gcc/fortran/ChangeLog-2002 d000ab985b1eeb1ad5749f98b8fef99f gcc/fortran/ChangeLog-2003 bf42f94f0c51dcc7d8051cc7fda1efdc gcc/fortran/ChangeLog-2004 *************** d1595b2ed8fb2a33f6ce0dc595f4f33c gcc/fo *** 5509,5517 **** ff3a70a964289eb29172b7a5e086ee3f gcc/fortran/Make-lang.in e4b7aeea57f8a7edeb226df1058af6ed gcc/fortran/arith.c 5478da78bbb9c6f5ec6f4c291556f64b gcc/fortran/arith.h ! 9ad68060ee5cc6a20a3bcc4eb8bf35b0 gcc/fortran/array.c 41d9862a96a73a3888dd71dbfd6a6f48 gcc/fortran/bbt.c ! 6bf670ce7c9199fae127f9c0e2f721a0 gcc/fortran/check.c 3717b8a023b319090152a5f6aadaff78 gcc/fortran/class.c f5d7a68caf3076d5812b149cf771093f gcc/fortran/config-lang.in 9ec79e4ff334ab1ae73233b75630f91b gcc/fortran/constructor.c --- 5510,5518 ---- ff3a70a964289eb29172b7a5e086ee3f gcc/fortran/Make-lang.in e4b7aeea57f8a7edeb226df1058af6ed gcc/fortran/arith.c 5478da78bbb9c6f5ec6f4c291556f64b gcc/fortran/arith.h ! fd0c7f1afa3844997e121bacf1505be2 gcc/fortran/array.c 41d9862a96a73a3888dd71dbfd6a6f48 gcc/fortran/bbt.c ! e917659f3bb01bc700fb91e5c3fe74b8 gcc/fortran/check.c 3717b8a023b319090152a5f6aadaff78 gcc/fortran/class.c f5d7a68caf3076d5812b149cf771093f gcc/fortran/config-lang.in 9ec79e4ff334ab1ae73233b75630f91b gcc/fortran/constructor.c *************** b1628a6231ddb7f7e4b2cf44b836b928 gcc/fo *** 5521,5554 **** 315cf57aecb390202190f4259ba3a36b gcc/fortran/cpp.h ee7a54e5c7f7a1043642f3148aa0e591 gcc/fortran/data.c 82bc765451efda646706547a38c09487 gcc/fortran/data.h ! bb6a608fea49bacea5ce0a917f5b9673 gcc/fortran/decl.c ! c4f73bba061adfe9eabf763a1a418e5b gcc/fortran/dependency.c d43b0d544fe709c25b81ee187b848372 gcc/fortran/dependency.h ! fc814ce5ee0d7b357f14b97588a3287c gcc/fortran/dump-parse-tree.c d1cd71bb3644df2833513aea82c56ad6 gcc/fortran/error.c ! 5a8abdc1352d538d51c02a492084d7d1 gcc/fortran/expr.c ! da3a0c04f8f87fdb6697ab1965ac58bc gcc/fortran/f95-lang.c 8353b630bdf330e4d2b8ef9df747b1df gcc/fortran/frontend-passes.c 61d212b06741cc79879806a53df1eaa2 gcc/fortran/gfc-diagnostic.def 862a8dcb967ce0c214bce57208763cfc gcc/fortran/gfc-internals.texi 1e9576f9f76b696a9f3ef0d67154e18d gcc/fortran/gfortran.h ! 83b13c91736e3468e0fe9e79cdc27a1a gcc/fortran/gfortran.info 58ec938eb719edf2ffe5dbfcce4dd1d8 gcc/fortran/gfortran.texi 13ef845dc55ae5b20f8afe50368263ea gcc/fortran/gfortranspec.c ! 8042dcc4cf37a109aa435902c09017d9 gcc/fortran/interface.c 02c410f8928702184b16506978d79946 gcc/fortran/intrinsic.c 2e04d6a800add4904e0bf8ba5da7b994 gcc/fortran/intrinsic.h c09f27d7a8071860d1a900d96da0ec71 gcc/fortran/intrinsic.texi c6a48e4292d1489642fbb1664cc3e6c3 gcc/fortran/invoke.texi 5d1f82f037a7a8c9483a449ef7c29876 gcc/fortran/io.c cfb055fb9cb1a68a9974d4b65003c3cb gcc/fortran/ioparm.def ! 3a153534afac4c41d573cf0c82caf421 gcc/fortran/iresolve.c 074cd74d31e55c226d9f97157593dc3d gcc/fortran/iso-c-binding.def efbaccc5d8e94375f348176fc0781246 gcc/fortran/iso-fortran-env.def 0a1b06a8103dcc19be16396515acaa9b gcc/fortran/lang-specs.h 09e0020c10cf80b36c91236e34f4d348 gcc/fortran/lang.opt 4c92759881e572b635603ebb42a2455f gcc/fortran/libgfortran.h ! ae2f02c68f9911672bdb3b401cb210c2 gcc/fortran/match.c 7da585148fe4f59ce5a733a65b82746c gcc/fortran/match.h af7a3aa1a1204dd37e34eefa510399cd gcc/fortran/matchexp.c b3b81cd6b5386b281800a93f8e4ade0b gcc/fortran/mathbuiltins.def --- 5522,5555 ---- 315cf57aecb390202190f4259ba3a36b gcc/fortran/cpp.h ee7a54e5c7f7a1043642f3148aa0e591 gcc/fortran/data.c 82bc765451efda646706547a38c09487 gcc/fortran/data.h ! cc5353e18dc5f65dcec721ca43a878fe gcc/fortran/decl.c ! 1ec2271c4fd797ea9054b5e39934ce87 gcc/fortran/dependency.c d43b0d544fe709c25b81ee187b848372 gcc/fortran/dependency.h ! 8709ef0424888ed76726af5456426b77 gcc/fortran/dump-parse-tree.c d1cd71bb3644df2833513aea82c56ad6 gcc/fortran/error.c ! 97c7cc1fca9de34f21131f6372fe2997 gcc/fortran/expr.c ! dc573e806d86f97c6c674dc64c0e113b gcc/fortran/f95-lang.c 8353b630bdf330e4d2b8ef9df747b1df gcc/fortran/frontend-passes.c 61d212b06741cc79879806a53df1eaa2 gcc/fortran/gfc-diagnostic.def 862a8dcb967ce0c214bce57208763cfc gcc/fortran/gfc-internals.texi 1e9576f9f76b696a9f3ef0d67154e18d gcc/fortran/gfortran.h ! 701ccca211312073330e2c02b7e9b45f gcc/fortran/gfortran.info 58ec938eb719edf2ffe5dbfcce4dd1d8 gcc/fortran/gfortran.texi 13ef845dc55ae5b20f8afe50368263ea gcc/fortran/gfortranspec.c ! f39217510485d58e67eb40edf78ebb8d gcc/fortran/interface.c 02c410f8928702184b16506978d79946 gcc/fortran/intrinsic.c 2e04d6a800add4904e0bf8ba5da7b994 gcc/fortran/intrinsic.h c09f27d7a8071860d1a900d96da0ec71 gcc/fortran/intrinsic.texi c6a48e4292d1489642fbb1664cc3e6c3 gcc/fortran/invoke.texi 5d1f82f037a7a8c9483a449ef7c29876 gcc/fortran/io.c cfb055fb9cb1a68a9974d4b65003c3cb gcc/fortran/ioparm.def ! 87d727d11c45f19058569f4b7b522dcf gcc/fortran/iresolve.c 074cd74d31e55c226d9f97157593dc3d gcc/fortran/iso-c-binding.def efbaccc5d8e94375f348176fc0781246 gcc/fortran/iso-fortran-env.def 0a1b06a8103dcc19be16396515acaa9b gcc/fortran/lang-specs.h 09e0020c10cf80b36c91236e34f4d348 gcc/fortran/lang.opt 4c92759881e572b635603ebb42a2455f gcc/fortran/libgfortran.h ! e89c88d0e221777b9aa7246f8d43a0e3 gcc/fortran/match.c 7da585148fe4f59ce5a733a65b82746c gcc/fortran/match.h af7a3aa1a1204dd37e34eefa510399cd gcc/fortran/matchexp.c b3b81cd6b5386b281800a93f8e4ade0b gcc/fortran/mathbuiltins.def *************** b3b81cd6b5386b281800a93f8e4ade0b gcc/fo *** 5556,5596 **** 34d7f6342ff4b004dd80669ed3646570 gcc/fortran/module.c 52a543b51ac574c91c996a85d775d71d gcc/fortran/openmp.c 94fda6c5e12794dcdd5f378023229c01 gcc/fortran/options.c ! ebce0975022c83898880627b1d236b65 gcc/fortran/parse.c 35501e834b34f6440232d3c4c2bbd56c gcc/fortran/parse.h 9c9d88bede3c641a5faed0a5f008897c gcc/fortran/primary.c ! 0dfd0f9a0463797275cb74211f7102e6 gcc/fortran/resolve.c 15654692fbf8143321f77d50d70bf5db gcc/fortran/scanner.c e878063bf09025352b6adf6b5d0ab78d gcc/fortran/scanner.h ! ea3832e9d8c05d62f7fb910e16f84497 gcc/fortran/simplify.c 52826d539d76cfcf3218c02df40aecf6 gcc/fortran/st.c ! e5e5b5f672739daa6b4e6407f9759adf gcc/fortran/symbol.c 758aeef05fd4d7d6a4474397ada7c8f3 gcc/fortran/target-memory.c 0ce203c000f89bcab4e2f2b5885ec8f5 gcc/fortran/target-memory.h ! ce3ff6e2419c5377d733f854a87eb6b2 gcc/fortran/trans-array.c ! e1d78c99b48125ffad30fedc872dc207 gcc/fortran/trans-array.h ec0059b31f88bbb8c77c8501ca451961 gcc/fortran/trans-common.c 42b243fa66682aca47b104fdf75790a3 gcc/fortran/trans-const.c 08d74bbf02852561cf584f029734d164 gcc/fortran/trans-const.h ! 6f8ae55bd9f6d63f35db16c211fbac35 gcc/fortran/trans-decl.c ! 14d62d3cabdfcfd47bf63ffb587dcaca gcc/fortran/trans-expr.c ! bf366d42e4c38b769cd37f6d91680376 gcc/fortran/trans-intrinsic.c d442a2920715f33cb7ca72f6cf551377 gcc/fortran/trans-io.c ! 43be2b05b7e5fd910ea552fab87c7b34 gcc/fortran/trans-openmp.c eaeb250c0757adb537819cf0f257fa05 gcc/fortran/trans-stmt.c adac91a5c3e9a289d1e225ac37f895f2 gcc/fortran/trans-stmt.h ! d326420e4ce44493518e5114159f04f6 gcc/fortran/trans-types.c a1fc23f04301b08a0068afcd35eff141 gcc/fortran/trans-types.h 8cbeb3565f45e859c5c085e783fa0db6 gcc/fortran/trans.c ! b262b4a95cd0df959a318ec78009eaeb gcc/fortran/trans.h 4933a105c1594895df1049f4ba65aa6a gcc/fortran/trigd_fe.inc 83124a3111ee9ddc77f41f656b346c44 gcc/fortran/types.def 47606f3caeb8667613c0b0a243ec2342 gcc/fp-test.c a7378b0ee32d1a8103f2106f776ddeef gcc/function-abi.cc 85a682a8db05fbb8149ff43de9b26ac7 gcc/function-abi.h 3be627fea3a3a6c9f0031cdd2808bada gcc/function-tests.c ! 0c8a7eb6d8a1230e14ab527edcd7c100 gcc/function.c ! d79e4923da49c9efd0d27575ebe0c3e0 gcc/function.h bc49cccf40de468c5af3f7b3077601e9 gcc/fwprop.c 628dd8bc4c3033a144ca9d7411e136d8 gcc/gcc-ar.c 9b3cde5e018ae1629dad78df7495c686 gcc/gcc-main.c --- 5557,5597 ---- 34d7f6342ff4b004dd80669ed3646570 gcc/fortran/module.c 52a543b51ac574c91c996a85d775d71d gcc/fortran/openmp.c 94fda6c5e12794dcdd5f378023229c01 gcc/fortran/options.c ! af51019f137e78485665bbbbfe7e2b76 gcc/fortran/parse.c 35501e834b34f6440232d3c4c2bbd56c gcc/fortran/parse.h 9c9d88bede3c641a5faed0a5f008897c gcc/fortran/primary.c ! d3b712746c10d721cb936208bbb5d1a1 gcc/fortran/resolve.c 15654692fbf8143321f77d50d70bf5db gcc/fortran/scanner.c e878063bf09025352b6adf6b5d0ab78d gcc/fortran/scanner.h ! 89b9a275ca73a232db538c0822e5fb81 gcc/fortran/simplify.c 52826d539d76cfcf3218c02df40aecf6 gcc/fortran/st.c ! aa211a53c1211bf0ce18027a6f003c95 gcc/fortran/symbol.c 758aeef05fd4d7d6a4474397ada7c8f3 gcc/fortran/target-memory.c 0ce203c000f89bcab4e2f2b5885ec8f5 gcc/fortran/target-memory.h ! cbc1520a516fdbfd4490077f7018fdbb gcc/fortran/trans-array.c ! 69c63b36acf6f0724f477e9923bcd2bb gcc/fortran/trans-array.h ec0059b31f88bbb8c77c8501ca451961 gcc/fortran/trans-common.c 42b243fa66682aca47b104fdf75790a3 gcc/fortran/trans-const.c 08d74bbf02852561cf584f029734d164 gcc/fortran/trans-const.h ! a110fc331c5f1eb2f46ce1f2643d82d2 gcc/fortran/trans-decl.c ! ad288cef1293249e6167ba92ee514895 gcc/fortran/trans-expr.c ! 4926b7e6ac1f51c022972854fc1af33b gcc/fortran/trans-intrinsic.c d442a2920715f33cb7ca72f6cf551377 gcc/fortran/trans-io.c ! b700350e62cdce1e61c30e786605a3ec gcc/fortran/trans-openmp.c eaeb250c0757adb537819cf0f257fa05 gcc/fortran/trans-stmt.c adac91a5c3e9a289d1e225ac37f895f2 gcc/fortran/trans-stmt.h ! c327c38ab53f43521dc4d3a07fc93272 gcc/fortran/trans-types.c a1fc23f04301b08a0068afcd35eff141 gcc/fortran/trans-types.h 8cbeb3565f45e859c5c085e783fa0db6 gcc/fortran/trans.c ! 8169aa1848a7313a296c2592de432ead gcc/fortran/trans.h 4933a105c1594895df1049f4ba65aa6a gcc/fortran/trigd_fe.inc 83124a3111ee9ddc77f41f656b346c44 gcc/fortran/types.def 47606f3caeb8667613c0b0a243ec2342 gcc/fp-test.c a7378b0ee32d1a8103f2106f776ddeef gcc/function-abi.cc 85a682a8db05fbb8149ff43de9b26ac7 gcc/function-abi.h 3be627fea3a3a6c9f0031cdd2808bada gcc/function-tests.c ! c5a9339ec92fd0ce9da14a18d658a9e9 gcc/function.c ! 051f5de7c89e11b8cdbbcbca9b42e9f2 gcc/function.h bc49cccf40de468c5af3f7b3077601e9 gcc/fwprop.c 628dd8bc4c3033a144ca9d7411e136d8 gcc/gcc-ar.c 9b3cde5e018ae1629dad78df7495c686 gcc/gcc-main.c *************** bc49cccf40de468c5af3f7b3077601e9 gcc/fw *** 5598,5604 **** 219ebc9f8c4780423b0e00faf25cf15c gcc/gcc-rich-location.c 7c5eb0bd2d135dca8076b6bbc8e46fe2 gcc/gcc-rich-location.h a3ee86700ebe6da680866c325a9e6d01 gcc/gcc-symtab.h ! 495f60d858a8cdbeca218ae37d68ebf0 gcc/gcc.c 43c0152df742051b3b7f216ea3327943 gcc/gcc.h 90734fcaf7c44a435600bae6c4f56607 gcc/gcov-counter.def 2b180ee6c8ef5773ae1afe08e2a54ba5 gcc/gcov-dump.c --- 5599,5605 ---- 219ebc9f8c4780423b0e00faf25cf15c gcc/gcc-rich-location.c 7c5eb0bd2d135dca8076b6bbc8e46fe2 gcc/gcc-rich-location.h a3ee86700ebe6da680866c325a9e6d01 gcc/gcc-symtab.h ! 7249348a16df5ff514aa013b7eb9c722 gcc/gcc.c 43c0152df742051b3b7f216ea3327943 gcc/gcc.h 90734fcaf7c44a435600bae6c4f56607 gcc/gcov-counter.def 2b180ee6c8ef5773ae1afe08e2a54ba5 gcc/gcov-dump.c *************** c920211a66f60aee1bd685d466ad0b1b gcc/ge *** 5628,5646 **** dd3c872700fc3cbd561dcd8da99e48d6 gcc/genconstants.c 28414f1934057369df9b38283563f07f gcc/genemit.c 5515dbfe6da4ebbeeb7c82287ab99cb4 gcc/genenums.c ! 837b58b37f8a325a85eff474915a9d44 gcc/generic-match-head.c 1fe363efff16e5f61dc836ca90c79ac6 gcc/generic-match.h 0851ab0217a3550c4694dc56da1d14a0 gcc/genextract.c d8284cac8286a7a7d64ac13ec870daa7 gcc/genflags.c 950b7513fef07bfbefb505897b6d7448 gcc/gengenrtl.c ! 5dec9be550420ad9483c8c3f8aaea9a1 gcc/gengtype-lex.c 8ea8a37c0cf6f91ded53bb6db384da0d gcc/gengtype-lex.l 548a8efcdbfd7022ebabcc0492a34cf9 gcc/gengtype-parse.c 87b2b2c69bc05df6161d23040833a374 gcc/gengtype-state.c a37cbb582a0ae6a61b86eda06ffb9ac6 gcc/gengtype.c 94881ec27434a3f6e7b70357815509c7 gcc/gengtype.h 89b650e6804cbe365244e8a1a6c62d2f gcc/genhooks.c ! 3153b01c6502511189cd27b40fac2dbb gcc/genmatch.c 54cca04c9cb300d0ab0ad99273a73e7c gcc/genmddeps.c 0b1ec8e93aaa85abaf253992e194254d gcc/genmddump.c f1d29bde9cddf2b5a4a9c55cad19d1fa gcc/genmodes.c --- 5629,5647 ---- dd3c872700fc3cbd561dcd8da99e48d6 gcc/genconstants.c 28414f1934057369df9b38283563f07f gcc/genemit.c 5515dbfe6da4ebbeeb7c82287ab99cb4 gcc/genenums.c ! b8331fe711c794d31411d145186f839e gcc/generic-match-head.c 1fe363efff16e5f61dc836ca90c79ac6 gcc/generic-match.h 0851ab0217a3550c4694dc56da1d14a0 gcc/genextract.c d8284cac8286a7a7d64ac13ec870daa7 gcc/genflags.c 950b7513fef07bfbefb505897b6d7448 gcc/gengenrtl.c ! 04781352a756be492bf560d710ae7ef9 gcc/gengtype-lex.c 8ea8a37c0cf6f91ded53bb6db384da0d gcc/gengtype-lex.l 548a8efcdbfd7022ebabcc0492a34cf9 gcc/gengtype-parse.c 87b2b2c69bc05df6161d23040833a374 gcc/gengtype-state.c a37cbb582a0ae6a61b86eda06ffb9ac6 gcc/gengtype.c 94881ec27434a3f6e7b70357815509c7 gcc/gengtype.h 89b650e6804cbe365244e8a1a6c62d2f gcc/genhooks.c ! 68f92690a215e0838b8a46a4938bc83f gcc/genmatch.c 54cca04c9cb300d0ab0ad99273a73e7c gcc/genmddeps.c 0b1ec8e93aaa85abaf253992e194254d gcc/genmddump.c f1d29bde9cddf2b5a4a9c55cad19d1fa gcc/genmodes.c *************** f57cf443d784ee093c2c5ba1ab06c0bc gcc/gg *** 5659,5665 **** 7bfeded454c8971d940aa36328e9cf6d gcc/ggc-page.c ecf8d9fd8c961c7c8143950d0dffa4ad gcc/ggc-tests.c 8c4c95942af92fe1df1464e359aa00e5 gcc/ggc.h ! 586c2cab2915e4fcfc60eef73c5aa542 gcc/gimple-array-bounds.cc ca2520162ec5b4b80e57e4f46690e4c6 gcc/gimple-array-bounds.h 0050f15d9f43589b0e2f6d2502d4f292 gcc/gimple-builder.c 6a22e0a2c2e663ac23a368e20fa1fe9c gcc/gimple-builder.h --- 5660,5666 ---- 7bfeded454c8971d940aa36328e9cf6d gcc/ggc-page.c ecf8d9fd8c961c7c8143950d0dffa4ad gcc/ggc-tests.c 8c4c95942af92fe1df1464e359aa00e5 gcc/ggc.h ! dbec1d8f9e4120a978a6056a19987a24 gcc/gimple-array-bounds.cc ca2520162ec5b4b80e57e4f46690e4c6 gcc/gimple-array-bounds.h 0050f15d9f43589b0e2f6d2502d4f292 gcc/gimple-builder.c 6a22e0a2c2e663ac23a368e20fa1fe9c gcc/gimple-builder.h *************** ca2520162ec5b4b80e57e4f46690e4c6 gcc/gi *** 5668,5674 **** 9864da12a5fa4e9052e9a2444e49bdc1 gcc/gimple-fold.c 19b1447666533a8e534b359325a40685 gcc/gimple-fold.h ae9c923ed2c8a79aaa3ca54a22881ef0 gcc/gimple-if-to-switch.cc ! 16b85d8ae65dd9edd56bbf0d38b43aa9 gcc/gimple-isel.cc 58eb44f6e28f845aeb88cd375156397c gcc/gimple-iterator.c 6fd4aeb4f777fa04b054a2682011f913 gcc/gimple-iterator.h 3471799f94511265663f55a068653533 gcc/gimple-laddress.c --- 5669,5675 ---- 9864da12a5fa4e9052e9a2444e49bdc1 gcc/gimple-fold.c 19b1447666533a8e534b359325a40685 gcc/gimple-fold.h ae9c923ed2c8a79aaa3ca54a22881ef0 gcc/gimple-if-to-switch.cc ! 20b2c5de7eec5f50e66d6709ccaeeee8 gcc/gimple-isel.cc 58eb44f6e28f845aeb88cd375156397c gcc/gimple-iterator.c 6fd4aeb4f777fa04b054a2682011f913 gcc/gimple-iterator.h 3471799f94511265663f55a068653533 gcc/gimple-laddress.c *************** f96959d86d6678e1a7fdf38b6e127bcd gcc/gi *** 5698,5707 **** b6d23698f494095d6a2998fccaa3f8b9 gcc/gimple-ssa-nonnull-compare.c aced049779ec566808a605d67e3515fc gcc/gimple-ssa-split-paths.c 1d753067436e68b37dba76eb3eb35ff8 gcc/gimple-ssa-sprintf.c ! dee9befafe077802d5e58f3a7762b100 gcc/gimple-ssa-store-merging.c 3e8d8a511e1e447865e4c63ef9d1f0dc gcc/gimple-ssa-strength-reduction.c ! 3ac9a7ed69ad0ec6148c051f54d9a4df gcc/gimple-ssa-warn-alloca.c ! 3a0b8da8458ff788072a9389e1e51b1b gcc/gimple-ssa-warn-restrict.c cc4f6240e418b12d3aa1b0720c58934c gcc/gimple-ssa-warn-restrict.h 495e1a1ff15867379be8e30c1585c550 gcc/gimple-ssa.h 86582d0b25b77eb58dcf6d25a67f7bd7 gcc/gimple-streamer-in.c --- 5699,5708 ---- b6d23698f494095d6a2998fccaa3f8b9 gcc/gimple-ssa-nonnull-compare.c aced049779ec566808a605d67e3515fc gcc/gimple-ssa-split-paths.c 1d753067436e68b37dba76eb3eb35ff8 gcc/gimple-ssa-sprintf.c ! 276a8c5b44e85e5dddb52d91f21966fb gcc/gimple-ssa-store-merging.c 3e8d8a511e1e447865e4c63ef9d1f0dc gcc/gimple-ssa-strength-reduction.c ! fa6b25f445fc05a803f11195f34d71cb gcc/gimple-ssa-warn-alloca.c ! 3681b0f7899f686f94905201c010bf3e gcc/gimple-ssa-warn-restrict.c cc4f6240e418b12d3aa1b0720c58934c gcc/gimple-ssa-warn-restrict.h 495e1a1ff15867379be8e30c1585c550 gcc/gimple-ssa.h 86582d0b25b77eb58dcf6d25a67f7bd7 gcc/gimple-streamer-in.c *************** f600ba03fe6a2c3cd6c70bcc66153eed gcc/gi *** 5731,5737 **** fd1e7b72f05881b3313665c73e2f4da9 gcc/ginclude/unwind-arm-common.h 8d9ecf0d6ef93c79623ce1d27a32a2cb gcc/ginclude/varargs.h 5081e1e198938204286d03d45535b34b gcc/glimits.h ! 9539e564fe28bea03e53c4372798beb9 gcc/go/ChangeLog e905ea0930382dd7f885f6df4e826e16 gcc/go/Make-lang.in 60ea054548c83c7f66170073f9f3e74c gcc/go/README.gcc 441e07f72df962bba81b0fca4787a622 gcc/go/config-lang.in --- 5732,5738 ---- fd1e7b72f05881b3313665c73e2f4da9 gcc/ginclude/unwind-arm-common.h 8d9ecf0d6ef93c79623ce1d27a32a2cb gcc/ginclude/varargs.h 5081e1e198938204286d03d45535b34b gcc/glimits.h ! 48d7485ec4ee1c0e8a60904063c147d4 gcc/go/ChangeLog e905ea0930382dd7f885f6df4e826e16 gcc/go/Make-lang.in 60ea054548c83c7f66170073f9f3e74c gcc/go/README.gcc 441e07f72df962bba81b0fca4787a622 gcc/go/config-lang.in *************** c295442f623ae639ab0eef77ed196a06 gcc/ho *** 5835,5841 **** 47380fcad22a8fd1e1a458f7d1a9e758 gcc/hw-doloop.h 5447fa3d6d110fde15af8fa04ca0f1a1 gcc/hwint.c c753347aefd98061e32a83982d6c8f1b gcc/hwint.h ! c344af190aeaa7efa77f8684fa1c4a76 gcc/ifcvt.c 5b179229655a9e1ff4addac6bd17bfd3 gcc/ifcvt.h 4a8573d35397afe052d60dc399f91959 gcc/inchash.c ff9cd748484a95fca3cf23a3ed3844e7 gcc/inchash.h --- 5836,5842 ---- 47380fcad22a8fd1e1a458f7d1a9e758 gcc/hw-doloop.h 5447fa3d6d110fde15af8fa04ca0f1a1 gcc/hwint.c c753347aefd98061e32a83982d6c8f1b gcc/hwint.h ! c439c6884201fcb0dd0e52cdd6916deb gcc/ifcvt.c 5b179229655a9e1ff4addac6bd17bfd3 gcc/ifcvt.h 4a8573d35397afe052d60dc399f91959 gcc/inchash.c ff9cd748484a95fca3cf23a3ed3844e7 gcc/inchash.h *************** de5c239aa4766cc69fc2017ae8e7d8d1 gcc/in *** 5859,5872 **** f95a69b1f3983dc781ef570590f5b01d gcc/ipa-fnsummary.h 7c46ef6a7d9230f2798ed1ce630eeb4a gcc/ipa-icf-gimple.c bde983e86d6dce7cfa528ed5003fbf84 gcc/ipa-icf-gimple.h ! f797e88796d2c2bdb45fdd0f7774f7e5 gcc/ipa-icf.c d1c62ca27392156d9ab55eb9a8c5941f gcc/ipa-icf.h 6ff03f4502965e2dae22d99c4abbc97c gcc/ipa-inline-analysis.c 8eb383763689a3d5ad9bd67cbd1fcb32 gcc/ipa-inline-transform.c ec72952e216f97113f1ba6e99817c9ab gcc/ipa-inline.c a10b26f8b2cd4e43b6eb7b9c5fc18a0d gcc/ipa-inline.h 527be6d4d86fbdd9748e4c8e967604f6 gcc/ipa-modref-tree.c ! 0d2c0f1bc1412e346c4a96960ac25b80 gcc/ipa-modref-tree.h 828eec681c95cd80a228140315eaa47d gcc/ipa-modref.c 24571d56e05a081b381bee5973dbc170 gcc/ipa-modref.h db0361c41637ca821b894c2d6a58dd78 gcc/ipa-param-manipulation.c --- 5860,5873 ---- f95a69b1f3983dc781ef570590f5b01d gcc/ipa-fnsummary.h 7c46ef6a7d9230f2798ed1ce630eeb4a gcc/ipa-icf-gimple.c bde983e86d6dce7cfa528ed5003fbf84 gcc/ipa-icf-gimple.h ! 705c052b195d5e893795c330fa55fc30 gcc/ipa-icf.c d1c62ca27392156d9ab55eb9a8c5941f gcc/ipa-icf.h 6ff03f4502965e2dae22d99c4abbc97c gcc/ipa-inline-analysis.c 8eb383763689a3d5ad9bd67cbd1fcb32 gcc/ipa-inline-transform.c ec72952e216f97113f1ba6e99817c9ab gcc/ipa-inline.c a10b26f8b2cd4e43b6eb7b9c5fc18a0d gcc/ipa-inline.h 527be6d4d86fbdd9748e4c8e967604f6 gcc/ipa-modref-tree.c ! 6913bf97992fc345b2d310f2e0f7a4d6 gcc/ipa-modref-tree.h 828eec681c95cd80a228140315eaa47d gcc/ipa-modref.c 24571d56e05a081b381bee5973dbc170 gcc/ipa-modref.h db0361c41637ca821b894c2d6a58dd78 gcc/ipa-param-manipulation.c *************** db0361c41637ca821b894c2d6a58dd78 gcc/ip *** 5875,5881 **** 55afec3b06a051269d9c3495954f589c gcc/ipa-predicate.c b6c2e60f0bb50b61ffc003d4287b4a7d gcc/ipa-predicate.h 2c565d155fe9a836088f9f0b8d38b331 gcc/ipa-profile.c ! ad3f3de29b2a55179063f8d7c1019dd3 gcc/ipa-prop.c 26dbfb8e2bba32dbfcc64d9bfc065969 gcc/ipa-prop.h 69165999b252c49cd319201d87c2ee82 gcc/ipa-pure-const.c f4b0cf2eeaf1190a6a7682b15df55bf3 gcc/ipa-ref.c --- 5876,5882 ---- 55afec3b06a051269d9c3495954f589c gcc/ipa-predicate.c b6c2e60f0bb50b61ffc003d4287b4a7d gcc/ipa-predicate.h 2c565d155fe9a836088f9f0b8d38b331 gcc/ipa-profile.c ! 23221a9d0531968140fbdb013c72e0bb gcc/ipa-prop.c 26dbfb8e2bba32dbfcc64d9bfc065969 gcc/ipa-prop.h 69165999b252c49cd319201d87c2ee82 gcc/ipa-pure-const.c f4b0cf2eeaf1190a6a7682b15df55bf3 gcc/ipa-ref.c *************** c1dc66d2ea8aa4cfddebdbd29cf0377a gcc/ip *** 5889,5905 **** 9cdf0cbb22a93045634de6e5fc83cbb8 gcc/ipa-visibility.c 20e523da6d0cf2dfb75b1cb15523364d gcc/ipa.c 420f64db44a55dc486630154a503b01a gcc/ira-build.c ! 294e8f4137b8651abf438ac9b9fcc8be gcc/ira-color.c 05ded0649c09aca2587c5e6478e40a1f gcc/ira-conflicts.c fcdecd375e9f7dcef39dfb29545d6859 gcc/ira-costs.c 90a73493c275e6fa26e716b5f9a62dcb gcc/ira-emit.c 5aec1e89bce0dbfd2b02b96804404e27 gcc/ira-int.h 6b1fed42d9f5470a586a9f4a2df1625e gcc/ira-lives.c ! c365b13304c481cc4b9f3145c452a198 gcc/ira.c f2cefc86c9a11fe045772f372434ad3c gcc/ira.h a034d62871bbde98ccf4abce95e4bbd3 gcc/is-a.h dd335e7d147186c7f4aa9327f600007b gcc/iterator-utils.h ! 52a82347f59890f016cfeed79a75e907 gcc/jit/ChangeLog 6071bdf04fb356c5ac99a99ec00c9a12 gcc/jit/ChangeLog.jit 7da588bb30eff47e724348cf30c9b423 gcc/jit/Make-lang.in fd0d76b6467c987f813d430a35d4760a gcc/jit/TODO.rst --- 5890,5906 ---- 9cdf0cbb22a93045634de6e5fc83cbb8 gcc/ipa-visibility.c 20e523da6d0cf2dfb75b1cb15523364d gcc/ipa.c 420f64db44a55dc486630154a503b01a gcc/ira-build.c ! f10221dcb3884371d27cff607e0b08d3 gcc/ira-color.c 05ded0649c09aca2587c5e6478e40a1f gcc/ira-conflicts.c fcdecd375e9f7dcef39dfb29545d6859 gcc/ira-costs.c 90a73493c275e6fa26e716b5f9a62dcb gcc/ira-emit.c 5aec1e89bce0dbfd2b02b96804404e27 gcc/ira-int.h 6b1fed42d9f5470a586a9f4a2df1625e gcc/ira-lives.c ! 6ff5e3d23a1cc54979fbf39d071f6bd2 gcc/ira.c f2cefc86c9a11fe045772f372434ad3c gcc/ira.h a034d62871bbde98ccf4abce95e4bbd3 gcc/is-a.h dd335e7d147186c7f4aa9327f600007b gcc/iterator-utils.h ! 9c02ba430678bba2a9f3c87f06b0925a gcc/jit/ChangeLog 6071bdf04fb356c5ac99a99ec00c9a12 gcc/jit/ChangeLog.jit 7da588bb30eff47e724348cf30c9b423 gcc/jit/Make-lang.in fd0d76b6467c987f813d430a35d4760a gcc/jit/TODO.rst *************** bdae38125e17ccdbcbd3740ff81dfc29 gcc/lc *** 6001,6013 **** 30b8e3e407f46ad2cb39260ec4bab9f6 gcc/lock-and-run.sh a09713569704def17fe9b152b78ba9cc gcc/loop-doloop.c 9f6ba5d7d3c36c5fbe0b75e45c60a201 gcc/loop-init.c ! 2a163cd72274af8bcfbce0e199266237 gcc/loop-invariant.c 6dcb3e50702c1fe35fd4c4afc5d49fc5 gcc/loop-iv.c e44196ccae22e5b571a6fc06b0fdda4b gcc/loop-unroll.c 4e3d14a2bb20bbfa0b2d7c513a99193d gcc/loop-unroll.h 238b4457d72f8b584d6d0aa811cd3184 gcc/lower-subreg.c 643bcadd79bc8430146b2c58a5fbdf02 gcc/lower-subreg.h ! e88f6ce06ede4edda0af58c2ba7077cd gcc/lra-assigns.c c2e5571dfeb8184312575c2fd39a0c13 gcc/lra-coalesce.c a6d81472aa9380f911642c153c4f493f gcc/lra-constraints.c 4ab369c9de8d32d33099df49e6d9d1fb gcc/lra-eliminations.c --- 6002,6014 ---- 30b8e3e407f46ad2cb39260ec4bab9f6 gcc/lock-and-run.sh a09713569704def17fe9b152b78ba9cc gcc/loop-doloop.c 9f6ba5d7d3c36c5fbe0b75e45c60a201 gcc/loop-init.c ! 2819c8014cb2784dd0942b717cbc2c28 gcc/loop-invariant.c 6dcb3e50702c1fe35fd4c4afc5d49fc5 gcc/loop-iv.c e44196ccae22e5b571a6fc06b0fdda4b gcc/loop-unroll.c 4e3d14a2bb20bbfa0b2d7c513a99193d gcc/loop-unroll.h 238b4457d72f8b584d6d0aa811cd3184 gcc/lower-subreg.c 643bcadd79bc8430146b2c58a5fbdf02 gcc/lower-subreg.h ! 7810f59c5aa8f6bc2ac72d52b2c0603c gcc/lra-assigns.c c2e5571dfeb8184312575c2fd39a0c13 gcc/lra-coalesce.c a6d81472aa9380f911642c153c4f493f gcc/lra-constraints.c 4ab369c9de8d32d33099df49e6d9d1fb gcc/lra-eliminations.c *************** e891b7eb2f83b1624be70538a0e0d189 gcc/lt *** 6024,6035 **** 47aac9d44038f619b8a94acf28f087cf gcc/lto-section-in.c 9893be09e11b4b0a29845a41ec6d3cad gcc/lto-section-names.h 9363334f16d1c6574695194883b24bd0 gcc/lto-section-out.c ! db7cd7675793a8855cd0550edb79177a gcc/lto-streamer-in.c 40a5c9904f9b80ca7236bd30c0679296 gcc/lto-streamer-out.c 5ad327021166fdb0ecad2661fbca70be gcc/lto-streamer.c c75e2adeba7a17a10efdd07b0b9113b2 gcc/lto-streamer.h ! 8a45ce855be3f79e24add330a8fe9755 gcc/lto-wrapper.c ! 8d9b3cfbdf846260bb3bde211b9b30a9 gcc/lto/ChangeLog d5bb42eff522196004d91ca34cfaa49b gcc/lto/Make-lang.in c1fff5b6c2a7f236e55f0d3b5cb28062 gcc/lto/common.c 71bd5c32de47c74a39491375ef7f71c5 gcc/lto/common.h --- 6025,6036 ---- 47aac9d44038f619b8a94acf28f087cf gcc/lto-section-in.c 9893be09e11b4b0a29845a41ec6d3cad gcc/lto-section-names.h 9363334f16d1c6574695194883b24bd0 gcc/lto-section-out.c ! 605f046b0f351688fe42e3e3ffb6374d gcc/lto-streamer-in.c 40a5c9904f9b80ca7236bd30c0679296 gcc/lto-streamer-out.c 5ad327021166fdb0ecad2661fbca70be gcc/lto-streamer.c c75e2adeba7a17a10efdd07b0b9113b2 gcc/lto-streamer.h ! 8ffaca3710dc2b758bb4992782a9458a gcc/lto-wrapper.c ! 227e2035e0991551fcd637d67d3c0323 gcc/lto/ChangeLog d5bb42eff522196004d91ca34cfaa49b gcc/lto/Make-lang.in c1fff5b6c2a7f236e55f0d3b5cb28062 gcc/lto/common.c 71bd5c32de47c74a39491375ef7f71c5 gcc/lto/common.h *************** a3d7fa7b491b3c623e8ad32109a8af10 gcc/lt *** 6051,6057 **** c0598ad047996b6b546ae37ac7961415 gcc/machmode.def 9ed2f72363a926d2750418ef5c5cf728 gcc/machmode.h 1e3feea915d17412b3e57a55c5a785e8 gcc/main.c ! 98f9f222d0c9d650062597b00dc2c409 gcc/match.pd 4b41ba6f5c2972934928d702e6ab5c99 gcc/mcf.c 12ed5d7cdbe37098551333c0d54e68ad gcc/mem-stats-traits.h d36e5c61d9079e93d8844808c4280f3b gcc/mem-stats.h --- 6052,6058 ---- c0598ad047996b6b546ae37ac7961415 gcc/machmode.def 9ed2f72363a926d2750418ef5c5cf728 gcc/machmode.h 1e3feea915d17412b3e57a55c5a785e8 gcc/main.c ! 3447d1fe2899c211acf7630e20a297db gcc/match.pd 4b41ba6f5c2972934928d702e6ab5c99 gcc/mcf.c 12ed5d7cdbe37098551333c0d54e68ad gcc/mem-stats-traits.h d36e5c61d9079e93d8844808c4280f3b gcc/mem-stats.h *************** ffb6709ef6e104f353edb09bc1651596 gcc/mo *** 6064,6070 **** a98e50c063ce3f17ab72abe936f7f210 gcc/modulo-sched.c 9b2e40398cd8e086e71e5f469b2799b7 gcc/multiple_target.c f82c4a6b9621c8883a3eab86f0dd3768 gcc/mux-utils.h ! d9ee201dfb3a9b7b93a211bfb3c65015 gcc/objc/ChangeLog 8a483da76277f1107ee3864484da7cfd gcc/objc/Make-lang.in 81acf2f4cbd8edc8581291e0c02e76f9 gcc/objc/config-lang.in 8ca11b02b2a9e21229f11063fb154aee gcc/objc/lang-specs.h --- 6065,6071 ---- a98e50c063ce3f17ab72abe936f7f210 gcc/modulo-sched.c 9b2e40398cd8e086e71e5f469b2799b7 gcc/multiple_target.c f82c4a6b9621c8883a3eab86f0dd3768 gcc/mux-utils.h ! 66f8ccc19f3091c51c76f5831f078d4c gcc/objc/ChangeLog 8a483da76277f1107ee3864484da7cfd gcc/objc/Make-lang.in 81acf2f4cbd8edc8581291e0c02e76f9 gcc/objc/config-lang.in 8ca11b02b2a9e21229f11063fb154aee gcc/objc/lang-specs.h *************** efc719a9d69c08a88c9ca68c3d91dea6 gcc/ob *** 6083,6089 **** 3c7320cdc77c5d2c8ad240f498e04b42 gcc/objc/objc-runtime-shared-support.c 544d016401099d9ba39ea7ddbce01333 gcc/objc/objc-runtime-shared-support.h 88490072a5d5ef2282898959e8e55de1 gcc/objc/objc-tree.def ! 6476680a7d05a886660bcc342e25222b gcc/objcp/ChangeLog 8268a2fcb604c22c75202509b0338862 gcc/objcp/Make-lang.in add0ba454d5eb83cd065d29d3f6b676a gcc/objcp/config-lang.in fbbceaf466354af7b3851fc32a591c77 gcc/objcp/lang-specs.h --- 6084,6090 ---- 3c7320cdc77c5d2c8ad240f498e04b42 gcc/objc/objc-runtime-shared-support.c 544d016401099d9ba39ea7ddbce01333 gcc/objc/objc-runtime-shared-support.h 88490072a5d5ef2282898959e8e55de1 gcc/objc/objc-tree.def ! dcf08cb02acf7a5b121d9b3f2d4b9f15 gcc/objcp/ChangeLog 8268a2fcb604c22c75202509b0338862 gcc/objcp/Make-lang.in add0ba454d5eb83cd065d29d3f6b676a gcc/objcp/config-lang.in fbbceaf466354af7b3851fc32a591c77 gcc/objcp/lang-specs.h *************** f839d2547a23f21881f462d878a2df5d gcc/ob *** 6092,6102 **** a7a0bf03aa321b1e7cc047dd65c275c4 gcc/objcp/objcp-lang.c 605fb5272cb554608cefda2c23cc03c0 gcc/obstack-utils.h 7b56d1dcf3fd603f94c47c1cf6f3841a gcc/omp-builtins.def ! 079e9f2c902b70e61e63d018d5de4e95 gcc/omp-expand.c acdf170f52ac34b2d16d7fc8d784656e gcc/omp-expand.h 4b91eade4a6fc39a4a1bee3e8e7187c3 gcc/omp-general.c 9b7e003d231715f982f2185c6971389b gcc/omp-general.h ! 8c065ca396f861e8e44c67a018f1ad88 gcc/omp-low.c c8a35605fb251282ba6b62d2877c47ad gcc/omp-low.h 968555a5938f5016374fc7d6fe116877 gcc/omp-oacc-kernels-decompose.cc 655ce306b6a6a7a3eafc559e46ec1feb gcc/omp-offload.c --- 6093,6103 ---- a7a0bf03aa321b1e7cc047dd65c275c4 gcc/objcp/objcp-lang.c 605fb5272cb554608cefda2c23cc03c0 gcc/obstack-utils.h 7b56d1dcf3fd603f94c47c1cf6f3841a gcc/omp-builtins.def ! 23d8b07c52d89cb208a2abf546cc4d08 gcc/omp-expand.c acdf170f52ac34b2d16d7fc8d784656e gcc/omp-expand.h 4b91eade4a6fc39a4a1bee3e8e7187c3 gcc/omp-general.c 9b7e003d231715f982f2185c6971389b gcc/omp-general.h ! dfc97f65dacf865cea17c06a11d5e32e gcc/omp-low.c c8a35605fb251282ba6b62d2877c47ad gcc/omp-low.h 968555a5938f5016374fc7d6fe116877 gcc/omp-oacc-kernels-decompose.cc 655ce306b6a6a7a3eafc559e46ec1feb gcc/omp-offload.c *************** dcb81b8ac4afdc7cb3fd19ea5e279e5d gcc/op *** 6121,6135 **** b53437741beaf4c99ae67bb5623581dc gcc/optabs.def bb7dd65101e190027bd7f5d00537d338 gcc/optabs.h 87a1a5bcddba75fc52ca8e27664704dc gcc/optc-gen.awk ! 990b061d98f28e3f81bece38e55950bb gcc/optc-save-gen.awk 644f55b613498a30ad5561d8ac2ef3e4 gcc/opth-gen.awk 41e153ce211a7ce936f374042e78626c gcc/optinfo-emit-json.cc 9f4a9925296f20d19d64305038880c83 gcc/optinfo-emit-json.h 856ea796d22dcbc9579527e46613d813 gcc/optinfo.cc bc4ea40198df1dade8ab163363fce555 gcc/optinfo.h ! 4f56fcf0a392e7e80904a168ee8e362e gcc/opts-common.c d5cb4f8e14c4ba3e56b5393c98bf2a04 gcc/opts-diagnostic.h c9cb78ef27abfd3a19982545f0f1808d gcc/opts-global.c f316f70576f525302035fef1dada4d51 gcc/opts.c e49edd063f36ca8da3c7e467dd2e72bb gcc/opts.h 529cc4ae108023927cb547f8ca02217a gcc/ordered-hash-map-tests.cc --- 6122,6137 ---- b53437741beaf4c99ae67bb5623581dc gcc/optabs.def bb7dd65101e190027bd7f5d00537d338 gcc/optabs.h 87a1a5bcddba75fc52ca8e27664704dc gcc/optc-gen.awk ! 46b6d861c7798299eb41f073d27ef1bd gcc/optc-save-gen.awk 644f55b613498a30ad5561d8ac2ef3e4 gcc/opth-gen.awk 41e153ce211a7ce936f374042e78626c gcc/optinfo-emit-json.cc 9f4a9925296f20d19d64305038880c83 gcc/optinfo-emit-json.h 856ea796d22dcbc9579527e46613d813 gcc/optinfo.cc bc4ea40198df1dade8ab163363fce555 gcc/optinfo.h ! 80caa80c42146fabda6624c84c0cd0aa gcc/opts-common.c d5cb4f8e14c4ba3e56b5393c98bf2a04 gcc/opts-diagnostic.h c9cb78ef27abfd3a19982545f0f1808d gcc/opts-global.c + abb990f120fd8b648831963db6ecec8c gcc/opts-jobserver.h f316f70576f525302035fef1dada4d51 gcc/opts.c e49edd063f36ca8da3c7e467dd2e72bb gcc/opts.h 529cc4ae108023927cb547f8ca02217a gcc/ordered-hash-map-tests.cc *************** e733e0309389f9d07184e98b6ad9b536 gcc/pa *** 6142,6148 **** f09db14eb185fcdd795ff7e690b607a3 gcc/plugin.c 3cc53b8d5f30aebe3f70c00e1bc4929e gcc/plugin.def 7a5190d86531b8d3fa67e8cea7db5d60 gcc/plugin.h ! 7cd32b134f7041026af3fd0f94e9cfb7 gcc/po/ChangeLog edbad8e043a44996d844fa6a7965ea6f gcc/po/EXCLUDES f2e76d86dce1f72d4adc901bce318410 gcc/po/be.gmo ac4e50148300959070bbe8161dc44c3d gcc/po/be.po --- 6144,6150 ---- f09db14eb185fcdd795ff7e690b607a3 gcc/plugin.c 3cc53b8d5f30aebe3f70c00e1bc4929e gcc/plugin.def 7a5190d86531b8d3fa67e8cea7db5d60 gcc/plugin.h ! 5ea9f58a4b7fa2bad33da1cfc60f22d2 gcc/po/ChangeLog edbad8e043a44996d844fa6a7965ea6f gcc/po/EXCLUDES f2e76d86dce1f72d4adc901bce318410 gcc/po/be.gmo ac4e50148300959070bbe8161dc44c3d gcc/po/be.po *************** a7e9bd5354e5a900313112268fece3ed gcc/po *** 6187,6194 **** b5cf217de74bfb4c25a64c52994cfb70 gcc/poly-int-types.h 0799d24ba449e6a51e2fd9ed43c2c895 gcc/poly-int.h 64ee81daa4eca1addeddac912f6da05f gcc/postreload-gcse.c ! b404bf87ba532b757ab920bf8cfe6048 gcc/postreload.c ! 1c6e02c995e8a1da4d8f82546e0f7c22 gcc/predict.c 692b197c8926e88856e6061898336287 gcc/predict.def 41abb41efe44ad2ee6ea81fa0efe8981 gcc/predict.h df55ecfee3c8d6902de1f0a401662b34 gcc/prefix.c --- 6189,6196 ---- b5cf217de74bfb4c25a64c52994cfb70 gcc/poly-int-types.h 0799d24ba449e6a51e2fd9ed43c2c895 gcc/poly-int.h 64ee81daa4eca1addeddac912f6da05f gcc/postreload-gcse.c ! 7d61b12d2e10322f2f4916479d27ac4a gcc/postreload.c ! 38c469ffe284c82056461bed86dd84f4 gcc/predict.c 692b197c8926e88856e6061898336287 gcc/predict.def 41abb41efe44ad2ee6ea81fa0efe8981 gcc/predict.h df55ecfee3c8d6902de1f0a401662b34 gcc/prefix.c *************** c254cdb20b6b4f0d1184f5efbdb7a12c gcc/pr *** 6204,6210 **** 732d17acf6267a969e39ba2419b27ff9 gcc/profile-count.h a96706db9e9f3013d94609d7b3718fab gcc/profile.c 1cb6f0995127d2a5f07d8852252b9204 gcc/profile.h ! 5e2a9fce41837994cb9cab6678b9699f gcc/range-op.cc 530b558465d45ba8a4791807c6b35b24 gcc/range-op.h e63b7b269775057b328a377113078b16 gcc/range.cc 1d7d661f2f501c3ed5b4b1b370a6a4f0 gcc/range.h --- 6206,6212 ---- 732d17acf6267a969e39ba2419b27ff9 gcc/profile-count.h a96706db9e9f3013d94609d7b3718fab gcc/profile.c 1cb6f0995127d2a5f07d8852252b9204 gcc/profile.h ! dabf815b15e218e233024ddcb8342164 gcc/range-op.cc 530b558465d45ba8a4791807c6b35b24 gcc/range-op.h e63b7b269775057b328a377113078b16 gcc/range.cc 1d7d661f2f501c3ed5b4b1b370a6a4f0 gcc/range.h *************** f16337b3cb06bf956e8b9881213c9ca6 gcc/re *** 6219,6231 **** 1336428ec3de403ee3a67a32e46a2950 gcc/realmpfr.h 6a97b272d95ec05f8a4ca551c2031d37 gcc/recog.c 6d79a91b3db1ae875470ac88c3017e73 gcc/recog.h ! d413cb4a0b232cc480a3b8be25d8be8c gcc/ree.c 4991d12d362b1f941f85124f99dd06ed gcc/reg-notes.def ! 37dee4e1c279832a39f2cc014a775cc4 gcc/reg-stack.c 705a476e963c6de845f4a9cd4a8f5d54 gcc/regcprop.c f0e333f39bc1495a06bf48c9bf845507 gcc/regcprop.h afbaaa4f2b3dbd0fe78f439084f99424 gcc/reginfo.c ! 94f9d872d3709162b0c8f5cb5a59f3f2 gcc/regrename.c db1c9b9d3057a97aba76c18fa6e65fe3 gcc/regrename.h cbb3ec9de2848e74201ddcf7756e6912 gcc/regs.h b4f529c79dd2003cb163fccdd4d12a8c gcc/regset.h --- 6221,6233 ---- 1336428ec3de403ee3a67a32e46a2950 gcc/realmpfr.h 6a97b272d95ec05f8a4ca551c2031d37 gcc/recog.c 6d79a91b3db1ae875470ac88c3017e73 gcc/recog.h ! 1190d6a27e117dade166dade38c597a9 gcc/ree.c 4991d12d362b1f941f85124f99dd06ed gcc/reg-notes.def ! f15f0e621d8c483841c96a20fbf9b517 gcc/reg-stack.c 705a476e963c6de845f4a9cd4a8f5d54 gcc/regcprop.c f0e333f39bc1495a06bf48c9bf845507 gcc/regcprop.h afbaaa4f2b3dbd0fe78f439084f99424 gcc/reginfo.c ! 3989962cd4fbfc5052c078106296bf78 gcc/regrename.c db1c9b9d3057a97aba76c18fa6e65fe3 gcc/regrename.h cbb3ec9de2848e74201ddcf7756e6912 gcc/regs.h b4f529c79dd2003cb163fccdd4d12a8c gcc/regset.h *************** e28191cb00a98e949cbc143f320a07f6 gcc/re *** 6241,6248 **** 4e409a0d5cc6dc9e0629b228d3b558ba gcc/rtl-iter.h b476f310624f2f8985ae9e6f5cf84795 gcc/rtl-ssa.h 2bd899bd5847e63d4b3c22b4c3f8d681 gcc/rtl-ssa/access-utils.h ! 9822866edc851e6fd12a04438671f67e gcc/rtl-ssa/accesses.cc ! f83f422aa1010eeeedab15e026a7da14 gcc/rtl-ssa/accesses.h d732812e79a20c21accf4bbde2d16fe6 gcc/rtl-ssa/blocks.cc 26f90cf52a833397e160517c50f76928 gcc/rtl-ssa/blocks.h b749412578d62bfb2a22711a55df1124 gcc/rtl-ssa/change-utils.h --- 6243,6250 ---- 4e409a0d5cc6dc9e0629b228d3b558ba gcc/rtl-iter.h b476f310624f2f8985ae9e6f5cf84795 gcc/rtl-ssa.h 2bd899bd5847e63d4b3c22b4c3f8d681 gcc/rtl-ssa/access-utils.h ! 7738e493afe6ad85c015559bf1ff0433 gcc/rtl-ssa/accesses.cc ! 3dadf63307fc85f0decf8fe6c919f049 gcc/rtl-ssa/accesses.h d732812e79a20c21accf4bbde2d16fe6 gcc/rtl-ssa/blocks.cc 26f90cf52a833397e160517c50f76928 gcc/rtl-ssa/blocks.h b749412578d62bfb2a22711a55df1124 gcc/rtl-ssa/change-utils.h *************** e1595b6b1a7c703394640bffc7357aa5 gcc/rt *** 6256,6268 **** 3e2be38fa239ba65ce01840b6b1e6717 gcc/rtl-ssa/internals.h 3bcc3658e3e130fbbe4a9fbd9b0c3cd3 gcc/rtl-ssa/internals.inl 35c148bf46eb74781693030d7425a974 gcc/rtl-ssa/is-a.inl ! 105bec65bd605c46e6821361bf1e5708 gcc/rtl-ssa/member-fns.inl ! fc0c483ef35b0916889eb450dec30684 gcc/rtl-ssa/movement.h 6ee04c4c4fb71b581e0a42e7b5a7a73c gcc/rtl-tests.c dea69c3608ee51d947ef5ac67c2ca95b gcc/rtl.c 6e2727b9e2075fddcf252ad25dc6d604 gcc/rtl.def 7e6d263d2294090c692ce74d323d8da7 gcc/rtl.h ! f1c9464a3f3b95e046a84ab7490fa640 gcc/rtlanal.c 394592e1cbc71b6283d230cf895f1248 gcc/rtlanal.h 600140db9bd5eefa41bca935dcc1a901 gcc/rtlhash.c 97a32042580f6bc444125e76325e9f8e gcc/rtlhash.h --- 6258,6270 ---- 3e2be38fa239ba65ce01840b6b1e6717 gcc/rtl-ssa/internals.h 3bcc3658e3e130fbbe4a9fbd9b0c3cd3 gcc/rtl-ssa/internals.inl 35c148bf46eb74781693030d7425a974 gcc/rtl-ssa/is-a.inl ! ecf66423e53e53927403a7019b1256f3 gcc/rtl-ssa/member-fns.inl ! 701e3ae2663f3af371580252643bf791 gcc/rtl-ssa/movement.h 6ee04c4c4fb71b581e0a42e7b5a7a73c gcc/rtl-tests.c dea69c3608ee51d947ef5ac67c2ca95b gcc/rtl.c 6e2727b9e2075fddcf252ad25dc6d604 gcc/rtl.def 7e6d263d2294090c692ce74d323d8da7 gcc/rtl.h ! 0a93a9090ad9760e643aeffc81480fc0 gcc/rtlanal.c 394592e1cbc71b6283d230cf895f1248 gcc/rtlanal.h 600140db9bd5eefa41bca935dcc1a901 gcc/rtlhash.c 97a32042580f6bc444125e76325e9f8e gcc/rtlhash.h *************** d756cda29fd0d41dd981deb94691ead6 gcc/ru *** 6274,6280 **** 849a7f68c59cf805134725f6d573a12a gcc/run-rtl-passes.h 88681762ad1b72a93cd61d0ceb6922d4 gcc/sancov.c 30e67ef52139f9ecf2b0d6888b611676 gcc/sanitizer.def ! e62a73311b504f4617cb975542b8bfce gcc/sanopt.c 652586958a380c79d7c38c0636cb92cf gcc/sbitmap.c dd08726afeecf49aad987d4602b45083 gcc/sbitmap.h 5ba010d53c8923a1bfac3c71876ec3cf gcc/sched-deps.c --- 6276,6282 ---- 849a7f68c59cf805134725f6d573a12a gcc/run-rtl-passes.h 88681762ad1b72a93cd61d0ceb6922d4 gcc/sancov.c 30e67ef52139f9ecf2b0d6888b611676 gcc/sanitizer.def ! 7dd4be1a9b9a7d459621dde58f1d5a1d gcc/sanopt.c 652586958a380c79d7c38c0636cb92cf gcc/sbitmap.c dd08726afeecf49aad987d4602b45083 gcc/sbitmap.h 5ba010d53c8923a1bfac3c71876ec3cf gcc/sched-deps.c *************** a81acae3c8eb55b9ef11d3725fd55380 gcc/se *** 6287,6293 **** 32ad0fcb213a9554215b78467d9d8c75 gcc/sel-sched-ir.h 1e3da1400d44477e586418140c5d4bab gcc/sel-sched.c a263ac7eb263d57d0455625ac91b1815 gcc/sel-sched.h ! 81d86b5e84c70aa16ff704be30595478 gcc/selftest-diagnostic.c 266029d83f048bbaa186112f998ff289 gcc/selftest-diagnostic.h a58b078dfc2bee6fff5ee6c5c8542221 gcc/selftest-rtl.c 0a3fdf0a7c1020814aa458f9a978ebe5 gcc/selftest-rtl.h --- 6289,6295 ---- 32ad0fcb213a9554215b78467d9d8c75 gcc/sel-sched-ir.h 1e3da1400d44477e586418140c5d4bab gcc/sel-sched.c a263ac7eb263d57d0455625ac91b1815 gcc/sel-sched.h ! e6a4b3c823ce1e1a27a2f0edda9901ab gcc/selftest-diagnostic.c 266029d83f048bbaa186112f998ff289 gcc/selftest-diagnostic.h a58b078dfc2bee6fff5ee6c5c8542221 gcc/selftest-rtl.c 0a3fdf0a7c1020814aa458f9a978ebe5 gcc/selftest-rtl.h *************** a03499ddf4891bc19a18b98c310fa971 gcc/st *** 6330,6336 **** ba17f60121ba1b5f039f9dc1078b46f8 gcc/stringpool.h 0e9ba4d784593d4ed23ac7186c35ae50 gcc/substring-locations.c 8dd5c05fb4ef8cc3bf57f5ca63d32846 gcc/substring-locations.h ! 8789ac541d37b67407d2c8a73d692d40 gcc/symbol-summary.h 236c95c47ab750764d02d4876b55e442 gcc/symtab-clones.cc bedb42e729e5bd698d0861dc145266fb gcc/symtab-clones.h 8a9324974824a4c433f0d463bbfb69ec gcc/symtab-thunks.cc --- 6332,6338 ---- ba17f60121ba1b5f039f9dc1078b46f8 gcc/stringpool.h 0e9ba4d784593d4ed23ac7186c35ae50 gcc/substring-locations.c 8dd5c05fb4ef8cc3bf57f5ca63d32846 gcc/substring-locations.h ! 98c81a459cff09409d3e699ae8bbf2da gcc/symbol-summary.h 236c95c47ab750764d02d4876b55e442 gcc/symtab-clones.cc bedb42e729e5bd698d0861dc145266fb gcc/symtab-clones.h 8a9324974824a4c433f0d463bbfb69ec gcc/symtab-thunks.cc *************** b3739b072aa976c2f9f9825ac6d07c80 gcc/ta *** 6348,6354 **** b71dcf011f9b95f3a705da052a95caf9 gcc/targhooks.c 104445ec4cf950b087d249c268d36edc gcc/targhooks.h f39fcaa8197187283ccfed40107b426d gcc/testsuite/.gitattributes ! 27401e67713b44e67fb8e8100e2ef209 gcc/testsuite/ChangeLog 862f04afbd87da2cc6bc432c3f28430f gcc/testsuite/ChangeLog-1993-2007 029a5d8dacd25eb5d4711452ac448e5b gcc/testsuite/ChangeLog-2008 13ac28c41d51b66b4ec40dba6bd50f39 gcc/testsuite/ChangeLog-2009 --- 6350,6356 ---- b71dcf011f9b95f3a705da052a95caf9 gcc/targhooks.c 104445ec4cf950b087d249c268d36edc gcc/targhooks.h f39fcaa8197187283ccfed40107b426d gcc/testsuite/.gitattributes ! 830b7d53116002286e8034db00356962 gcc/testsuite/ChangeLog 862f04afbd87da2cc6bc432c3f28430f gcc/testsuite/ChangeLog-1993-2007 029a5d8dacd25eb5d4711452ac448e5b gcc/testsuite/ChangeLog-2008 13ac28c41d51b66b4ec40dba6bd50f39 gcc/testsuite/ChangeLog-2009 *************** e68c59b3c604b0f464d1f4c02629a7a5 gcc/te *** 9158,9163 **** --- 9160,9166 ---- fc40f165305f408a7e0fc682ac4e4e21 gcc/testsuite/c-c++-common/Wshift-overflow-8.c f6687e96d1a359321b94d5babcf73720 gcc/testsuite/c-c++-common/Wshift-overflow-9.c 2095424b6b86a7ddbae9c94c16fa2157 gcc/testsuite/c-c++-common/Wsign-compare-1.c + baefeae8b123d7fff8e835b68ec75bf4 gcc/testsuite/c-c++-common/Wsign-compare-2.c 40bc1e540d092c06d14dc9842ee9cd03 gcc/testsuite/c-c++-common/Wsign-conversion-1.c c7eebf2a6120dfecf1a6ae7de1f49694 gcc/testsuite/c-c++-common/Wsizeof-array-div1.c 60f2f0aa7f30ae4b7fc18937d32ed9b7 gcc/testsuite/c-c++-common/Wsizeof-pointer-div.c *************** ef95b2391ac4310fde10257ba4f7463b gcc/te *** 9396,9401 **** --- 9399,9405 ---- 3a349fcc5db93dcaf44a93c32735f04a gcc/testsuite/c-c++-common/builtin_location.c 2341b1258f7e71f5aeb2fc1ac6a17b27 gcc/testsuite/c-c++-common/builtins.c a15893a996b14e9ab79c08a9d37157ee gcc/testsuite/c-c++-common/cold-1.c + 856043e4093da5eee730f0219ccb9f99 gcc/testsuite/c-c++-common/cold-2.c fc20dcb635dd1e825303cc47593a9155 gcc/testsuite/c-c++-common/conflict-markers-1.c c2ffea9f8039ad1708c1c073f6b3b25a gcc/testsuite/c-c++-common/conflict-markers-10.c c83e3d1d9dca930d44de5fee29a51bbb gcc/testsuite/c-c++-common/conflict-markers-11.c *************** f2e2a6171e51d284aef6b4356f338ad3 gcc/te *** 9485,9490 **** --- 9489,9495 ---- 17f09d053664aa8b96634b37ce0988da gcc/testsuite/c-c++-common/cpp/spaceship-1.c 9cdc13ca5a948af9c95ec156cac8609c gcc/testsuite/c-c++-common/cpp/ucnid-2011-1-utf8.c 791d43cbbb9115404405c22be44e4ae7 gcc/testsuite/c-c++-common/cpp/ucnid-2011-1.c + 83bc077362cc4ef37199360c8b7fe130 gcc/testsuite/c-c++-common/cpp/va-opt-10.c 0f93514d0ad79c03edfd672fb354e619 gcc/testsuite/c-c++-common/cpp/va-opt-2.c d4400c02e16c9ce8399bebed26d20e37 gcc/testsuite/c-c++-common/cpp/va-opt-3.c ffa7f1250b7f00a641ad13c5836e4f01 gcc/testsuite/c-c++-common/cpp/va-opt-4.c *************** f10bae63863004428ff4b3fbefab335e gcc/te *** 9873,9878 **** --- 9878,9884 ---- f0e8744f81b4bd363089960ae8a6bbb6 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 + db5184f418f1fcff4229563335cdcac7 gcc/testsuite/c-c++-common/gomp/doacross-8.c 5a70f931f3d1911a210ec6155240d4dc gcc/testsuite/c-c++-common/gomp/element-1.c b4b404945f33512628e60c9ebd9b767a gcc/testsuite/c-c++-common/gomp/flush-1.c 3ed4af2aec57a7165a1a730e299b4935 gcc/testsuite/c-c++-common/gomp/flush-2.c *************** b3c3fe5a4ecc31231711cb240274d62c gcc/te *** 9928,9933 **** --- 9934,9941 ---- 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 + 1164bc26f7382179d1bd6b607af1d336 gcc/testsuite/c-c++-common/gomp/pr106981.c + 8f995161beda01326e712ba172a760f8 gcc/testsuite/c-c++-common/gomp/pr107001.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 *************** ae2fa528701d8a7118d0446869032faa gcc/te *** 10140,10145 **** --- 10148,10156 ---- 05e5f34e1a745d2204989ec4f256e3c7 gcc/testsuite/c-c++-common/pr101537.c 3b77bbb422eaff74de51c6cd92512232 gcc/testsuite/c-c++-common/pr103881.c f7797890edb72db96871a3c3582464f4 gcc/testsuite/c-c++-common/pr105186.c + d5189fe9f7cb5f4a822563c9d438762d gcc/testsuite/c-c++-common/pr105998.c + 01a09737cb2c3c4ba35d97feda5c3aeb gcc/testsuite/c-c++-common/pr107358.c + e1ef9c58498f72552b0ec84751024b54 gcc/testsuite/c-c++-common/pr107465.c f5dce8e27cfb8a6bfffe57596fecb796 gcc/testsuite/c-c++-common/pr19807-1.c 325d7c32f3748e10d55ba2faba3f1ce2 gcc/testsuite/c-c++-common/pr19807-2.c fb902cfe5a28251e99c554d18fb797e4 gcc/testsuite/c-c++-common/pr19807-3.c *************** ea224ace5832cd0eba6a6d58558ed280 gcc/te *** 10355,10360 **** --- 10366,10372 ---- 0ff677a7f94c47b0db47cc14f3e6f746 gcc/testsuite/c-c++-common/pr96369.c e7da4642e25c14b28d3cbf86173d69a5 gcc/testsuite/c-c++-common/pr96545.c 4fe8ad019b60941d4903ffbf3df4e8dc gcc/testsuite/c-c++-common/pr97164.c + 81e319f6287462f1138a4fa254bcfda0 gcc/testsuite/c-c++-common/pr97498.c 7859693e4c5c966ac09c6aa874fe5eb9 gcc/testsuite/c-c++-common/pr98556.c dcb1283b3d236483f0079fddb308212a gcc/testsuite/c-c++-common/pr98943.c 7e14f7ea529494ee1df50282a20a267c gcc/testsuite/c-c++-common/pr99113.c *************** e421ddf2d69b41e79c4238d86ca23e02 gcc/te *** 10624,10629 **** --- 10636,10642 ---- 701ee447bdcb3bdd63f4e19e0aa275c7 gcc/testsuite/c-c++-common/ubsan/div-by-zero-5.c 6f79bf0d7a915586511e6d16f808b12f gcc/testsuite/c-c++-common/ubsan/div-by-zero-6.c d48169540b483892cb5aef4288256769 gcc/testsuite/c-c++-common/ubsan/div-by-zero-7.c + 1a58dcff8d9551745c7d182be6aae836 gcc/testsuite/c-c++-common/ubsan/div-by-zero-8.c 8d9e9d9d9f81061daf513b5ba1554c80 gcc/testsuite/c-c++-common/ubsan/float-cast-overflow-1.c 96159bb28961f7d226730c47d4f46b1c gcc/testsuite/c-c++-common/ubsan/float-cast-overflow-10.c 412e240273773d78a1d355e70f1bb47f gcc/testsuite/c-c++-common/ubsan/float-cast-overflow-11.c *************** d44301076a2b5c1b6d67f8097ebccdc3 gcc/te *** 11504,11509 **** --- 11517,11523 ---- 60125e183bd40bfbd86f4bb4ff301e9d gcc/testsuite/g++.dg/concepts/equiv.C bad35a69b0266b020bc955ced2b14050 gcc/testsuite/g++.dg/concepts/equiv2.C 777ac81f55c638a07da402594472e54f gcc/testsuite/g++.dg/concepts/explicit-spec1.C + 54d3adb5daf405d53fb4cae734d0d1a8 gcc/testsuite/g++.dg/concepts/explicit-spec1a.C 5035d2866ee1c240c402c7e67d6968f3 gcc/testsuite/g++.dg/concepts/expression.C 9fe31807d4c7abdadc0b3bfa1b68cea5 gcc/testsuite/g++.dg/concepts/expression2.C 2da19a671e12ee60540bcf641442c919 gcc/testsuite/g++.dg/concepts/expression3.C *************** e272ef3520e23457da8ff42e7d7411cb gcc/te *** 11686,11691 **** --- 11700,11707 ---- a3a3822acc6c0ae0b1c800209c7c3369 gcc/testsuite/g++.dg/conversion/to-virtual-base-1.C 7a062897a2b4fb8f55640e4a532239dd gcc/testsuite/g++.dg/conversion/void1.C 11a0651cbba544a16a3a99edc6dd1232 gcc/testsuite/g++.dg/conversion/void2.C + 328c92600a7878c243c41f5fbc6d94ff gcc/testsuite/g++.dg/coroutines/co-await-initlist1.C + f74a9d1bf6640b367d56a51317dbd163 gcc/testsuite/g++.dg/coroutines/co-await-moveonly1.C d2633a9d9bd295c903ea6a188821ac3c gcc/testsuite/g++.dg/coroutines/co-await-syntax-00-needs-expr.C cbcf61ac3695e850097b05502475b900 gcc/testsuite/g++.dg/coroutines/co-await-syntax-01-outside-fn.C b9cdf449335374fa9e29301f8b540c5e gcc/testsuite/g++.dg/coroutines/co-await-syntax-02-outside-fn.C *************** cb41fef7448625fa4e0c8fd96e24fc4d gcc/te *** 11748,11753 **** --- 11764,11770 ---- 0338cdb719c46fedef7227899cb0ad47 gcc/testsuite/g++.dg/coroutines/coroutines.exp 5a6ab803d16d71889bbcfbe081300785 gcc/testsuite/g++.dg/coroutines/pr102454.C 85cc1b4c4f0e73f17a81693bed3275fa gcc/testsuite/g++.dg/coroutines/pr103328.C + c5029b3ababd909d21fec108130560c2 gcc/testsuite/g++.dg/coroutines/pr106188.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 *************** c11fb9d024f89aea2e027172cee4bda2 gcc/te *** 12217,12222 **** --- 12234,12240 ---- 82b611352fd26c7db573eb5226ef4366 gcc/testsuite/g++.dg/cpp0x/cond2.C 49892879cc50168564ac99cc87bfb0ab gcc/testsuite/g++.dg/cpp0x/constexpr-100111.C eeac975a1b841cef4d5a4c468314ed8c gcc/testsuite/g++.dg/cpp0x/constexpr-104472.C + 6ef86dfa8bcd129320f2714974f8ad93 gcc/testsuite/g++.dg/cpp0x/constexpr-105321.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 *************** c42ce017f72e0ac9bc977500bc2d096c gcc/te *** 12443,12448 **** --- 12461,12467 ---- 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 + 98f85ca947a471fd37217a8fc9e771fb gcc/testsuite/g++.dg/cpp0x/constexpr-fno-elide-ctors1.C aa1967267d5d21b22c4d54dfa617fcfc gcc/testsuite/g++.dg/cpp0x/constexpr-fnptr.C 928d1a775ac6fb68d34dd89fdd936ada gcc/testsuite/g++.dg/cpp0x/constexpr-fold1.C 216c6548cc77db922bab7f78e595ac97 gcc/testsuite/g++.dg/cpp0x/constexpr-fold2.C *************** a5ce11f6f7a1de2ab9382765eaae19a9 gcc/te *** 12533,12538 **** --- 12552,12558 ---- 9b22329501cdc0c04eb177944b0b9482 gcc/testsuite/g++.dg/cpp0x/constexpr-pedantic.C 21cafe90c117f963b0c4d2102a2109a0 gcc/testsuite/g++.dg/cpp0x/constexpr-pmf1.C 22f1652453d581ac1aa114c7e107eb73 gcc/testsuite/g++.dg/cpp0x/constexpr-pmf2.C + 35b3637981f7a87405df79bbf34a383f gcc/testsuite/g++.dg/cpp0x/constexpr-pmf3.C 71bf544adf239f884a43b6d72e78604e gcc/testsuite/g++.dg/cpp0x/constexpr-pos1.C e29b90d7c0ad7662446a6055addb6315 gcc/testsuite/g++.dg/cpp0x/constexpr-potential1.C a82ef0f27014a7256099b10bb3cb2b1a gcc/testsuite/g++.dg/cpp0x/constexpr-ptrcomp1.C *************** f192edc5aab7159d4df05835d1b9ecd0 gcc/te *** 12766,12771 **** --- 12786,12792 ---- 21abe8f16d0d01595ec939e338038b2b gcc/testsuite/g++.dg/cpp0x/decltype78.C 6fca30204c9f40dfe34f43d06bc82ff6 gcc/testsuite/g++.dg/cpp0x/decltype79.C bbdff105c665351973aaa6a25eaa0940 gcc/testsuite/g++.dg/cpp0x/decltype8.C + 8b610d64de6905aa68e67fd0017df0c1 gcc/testsuite/g++.dg/cpp0x/decltype81.C 037e88423c377bc171f0dea56fb59c12 gcc/testsuite/g++.dg/cpp0x/decltype9.C 3b20b1750b2ca6ed0f61eed98be9416e gcc/testsuite/g++.dg/cpp0x/deduce.C 3187223bdfa9e7cd351538529dc18cf1 gcc/testsuite/g++.dg/cpp0x/defaulted1.C *************** f520b3c677602a9f4bb925811947dd27 gcc/te *** 12904,12909 **** --- 12925,12931 ---- 4314a939d182c8ee315404a2d9cf3ec3 gcc/testsuite/g++.dg/cpp0x/enum4.C 1180e3480996d107ee707434d64528e0 gcc/testsuite/g++.dg/cpp0x/enum40.C 04d281e3cb2c000a5e49e2b16f623027 gcc/testsuite/g++.dg/cpp0x/enum41.C + 04dc1d4fe43005d4de8c5865ec895953 gcc/testsuite/g++.dg/cpp0x/enum43.C 771003df84c0886c950718b7f6d81033 gcc/testsuite/g++.dg/cpp0x/enum5.C 67ec15297186c0dc5b419618c460a2f2 gcc/testsuite/g++.dg/cpp0x/enum6.C 2b0985c5003a3baf1ba60c7c38770636 gcc/testsuite/g++.dg/cpp0x/enum7.C *************** f8949630a7a02f66d0ceb796b5525cb8 gcc/te *** 13159,13164 **** --- 13181,13188 ---- c7426143406ef7a62dfbbb6b6ef974ca gcc/testsuite/g++.dg/cpp0x/initlist-new3.C 2462ced2f35f174d3a192fbb553556f8 gcc/testsuite/g++.dg/cpp0x/initlist-new4.C 0eb8216638573813eaf1d41d50899505 gcc/testsuite/g++.dg/cpp0x/initlist-new5.C + eb8899f6095da627d668fbc099e59316 gcc/testsuite/g++.dg/cpp0x/initlist-new6.C + 99344f656bc7edb059f04cde31dcaa17 gcc/testsuite/g++.dg/cpp0x/initlist-nrv1.C bcbe398391cda8139c8462f46935b7e2 gcc/testsuite/g++.dg/cpp0x/initlist-opt.C e572423dbc63856346f68c0f83dab54a gcc/testsuite/g++.dg/cpp0x/initlist-overload1.C a054a7d4e96233b7a3a6591843a8d33f gcc/testsuite/g++.dg/cpp0x/initlist-pmf1.C *************** cd0880983dc32cb469f470728ae8b22b gcc/te *** 13349,13354 **** --- 13373,13379 ---- 8fc3ab70c2058568fbe8578145b021ae gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const-this.C 1d85414b94d2d104004fc7341b90a896 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const.C 26a3a7d7fa8662de4df1454d0f3eea85 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const10.C + 692c149205d32e7263c8778ba131c9dc gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const11.C 64bc761abc3783521fdfb26f930f3410 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const2.C e513b4dcc45e6063745c03c7c99151fa gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const3.C 1ced7b3231f38cc9948cc247893ffec1 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const4.C *************** dbabde6c9b65d0b2533bd2602dd6b6c4 gcc/te *** 13379,13384 **** --- 13404,13410 ---- f84ddfe5534d65a28836f3e1f7f92bbe gcc/testsuite/g++.dg/cpp0x/lambda/lambda-copy.C 6ae63f2c8f3dcde85465487f60927b71 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ctor-neg.C 8e8636849d06c71cef7fbe0973b2ace5 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ctors.C + b7541efb5750181bf83ef0c6c0074ed7 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-current-inst1.C 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 *************** fb7661df85ad6b415b31574c67fa4ee0 gcc/te *** 13803,13808 **** --- 13829,13835 ---- 5ca00ae02aa7919e0b3d9730fa9f9ac5 gcc/testsuite/g++.dg/cpp0x/overload-conv-2.C 2c6f9529ab2133b66b083833e669fd58 gcc/testsuite/g++.dg/cpp0x/overload-conv-3.C 05f8d114c0307676d7d3b227b2e3213d gcc/testsuite/g++.dg/cpp0x/overload-conv-4.C + 24976a5c9289b91a4727f22028c1cb65 gcc/testsuite/g++.dg/cpp0x/overload-conv-5.C e1598f2c9f261104495d9e7d921f8264 gcc/testsuite/g++.dg/cpp0x/overload.C 15b4148c92763edcf90b0fe0cb6f7742 gcc/testsuite/g++.dg/cpp0x/overload2.C e51fa7b3953a97711f4b666480bad308 gcc/testsuite/g++.dg/cpp0x/overload3.C *************** ec3fccada021f17376f5255d71d5545b gcc/te *** 13816,13821 **** --- 13843,13849 ---- a174690fe306aaf345b02df91c3ddebe gcc/testsuite/g++.dg/cpp0x/parse2.C 6802ea11c1f5811ef4a3d0490040dcc1 gcc/testsuite/g++.dg/cpp0x/pr102305.C ab53f37eb7254188dd01a8c1e25841fd gcc/testsuite/g++.dg/cpp0x/pr105256.C + fa773bb98628f5c9f0fa9d8d8b29beda gcc/testsuite/g++.dg/cpp0x/pr107065.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 *************** b111f953ff16a99ffc3ad09a151f0958 gcc/te *** 14092,14101 **** 663c80121f28c2e7c23a73bc07b03f24 gcc/testsuite/g++.dg/cpp0x/ref-bind1.C 8a71cf891e8518665824499f113e2f05 gcc/testsuite/g++.dg/cpp0x/ref-bind2.C 2d20779c52193e2ab44ed26a7073b235 gcc/testsuite/g++.dg/cpp0x/ref-bind3.C ! 7bd7d572797664b340cbbd95894feb6e gcc/testsuite/g++.dg/cpp0x/ref-bind4.C 26f40a31991788187bf4bd2b2bebe9b5 gcc/testsuite/g++.dg/cpp0x/ref-bind5.C 49a197500ff063e67fcb6e5da7a86594 gcc/testsuite/g++.dg/cpp0x/ref-bind6.C 40e3f42cd5f4b322013adb46fba11bd2 gcc/testsuite/g++.dg/cpp0x/ref-bind7.C 87cba3bd81389f956a4ab8405ad5dc46 gcc/testsuite/g++.dg/cpp0x/ref-qual-mangle1.C af4673410b97bcc5393dd82a2599c2d1 gcc/testsuite/g++.dg/cpp0x/ref-qual-multi-neg.C d0d588806aef3922d92ee7fb7c632659 gcc/testsuite/g++.dg/cpp0x/ref-qual1.C --- 14120,14130 ---- 663c80121f28c2e7c23a73bc07b03f24 gcc/testsuite/g++.dg/cpp0x/ref-bind1.C 8a71cf891e8518665824499f113e2f05 gcc/testsuite/g++.dg/cpp0x/ref-bind2.C 2d20779c52193e2ab44ed26a7073b235 gcc/testsuite/g++.dg/cpp0x/ref-bind3.C ! 050b4a2d3a8f313526e14084d11d939e gcc/testsuite/g++.dg/cpp0x/ref-bind4.C 26f40a31991788187bf4bd2b2bebe9b5 gcc/testsuite/g++.dg/cpp0x/ref-bind5.C 49a197500ff063e67fcb6e5da7a86594 gcc/testsuite/g++.dg/cpp0x/ref-bind6.C 40e3f42cd5f4b322013adb46fba11bd2 gcc/testsuite/g++.dg/cpp0x/ref-bind7.C + 15ad30c4d2016e8133378c56ef3b191f gcc/testsuite/g++.dg/cpp0x/ref-bind8.C 87cba3bd81389f956a4ab8405ad5dc46 gcc/testsuite/g++.dg/cpp0x/ref-qual-mangle1.C af4673410b97bcc5393dd82a2599c2d1 gcc/testsuite/g++.dg/cpp0x/ref-qual-multi-neg.C d0d588806aef3922d92ee7fb7c632659 gcc/testsuite/g++.dg/cpp0x/ref-qual1.C *************** c58aea587f92e9318dcbcd4325ab9500 gcc/te *** 14758,14763 **** --- 14787,14793 ---- 3861eed28323480e4913eea3d9c0ec00 gcc/testsuite/g++.dg/cpp1y/auto-fn6.C 0e31cca86c98231e2720ee96ce25a02d gcc/testsuite/g++.dg/cpp1y/auto-fn60.C e791b94844e59093ad5ec4175c3b673a gcc/testsuite/g++.dg/cpp1y/auto-fn61.C + f97d20d3d680128b6e125d1793e29b87 gcc/testsuite/g++.dg/cpp1y/auto-fn64.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 *************** af7d2fcb1d1338760b009b72c73a0154 gcc/te *** 14777,14782 **** --- 14807,14813 ---- 596bb0c9ae27b7c107953a30347295f0 gcc/testsuite/g++.dg/cpp1y/constexpr-104284-3.C b18c63a0e6b162de2b47ab0e61b704bd gcc/testsuite/g++.dg/cpp1y/constexpr-104284-4.C 6193cad472a1684eae83fead9fc5d0d7 gcc/testsuite/g++.dg/cpp1y/constexpr-104513.C + afbdcf440b8da95f919e745c0f3a85d1 gcc/testsuite/g++.dg/cpp1y/constexpr-105774.C 2d72668eefa5659edd32ef8dabc1c48e gcc/testsuite/g++.dg/cpp1y/constexpr-50060.C 9b2030f5f70b0e913feb1b957c799f4f gcc/testsuite/g++.dg/cpp1y/constexpr-66093.C 9ecc58eab147adafbf3780c51ed706fc gcc/testsuite/g++.dg/cpp1y/constexpr-70265-1.C *************** fdb8b6b86d13d007f2629fe0e79ef65b gcc/te *** 14839,14845 **** e6815ab618d6af99025ddeacf6ab0545 gcc/testsuite/g++.dg/cpp1y/constexpr-copy3.C 4808950072f67f78922c9046e31e486d gcc/testsuite/g++.dg/cpp1y/constexpr-dr1684.C 9b6ce1c2202c1ce9ea82fda5f060499b gcc/testsuite/g++.dg/cpp1y/constexpr-empty1.C ! 9e871814c326197a59b4ae1738313788 gcc/testsuite/g++.dg/cpp1y/constexpr-empty2.C d4fc72d059e047077b1d6033d4c13026 gcc/testsuite/g++.dg/cpp1y/constexpr-empty3.C f1a863bb06163b628459fbc6a355ec3f gcc/testsuite/g++.dg/cpp1y/constexpr-empty4.C 995873768089d805df939c03d2be8b1c gcc/testsuite/g++.dg/cpp1y/constexpr-hana1.C --- 14870,14876 ---- e6815ab618d6af99025ddeacf6ab0545 gcc/testsuite/g++.dg/cpp1y/constexpr-copy3.C 4808950072f67f78922c9046e31e486d gcc/testsuite/g++.dg/cpp1y/constexpr-dr1684.C 9b6ce1c2202c1ce9ea82fda5f060499b gcc/testsuite/g++.dg/cpp1y/constexpr-empty1.C ! b8279a438f13574240482fd43dc100d3 gcc/testsuite/g++.dg/cpp1y/constexpr-empty2.C d4fc72d059e047077b1d6033d4c13026 gcc/testsuite/g++.dg/cpp1y/constexpr-empty3.C f1a863bb06163b628459fbc6a355ec3f gcc/testsuite/g++.dg/cpp1y/constexpr-empty4.C 995873768089d805df939c03d2be8b1c gcc/testsuite/g++.dg/cpp1y/constexpr-hana1.C *************** a429d84bc7f4132705bbe16ebbde7773 gcc/te *** 14986,14991 **** --- 15017,15023 ---- 82b03b4626aa950dab28dc141638ae81 gcc/testsuite/g++.dg/cpp1y/lambda-generic-dep2.C b3d105376831c9fced97427b9128fab4 gcc/testsuite/g++.dg/cpp1y/lambda-generic-empty1.C d3f8bce30776925a103e5bcc1681b6ab gcc/testsuite/g++.dg/cpp1y/lambda-generic-enum1.C + bebbad2dccf149ad3697584e53703d3d gcc/testsuite/g++.dg/cpp1y/lambda-generic-enum2.C b7efd8d29878f4a8e3a07f9cf622188c gcc/testsuite/g++.dg/cpp1y/lambda-generic-func1.C 82fea772a2540cf9ab702c17cc2cdb54 gcc/testsuite/g++.dg/cpp1y/lambda-generic-ice1.C 2c1a495f8eecefe79fade7ccb361c16c gcc/testsuite/g++.dg/cpp1y/lambda-generic-ice10.C *************** b49a994714f8ac92c508dd3d6ab50d9d gcc/te *** 15283,15288 **** --- 15315,15321 ---- b481e5273496bfbbf3b3909be7169b4c gcc/testsuite/g++.dg/cpp1y/var-templ68.C 7ec7355a58dc65697a20d36778907420 gcc/testsuite/g++.dg/cpp1y/var-templ68a.C 3c670164f1a7f8f91ef1db2f80526182 gcc/testsuite/g++.dg/cpp1y/var-templ7.C + 65e2c5dc982b2101d716a561b1d08003 gcc/testsuite/g++.dg/cpp1y/var-templ78.C 7490ba7f2bf9511118a48f52e8c4ceed gcc/testsuite/g++.dg/cpp1y/var-templ8.C c62c3c5ce4dabfb077ffd26896b1d204 gcc/testsuite/g++.dg/cpp1y/var-templ9.C 2e5f8fa912af0b2871356af6f1adbd06 gcc/testsuite/g++.dg/cpp1y/vla-initlist1.C *************** ca10f046e47ea09ba5b87084372f1ce2 gcc/te *** 15317,15322 **** --- 15350,15356 ---- 4dbddfffb31fb9d4ab9b40b6ac489d84 gcc/testsuite/g++.dg/cpp1z/aligned-new6.C c5e8ac858eac19a1f1f10709e9b49389 gcc/testsuite/g++.dg/cpp1z/aligned-new7.C 1c005f415746635350d5fd1bf3068b93 gcc/testsuite/g++.dg/cpp1z/aligned-new8.C + 91a3b7a59ec3f2f070c0cc2e24a851b2 gcc/testsuite/g++.dg/cpp1z/aligned-new9.C 15f78f24e2133987caada47dbd4501b6 gcc/testsuite/g++.dg/cpp1z/attr-lambda1.C 34121807f233280bd4b9ceb565c64cf6 gcc/testsuite/g++.dg/cpp1z/attributes-enum-1.C a6e3099890bf75adfc276a625b3b0e3f gcc/testsuite/g++.dg/cpp1z/attributes-enum-1a.C *************** daf6a1ab8d18fad76864f7a9c31adc71 gcc/te *** 15331,15337 **** 871331a13941944f7010cfb1344eab6e gcc/testsuite/g++.dg/cpp1z/class-deduction109.C 517aaeb274419d156e09eb5a7d5b7077 gcc/testsuite/g++.dg/cpp1z/class-deduction11.C 9f4ecb418c0bbb6f3b318882c20889a4 gcc/testsuite/g++.dg/cpp1z/class-deduction110.C ! 0ee09ea78093c92338c6b29bc4a5b4ba gcc/testsuite/g++.dg/cpp1z/class-deduction12.C 8033f2dbb1dc793a3fea073353a0487a gcc/testsuite/g++.dg/cpp1z/class-deduction13.C f51a81e3b0aa46f289c5ca9d3faaded6 gcc/testsuite/g++.dg/cpp1z/class-deduction14.C e3e05c165da411f84f868e0fb1238dca gcc/testsuite/g++.dg/cpp1z/class-deduction15.C --- 15365,15371 ---- 871331a13941944f7010cfb1344eab6e gcc/testsuite/g++.dg/cpp1z/class-deduction109.C 517aaeb274419d156e09eb5a7d5b7077 gcc/testsuite/g++.dg/cpp1z/class-deduction11.C 9f4ecb418c0bbb6f3b318882c20889a4 gcc/testsuite/g++.dg/cpp1z/class-deduction110.C ! fccf66f75d0bb293e6ce56753e50eeda gcc/testsuite/g++.dg/cpp1z/class-deduction12.C 8033f2dbb1dc793a3fea073353a0487a gcc/testsuite/g++.dg/cpp1z/class-deduction13.C f51a81e3b0aa46f289c5ca9d3faaded6 gcc/testsuite/g++.dg/cpp1z/class-deduction14.C e3e05c165da411f84f868e0fb1238dca gcc/testsuite/g++.dg/cpp1z/class-deduction15.C *************** f663fe16c189e85a87c99ac3e556cdff gcc/te *** 15412,15426 **** --- 15446,15464 ---- 7d0faa5e56f529947c47f73b3309ce56 gcc/testsuite/g++.dg/cpp1z/class-deduction84.C 533990a3a8f21fecb63572f9aaf57a51 gcc/testsuite/g++.dg/cpp1z/class-deduction85.C 3920e918276476b088679b893b9cde19 gcc/testsuite/g++.dg/cpp1z/class-deduction9.C + 196827ac69f45d97751bae8af9fb4549 gcc/testsuite/g++.dg/cpp1z/class-deduction99.C d09105e6c1f377543e5514e34d2837cd gcc/testsuite/g++.dg/cpp1z/constexpr-83692.C 6962bfa121a4383ee0b7a8f045abde3f gcc/testsuite/g++.dg/cpp1z/constexpr-84684.C 45c5f013f34b63d5d77c2d394365a506 gcc/testsuite/g++.dg/cpp1z/constexpr-96575.C db812bf22a911000584c903aac50ffd3 gcc/testsuite/g++.dg/cpp1z/constexpr-96862.C + 731a5da264413704826d204eeb2f2046 gcc/testsuite/g++.dg/cpp1z/constexpr-aggr-base1.C 58f65982ee216b64a2a721ba861c9e63 gcc/testsuite/g++.dg/cpp1z/constexpr-array1.C + 70b535b9e8c7e79ff364a6bca9996aa2 gcc/testsuite/g++.dg/cpp1z/constexpr-array2.C d309961f0255b13605cf111efa2b095a gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda1.C 6031d9adb83bdf87e2dd05c8108493d1 gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda2.C 6a2eb0af9be5a3b73df8e66127a94fd9 gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda3.C 2746f29337da849f597ad6ce8bbb74c2 gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda4.C + f40b7c3743735802b3e2fa6c768cf560 gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda5.C b70f4276933d24cd68ae2e047a954ece gcc/testsuite/g++.dg/cpp1z/constexpr-if1.C 1e52ede853069710bb8cc3b5b323de8c gcc/testsuite/g++.dg/cpp1z/constexpr-if10.C 6ad161b09218162d754ac9e397dad17c gcc/testsuite/g++.dg/cpp1z/constexpr-if11.C *************** af1e704cf45a12bb8c7e2865e6b7debc gcc/te *** 15539,15544 **** --- 15577,15584 ---- 483e3caa4572c2f88ee6dff747cf3056 gcc/testsuite/g++.dg/cpp1z/decomp53.C 46ef66cc9a593b59b8b3f161586b0533 gcc/testsuite/g++.dg/cpp1z/decomp54.C 9e963a76a6e736436964ce0e71d75f41 gcc/testsuite/g++.dg/cpp1z/decomp55.C + 7473f4d78f4cab74d8165611ea38a63d gcc/testsuite/g++.dg/cpp1z/decomp57.C + 055f4b76f99d823ab62ec060da73a672 gcc/testsuite/g++.dg/cpp1z/decomp58.C 1bdca83f97c5e15ddd3eda87ca5353f2 gcc/testsuite/g++.dg/cpp1z/decomp6.C 09468d9aa8e4fe8ac0677b17a3c509a2 gcc/testsuite/g++.dg/cpp1z/decomp7.C 0d7ba62c8322f4f98a085026e3ac529a gcc/testsuite/g++.dg/cpp1z/decomp8.C *************** a53a61e2c3773add424075de3343c370 gcc/te *** 15572,15577 **** --- 15612,15618 ---- c74b2113efcb17ebf1be773837691046 gcc/testsuite/g++.dg/cpp1z/fold10.C ba52c35faa435abd9cb368147dc00857 gcc/testsuite/g++.dg/cpp1z/fold11.C 91bd8e80a033defa1c149b412cb7ba1c gcc/testsuite/g++.dg/cpp1z/fold12.C + fa4ff7e96ff3b0d8cb7114d58f8127ac gcc/testsuite/g++.dg/cpp1z/fold13.C 5e8f1589e281e551eba15be5ad14bd8b gcc/testsuite/g++.dg/cpp1z/fold2.C a33f917557c76cefc8e7e59dedbf0a4e gcc/testsuite/g++.dg/cpp1z/fold3.C 954117a731946951912acd1615190810 gcc/testsuite/g++.dg/cpp1z/fold4.C *************** bd11bdac9c20a2f5798e7207aca814ab gcc/te *** 15584,15589 **** --- 15625,15631 ---- fade45a91157c646e6940a215501f1c9 gcc/testsuite/g++.dg/cpp1z/gen-attrs1.C ac9f13854ea3e455a1371aaa819ee22a gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations1.C 5f34b6f6c6b9801ac84fd35a7072c291 gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations2.C + 9f9fa73c4ae67e4de5904663c140998d gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations3.C 712e0c3f886fdb90e5e03d39bd877f92 gcc/testsuite/g++.dg/cpp1z/inh-ctor1.C a5a039fe3394138160509efa1a2212c5 gcc/testsuite/g++.dg/cpp1z/inh-ctor22.C b303784bcf07c99011e96f0a6da77c55 gcc/testsuite/g++.dg/cpp1z/inh-ctor23.C *************** c307915525471ee8f08e6059faf237d8 gcc/te *** 15757,15762 **** --- 15799,15805 ---- e8f7bd0576728e974495935283ad4f39 gcc/testsuite/g++.dg/cpp23/constexpr-nonlit7.C 94d923eb6e3e9a6e1a82b6aa88915ed5 gcc/testsuite/g++.dg/cpp23/cplusplus.C d39bcd154de40d84b2eefbe2f9697524 gcc/testsuite/g++.dg/cpp23/feat-cxx2b.C + 1f301f9b519009a1705e491647a55829 gcc/testsuite/g++.dg/cpp23/lambda-attr1.C 570aa212dcff2a498d044c98fa66a858 gcc/testsuite/g++.dg/cpp23/lambda-specifiers1.C 0b54a398f8b42d5fc1ce9e8f422c3298 gcc/testsuite/g++.dg/cpp23/lambda-specifiers2.C 5fe66da6d2baee159060686defa0e47e gcc/testsuite/g++.dg/cpp23/size_t-literals.C *************** a8200681bca98aa623d744251dada14f gcc/te *** 16085,16090 **** --- 16128,16135 ---- 9c9bfab9cfda662c9a6cf1fcf12eba12 gcc/testsuite/g++.dg/cpp2a/concepts-requires29.C e6e703168548b58827e38ded644feb36 gcc/testsuite/g++.dg/cpp2a/concepts-requires29a.C ed7e50860b352f18084c5990524595b2 gcc/testsuite/g++.dg/cpp2a/concepts-requires3.C + af01c600c3ac040f6855ee2ed2bff7bc gcc/testsuite/g++.dg/cpp2a/concepts-requires30.C + 4e9fea94af314664c5d064df3b008f44 gcc/testsuite/g++.dg/cpp2a/concepts-requires31.C d3851914c01bf78597e5cb411ed0b3d5 gcc/testsuite/g++.dg/cpp2a/concepts-requires4.C 480013be0f806d0b078176447ae77360 gcc/testsuite/g++.dg/cpp2a/concepts-requires5.C 8ea6ab45de0c359b113c65f1958a54a1 gcc/testsuite/g++.dg/cpp2a/concepts-requires6.C *************** cd7abc8d42b6882b26382ab5c9549dc9 gcc/te *** 16094,16099 **** --- 16139,16145 ---- df41d5e3eb088a4079a9e8ca6adc1cd1 gcc/testsuite/g++.dg/cpp2a/concepts-return-req1.C 73d7ca2c4ac7816b0388f526d4e04629 gcc/testsuite/g++.dg/cpp2a/concepts-return-req2.C 328e3a75620bf7edb8349523d4785673 gcc/testsuite/g++.dg/cpp2a/concepts-return-req3.C + ad64150b7244228f6fbd5e2a90ba099c gcc/testsuite/g++.dg/cpp2a/concepts-return-req4.C dfcd95576f20c2cc8e894aafe754dd43 gcc/testsuite/g++.dg/cpp2a/concepts-sfinae1.C 94e516c88a3b958114e11fa18857ea12 gcc/testsuite/g++.dg/cpp2a/concepts-spec1.C e7d2cd347c791b674d0be66da74077a1 gcc/testsuite/g++.dg/cpp2a/concepts-syntax1.C *************** ec9215388b111eac1916dca163b2b4dd gcc/te *** 16107,16112 **** --- 16153,16159 ---- ee36c7ebc03385f37bcba1c49e06c808 gcc/testsuite/g++.dg/cpp2a/concepts-this1.C 39c15f1dc604f714304d144250164089 gcc/testsuite/g++.dg/cpp2a/concepts-traits1.C c9a6ab7bc0f1947e843b9c7150ccb98c gcc/testsuite/g++.dg/cpp2a/concepts-traits2.C + da802903e656a602947ee543e58f625e gcc/testsuite/g++.dg/cpp2a/concepts-traits3.C 82c399ad9b34b095f9489e636de58940 gcc/testsuite/g++.dg/cpp2a/concepts-ts1.C 202e848af4b3017e51ab2eb5995fffeb gcc/testsuite/g++.dg/cpp2a/concepts-ts2.C ea441494e2367b584a16520ca6327732 gcc/testsuite/g++.dg/cpp2a/concepts-ts3.C *************** dbce59796cf14d5203c5f6510a0ae622 gcc/te *** 16283,16288 **** --- 16330,16336 ---- a5ab0c1acf96ddc777b5af2b1b69b23d gcc/testsuite/g++.dg/cpp2a/constinit13.C abe4f29f72a423fef4342d122db1f1e3 gcc/testsuite/g++.dg/cpp2a/constinit14.C 6c452707a42527df0dd492198f4a03d6 gcc/testsuite/g++.dg/cpp2a/constinit15.C + 5f1a0d190f7b063f2ab37e1844af8991 gcc/testsuite/g++.dg/cpp2a/constinit18.C 9f7da905ea744d36251021c627953aa7 gcc/testsuite/g++.dg/cpp2a/constinit2.C ec97b4f24af7c726b645ccd07978270a gcc/testsuite/g++.dg/cpp2a/constinit3.C ec5836ef75d0047a1e68f87292524d25 gcc/testsuite/g++.dg/cpp2a/constinit4.C *************** a6ee108d333ad358664c642b33d39e46 gcc/te *** 16312,16317 **** --- 16360,16366 ---- 989b46f026a86ab54fda41f606108878 gcc/testsuite/g++.dg/cpp2a/desig23.C 37f9adbe25dc46488b6c27d2e6505657 gcc/testsuite/g++.dg/cpp2a/desig24.C 338ebe449657eb02c4167973adb86777 gcc/testsuite/g++.dg/cpp2a/desig25.C + 4509437e82877d48180736a8562517df gcc/testsuite/g++.dg/cpp2a/desig26.C 9f489d7f3f58294a91f5e5ea62989f5c gcc/testsuite/g++.dg/cpp2a/desig3.C a1e304613b1097092d10ed459e46fe0c gcc/testsuite/g++.dg/cpp2a/desig4.C bf71e77b18ad9c10b7e9f64f07ee9d28 gcc/testsuite/g++.dg/cpp2a/desig5.C *************** b37f129ff7900818716e38b8fde743c0 gcc/te *** 16389,16394 **** --- 16438,16445 ---- 40ea32951dfb4570c1774e238c30f434 gcc/testsuite/g++.dg/cpp2a/lambda-generic-variadic20.C c1cdf23c08dcb292bbd629847ef95a23 gcc/testsuite/g++.dg/cpp2a/lambda-generic-variadic21.C f3d333d9133ccc3fed58f15dd1e6c1c1 gcc/testsuite/g++.dg/cpp2a/lambda-generic1.C + 31de1847090a23a3b1145ba426b1f12b gcc/testsuite/g++.dg/cpp2a/lambda-generic10.C + d5563aeee3f9b44dbd622e206e23998d gcc/testsuite/g++.dg/cpp2a/lambda-generic11.C 101950bd66265e5e952f39292d61abee gcc/testsuite/g++.dg/cpp2a/lambda-generic2.C f3183e909b7fd601906b1f284b8514e9 gcc/testsuite/g++.dg/cpp2a/lambda-generic3.C 53b70e7bd216f774ecdcfeda866f430c gcc/testsuite/g++.dg/cpp2a/lambda-generic4.C *************** f50c8e7c7812a7eade38d014e8410110 gcc/te *** 16404,16409 **** --- 16455,16461 ---- 76aebdeb346269b3700ddb3dc4e2d8ac gcc/testsuite/g++.dg/cpp2a/lambda-pack-init4.C 922e5dff9ed1946970d8d28661c33f0f gcc/testsuite/g++.dg/cpp2a/lambda-pack-init5.C 05ee01266fc805cc3327ad09e070330c gcc/testsuite/g++.dg/cpp2a/lambda-pack-init6.C + 85f2c06ad2ac5e902901d52119b92b66 gcc/testsuite/g++.dg/cpp2a/lambda-pack-init7.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 *************** bf80b786a1a4ec9eac5fda8277196264 gcc/te *** 16582,16587 **** --- 16634,16640 ---- 494f62ed4d3c86eb9614203922c107f6 gcc/testsuite/g++.dg/cpp2a/spaceship-decltype1.C 78449a6026dc94a1940145f131e40dbd gcc/testsuite/g++.dg/cpp2a/spaceship-eq1.C 7ef8ca64f3d128751171c4bc6c6d1dc9 gcc/testsuite/g++.dg/cpp2a/spaceship-eq10.C + 38fdc580773803f5236af81425b44d75 gcc/testsuite/g++.dg/cpp2a/spaceship-eq14.C 35b5b00dc11e88e35813caed81c920fc gcc/testsuite/g++.dg/cpp2a/spaceship-eq1a.C da366bbf37859e5c77c24a8138c72180 gcc/testsuite/g++.dg/cpp2a/spaceship-eq2.C 930eb55b3ccd27e9ad1d90ede793b4f1 gcc/testsuite/g++.dg/cpp2a/spaceship-eq3.C *************** e83eaca9dc6f24d5d311cbc3b0f5e3e8 gcc/te *** 16690,16700 **** e0594ebf50b79f339906f3410ba74411 gcc/testsuite/g++.dg/cpp2a/using-enum-7.C 2a6d4537e5c7ceafb005d88ac7453264 gcc/testsuite/g++.dg/cpp2a/using-enum-8.C 3b9024d3a27c4b1a195fd5d7e4185661 gcc/testsuite/g++.dg/cpp2a/using-enum-9.C ! eb3624cc3c4aaf45b38420c1d813e807 gcc/testsuite/g++.dg/cpp2a/volatile1.C 1268b9025db1cda367f76654228c1829 gcc/testsuite/g++.dg/cpp2a/volatile2.C ! 38a1560b8b9b22be4d576d30a8cef4c3 gcc/testsuite/g++.dg/cpp2a/volatile3.C 6ef0acb96637db85886dfa5cfceedf60 gcc/testsuite/g++.dg/cpp2a/volatile4.C ! 96dafb009a7feee933cad2b35c2cccf6 gcc/testsuite/g++.dg/cpp2a/volatile5.C e71a3440857a0df24410cbe91e45c678 gcc/testsuite/g++.dg/debug/anonunion1.C 8dbd2136c39269d38b72a0226e914678 gcc/testsuite/g++.dg/debug/cleanup1.C e4aee91d21a8cdbd286094f893319c70 gcc/testsuite/g++.dg/debug/const1.C --- 16743,16753 ---- e0594ebf50b79f339906f3410ba74411 gcc/testsuite/g++.dg/cpp2a/using-enum-7.C 2a6d4537e5c7ceafb005d88ac7453264 gcc/testsuite/g++.dg/cpp2a/using-enum-8.C 3b9024d3a27c4b1a195fd5d7e4185661 gcc/testsuite/g++.dg/cpp2a/using-enum-9.C ! 533045ce55798a72315286511613854a gcc/testsuite/g++.dg/cpp2a/volatile1.C 1268b9025db1cda367f76654228c1829 gcc/testsuite/g++.dg/cpp2a/volatile2.C ! 3fa8ac8868e5ba1230d5ea9f4490bfef gcc/testsuite/g++.dg/cpp2a/volatile3.C 6ef0acb96637db85886dfa5cfceedf60 gcc/testsuite/g++.dg/cpp2a/volatile4.C ! 9857faea61370aed22b9ca9ef059dcd8 gcc/testsuite/g++.dg/cpp2a/volatile5.C e71a3440857a0df24410cbe91e45c678 gcc/testsuite/g++.dg/debug/anonunion1.C 8dbd2136c39269d38b72a0226e914678 gcc/testsuite/g++.dg/debug/cleanup1.C e4aee91d21a8cdbd286094f893319c70 gcc/testsuite/g++.dg/debug/const1.C *************** c7ffd1dd0ae40378732be3ac8729a37c gcc/te *** 16795,16800 **** --- 16848,16854 ---- 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 + 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 *************** a0ac13a0885ee162c972f58ffbd934e7 gcc/te *** 16880,16885 **** --- 16934,16941 ---- 8d1c97a9b811ba8c9a789baf97c48ce4 gcc/testsuite/g++.dg/debug/namespace1.C 98d1fa8a42200722f612a8f915bb9673 gcc/testsuite/g++.dg/debug/namespace2.C c805656a195d9a98cc7141e7db52d9ef gcc/testsuite/g++.dg/debug/nullptr01.C + 57e21034689a45ffd010ec86b2596de5 gcc/testsuite/g++.dg/debug/pr106261.C + 19de4ef7373a891f957af0121c166d89 gcc/testsuite/g++.dg/debug/pr108967.C fcdc9d29f34ff56d1b7de0d55a1eaed7 gcc/testsuite/g++.dg/debug/pr15736.cc d25b84553c2083b28615202497b8f94a gcc/testsuite/g++.dg/debug/pr16792.C 91880dfb66fda0db4ddabf486346b755 gcc/testsuite/g++.dg/debug/pr22514.C *************** d9a1f43ca6ac2a073e22bbbf243f300b gcc/te *** 18413,18418 **** --- 18469,18478 ---- 9950e1331756ada98404843c3491b239 gcc/testsuite/g++.dg/gomp/pr101516.C 0c11b92a016ab75deb360c1427f9b571 gcc/testsuite/g++.dg/gomp/pr101759.C 3da3560251942b44a47c6e2c267e97f2 gcc/testsuite/g++.dg/gomp/pr102431.C + 7e0c22485f96abb66b7f1423871e39b0 gcc/testsuite/g++.dg/gomp/pr106124.C + 2a1bc0a0ca3eb44a30af243b7764d562 gcc/testsuite/g++.dg/gomp/pr106492.C + e1073bec80cbc48fb15e02126aebb2b0 gcc/testsuite/g++.dg/gomp/pr107558.C + 8c2b289e4e3768861822d1f92823a842 gcc/testsuite/g++.dg/gomp/pr108607.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 *************** dcecc8a81073a9824c153ff083f81a4a gcc/te *** 18602,18608 **** 012194f3f4441fc0dc8fb4ba94a8882b gcc/testsuite/g++.dg/graphite/pr42681.C dfe63b7d52f6d97e04da25f267ac330c gcc/testsuite/g++.dg/graphite/pr42930.C 4cf735ba9e5b65e201dbbd4ec916b359 gcc/testsuite/g++.dg/graphite/pr43026.C ! a75b83e8d5052fa0817648b5802726ae 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 --- 18662,18668 ---- 012194f3f4441fc0dc8fb4ba94a8882b gcc/testsuite/g++.dg/graphite/pr42681.C dfe63b7d52f6d97e04da25f267ac330c gcc/testsuite/g++.dg/graphite/pr42930.C 4cf735ba9e5b65e201dbbd4ec916b359 gcc/testsuite/g++.dg/graphite/pr43026.C ! 38e3f063d99a01f2e69d87070f805198 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 *************** b25b382db37739c81869b75df02687cf gcc/te *** 18990,18995 **** --- 19050,19056 ---- 89bc34eae0365b381ab82e8d4ca5957f gcc/testsuite/g++.dg/init/pr43890.C f660de16a9cf160558064bb92eb21901 gcc/testsuite/g++.dg/init/pr44086.C 880ee6b08cc835f2a1db0bae613e7a23 gcc/testsuite/g++.dg/init/pr48859.C + 326a48b27d057d316de2e35aec05d132 gcc/testsuite/g++.dg/init/pr53932.C aa6fb39dc7128d68580ac96eb833e456 gcc/testsuite/g++.dg/init/pr55497.C c835d50eaf5fe1a2b052a1579b5ce77f gcc/testsuite/g++.dg/init/pr58811.C f25ce72283c3004e08c0df4685ca2469 gcc/testsuite/g++.dg/init/pr60572.C *************** d0415e5d5ed79c73a04e7df5551e4b95 gcc/te *** 19172,19177 **** --- 19233,19239 ---- 867fb18fd70a2df8847d32f03eb09d64 gcc/testsuite/g++.dg/ipa/ivinline-9.C 89a697678c960075181328b0bed18d5a gcc/testsuite/g++.dg/ipa/nothrow-1.C ecfa94e705bc436ad699767b1e4c929e gcc/testsuite/g++.dg/ipa/polymorphic-call-1.C + 55ee7bff7cc115f42266bd1d62dda46b gcc/testsuite/g++.dg/ipa/pr100413.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 *************** c50416bd024b7f394ccf13b2af42d6e9 gcc/te *** 19372,19377 **** --- 19434,19440 ---- 6c4b3ee38e0ef8c73906d3d6ef93c86e gcc/testsuite/g++.dg/lookup/friend20.C a484b9799b124bf970c056c966db32e6 gcc/testsuite/g++.dg/lookup/friend21.C e5da5eba809ee821e6882a9f27fe37d6 gcc/testsuite/g++.dg/lookup/friend22.C + 2212655cd503f3dbf25bf127bc32e45f gcc/testsuite/g++.dg/lookup/friend24.C e51e64a92ddf4c4d012cb738bf62fde5 gcc/testsuite/g++.dg/lookup/friend3.C 96ad222df48d0097eb84d66dbf37d17d gcc/testsuite/g++.dg/lookup/friend4.C 187ba092057b229619d98cf5e000c6e1 gcc/testsuite/g++.dg/lookup/friend5.C *************** ceb308a6392d6912753d38c2f9a2bccb gcc/te *** 20808,20814 **** 3a893c5a8b908d302fc91bf865138018 gcc/testsuite/g++.dg/modules/tpl-extern-var-1_b.C 051a2753ec2e8d615e18875ab2746fa8 gcc/testsuite/g++.dg/modules/tpl-friend-1_a.C 2d9be0b173bceba0cbfd5a1ee4909f4c gcc/testsuite/g++.dg/modules/tpl-friend-1_b.C ! 127b3c98362ebb3267f51d1773afb775 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 2f75113d46c35f669145b81d5620b94d gcc/testsuite/g++.dg/modules/tpl-friend-3_b.C --- 20871,20877 ---- 3a893c5a8b908d302fc91bf865138018 gcc/testsuite/g++.dg/modules/tpl-extern-var-1_b.C 051a2753ec2e8d615e18875ab2746fa8 gcc/testsuite/g++.dg/modules/tpl-friend-1_a.C 2d9be0b173bceba0cbfd5a1ee4909f4c gcc/testsuite/g++.dg/modules/tpl-friend-1_b.C ! d36e0a1f34b1d7f2cacd00844d768335 gcc/testsuite/g++.dg/modules/tpl-friend-2_a.C 4511743d659541c1148b76a234b62a41 gcc/testsuite/g++.dg/modules/tpl-friend-2_b.C 95a880cc0f3eee2ff8309d2183f7f9d4 gcc/testsuite/g++.dg/modules/tpl-friend-3_a.C 2f75113d46c35f669145b81d5620b94d gcc/testsuite/g++.dg/modules/tpl-friend-3_b.C *************** b879c3972fcf09a0bef4781d973dea10 gcc/te *** 20992,20997 **** --- 21055,21061 ---- 6ce6781eee8599f8f5762ae874d368af gcc/testsuite/g++.dg/opt/const4.C 8acf967b641c44d3b713b18abd459981 gcc/testsuite/g++.dg/opt/const5.C 77ef3f0315a1d75cc03361805c714b79 gcc/testsuite/g++.dg/opt/const6.C + 5bc6618e030e397aeed7cf91aa526f63 gcc/testsuite/g++.dg/opt/const7.C 8a6577c2e8b91d69c2d55b8ed2488fc8 gcc/testsuite/g++.dg/opt/copysign-1.C 5c2d124413a2eaf9d343379ef14570a2 gcc/testsuite/g++.dg/opt/covariant1.C 2b8e568482a37c0e98a0154aa649f58b gcc/testsuite/g++.dg/opt/crash1.C *************** b599b75470b905e959a7172363b13d69 gcc/te *** 21109,21114 **** --- 21173,21180 ---- 4821bda808ec2c117c297e4f155752e3 gcc/testsuite/g++.dg/opt/pr104681.C a05f3fe9e917eacdb552f9ade1d73f34 gcc/testsuite/g++.dg/opt/pr104880.C bad9496f071793031ea4ab93b911a483 gcc/testsuite/g++.dg/opt/pr105235-1.C + 0fd8014a8bf41063904c9006c6d3f334 gcc/testsuite/g++.dg/opt/pr108365.C + 2613159e61afceaa9e7ace58beef53f4 gcc/testsuite/g++.dg/opt/pr108854.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 *************** eef8c677d4ba7576d1abc34640929821 gcc/te *** 22245,22251 **** eb7d271a7110d4e8fc3f749e65b2288f gcc/testsuite/g++.dg/parse/new5.C 5070f40d76becad391ac11ebc8fc25b2 gcc/testsuite/g++.dg/parse/new6.C 802d61ac08eb06bb2eb54839cd4accf8 gcc/testsuite/g++.dg/parse/no-type-defn1.C ! 43b7207a4c945d2ace1328cdc697c267 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 --- 22311,22317 ---- eb7d271a7110d4e8fc3f749e65b2288f gcc/testsuite/g++.dg/parse/new5.C 5070f40d76becad391ac11ebc8fc25b2 gcc/testsuite/g++.dg/parse/new6.C 802d61ac08eb06bb2eb54839cd4accf8 gcc/testsuite/g++.dg/parse/no-type-defn1.C ! 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 *************** ed8b4046f6c267966d1156016f2f0431 gcc/te *** 22343,22348 **** --- 22409,22415 ---- 322abe6d2d840b6218ecf16b70637d21 gcc/testsuite/g++.dg/parse/qualified3.C c6c725343704e95eb7f4ce2862bce46b gcc/testsuite/g++.dg/parse/qualified4.C 5f4c2303e76572835b5428d77b8b77ec gcc/testsuite/g++.dg/parse/qualified5.C + 2c7ef51e8071727ef6ac34013c08759f gcc/testsuite/g++.dg/parse/qualified6.C 8d6d8891281e77e95edf66cda3bc270f gcc/testsuite/g++.dg/parse/redef1.C ea5aebd8cd9820744d1d08f3b5429dca gcc/testsuite/g++.dg/parse/redef2.C 19c9483f0726842c500357ad04acc983 gcc/testsuite/g++.dg/parse/ref-qual1.C *************** e051d5cb1d92744fe18b74552249a54e gcc/te *** 22505,22510 **** --- 22572,22578 ---- 4e74baf6e971213789395d81a85385e0 gcc/testsuite/g++.dg/plugin/show_template_tree_color_plugin.c 2e53d96b8ba6ffa8b9414775da7e87f3 gcc/testsuite/g++.dg/pr100253.C b4e42a0948b84ed96d9d06db882fdc2e gcc/testsuite/g++.dg/pr100574.C + 18b9174889675eec328ca8173a24e49a gcc/testsuite/g++.dg/pr104869.C 2ac64817a39fe1a5c2dc328f4233cda1 gcc/testsuite/g++.dg/pr37742.C 32b2fbda29ffd2ac2181c43c971f3a7d gcc/testsuite/g++.dg/pr44328.C e43b4ea2d038b181b57782d5d56d22ba gcc/testsuite/g++.dg/pr44486.C *************** c196198d50bad93b87f24ccaf1c0ee15 gcc/te *** 22576,22593 **** 2925678828b854c5f2a448d4d34d8e08 gcc/testsuite/g++.dg/pr64688.C 0f0d9bb4908d6bdb56109652b1ef4e88 gcc/testsuite/g++.dg/pr65032.C 2a99023224d23b7b4c2df438196b9877 gcc/testsuite/g++.dg/pr65049.C ! e806b69344c18eb3f9f4d25e7ef1cbb7 gcc/testsuite/g++.dg/pr65240-1.C ! ee3a7e458d7954444a8959c8662bdeba gcc/testsuite/g++.dg/pr65240-2.C ! 3a4a8f388dfc83911ec4b20be25740b4 gcc/testsuite/g++.dg/pr65240-3.C ! 185b61c9f9f2771ca0469650321db79c gcc/testsuite/g++.dg/pr65240-4.C ff90a96b0f5bda64aea35147770302e1 gcc/testsuite/g++.dg/pr65240.h ! 0057ba501387c41f5fcb4c3488ae63ac gcc/testsuite/g++.dg/pr65242.C c987d521d6ec4222a0bbaff58ae0df77 gcc/testsuite/g++.dg/pr65295.C 20bcb78b164336c6b42304de362d905a gcc/testsuite/g++.dg/pr66655.C 575d8cfa0f7cc7a30ac74c14eec274d2 gcc/testsuite/g++.dg/pr66655.h 9b717eabe7d22f65a71673e3ffc1470b gcc/testsuite/g++.dg/pr66655_1.cc c014278b0e7c6cf72bd8834b1b9d6631 gcc/testsuite/g++.dg/pr66866.C ! e76d57f03d20c287845bd04c939c4d73 gcc/testsuite/g++.dg/pr67211.C 54fc8bd86f8a81eead6183ed98044e5e gcc/testsuite/g++.dg/pr67351.C c15a8cc45a8eaf8903cfaae658dc8822 gcc/testsuite/g++.dg/pr67405.C 61d6f57e830446105d84b6744eecd7eb gcc/testsuite/g++.dg/pr67666.C --- 22644,22661 ---- 2925678828b854c5f2a448d4d34d8e08 gcc/testsuite/g++.dg/pr64688.C 0f0d9bb4908d6bdb56109652b1ef4e88 gcc/testsuite/g++.dg/pr65032.C 2a99023224d23b7b4c2df438196b9877 gcc/testsuite/g++.dg/pr65049.C ! 922496f33a9ac5ccae6f8aa317a02a67 gcc/testsuite/g++.dg/pr65240-1.C ! 8bd9fd039876f7fc1a911c89028258ff gcc/testsuite/g++.dg/pr65240-2.C ! 5ba7c1a90046e9179ea6288129367815 gcc/testsuite/g++.dg/pr65240-3.C ! d50cfc924c3c6bfe48d010f49b0320c5 gcc/testsuite/g++.dg/pr65240-4.C ff90a96b0f5bda64aea35147770302e1 gcc/testsuite/g++.dg/pr65240.h ! 225c688c4f2ead1be77c30e05bf4245c gcc/testsuite/g++.dg/pr65242.C c987d521d6ec4222a0bbaff58ae0df77 gcc/testsuite/g++.dg/pr65295.C 20bcb78b164336c6b42304de362d905a gcc/testsuite/g++.dg/pr66655.C 575d8cfa0f7cc7a30ac74c14eec274d2 gcc/testsuite/g++.dg/pr66655.h 9b717eabe7d22f65a71673e3ffc1470b gcc/testsuite/g++.dg/pr66655_1.cc c014278b0e7c6cf72bd8834b1b9d6631 gcc/testsuite/g++.dg/pr66866.C ! 6e5baacb67506374f7db3dffb5272daf gcc/testsuite/g++.dg/pr67211.C 54fc8bd86f8a81eead6183ed98044e5e gcc/testsuite/g++.dg/pr67351.C c15a8cc45a8eaf8903cfaae658dc8822 gcc/testsuite/g++.dg/pr67405.C 61d6f57e830446105d84b6744eecd7eb gcc/testsuite/g++.dg/pr67666.C *************** b76c7ee65b34b2377285a776d351781b gcc/te *** 22606,22619 **** 29300174b10233fd47c932d1ffd4c3bf gcc/testsuite/g++.dg/pr69123.C 72bb8a9ea548aaaada55dbcdb8d6a802 gcc/testsuite/g++.dg/pr69338.C 07ceb93faa4d6543359b7c47e9a5e94a gcc/testsuite/g++.dg/pr69379.C ! 7577b450ba2f8422ac17aa9a168a69c1 gcc/testsuite/g++.dg/pr69667.C 1b19e570cc03e72ec7115cbf16663717 gcc/testsuite/g++.dg/pr69697.C 6574022bacba25e4efad4b7c4931c69a gcc/testsuite/g++.dg/pr70098.C 52e836d540fc39ce14dbc3124fd1ad8e gcc/testsuite/g++.dg/pr70590-2.C d8fba4e6baf8e0880ae882765e1135b4 gcc/testsuite/g++.dg/pr70590.C 5c6cf3e2bb082400e2ca3d17973fdd4b gcc/testsuite/g++.dg/pr70965.C 0b728dae13a5f48195e47018a83c4f35 gcc/testsuite/g++.dg/pr71184.C ! 8b83dfbae2a2ae737596ef723b347d76 gcc/testsuite/g++.dg/pr71294.C dd5b895f9e8e377b3fc861eecf9bdbf7 gcc/testsuite/g++.dg/pr71389.C 6b1ee9b05340152c90e7c09d5b9eb5c2 gcc/testsuite/g++.dg/pr71488.C 8756c72da60c2ac8cdddc20291df82e3 gcc/testsuite/g++.dg/pr71655.C --- 22674,22687 ---- 29300174b10233fd47c932d1ffd4c3bf gcc/testsuite/g++.dg/pr69123.C 72bb8a9ea548aaaada55dbcdb8d6a802 gcc/testsuite/g++.dg/pr69338.C 07ceb93faa4d6543359b7c47e9a5e94a gcc/testsuite/g++.dg/pr69379.C ! 2c2e860fd96f20dc6b16a5da17796c8e gcc/testsuite/g++.dg/pr69667.C 1b19e570cc03e72ec7115cbf16663717 gcc/testsuite/g++.dg/pr69697.C 6574022bacba25e4efad4b7c4931c69a gcc/testsuite/g++.dg/pr70098.C 52e836d540fc39ce14dbc3124fd1ad8e gcc/testsuite/g++.dg/pr70590-2.C d8fba4e6baf8e0880ae882765e1135b4 gcc/testsuite/g++.dg/pr70590.C 5c6cf3e2bb082400e2ca3d17973fdd4b gcc/testsuite/g++.dg/pr70965.C 0b728dae13a5f48195e47018a83c4f35 gcc/testsuite/g++.dg/pr71184.C ! 1c81a3ae2a74a3e67c56f46fd05e05ae gcc/testsuite/g++.dg/pr71294.C dd5b895f9e8e377b3fc861eecf9bdbf7 gcc/testsuite/g++.dg/pr71389.C 6b1ee9b05340152c90e7c09d5b9eb5c2 gcc/testsuite/g++.dg/pr71488.C 8756c72da60c2ac8cdddc20291df82e3 gcc/testsuite/g++.dg/pr71655.C *************** bf14562b088e1e4c01e4050adbd18394 gcc/te *** 22655,22661 **** a8cae2d227c02ee5705e9b5b205bb1d1 gcc/testsuite/g++.dg/pr83979.c 8528aaf5d93c3e6771dcc4828d7264b5 gcc/testsuite/g++.dg/pr84231.C 083c1f5c90058b5d83822264c5d52f0e gcc/testsuite/g++.dg/pr84264.C ! 11b4cccb7d83f94f276075c4b5417588 gcc/testsuite/g++.dg/pr84279.C fcd3d77f2c884effb0321a5b04ff8ca6 gcc/testsuite/g++.dg/pr84492.C ebc2502b64fbdf6e7c61b806ec979487 gcc/testsuite/g++.dg/pr84729.C 75d741968e42202427b6e9c163e5c326 gcc/testsuite/g++.dg/pr84821.C --- 22723,22729 ---- a8cae2d227c02ee5705e9b5b205bb1d1 gcc/testsuite/g++.dg/pr83979.c 8528aaf5d93c3e6771dcc4828d7264b5 gcc/testsuite/g++.dg/pr84231.C 083c1f5c90058b5d83822264c5d52f0e gcc/testsuite/g++.dg/pr84264.C ! 26d10f4b383162ffd9eb468d61656fe3 gcc/testsuite/g++.dg/pr84279.C fcd3d77f2c884effb0321a5b04ff8ca6 gcc/testsuite/g++.dg/pr84492.C ebc2502b64fbdf6e7c61b806ec979487 gcc/testsuite/g++.dg/pr84729.C 75d741968e42202427b6e9c163e5c326 gcc/testsuite/g++.dg/pr84821.C *************** c31c403acbaa655ae0413e1d4350ae4b gcc/te *** 23018,23023 **** --- 23086,23092 ---- c28b6679b01f4bbe8403c045289d2aef gcc/testsuite/g++.dg/template/conv14.C d03295ed120e37ef2651d9c57aa0b774 gcc/testsuite/g++.dg/template/conv15.C bc45c52058d378ff45879106160f09fc gcc/testsuite/g++.dg/template/conv16.C + bd99141c68d90e04855763e3f2bfa63a gcc/testsuite/g++.dg/template/conv19.C 383f6618c1ccaddea23b36ff23d6d35e gcc/testsuite/g++.dg/template/conv2.C be5017725e9889a47d07ba0d3a3464ff gcc/testsuite/g++.dg/template/conv3.C 53aab59e272fd22ef1ad191d0f31e01d gcc/testsuite/g++.dg/template/conv4.C *************** f8b96612d216a7b190f337247c8e8315 gcc/te *** 23427,23432 **** --- 23496,23503 ---- 1d4f923241bfe8578940f39c34f80d7c gcc/testsuite/g++.dg/template/friend7.C 33f91697bdb7e2294d13e7eb88e92b55 gcc/testsuite/g++.dg/template/friend70.C 20f36227317bf6bb8a652c05ab8aac80 gcc/testsuite/g++.dg/template/friend71.C + 08aeef7e95f0f822e6e8b78c88d9bbb7 gcc/testsuite/g++.dg/template/friend74.C + 5ded44dad812054a2b06422df4b95665 gcc/testsuite/g++.dg/template/friend78.C ceb858e95982ac0af2e9168f31aea229 gcc/testsuite/g++.dg/template/friend8.C 59b5bf61b7f6210d3cf3b9b45692794a gcc/testsuite/g++.dg/template/friend9.C d5d24fc94d133229a10c5b13f44c253b gcc/testsuite/g++.dg/template/func1.C *************** ffd1465e85fe6778f5e32548bb4d2ad5 gcc/te *** 23582,23587 **** --- 23653,23659 ---- b12c9a151e46871b430564ee47c57714 gcc/testsuite/g++.dg/template/nested4.C 55bd98cb7f4709362363619cbba3ca30 gcc/testsuite/g++.dg/template/nested5.C 3d7ff2f50901cdae15e987265ff20ed6 gcc/testsuite/g++.dg/template/nested6.C + eb97b845951649a22172514806d1ef72 gcc/testsuite/g++.dg/template/nested7.C 57b33208329c8d10ea904c3d123076a9 gcc/testsuite/g++.dg/template/new1.C dd5106154e8f9fa0866be1a1283b490e gcc/testsuite/g++.dg/template/new10.C 8a3716757b496de374cb6d6a4f5b6a64 gcc/testsuite/g++.dg/template/new11.C *************** efb971f4591133c5f1a27dea6aeb5d1a gcc/te *** 23689,23694 **** --- 23761,23768 ---- 486d4c5a4f5f81e0939deae14d55e933 gcc/testsuite/g++.dg/template/partial-order1.C ae5d48999739c18e13002880ad3cd978 gcc/testsuite/g++.dg/template/partial-order2.C e187a317d102d915368fe357726202ba gcc/testsuite/g++.dg/template/partial-specialization.C + 9ba8631cf52f4ca9887f51f7e2a0dee4 gcc/testsuite/g++.dg/template/partial-specialization11.C + c6626df8c629f478dbdc351fb543d7ae gcc/testsuite/g++.dg/template/partial-specialization12.C 85762b85724149f8854c0c886e8d724f gcc/testsuite/g++.dg/template/partial-specialization2.C e3bba8fb10b84a1583b714234f4d0593 gcc/testsuite/g++.dg/template/partial-specialization3.C e860cd8afddc5e6a3e1e2380ceb1d83c gcc/testsuite/g++.dg/template/partial-specialization4.C *************** f7e4853292654f0af6a0a460b8924add gcc/te *** 24272,24277 **** --- 24346,24355 ---- 6e16acccf0c9f3e11f613dd140679e49 gcc/testsuite/g++.dg/tls/thread_local12j.C 9eb8b3d800f83f9d7d869d484abd19e6 gcc/testsuite/g++.dg/tls/thread_local12k.C b6d15debf41ad15b105889629ec239cc gcc/testsuite/g++.dg/tls/thread_local12l.C + 172557168cbc67b1f30728843273661b gcc/testsuite/g++.dg/tls/thread_local13-aux.cc + f872c9bb06d86928cee03742631d043b gcc/testsuite/g++.dg/tls/thread_local13.C + 55b421ef887d033e9d55b24ecf73ba9a gcc/testsuite/g++.dg/tls/thread_local14-aux.cc + 10f422a7b298c551b33dc01dd37d0089 gcc/testsuite/g++.dg/tls/thread_local14.C 24b7dce2c6b463d883c54b5a853ce0ad gcc/testsuite/g++.dg/tls/thread_local2.C 6c980c168dd76bd2823f2ec310b5f47b gcc/testsuite/g++.dg/tls/thread_local2g.C 6c7d3f08d2224c4d24f97029d8604655 gcc/testsuite/g++.dg/tls/thread_local3.C *************** ce4f8106ed96ef070bead8ca0df02eea gcc/te *** 24405,24416 **** 4a0b418d1bbb783ee191f2d05263d191 gcc/testsuite/g++.dg/torture/dg-torture.exp fab1470d87fc879a4a285622c057b736 gcc/testsuite/g++.dg/torture/init-list1.C 4054dd6c177ca7971902e3ac60e34695 gcc/testsuite/g++.dg/torture/ipa-cp-1.C ! 37b54578dbb493ce1238308444c1008c gcc/testsuite/g++.dg/torture/ppc-ldst-array.C ae9c2124c5383beeccdcf4ac2d3bcbd0 gcc/testsuite/g++.dg/torture/pr10148.C 3fd9794b761154c19e5b03ca7b0727a1 gcc/testsuite/g++.dg/torture/pr102505.C 674377855743be77a442d6fe11fc86e1 gcc/testsuite/g++.dg/torture/pr103361.C 7bea79d22c6b5a627f409edb9e3048f3 gcc/testsuite/g++.dg/torture/pr104601.C 55421b614773ff9e900b6ad17ffe7df3 gcc/testsuite/g++.dg/torture/pr105189.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 --- 24483,24497 ---- 4a0b418d1bbb783ee191f2d05263d191 gcc/testsuite/g++.dg/torture/dg-torture.exp fab1470d87fc879a4a285622c057b736 gcc/testsuite/g++.dg/torture/init-list1.C 4054dd6c177ca7971902e3ac60e34695 gcc/testsuite/g++.dg/torture/ipa-cp-1.C ! dd60ebe4e09cf5edd91dd360bcbcba8e gcc/testsuite/g++.dg/torture/ppc-ldst-array.C ae9c2124c5383beeccdcf4ac2d3bcbd0 gcc/testsuite/g++.dg/torture/pr10148.C 3fd9794b761154c19e5b03ca7b0727a1 gcc/testsuite/g++.dg/torture/pr102505.C 674377855743be77a442d6fe11fc86e1 gcc/testsuite/g++.dg/torture/pr103361.C + e4fcffb0dc348c47faab30b8fa077a54 gcc/testsuite/g++.dg/torture/pr104450.C 7bea79d22c6b5a627f409edb9e3048f3 gcc/testsuite/g++.dg/torture/pr104601.C 55421b614773ff9e900b6ad17ffe7df3 gcc/testsuite/g++.dg/torture/pr105189.C + 42b175a7c38d6a15012b0e11d9e7457d gcc/testsuite/g++.dg/torture/pr106131.C + 695916482bd1d276cc3c727b90232254 gcc/testsuite/g++.dg/torture/pr109724.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 *************** ebc4dd8d7b9c346d612ab748d0d8bda0 gcc/te *** 25166,25171 **** --- 25247,25253 ---- 684067ddb47560c655180c085c6980e8 gcc/testsuite/g++.dg/ubsan/object-size-1.C 80dcb1a17f65b63cbfe2e3509439563c gcc/testsuite/g++.dg/ubsan/pr101210.C ad6c0b4132032f21f64bfdd4836d3313 gcc/testsuite/g++.dg/ubsan/pr105093.C + 59f2687e6719ef7d3d19b4de0e99a075 gcc/testsuite/g++.dg/ubsan/pr105729.C a654df71119821a4303cc9fe0501191b gcc/testsuite/g++.dg/ubsan/pr59250.C 420a6623146bb014dc1310134356d81f gcc/testsuite/g++.dg/ubsan/pr59306.C 79755a51c3cbb97ff48bd411272f6b08 gcc/testsuite/g++.dg/ubsan/pr59331.C *************** ec1873d6dd21d2c7cc0b6215931efed0 gcc/te *** 25275,25280 **** --- 25357,25364 ---- 2f4df2b1afc45455438253ceb176020a gcc/testsuite/g++.dg/vect/pr102572.cc 276b94843e74f8cadd0fe569be60befb gcc/testsuite/g++.dg/vect/pr102788.cc 5cc7bcb3384dda5ac9ed1595171888bf gcc/testsuite/g++.dg/vect/pr105053.cc + 13bc7912af5a3fc0b482bebcd1a313b8 gcc/testsuite/g++.dg/vect/pr105437.cc + c378ba928bee729112b705d875e7738f gcc/testsuite/g++.dg/vect/pr109573.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 *************** b524c7274934e8875fa2c0efd508fc92 gcc/te *** 25396,25401 **** --- 25480,25486 ---- 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 + ab97df5ad2431719f3fb0cd4fdf111d8 gcc/testsuite/g++.dg/warn/Warray-bounds-27.C de22eb15ae2420b77fbb90f3b584c785 gcc/testsuite/g++.dg/warn/Warray-bounds-3.C 44982cde6de999156b24ac5b0d41b330 gcc/testsuite/g++.dg/warn/Warray-bounds-4.C 843811e9e3bbecf56a84c608e9fd1073 gcc/testsuite/g++.dg/warn/Warray-bounds-5.C *************** d41d8cd98f00b204e9800998ecf8427e gcc/te *** 25494,25499 **** --- 25579,25585 ---- caf05a8324926e9472342da0584539ad gcc/testsuite/g++.dg/warn/Wignored-attributes-1.C 55295c0bc11e5dffe89757d080280054 gcc/testsuite/g++.dg/warn/Wignored-attributes-2.C a5142c9cd89ebb3502a6adbdb75fa29c gcc/testsuite/g++.dg/warn/Wignored-qualifiers1.C + 90dde3d2eabc1a35285253724486da84 gcc/testsuite/g++.dg/warn/Wignored-qualifiers2.C f9b7e3158d7918eb87fb4faeb4bb757d gcc/testsuite/g++.dg/warn/Wimplicit-fallthrough-1.C e8496d82a0f58fc4bc26efa7a0a75fd3 gcc/testsuite/g++.dg/warn/Wimplicit-fallthrough-2.C 126f476a9780bcba16781feab90ed2d8 gcc/testsuite/g++.dg/warn/Wimplicit-fallthrough-3.C *************** d183cd43f2c2caf1b71024ba3762ff44 gcc/te *** 25526,25531 **** --- 25612,25618 ---- da3dbc8526151b41f4a741a5d5e51eae gcc/testsuite/g++.dg/warn/Wmismatched-new-delete-4.C 1632b5578dfbecab9e72d333b0e82675 gcc/testsuite/g++.dg/warn/Wmismatched-new-delete-5.C 3089b7e4a074a4993652acd742390397 gcc/testsuite/g++.dg/warn/Wmismatched-new-delete.C + 7729ea0086a47fb6cab7bd9640283fcd gcc/testsuite/g++.dg/warn/Wmismatched-tags-10.C 9e3053e15f6b0726e17bd19ce7fc3bf8 gcc/testsuite/g++.dg/warn/Wmismatched-tags-2.C 34c810b16cc722166ffa4de29c41c7e5 gcc/testsuite/g++.dg/warn/Wmismatched-tags-3.C 52f77f366a578c7b96fa3a4d1ae9a1c9 gcc/testsuite/g++.dg/warn/Wmismatched-tags-4.C *************** ea532b8d02c84e413fb770ee0fdd34c7 gcc/te *** 25663,25668 **** --- 25750,25756 ---- d0d6c5fe9b201bcd8b68523fbf3f0ce2 gcc/testsuite/g++.dg/warn/Wsequence-point-2.C 21e8a0380962b41685ed2da030d6e679 gcc/testsuite/g++.dg/warn/Wsequence-point-3.C f58385057fb43a4541194480dc43d360 gcc/testsuite/g++.dg/warn/Wsequence-point-4.C + f09d07e0fd5c0b9c0c417b86039ac382 gcc/testsuite/g++.dg/warn/Wsequence-point-5.C 8fb4b9a6c1d26c1e9bde7782d85ab4db gcc/testsuite/g++.dg/warn/Wsequence-point-pr18050.C 44fe19ff71727efce22e2f732d2ac553 gcc/testsuite/g++.dg/warn/Wshadow-1.C 501d6f433bab53d27b046fc419dcb80a gcc/testsuite/g++.dg/warn/Wshadow-10.C *************** eee589a3fa31332d5466e5037b1a870e gcc/te *** 26023,26028 **** --- 26111,26117 ---- c36be50bce1bb66a16eefbbb8eed1e5c gcc/testsuite/g++.dg/warn/pmf2.C ac14aaa010428fa00cd60d6e6bb808c0 gcc/testsuite/g++.dg/warn/pointer-integer-comparison.C cc35779b6305bb8c111aecea1f3f7d25 gcc/testsuite/g++.dg/warn/pr101515.C + 1ba5741dd0aa023aa23edc39041b235e gcc/testsuite/g++.dg/warn/pr108365.C adea0a023eba0c3c51b6a4894014d35a gcc/testsuite/g++.dg/warn/pr11159.C f257fca4d00c8c67aa2b9d6e43ee906f gcc/testsuite/g++.dg/warn/pr11492.C 5fab7f879534ef351718dc73d825b667 gcc/testsuite/g++.dg/warn/pr12242.C *************** bee40081d8891411f689d510017ed4cc gcc/te *** 29379,29384 **** --- 29468,29479 ---- 3f212b0014307c14669d5a3154904207 gcc/testsuite/g++.target/aarch64/advsimd-intrinsics/advsimd-intrinsics.exp 992600153061bcf9c4f34a765c2c8f7e gcc/testsuite/g++.target/aarch64/advsimd-intrinsics/pr98852.C ebce94697839c9a076df3569eade77eb gcc/testsuite/g++.target/aarch64/bfloat_cpp_typecheck.C + c975ccbddf4ad62c5fa9795e339ffb9c gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align16-O2-extra.C + c89aad61597a03b775b192f6f96fa2c5 gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align16-O2.C + 02c6ef60e1093a8729ad30197a17d419 gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align32-O2-extra.C + 48d4600d981eb71f75243e3f0bd90301 gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align32-O2.C + b9257e58ced87b65b17170b8e6ad90ed gcc/testsuite/g++.target/aarch64/bitfield-abi-warning-align8-O2.C + f7378d596bb7308498db40ad34fd8dab gcc/testsuite/g++.target/aarch64/bitfield-abi-warning.h c11e5f97e7a5971cc5c5017024f54496 gcc/testsuite/g++.target/aarch64/diag_aka_1.C 4d5fd415b9746bcd53f093e8282fb37d gcc/testsuite/g++.target/aarch64/no_unique_address_1.C 20b857cf626aad749264f74e19d94347 gcc/testsuite/g++.target/aarch64/no_unique_address_2.C *************** c3abd0fb44ca490064aaa6988814d40c gcc/te *** 29586,29591 **** --- 29681,29687 ---- 015182fced49b5ec2160104b1e1fcfd5 gcc/testsuite/g++.target/i386/mv28.C dac0893381524d0f9aaec2e84e62637f gcc/testsuite/g++.target/i386/mv29.C bad9a677892adffe2c45653797aad55c gcc/testsuite/g++.target/i386/mv3.C + fa451153638d7156cf73160e572eb5b1 gcc/testsuite/g++.target/i386/mv31.C 253207ecb3f4d04076efa9253026fa4c gcc/testsuite/g++.target/i386/mv4.C dc39143004995c38b524d1b929c9c96c gcc/testsuite/g++.target/i386/mv5.C 01094409b78d48ec67bbf367448ecc93 gcc/testsuite/g++.target/i386/mv6.C *************** a1f1d426b1b50862a624c700e26cea03 gcc/te *** 29603,29608 **** --- 29699,29705 ---- 186a4f48c778c8bfd308076ed5277d77 gcc/testsuite/g++.target/i386/pr102295.C 6d6c399b53fe1c3078aa132a559fe2ab gcc/testsuite/g++.target/i386/pr102548.C 2a03baff08b5b7bdeb8d3633c49032bb gcc/testsuite/g++.target/i386/pr103012.C + dbf2edb74c1c8a97c95dfeccae24697a gcc/testsuite/g++.target/i386/pr106875.C 1c706f97b6d93c0124dc4a203c98f6d2 gcc/testsuite/g++.target/i386/pr57362.C db3c3a9d9f798eff6348f0813dccc376 gcc/testsuite/g++.target/i386/pr57548.C e8a006e5050e191010d1a6ecff4873a3 gcc/testsuite/g++.target/i386/pr58372.C *************** b3fdfe2866e1905292894d815f1fa291 gcc/te *** 29640,29650 **** --- 29737,29749 ---- a621b799eff193996043d9d5462e5c27 gcc/testsuite/g++.target/i386/sse4_1-check.h 821d1f6cc7812ffc5220fc45c484c00f gcc/testsuite/g++.target/i386/sse4_1-pr54700-1.C 05e47f652ea4bc7c8df9bae20aaaa2b4 gcc/testsuite/g++.target/i386/sse4_1-pr54700-2.C + 6d0d9132ecd5c558bd1ec20dcee32d5d gcc/testsuite/g++.target/i386/vec-tmpl1.C 436543179ef45c1a7c596bfa70c8ef1d gcc/testsuite/g++.target/msp430/data-attributes.C 105ca4af68fcc0dddd766a75cb581d3b gcc/testsuite/g++.target/msp430/msp430.exp 5848d6741a53192ff50fe53e91b24df1 gcc/testsuite/g++.target/nios2/hello-pie.C b3b6e31577bc973ad6e12e7336213059 gcc/testsuite/g++.target/nios2/nios2.exp fa8aa783bcf6fa703e7e93442b148996 gcc/testsuite/g++.target/powerpc/powerpc.exp + a873678a5188427c7ceb88e3a408ce84 gcc/testsuite/g++.target/powerpc/pr101322.C 63b698681e4a076eb88feccb3e6373df gcc/testsuite/g++.target/powerpc/pr94707-1.C 75c93ba90b3ca18a6d5c5264e2816651 gcc/testsuite/g++.target/powerpc/pr94707-2.C a63f2ade84bc38838f3986dfc4bc9d85 gcc/testsuite/g++.target/powerpc/pr94707-3.C *************** dcaa1bc6d2f365241f63a018eb986a02 gcc/te *** 30683,30688 **** --- 30782,30793 ---- 39dff9806811d8b2c82afb7f1bb80e27 gcc/testsuite/gcc.c-torture/compile/pr100576.c 9c461bedf4ba5d689841294e9c5464f6 gcc/testsuite/gcc.c-torture/compile/pr101562.c 6d13d2354182ca3dc50d8f4d6d5ed5ab gcc/testsuite/gcc.c-torture/compile/pr103813.c + 9477024f0d6e7d41ab0ee7d8ab3d3e58 gcc/testsuite/gcc.c-torture/compile/pr106030.c + e12df015117953bcc79bb2bd0912de65 gcc/testsuite/gcc.c-torture/compile/pr106751.c + 591ba0d7b38a8f57d62f0b2928e693c4 gcc/testsuite/gcc.c-torture/compile/pr107997.c + e1a987965f844354ef93e18f546749c9 gcc/testsuite/gcc.c-torture/compile/pr108237.c + 9c6d8cdc69d8f80df1390e153dd3fffc gcc/testsuite/gcc.c-torture/compile/pr108596.c + 531e04fb4e7100e6b28bab7727b5ce6b gcc/testsuite/gcc.c-torture/compile/pr108688-1.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 *************** e854bc80f793329b6c96d31e3f80a012 gcc/te *** 32713,32718 **** --- 32818,32827 ---- 6f562291c92a478431678da451525a90 gcc/testsuite/gcc.c-torture/execute/pr103052.c a5b5957138d71ec5e7dbb1056f5b6cf4 gcc/testsuite/gcc.c-torture/execute/pr103255.c 8f1a8c89149c065ac6e73140793989be gcc/testsuite/gcc.c-torture/execute/pr104814.c + 6b9abb094fcd9b7fa8d30c4251026072 gcc/testsuite/gcc.c-torture/execute/pr106032.c + 154a19663c66fcea6a49b6718c685882 gcc/testsuite/gcc.c-torture/execute/pr108498-1.c + ee35df6bcc12c95f226b88f0d72b377d gcc/testsuite/gcc.c-torture/execute/pr108498-2.c + 23cbbe0d93f89048f8d1ce1883e61ac2 gcc/testsuite/gcc.c-torture/execute/pr109778.c 7758cb727d75f4fc1c0e483d503de146 gcc/testsuite/gcc.c-torture/execute/pr15262-1.c 58dc249612dbc918d7fc4010e94deb8d gcc/testsuite/gcc.c-torture/execute/pr15262-2.c d9c36fc850771445c5e4b6ce6dae1a12 gcc/testsuite/gcc.c-torture/execute/pr15262.c *************** bdfc84bbf5e13810fd8696c1956e6639 gcc/te *** 34384,34389 **** --- 34493,34501 ---- 3f583dbde80b3efe12b65cefa6758f9f gcc/testsuite/gcc.dg/analyzer/pr100011.c e0e00f8ff65a3533430a5abc47af4315 gcc/testsuite/gcc.dg/analyzer/pr100615.c 7bab391201f50e8d8fb6965f76c3af60 gcc/testsuite/gcc.dg/analyzer/pr101962.c + 7db1771ee016e8eff4a7d43565e82ac4 gcc/testsuite/gcc.dg/analyzer/pr105252.c + 7ec8beca5852bf5760ba785d3b75d3e5 gcc/testsuite/gcc.dg/analyzer/pr105365.c + 9c9974fbe8ddd03c7a3dd80e2127e20d gcc/testsuite/gcc.dg/analyzer/pr105366.c 4d9dda4c090b351e888380f256fdf703 gcc/testsuite/gcc.dg/analyzer/pr61861.c 3b715088546567d4c2cc30cc26417f11 gcc/testsuite/gcc.dg/analyzer/pr93032-mztools-simplified.c 9198ebbc5c221a40b5e3d9c3b8dfadad gcc/testsuite/gcc.dg/analyzer/pr93032-mztools.c *************** b8a049317908d7e0078316ad82437346 gcc/te *** 34610,34615 **** --- 34722,34730 ---- 738544a74dbe22f6a41201227dfe9cd9 gcc/testsuite/gcc.dg/asan/nosanitize-and-inline.c 62ddd0ab49b2d8a39773ae7568d8aa74 gcc/testsuite/gcc.dg/asan/pr104449.c 3424b712fda248acb67afe3bbb5dbc46 gcc/testsuite/gcc.dg/asan/pr105214.c + 695fe49bfb0b0c5cd4e60ba1a0f27cf6 gcc/testsuite/gcc.dg/asan/pr105396.c + 1a25dd9cb28d8417a3ce246587233c84 gcc/testsuite/gcc.dg/asan/pr106190.c + c3b533151735c602f99cd3d2cb415cf8 gcc/testsuite/gcc.dg/asan/pr107317.c a5e988481cd66b8acf6c610b847cb713 gcc/testsuite/gcc.dg/asan/pr56417.c 0c13e4008bb665f05b030eb42e43183f gcc/testsuite/gcc.dg/asan/pr63845.c 9a45b4bebab3901180dbe2a44efcd070 gcc/testsuite/gcc.dg/asan/pr64170.c *************** e2a79e8b69a6b8bbbeab0ba442c5de78 gcc/te *** 34781,34787 **** 675327adce99f8c97f34c5251a8c4280 gcc/testsuite/gcc.dg/attr-alias-5.c ef49e9f0f717d3a4d1c827df010599a5 gcc/testsuite/gcc.dg/attr-aligned-2.c 9a4118e77ef09128c8a4e3bf859f9a05 gcc/testsuite/gcc.dg/attr-aligned-3.c ! d2d3ddd7487e05512cd24d38b3a730ee gcc/testsuite/gcc.dg/attr-aligned.c a9ff03a6ff85f7c46fced4797280e236 gcc/testsuite/gcc.dg/attr-alloc_align-1.c daf15f1ec989bc8e1d4831a0d1c70e3e gcc/testsuite/gcc.dg/attr-alloc_align-2.c a40448e5fa79d5f463c4408a645a3bb7 gcc/testsuite/gcc.dg/attr-alloc_align-3.c --- 34896,34902 ---- 675327adce99f8c97f34c5251a8c4280 gcc/testsuite/gcc.dg/attr-alias-5.c ef49e9f0f717d3a4d1c827df010599a5 gcc/testsuite/gcc.dg/attr-aligned-2.c 9a4118e77ef09128c8a4e3bf859f9a05 gcc/testsuite/gcc.dg/attr-aligned-3.c ! 218ecba16d2d3bab118b45a8fd07376c gcc/testsuite/gcc.dg/attr-aligned.c a9ff03a6ff85f7c46fced4797280e236 gcc/testsuite/gcc.dg/attr-alloc_align-1.c daf15f1ec989bc8e1d4831a0d1c70e3e gcc/testsuite/gcc.dg/attr-alloc_align-2.c a40448e5fa79d5f463c4408a645a3bb7 gcc/testsuite/gcc.dg/attr-alloc_align-3.c *************** dc6685bcab4cd7ed276483fd8d031507 gcc/te *** 36412,36420 **** --- 36527,36537 ---- d9dc93acb42ceaf059f158db6f7ea6d2 gcc/testsuite/gcc.dg/cwsc1.c 31f68cda2cf50ca6f7c6c4a9cf4545fd gcc/testsuite/gcc.dg/darwin-20040809-2.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 e43f7a2f13e87638cc08c97ba7326543 gcc/testsuite/gcc.dg/darwin-cfstring-2.c c4152191bf290926b6b747aa4397e015 gcc/testsuite/gcc.dg/darwin-cfstring-format-1.c + 4b9fbc9c27c43751e8b7c93a99afaabc gcc/testsuite/gcc.dg/darwin-comm-1.c 7e6cf48347ff53c1f9c509b921aceb22 gcc/testsuite/gcc.dg/darwin-comm.c b477cca030ba86435b074a334ee9bfd0 gcc/testsuite/gcc.dg/darwin-ld-1.c 4ac76811f1a6c80f6dc5191396c37748 gcc/testsuite/gcc.dg/darwin-ld-2.c *************** ee94511375797117140ca777fd1695b1 gcc/te *** 36438,36444 **** 704c9a2dca0a451cca6e5855f7f2347f gcc/testsuite/gcc.dg/darwin-minversion-7.c 5a8b775f8ce1e0cafb8782fbc39b58e4 gcc/testsuite/gcc.dg/darwin-minversion-8.c aa9dfa39c42ef65a88c0a708412fb842 gcc/testsuite/gcc.dg/darwin-minversion-9.c ! e8f6d0185a2daf606cad42ced94090fb gcc/testsuite/gcc.dg/darwin-minversion-link.c b66bb093837bda7692b73c8aa9711e00 gcc/testsuite/gcc.dg/darwin-sections.c 3cfa6daebed9a12884613012f50433e4 gcc/testsuite/gcc.dg/darwin-segaddr.c e3d2d2840d7d23dee7e2cd94e097a114 gcc/testsuite/gcc.dg/darwin-version-1.c --- 36555,36561 ---- 704c9a2dca0a451cca6e5855f7f2347f gcc/testsuite/gcc.dg/darwin-minversion-7.c 5a8b775f8ce1e0cafb8782fbc39b58e4 gcc/testsuite/gcc.dg/darwin-minversion-8.c aa9dfa39c42ef65a88c0a708412fb842 gcc/testsuite/gcc.dg/darwin-minversion-9.c ! 9dbaa15e2b1a56ec7afc29c9929eedab gcc/testsuite/gcc.dg/darwin-minversion-link.c b66bb093837bda7692b73c8aa9711e00 gcc/testsuite/gcc.dg/darwin-sections.c 3cfa6daebed9a12884613012f50433e4 gcc/testsuite/gcc.dg/darwin-segaddr.c e3d2d2840d7d23dee7e2cd94e097a114 gcc/testsuite/gcc.dg/darwin-version-1.c *************** a0ac850750aaa6f8934dd8d86cad48b3 gcc/te *** 36749,36754 **** --- 36866,36872 ---- 440b3f562b43525babe2c96be973d1be gcc/testsuite/gcc.dg/dfp/operator-bitwise.c b6f9108cd4878577de83d43be75185ce gcc/testsuite/gcc.dg/dfp/pr104510.c 440b561ad1d9037d4559c7011d636b7a gcc/testsuite/gcc.dg/dfp/pr104557.c + 74ff23770b319829b7487e85a1ed72f6 gcc/testsuite/gcc.dg/dfp/pr108068.c d8629eb8e0c765b5a7daa583cb8eedad gcc/testsuite/gcc.dg/dfp/pr31344.c b59fd600db434af135f39c38e21e2d74 gcc/testsuite/gcc.dg/dfp/pr37435.c 17353eaf91a4f3959fa168324f86f6f5 gcc/testsuite/gcc.dg/dfp/pr41049.c *************** f711435274df71049aa71808a78fc7a5 gcc/te *** 37525,37530 **** --- 37643,37649 ---- d9a1f43ca6ac2a073e22bbbf243f300b gcc/testsuite/gcc.dg/gomp/parallel-4.c 0f7ac2e81ae2d400d52c34aa1c0b379a gcc/testsuite/gcc.dg/gomp/pr100508.c 410119ba8ee90eb1671f6b992533b966 gcc/testsuite/gcc.dg/gomp/pr104517.c + a633f425b4fdde0a7b6f0aa6aa2f2754 gcc/testsuite/gcc.dg/gomp/pr108435.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 *************** b9aafcde73d659e8a8f12aec94a7cb09 gcc/te *** 38022,38028 **** 46fe10dc7c2a1b21f0d7af66c601ad44 gcc/testsuite/gcc.dg/guality/drap.c 6572d7b6a1c070b8e6c4fe22f6133e02 gcc/testsuite/gcc.dg/guality/example.c c2dbe29811bd94d5d243fab419e7cc46 gcc/testsuite/gcc.dg/guality/guality.c ! 6a55e291b85166259225a8d7acf8f3c5 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 1acafa5b9d5aeba7e4788b85be32dc52 gcc/testsuite/gcc.dg/guality/inline-params.c --- 38141,38147 ---- 46fe10dc7c2a1b21f0d7af66c601ad44 gcc/testsuite/gcc.dg/guality/drap.c 6572d7b6a1c070b8e6c4fe22f6133e02 gcc/testsuite/gcc.dg/guality/example.c c2dbe29811bd94d5d243fab419e7cc46 gcc/testsuite/gcc.dg/guality/guality.c ! f732aceb108be95e24919de86abdc86f 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 1acafa5b9d5aeba7e4788b85be32dc52 gcc/testsuite/gcc.dg/guality/inline-params.c *************** d183c6f1cbbc46bd9c8e5df2bbcd8795 gcc/te *** 38399,38404 **** --- 38518,38524 ---- 303b00685d04afefddddce7106c02b2d gcc/testsuite/gcc.dg/ipa/pr102714.c 07a283c50d826e50a31e66247a684841 gcc/testsuite/gcc.dg/ipa/pr103083-1.c e738f44ee66719b5f944fb952895f40e gcc/testsuite/gcc.dg/ipa/pr103083-2.c + d6d366e61e9493a8fc9ad14a2e6f9ba4 gcc/testsuite/gcc.dg/ipa/pr105739.c 40bd41302666d56c4edf7330db97920e gcc/testsuite/gcc.dg/ipa/pr42706.c e4887053c792f4f78b03804c148839ce gcc/testsuite/gcc.dg/ipa/pr45644.c 6e1b4f2c5d0c0d768778da8e3b7df828 gcc/testsuite/gcc.dg/ipa/pr48195.c *************** e4aec3391bc7aed1a5d886edeb277407 gcc/te *** 38737,38742 **** --- 38857,38864 ---- 02d829cec4d5ff9723124841f79edca9 gcc/testsuite/gcc.dg/lto/pr101868_3.c 54599eb36fac6d6bc3b48bfa2a679738 gcc/testsuite/gcc.dg/lto/pr101949_0.c eb5d2fc7242b611f019d43c7d00a7531 gcc/testsuite/gcc.dg/lto/pr101949_1.c + ef0b90ba09e6e56d1d655afdcb63cdd4 gcc/testsuite/gcc.dg/lto/pr109778_0.c + c3ad752a64c11978f9f2cce0520bf58c gcc/testsuite/gcc.dg/lto/pr109778_1.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 *************** a4874d44c0ba05d6340ed06bc5958e53 gcc/te *** 39403,39408 **** --- 39525,39531 ---- 8226e377d45ef0ffeb7badfb04740ab9 gcc/testsuite/gcc.dg/pr10392-1.c 274592903ac1b8bb26cb04aaeb7bceb4 gcc/testsuite/gcc.dg/pr104263.c 6cdf5f889cfeab1185ff2396685e6d88 gcc/testsuite/gcc.dg/pr104288.c + 160540a96840a88fee73e5380198b7d0 gcc/testsuite/gcc.dg/pr104464.c c055fb27d1a723e98ef6bd9290551487 gcc/testsuite/gcc.dg/pr104511.c 1198a55fbf04ab73754710d047131b2b gcc/testsuite/gcc.dg/pr104544.c c04efe12f2d4a15f1ea2cae1889ba4cf gcc/testsuite/gcc.dg/pr104675-1.c *************** d8ac6e8cccf7bcb1070140ae44ef117a gcc/te *** 39412,39420 **** --- 39535,39563 ---- 2968ba86ec9be073192c7975ec531fb3 gcc/testsuite/gcc.dg/pr104786.c 8c0ed1baab74c7b05d89e60fb2786609 gcc/testsuite/gcc.dg/pr104910.c f8d1a8342ac7db3ad1336ab098edd372 gcc/testsuite/gcc.dg/pr105094.c + 194a2dad6f902fdbaa5355dc3fa0ebe6 gcc/testsuite/gcc.dg/pr105140.c 299f6a400b7fb5db65f2901e5285cc2c gcc/testsuite/gcc.dg/pr105165.c + 25a6db2efb48684f6cb2974051effc2a gcc/testsuite/gcc.dg/pr105173.c b01f707de15442a63cdb3e32148021fd gcc/testsuite/gcc.dg/pr105211.c 62b3efd9b859c1e2a74f5d3cfa969d33 gcc/testsuite/gcc.dg/pr105226.c + 7a57a46938f6612f3203e9d1d32bf2a2 gcc/testsuite/gcc.dg/pr105250.c + cc6ac8d68c79338a580a123141221e8b gcc/testsuite/gcc.dg/pr105257.c + 01d945e452f69cb1fee8b12a879e51c6 gcc/testsuite/gcc.dg/pr105263.c + c3d8ae3e46240608f001dd6a702ebf0b gcc/testsuite/gcc.dg/pr105331.c + df5c854ae6b61ad7980dc609c12732b5 gcc/testsuite/gcc.dg/pr105333.c + bd694253207b0e4d0a25d5c16b288b5c gcc/testsuite/gcc.dg/pr105528.c + de5d81445ad859074ca4d853ab220c74 gcc/testsuite/gcc.dg/pr106027.c + 289edb9f71d96816c053cd6cf90ff744 gcc/testsuite/gcc.dg/pr106189.c + c475e08b8000c7ada2ebc07c02d67b0d gcc/testsuite/gcc.dg/pr106719.c + d39b4203470156b99b330266683a9790 gcc/testsuite/gcc.dg/pr107107.c + 8dd35121cb6e8e3f018e6f4551ce80b1 gcc/testsuite/gcc.dg/pr107127.c + d64d53420ac059d0a4813bb6b0e625bd gcc/testsuite/gcc.dg/pr107554.c + 4b0c665c9ac4f4701760e4205e109f61 gcc/testsuite/gcc.dg/pr108095.c + c056feceecb1e4c44f6bf01a21cb6e9d gcc/testsuite/gcc.dg/pr108264.c + e0baf0198b26b94a0e92182918c52449 gcc/testsuite/gcc.dg/pr108573.c + 58629ccc236a40b8dec9ecfe5aa35f2a gcc/testsuite/gcc.dg/pr108625.c + 21a62b0e858621e46700af10fbe121e4 gcc/testsuite/gcc.dg/pr108692.c + 8c5ddd68de1ed874eb52f91b7136909e gcc/testsuite/gcc.dg/pr109410.c 860f163dcd0b252ea3f85323bc959a7d gcc/testsuite/gcc.dg/pr11459-1.c e164a736918661d669864e3645da290c gcc/testsuite/gcc.dg/pr11492.c 3b83403729a3686d25552352bf0c4577 gcc/testsuite/gcc.dg/pr11864-1.c *************** b2947b2840760e6f6cb66c30dda3f057 gcc/te *** 40519,40525 **** f28c9c90b3d30633266db4aef0f121a8 gcc/testsuite/gcc.dg/pr64454.c d2253df541cef89436be2e59701319fc gcc/testsuite/gcc.dg/pr64465.c c6f1921b2165f45723cda892443a24c3 gcc/testsuite/gcc.dg/pr64511.c ! fbcba818644b54491e9e8f3b9c6cd09b gcc/testsuite/gcc.dg/pr64536.c d509539e43ac4a3bf9c9b01c0503ebdf gcc/testsuite/gcc.dg/pr64563.c a797044c31f28103c61f4bcbbfbf1066 gcc/testsuite/gcc.dg/pr64637.c 84213f413cfa8fc453fa64e68f295dd4 gcc/testsuite/gcc.dg/pr64663.c --- 40662,40668 ---- f28c9c90b3d30633266db4aef0f121a8 gcc/testsuite/gcc.dg/pr64454.c d2253df541cef89436be2e59701319fc gcc/testsuite/gcc.dg/pr64465.c c6f1921b2165f45723cda892443a24c3 gcc/testsuite/gcc.dg/pr64511.c ! 9173e74c9221989537bb7b9fa47ef9e9 gcc/testsuite/gcc.dg/pr64536.c d509539e43ac4a3bf9c9b01c0503ebdf gcc/testsuite/gcc.dg/pr64563.c a797044c31f28103c61f4bcbbfbf1066 gcc/testsuite/gcc.dg/pr64637.c 84213f413cfa8fc453fa64e68f295dd4 gcc/testsuite/gcc.dg/pr64663.c *************** ff83f1142d27828d619d4abf6063f64d gcc/te *** 41410,41416 **** d96f1f1b79bd3d34227f08f817f8c40a gcc/testsuite/gcc.dg/pragma-diag-8.c 24a9270f9a6635bb396c6d700a9d9d2c gcc/testsuite/gcc.dg/pragma-init-fini-2.c 8ea7784f3024c6da48a3ea846fb015cf gcc/testsuite/gcc.dg/pragma-init-fini.c ! 811b358bae37344e12a6159506ad1c6e gcc/testsuite/gcc.dg/pragma-message.c 5ba7295e8d296fad3e6dbec62f078a08 gcc/testsuite/gcc.dg/pragma-ms_struct.c 70c646980b7f8688082508ee2b320463 gcc/testsuite/gcc.dg/pragma-pack-2.c 91e7f7dc0a6185be839ea6c1b0927ab2 gcc/testsuite/gcc.dg/pragma-pack-3.c --- 41553,41559 ---- d96f1f1b79bd3d34227f08f817f8c40a gcc/testsuite/gcc.dg/pragma-diag-8.c 24a9270f9a6635bb396c6d700a9d9d2c gcc/testsuite/gcc.dg/pragma-init-fini-2.c 8ea7784f3024c6da48a3ea846fb015cf gcc/testsuite/gcc.dg/pragma-init-fini.c ! 5f05939ddb5a26eeb821ec9bdfd424e7 gcc/testsuite/gcc.dg/pragma-message.c 5ba7295e8d296fad3e6dbec62f078a08 gcc/testsuite/gcc.dg/pragma-ms_struct.c 70c646980b7f8688082508ee2b320463 gcc/testsuite/gcc.dg/pragma-pack-2.c 91e7f7dc0a6185be839ea6c1b0927ab2 gcc/testsuite/gcc.dg/pragma-pack-3.c *************** a22c0db258dd69508b2ceb6070cac172 gcc/te *** 41704,41709 **** --- 41847,41853 ---- 69fbd818614a3c1f7529e6e1957b7a16 gcc/testsuite/gcc.dg/sso-11.c e5a2d2cf2501ec1e111692875eb21b34 gcc/testsuite/gcc.dg/sso-14.c ae63ef59d4955da47b8b32d066fbadb0 gcc/testsuite/gcc.dg/sso-16.c + 48e05b713f14b7737a5213a884d6b0ed gcc/testsuite/gcc.dg/sso-17.c 1596e67c3fd5ccc4a9264cba4aa398c4 gcc/testsuite/gcc.dg/sso-2.c 4a6f7bb1645423ba5d23a61f98233d1d gcc/testsuite/gcc.dg/sso-3.c edaa32662275ea6100c4a0657754194a gcc/testsuite/gcc.dg/sso-4.c *************** c7fa8c61aab4091ae9cc7d1dac0e5731 gcc/te *** 42408,42414 **** --- 42552,42569 ---- 733762e1d02b2686fe659b417b8dcfb8 gcc/testsuite/gcc.dg/torture/pr103489.c 66fcee07a56c19209cb4aaa0d4aaaded gcc/testsuite/gcc.dg/torture/pr103596.c 187b7ab38abc20e5b403f44030455c53 gcc/testsuite/gcc.dg/torture/pr104402.c + 122d618652aeac29059cdbb22234c7b4 gcc/testsuite/gcc.dg/torture/pr105148.c + ca1b8736d16b2cdaabaec84f87fa4d15 gcc/testsuite/gcc.dg/torture/pr105163.c a88279579fa471a64faeb41da64a9eb4 gcc/testsuite/gcc.dg/torture/pr105198.c + ff84a95c5f69f1f2863800f55eb74095 gcc/testsuite/gcc.dg/torture/pr105484.c + cfa64624c60a354aabfb89f439ddf206 gcc/testsuite/gcc.dg/torture/pr105598.c + b14f04ff913718764d3bdef465cc8316 gcc/testsuite/gcc.dg/torture/pr106112.c + dcce8968ffefc4127aace33be872b0b1 gcc/testsuite/gcc.dg/torture/pr106513.c + a18e1aed520ae0e9f74f76068f8a2c9f gcc/testsuite/gcc.dg/torture/pr106809.c + e1b483b65be081b4b298ed61ad7e3eed gcc/testsuite/gcc.dg/torture/pr106892.c + 52e50fb88c76596d45c9fa47a5313317 gcc/testsuite/gcc.dg/torture/pr107451.c + 5badd9cb552b126e1568f773f867f8b3 gcc/testsuite/gcc.dg/torture/pr108076.c + 72f322a0e5d8096eb7fa42e2d8fabe7d gcc/testsuite/gcc.dg/torture/pr109585.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 *************** b142c2ddae2c16c5c72a74e4640c1177 gcc/te *** 43771,43776 **** --- 43926,43932 ---- 44ea79b170e8361106ff0a9791223f68 gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-10.c 64291369db8a3b1bf41782ff1eb3de9b gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-11.c 2592f2d893131e439632395ceaa9705b gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-12.c + 9f7d76e1b617499178fafd478cc82d21 gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-13.c e79cd62bd574d773375b923ec037485f gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-2.c 33591a0fcd9e8448e38471ecb4875798 gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-3.c 9a8efc85cc4761046085ad119ebeab81 gcc/testsuite/gcc.dg/tree-ssa/alias-access-path-4.c *************** a894721a77fea7c94bacb921fa950e92 gcc/te *** 44321,44326 **** --- 44477,44484 ---- 5865561cafce8352e1b97ad299ec6398 gcc/testsuite/gcc.dg/tree-ssa/popcount5ll.c 54f39b48fa6b3cbd7593e9bc52d33a21 gcc/testsuite/gcc.dg/tree-ssa/pr100278.c d5dace55f72aa8ccb51636dff79f5ccc gcc/testsuite/gcc.dg/tree-ssa/pr101824.c + 660324e032912162df8b4570de2731f5 gcc/testsuite/gcc.dg/tree-ssa/pr105860.c + 0b2312ef2558ac9fd9aad91d8afc7009 gcc/testsuite/gcc.dg/tree-ssa/pr107323.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 *************** c456ebf49f3666d48ef00a6ef3c341c7 gcc/te *** 45287,45292 **** --- 45445,45451 ---- 6e2983c6ef63d3ea5a3fe01596a9b0c0 gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-13.c 7d0707c4a3f43204bc5bb9f08a490d52 gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-14.c e8ad1077cbbf867b677d6dbe00524406 gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-2.c + 99cacb357948a00b34aa1d255c66558b gcc/testsuite/gcc.dg/tree-ssa/ssa-lim-24.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 *************** be3ea69b52e071fd375d56784f1b9d68 gcc/te *** 45338,45343 **** --- 45497,45503 ---- f237fb84d8c929de79482cd9290e2e8a gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-15.c 9e4571c11c00c3659ac6fa7b355ad2a1 gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-16.c 3c6a12559e34ac818f0f924443d7e92d gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-17.c + f360773251cbe7efb83da443aa75b310 gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-19.c 4bbb26d9f9200b0547c48796adb2e91a gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-2.c 9e954e0c4211f2af3854b3c3f34d48df gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-3.c 1b3e5b9953e3b8856581281f20abc008 gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-4.c *************** acf0af3723cb1d2f1a5fe0dbbb7d9fa9 gcc/te *** 45586,45591 **** --- 45746,45752 ---- b6636fcf606d4b2a9b3c129b082bc808 gcc/testsuite/gcc.dg/ubsan/float-cast-overflow-bf.c 3325507ff87bcf4f63df3972ec6895c4 gcc/testsuite/gcc.dg/ubsan/ipa-icf-1.c 20138e45bcf86067b02f18ee36d2a451 gcc/testsuite/gcc.dg/ubsan/object-size-9.c + cefdc2a9eb13f2095c81dff3665fcbe2 gcc/testsuite/gcc.dg/ubsan/pr107183.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 *************** e7e998e227aa0d1f54e5abb40415b355 gcc/te *** 46007,46029 **** b125fd3af935d5cc8ec4d8330aefa9d8 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-float.c f625432e6319d231e8b25325f3b636c2 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c 04c2b7329d6c8e7bf861f74e0c5255b4 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-double.c ! 5c35a2bc9c358285f18287843b89c582 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c c8c88ecb3145b5ae379a4eaf565e7867 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c ! efd6bea5941d7cfcb94db14adf7ae6bb gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-double.c ! 1e91a7d1fce917497566671d76c7cbe0 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-float.c ! ddbb4ecae39d3ca6c8aac4a137b1703b gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-half-float.c ! 70ea9a5f6beb0a0593de856e5c5fca71 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-double.c ! 2631aacfc2a544fb0b74a09a2593afd9 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-float.c ! d8462c356de5e1452d1517be6b6f7f4e gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c 7c5f3f1180d421a5ac299c84526ea6d2 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-double.c 323cabdbf2c12f8d5d69a4250f10d17e gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-float.c ! 083b6f004442a2284ec75fb6f17ebda3 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-half-float.c ! 9c918cf0b4d739de71c8dea14ea0025c gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-double.c ! 0c910864a9648681bf5c27a5a5043d0f gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-float.c ! 8e9cc748b0590d6e56b7dc7fd05aa8d5 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-half-float.c ! 7c668ea9d5a3187193b0519e54ae32e9 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-double.c ! ae013061562cfc8fe6a899a1496e7a72 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-float.c ! e004eb218c0be56a2e2702d215c4211f 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 --- 46168,46190 ---- b125fd3af935d5cc8ec4d8330aefa9d8 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-float.c f625432e6319d231e8b25325f3b636c2 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mls-half-float.c 04c2b7329d6c8e7bf861f74e0c5255b4 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-double.c ! 46e3d45e350f090d6980a1e0431e58c1 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c c8c88ecb3145b5ae379a4eaf565e7867 gcc/testsuite/gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-half-float.c ! 6701638eb7c412a219993a3e49351040 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-double.c ! dc9ce49dcc6631e2eda8610ab7dcb050 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-float.c ! ea6ecb8eb1c4807fafaeef993ad9104f gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-half-float.c ! 17681470257f21a1741d290027ee6320 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-double.c ! 02549823c408c283a8ff6eeb91e102ae gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-float.c ! 13f53490d24bc0b038b9cdc4de9616b5 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c 7c5f3f1180d421a5ac299c84526ea6d2 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-double.c 323cabdbf2c12f8d5d69a4250f10d17e gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-float.c ! 9c372bfd4e5a508d067815909d5f9d55 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mla-half-float.c ! 25abb662796a29992142f21fc0d3d9f3 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-double.c ! 16ddd7abbca38805bedb38360d0f1037 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-float.c ! 98fa4ebd560d04334f6892eefea39dbb gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mls-half-float.c ! 203e39f86592c0300fdd78e06d9dee68 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-double.c ! f00ea04f68192109f0a5aaa6a35ce073 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-float.c ! 0943cd3b1d1f46db937e77679a2b9a76 gcc/testsuite/gcc.dg/vect/complex/fast-math-complex-mul-half-float.c 4e1876202a0dc92b35499bdd138583d4 gcc/testsuite/gcc.dg/vect/complex/pr102819-1.c ccf39ed31245c0fb65f9c01c6e5d3b84 gcc/testsuite/gcc.dg/vect/complex/pr102819-2.c 225c29797a1db0d4d58b8bd12cfee997 gcc/testsuite/gcc.dg/vect/complex/pr102819-3.c *************** bd8562e8bd66700ee1114f70cbcff47e gcc/te *** 46055,46061 **** 2926d53e5e3391b93ff4c3fdf9b102c4 gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-12.c a9e7ff0eac965a3c7cbff3f3be3fdf77 gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-33.c 50493cebd3df3a5e504c890169d57496 gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-34.c ! 22ccbb5f325080c594838c3093ae8c53 gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c ce405318474685a1fe34d771dea2f82e gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31b.c a3fbdcd8880d2b38ef90333ee846cfb0 gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31c.c f5d642efddbd554383cbaa9e19b68090 gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-33.c --- 46216,46222 ---- 2926d53e5e3391b93ff4c3fdf9b102c4 gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-12.c a9e7ff0eac965a3c7cbff3f3be3fdf77 gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-33.c 50493cebd3df3a5e504c890169d57496 gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-slp-34.c ! 08e1fba7264d20e5d5a68eb9e3d96238 gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c ce405318474685a1fe34d771dea2f82e gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31b.c a3fbdcd8880d2b38ef90333ee846cfb0 gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-31c.c f5d642efddbd554383cbaa9e19b68090 gcc/testsuite/gcc.dg/vect/costmodel/ppc/costmodel-vect-33.c *************** ac90ad8f4383592387ff86cb8dbd78ce gcc/te *** 46204,46212 **** --- 46365,46380 ---- bd6686ddac4dec394f0f0af136fe8012 gcc/testsuite/gcc.dg/vect/pr101445.c ae8b9fa809bc0868516d373dbc070b85 gcc/testsuite/gcc.dg/vect/pr101505.c 6893aed7299a121a69eb5b9deac04ae4 gcc/testsuite/gcc.dg/vect/pr102046.c + a0e8cb9f9f5598691ceabc4164c5e796 gcc/testsuite/gcc.dg/vect/pr103116-1.c + cfaa4c4a67ed4d2706caf5ad80e52e9a gcc/testsuite/gcc.dg/vect/pr103116-2.c b02b62e31de9fe3f178db0e94281db9e gcc/testsuite/gcc.dg/vect/pr103544.c 5b80820316db69308b9fa48a7a5d642b gcc/testsuite/gcc.dg/vect/pr103864.c 1e8e221275bfa8e8dc66a37d14f07f32 gcc/testsuite/gcc.dg/vect/pr104782.c + f1c2ca8659ed33069fed7de6e429bc7e gcc/testsuite/gcc.dg/vect/pr107212-1.c + 4d42750e9517b302a0544999b3f7fcc1 gcc/testsuite/gcc.dg/vect/pr107212-2.c + bdc9d900f60b3777cfec5cd1a41102d7 gcc/testsuite/gcc.dg/vect/pr108950.c + bce13fdf2ea61a0bc1886470eed1bf60 gcc/testsuite/gcc.dg/vect/pr109473.c + aa0a603e6aee5b8a3fd3463354c9bf10 gcc/testsuite/gcc.dg/vect/pr109502.c 42d48d2ecd5682545b12ac42f879a831 gcc/testsuite/gcc.dg/vect/pr16105.c 231c99dba9475fe09525bbf6f4374124 gcc/testsuite/gcc.dg/vect/pr18308.c 3aed50f38aa86c4915d6e4b3cef91287 gcc/testsuite/gcc.dg/vect/pr18400.c *************** ab5379404640e60b68283cea3a87ea22 gcc/te *** 47305,47311 **** fbf164f2875819f557043a2d78017764 gcc/testsuite/gcc.dg/vect/vect-widen-shift-s8.c abe3c6bc74fd9730499cd8e54e143935 gcc/testsuite/gcc.dg/vect/vect-widen-shift-u16.c 8146ba6466499582165bf09d96598f47 gcc/testsuite/gcc.dg/vect/vect-widen-shift-u8.c ! 7d2c6eaf321cb302aa2a3c256dd11514 gcc/testsuite/gcc.dg/vect/vect.exp 9dfff9b6a28d5e65dca4073934514d5e gcc/testsuite/gcc.dg/vect/wrapv-vect-7.c 3613af6098a597772fd1b7e4dd37a0f3 gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-2char.c 431e29e277cc621ccb31b18bba96d195 gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-2short.c --- 47473,47479 ---- fbf164f2875819f557043a2d78017764 gcc/testsuite/gcc.dg/vect/vect-widen-shift-s8.c abe3c6bc74fd9730499cd8e54e143935 gcc/testsuite/gcc.dg/vect/vect-widen-shift-u16.c 8146ba6466499582165bf09d96598f47 gcc/testsuite/gcc.dg/vect/vect-widen-shift-u8.c ! 17ec7fad2ee4229f9618a961b342c03b gcc/testsuite/gcc.dg/vect/vect.exp 9dfff9b6a28d5e65dca4073934514d5e gcc/testsuite/gcc.dg/vect/wrapv-vect-7.c 3613af6098a597772fd1b7e4dd37a0f3 gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-2char.c 431e29e277cc621ccb31b18bba96d195 gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-2short.c *************** bf28a9ad5feaa7564970d3116eaae230 gcc/te *** 47778,47783 **** --- 47946,47952 ---- acaaa7b0871f73bf93a15b8ccdd87575 gcc/testsuite/gcc.target/aarch64/acle/crc32d.c 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 56cadf41ea040c38f913b6c3e6475be3 gcc/testsuite/gcc.target/aarch64/acle/jcvt_1.c a7c4014d53740d897076d06edcac5aaa gcc/testsuite/gcc.target/aarch64/acle/jcvt_2.c ff3a09d9afde293ac1598cb7530ead9d gcc/testsuite/gcc.target/aarch64/acle/memtag_1.c *************** a1f177ffd0862f4b4d2cf8089b641e17 gcc/te *** 48360,48365 **** --- 48529,48535 ---- 904fcc9a4fae07870b9cb9e077d40e2a gcc/testsuite/gcc.target/aarch64/aes_1.c f579ec2c6b2aaae4154654375a568cb8 gcc/testsuite/gcc.target/aarch64/aes_2.c 6fc5ea113b9f1a18e380dabb486b1f93 gcc/testsuite/gcc.target/aarch64/aes_xor_combine.c + 87ffe2f549ae8342b95a0220082c56a9 gcc/testsuite/gcc.target/aarch64/ampere1-no_ldp_combine.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 *************** fdee6dc65f1aea1fb6a62ac64d03d92d gcc/te *** 48436,48441 **** --- 48606,48617 ---- 946b6917c33aba8084d5a129bb3f3e87 gcc/testsuite/gcc.target/aarch64/bics_3.c 7b6b35a52fbd180696cad88dbba07bee gcc/testsuite/gcc.target/aarch64/bics_4.c dbf9d0b9347271827283e2f005a43518 gcc/testsuite/gcc.target/aarch64/bics_5.c + b9adf5710f6e4412e311d9842a7e6a74 gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align16-O2-extra.c + 1ea2338a337ffffcbf0070527e645884 gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align16-O2.c + 274d78b2b764b056cccf893916f4d307 gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align32-O2-extra.c + 896bab66fe63bc480061c68eaf5242f6 gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align32-O2.c + e6fb09982b6bafd6c889c22cb3ec1cb9 gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning-align8-O2.c + f7378d596bb7308498db40ad34fd8dab gcc/testsuite/gcc.target/aarch64/bitfield-abi-warning.h 11f6f9054981704db09136d921c586d4 gcc/testsuite/gcc.target/aarch64/branch-protection-attr-2.c d7e52c3c883fc5ffda3d68cfbc199f9c gcc/testsuite/gcc.target/aarch64/branch-protection-attr.c c45ad55864031fa75ffa4f831160438a gcc/testsuite/gcc.target/aarch64/branch-protection-option-2.c *************** c84ec68e16463ed98fee3cd8cb4e230f gcc/te *** 48500,48505 **** --- 48676,48682 ---- f88dcec7a52a0d115da213f16170f154 gcc/testsuite/gcc.target/aarch64/cpunative/info_13 0e1794c5980d78e11a9aff64bd2dc530 gcc/testsuite/gcc.target/aarch64/cpunative/info_14 a83f195cec2faf2fbf29ad0e4f2fa03e gcc/testsuite/gcc.target/aarch64/cpunative/info_15 + 77b9d125c413bdfe2a579cf2a959f461 gcc/testsuite/gcc.target/aarch64/cpunative/info_18 4b5005c4193fa80868408bf4492b4e3b gcc/testsuite/gcc.target/aarch64/cpunative/info_2 4c4387d4071cf10c793b4efe11f43439 gcc/testsuite/gcc.target/aarch64/cpunative/info_3 d8a7caffcc99feff5312001aed51cd38 gcc/testsuite/gcc.target/aarch64/cpunative/info_4 *************** d381cd3e88e2680adaf2d96ab40c7f36 gcc/te *** 48516,48521 **** --- 48693,48699 ---- c033638d0946e9ee53dca3d93087a1e9 gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_13.c 6053245b4b2e80b7e957f46340ac4844 gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_14.c 1edb30a14c92c1f3d8768f2fe63085ab gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_15.c + 7f6f8f8e6241c818ea037d533dc71d1a gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_18.c ae5358d52499de77a7a1beac3683c709 gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_2.c 5932d955ed9dc11faefb9f331763ff2c gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_3.c cfd988497c936bc048f9b952dc82ebac gcc/testsuite/gcc.target/aarch64/cpunative/native_cpu_4.c *************** c634a3e3729a1cf014159113aaaa5923 gcc/te *** 48760,48765 **** --- 48938,48947 ---- 1c78040ee8384426d5334c9b28ab2f6e gcc/testsuite/gcc.target/aarch64/pr100056.c c3d44b74cbd361a863813180478ad6c8 gcc/testsuite/gcc.target/aarch64/pr100075.c d476917b01e1a6ee9c389abac401fcf6 gcc/testsuite/gcc.target/aarch64/pr103523.c + d31b19093bf5b52a4ab71663355a6864 gcc/testsuite/gcc.target/aarch64/pr104921-1.c + de49e9125d6237709299bcc3a1dfd315 gcc/testsuite/gcc.target/aarch64/pr104921-2.c + 80bfa364bfe20370e6bd035b978c10f8 gcc/testsuite/gcc.target/aarch64/pr104921.x + a7d8042acc2272e21686f52da76e42f1 gcc/testsuite/gcc.target/aarch64/pr108589.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 *************** d43406280c991dedd7072642fee590a0 gcc/te *** 48822,48829 **** cb9ff251051d24e9eaa0963c842a29d1 gcc/testsuite/gcc.target/aarch64/pr91710.c fc91452912566f4106b747b6e9c396e5 gcc/testsuite/gcc.target/aarch64/pr91927.c 9562a96a900add1659850fcc3d3901cf gcc/testsuite/gcc.target/aarch64/pr92424-1.c ! fa96ea78d21fc13d022162f4fb6d0e23 gcc/testsuite/gcc.target/aarch64/pr92424-2.c ! cc14caf0fac017855cfb26da3f9bd70f gcc/testsuite/gcc.target/aarch64/pr92424-3.c 2c2213c9e95d84ffb54b1bf1c59ba1a4 gcc/testsuite/gcc.target/aarch64/pr92526.c 4a3651caf4f05ecfa237c1017ec5b341 gcc/testsuite/gcc.target/aarch64/pr93119.c 040dfb8e58ad051e80d35c470c8ab52a gcc/testsuite/gcc.target/aarch64/pr93221.c --- 49004,49011 ---- cb9ff251051d24e9eaa0963c842a29d1 gcc/testsuite/gcc.target/aarch64/pr91710.c fc91452912566f4106b747b6e9c396e5 gcc/testsuite/gcc.target/aarch64/pr91927.c 9562a96a900add1659850fcc3d3901cf gcc/testsuite/gcc.target/aarch64/pr92424-1.c ! 089246fb9d610dba2682e4db293a1081 gcc/testsuite/gcc.target/aarch64/pr92424-2.c ! 82d090f026d0bcb989e44bc06fb71ba3 gcc/testsuite/gcc.target/aarch64/pr92424-3.c 2c2213c9e95d84ffb54b1bf1c59ba1a4 gcc/testsuite/gcc.target/aarch64/pr92526.c 4a3651caf4f05ecfa237c1017ec5b341 gcc/testsuite/gcc.target/aarch64/pr93119.c 040dfb8e58ad051e80d35c470c8ab52a gcc/testsuite/gcc.target/aarch64/pr93221.c *************** c5ac198fcc683ea88b36ff21fc73e2c5 gcc/te *** 48851,48856 **** --- 49033,49039 ---- fd312dc569ccf5ce510dd16b64f1203b gcc/testsuite/gcc.target/aarch64/pr97701.c 98e2f872193b247fc94cc5d6f30aaddf gcc/testsuite/gcc.target/aarch64/pr98603.c d36ed016a2b11c922ff41b3a63eb03d8 gcc/testsuite/gcc.target/aarch64/pr98772.c + d99763de0d53b85cfa8475cec6740085 gcc/testsuite/gcc.target/aarch64/pr98776.c 18603818c100529306da07a556c00769 gcc/testsuite/gcc.target/aarch64/pr99381.c 1f2ce8a6e6be36322ada7a2a222926ac gcc/testsuite/gcc.target/aarch64/pr99767.c 49e4573c158d59f2a37800471ca3bc65 gcc/testsuite/gcc.target/aarch64/pr99808.c *************** c117eaeade3674a6a21013315de55b26 gcc/te *** 48858,48864 **** 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 ! d3e6defa85b5cd4bb506306377e59a53 gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_1.c 42c7828cb4d5253e1a3df46c971f945a gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_2.c 1802b716a6dff570eaf8df2688efe1dd gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_3.c 1f95766b4ed5bfb5f2cf1f168a607a8d gcc/testsuite/gcc.target/aarch64/predefine_large.c --- 49041,49047 ---- c45bc47433163208f0aec414ada73705 gcc/testsuite/gcc.target/aarch64/pr99873_2.c 18c52a2faa4e83538abeef107e3b4d8a gcc/testsuite/gcc.target/aarch64/pr99873_3.c 5e9a238ae88bfc957497e635ed104144 gcc/testsuite/gcc.target/aarch64/pr99988.c ! 7647e74954bed1df0b5452c86dc7806b gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_1.c 42c7828cb4d5253e1a3df46c971f945a gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_2.c 1802b716a6dff570eaf8df2688efe1dd gcc/testsuite/gcc.target/aarch64/pragma_cpp_predefs_3.c 1f95766b4ed5bfb5f2cf1f168a607a8d gcc/testsuite/gcc.target/aarch64/predefine_large.c *************** cffa63a742186323feab22505915a6e9 gcc/te *** 51203,51213 **** e566a5e929cb642a78066bf00691e1bc 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 ! 5ae6341c57153ec20112c098c47d4a4f gcc/testsuite/gcc.target/aarch64/sve/acle/general/brka_1.c 4eea3d7baf0e2958356c0c33600e72e4 gcc/testsuite/gcc.target/aarch64/sve/acle/general/brka_2.c ! 47cd2b091e30ac40fddd5d5428615f8d gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkb_1.c 727e5a19783b8b46c75ba94a5a33f1da gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkb_2.c ! 88cae91706dea5ab1150bf4ba8df41d5 gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkn_1.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 --- 51386,51397 ---- e566a5e929cb642a78066bf00691e1bc 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 ! f81d80fd6fc545f0e3c86a51a1ad1aa8 gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkb_1.c 727e5a19783b8b46c75ba94a5a33f1da gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkb_2.c ! f05f061869c6f335b6395f5250ec83ee gcc/testsuite/gcc.target/aarch64/sve/acle/general/brkn_1.c ! 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 *************** f247489d5a83c25a52bba3f69ccf6256 gcc/te *** 51958,51963 **** --- 52142,52148 ---- ab7e96ffad0e120db206c2fe1d3866a9 gcc/testsuite/gcc.target/aarch64/sve/pr104474-1.c 7730534c4e1ec8c38e74c96c2505af9f gcc/testsuite/gcc.target/aarch64/sve/pr104474-2.c e30fd5dcda5a72ba3b2d66a5485b282a gcc/testsuite/gcc.target/aarch64/sve/pr104474-3.c + fca208aba0269c8218d4736a10ac6a83 gcc/testsuite/gcc.target/aarch64/sve/pr109176.c 00b752a6e175de8b1a300df08f275461 gcc/testsuite/gcc.target/aarch64/sve/pr87563.c c56eeba71ad463673a1bdb30e7a94863 gcc/testsuite/gcc.target/aarch64/sve/pr87815.c f0e2b5504e3b6dcd97ff8a6d8549d00e gcc/testsuite/gcc.target/aarch64/sve/pr88834.c *************** b360e0ac1da1500645df64fce4fab7dd gcc/te *** 53167,53176 **** --- 53352,53364 ---- d807c78d9b80a1f49bc50cb0cae86706 gcc/testsuite/gcc.target/aarch64/sve2/whilewr_2.c c1ccdcf1821a2a9f689561bfc74f48dc gcc/testsuite/gcc.target/aarch64/symbol-range-tiny.c b4127affc5c8c177d402c917c2b81097 gcc/testsuite/gcc.target/aarch64/symbol-range.c + d707fbbaf0d37436be7ea3b6ac3b81d7 gcc/testsuite/gcc.target/aarch64/sync-comp-swap-ool.c c210c6b6344e5119de7869315aefba48 gcc/testsuite/gcc.target/aarch64/sync-comp-swap.c 322a3d828a7a9ead661b7d17a7aeceea gcc/testsuite/gcc.target/aarch64/sync-comp-swap.x + 2687cc48cb064e67e3949a43386961bf gcc/testsuite/gcc.target/aarch64/sync-op-acquire-ool.c 002f159c83e5462862ec82620c2630ae gcc/testsuite/gcc.target/aarch64/sync-op-acquire.c 1e1c36a3eb9a0bd45a0e250e1d2b1ce5 gcc/testsuite/gcc.target/aarch64/sync-op-acquire.x + 14c3e5537db0cba1ee1aa29279f1d44a gcc/testsuite/gcc.target/aarch64/sync-op-full-ool.c 34216778cb9e5a4611eb55ae4ccfaf4b gcc/testsuite/gcc.target/aarch64/sync-op-full.c 17abd80a4e460d31237f3ece87c85558 gcc/testsuite/gcc.target/aarch64/sync-op-full.x f87f898044cd78f2ebf530577d3cf7bb gcc/testsuite/gcc.target/aarch64/sync-op-release.c *************** c850677a06284224d4f4c40ffd5e4d78 gcc/te *** 53187,53194 **** 639032a9f80bce937ccbcf962600a338 gcc/testsuite/gcc.target/aarch64/target_attr_17.c c58ba3dda55aafe8c837f58d3ba9dc9d gcc/testsuite/gcc.target/aarch64/target_attr_18.c 93145ff3e03510c58daa08e45866f6ba gcc/testsuite/gcc.target/aarch64/target_attr_2.c ! bda8eed00f321b4cfe8fffd7a2a549d1 gcc/testsuite/gcc.target/aarch64/target_attr_20.c ! 9ea0cd1c37488478ebbda0afaf90eb5a gcc/testsuite/gcc.target/aarch64/target_attr_21.c a4a6eccdba213faef4196f8ebe4152a3 gcc/testsuite/gcc.target/aarch64/target_attr_3.c c17cb964233b0aa7dd1ec0085d5a8fe2 gcc/testsuite/gcc.target/aarch64/target_attr_4.c 77ed3e7c559e6c7bb67620fa37d32e76 gcc/testsuite/gcc.target/aarch64/target_attr_5.c --- 53375,53382 ---- 639032a9f80bce937ccbcf962600a338 gcc/testsuite/gcc.target/aarch64/target_attr_17.c c58ba3dda55aafe8c837f58d3ba9dc9d gcc/testsuite/gcc.target/aarch64/target_attr_18.c 93145ff3e03510c58daa08e45866f6ba gcc/testsuite/gcc.target/aarch64/target_attr_2.c ! 8b44261d4e827e2d0e48c50c109f35b5 gcc/testsuite/gcc.target/aarch64/target_attr_20.c ! 6fc49b0d1c0f511ac3f21e291184cb00 gcc/testsuite/gcc.target/aarch64/target_attr_21.c a4a6eccdba213faef4196f8ebe4152a3 gcc/testsuite/gcc.target/aarch64/target_attr_3.c c17cb964233b0aa7dd1ec0085d5a8fe2 gcc/testsuite/gcc.target/aarch64/target_attr_4.c 77ed3e7c559e6c7bb67620fa37d32e76 gcc/testsuite/gcc.target/aarch64/target_attr_5.c *************** a9f54382c872d8300abd0751aaf2baa7 gcc/te *** 53438,53443 **** --- 53626,53632 ---- 582df4fc7c8b439347d0ffcf02953017 gcc/testsuite/gcc.target/alpha/cix-2.c c4eec60b3306ebc857f91dd9f92ff8fe gcc/testsuite/gcc.target/alpha/max-1.c 868d557785ef579297eaa8d96b97b3fc gcc/testsuite/gcc.target/alpha/max-2.c + cda436a64900819743f9c85f6ef0caae gcc/testsuite/gcc.target/alpha/pr105209.c dc5943b1dd495250e6dc8076b32c902c gcc/testsuite/gcc.target/alpha/pr19518.c f8467590e67b2b5f4718d571a9ba60c0 gcc/testsuite/gcc.target/alpha/pr22093.c b36471f8edbf2a11ce23359823ecc10b gcc/testsuite/gcc.target/alpha/pr24178.c *************** c41d03fd2be1eae911f39252caa40c73 gcc/te *** 55329,55334 **** --- 55518,55524 ---- 58cb73d621b713ebe5634431509c7854 gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrwq_z_f32.c fc232654d74a8f153c430f830464193d gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrwq_z_s32.c 5b256b4d531fa066fb2d4b1429db5841 gcc/testsuite/gcc.target/arm/mve/intrinsics/vldrwq_z_u32.c + c74c5973fcfef73146c302e43aae1d84 gcc/testsuite/gcc.target/arm/mve/intrinsics/vldst24q_reg_offset.c 4596f8a6680597f5526864379597c690 gcc/testsuite/gcc.target/arm/mve/intrinsics/vmaxaq_m_s16.c 9bc88de909354740e2801b0cefb06212 gcc/testsuite/gcc.target/arm/mve/intrinsics/vmaxaq_m_s32.c b4ffdc567fee6bf0d9219f602465b6ff gcc/testsuite/gcc.target/arm/mve/intrinsics/vmaxaq_m_s8.c *************** ce2ea998f70f030c1e5c5cf0f3536bd7 gcc/te *** 56843,56848 **** --- 57033,57039 ---- 7a1f853ca353ec3249c7750b5684b3e6 gcc/testsuite/gcc.target/arm/peep-strd-2.c ca03d4215dfd4e98fc1d17e6890fcc4a gcc/testsuite/gcc.target/arm/polytypes.c 2f719adc3f3e3724629a17daf9bb2e71 gcc/testsuite/gcc.target/arm/pr100775.c + b78ed4b32814a22ad0cf1f46aee89cc8 gcc/testsuite/gcc.target/arm/pr105312.c 03b84ccc5b909e6ece59f619e9298211 gcc/testsuite/gcc.target/arm/pr19599.c 3425143e88f989a8f52f345e6237106a gcc/testsuite/gcc.target/arm/pr26702.c fc0dd660f56108005b4f0b142e94d10d gcc/testsuite/gcc.target/arm/pr37780_1.c *************** f55df70acaaa1a05030d45495848eb2b gcc/te *** 59242,59247 **** --- 59433,59439 ---- 1db2c2106138cc396b1ae8c512625b33 gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssd-2.c 5052cdd63fbafc27cd3d7534458acaec gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssds-1.c 925a068450d57f20740e5ce6e8fe217e gcc/testsuite/gcc.target/i386/avx5124vnniw-vp4dpwssds-2.c + e776362bd500a8b0461d6aa8e0e1660e gcc/testsuite/gcc.target/i386/avx512bf16-pr108881.c 964a5f2a2c89b83533b2be720732ccd6 gcc/testsuite/gcc.target/i386/avx512bf16-vcvtne2ps2bf16-1.c 80660c3a1129515840c1c9e263211f06 gcc/testsuite/gcc.target/i386/avx512bf16-vcvtneps2bf16-1.c 63e7956c8ca198ce2181d80ed229bbbb gcc/testsuite/gcc.target/i386/avx512bf16-vdpbf16ps-1.c *************** c937938a0a49e70d699ee5ef70d33cb0 gcc/te *** 61990,61996 **** a6020162b1207dec1f78ff7901093fbd gcc/testsuite/gcc.target/i386/i386.exp 2d69eb6ddebbb701ee0dbfa08d2eb6b8 gcc/testsuite/gcc.target/i386/iamcu/abi-iamcu.exp 824179ec90e1e4fdb872aed133f8d523 gcc/testsuite/gcc.target/i386/iamcu/args.h ! 75e691882a781a986cbf2b848eacc017 gcc/testsuite/gcc.target/i386/iamcu/asm-support.S a77c8e89ec538edb98eb4ac96da0db61 gcc/testsuite/gcc.target/i386/iamcu/defines.h ced3e7fc25757fe027f4eacc904e6881 gcc/testsuite/gcc.target/i386/iamcu/macros.h b37244b808ec210193fd56756594c8e3 gcc/testsuite/gcc.target/i386/iamcu/test_3_element_struct_and_unions.c --- 62182,62188 ---- a6020162b1207dec1f78ff7901093fbd gcc/testsuite/gcc.target/i386/i386.exp 2d69eb6ddebbb701ee0dbfa08d2eb6b8 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 ced3e7fc25757fe027f4eacc904e6881 gcc/testsuite/gcc.target/i386/iamcu/macros.h b37244b808ec210193fd56756594c8e3 gcc/testsuite/gcc.target/i386/iamcu/test_3_element_struct_and_unions.c *************** c89ecd0f9931568f536dc071eea76350 gcc/te *** 62155,62162 **** 380986fccfc94de2053cb58bda652e65 gcc/testsuite/gcc.target/i386/keylocker-aesenc256kl.c 82f0c1688e98d57bb5b380c9b834d5f5 gcc/testsuite/gcc.target/i386/keylocker-aesencwide128kl.c bce5027ed86913143560e79cc6a745fe gcc/testsuite/gcc.target/i386/keylocker-aesencwide256kl.c ! 4c4a88b13cbf3c58c70ad98c32a8879d gcc/testsuite/gcc.target/i386/keylocker-encodekey128.c ! 5d4d1e811f69626e9becd2b2c2a1c6d6 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 --- 62347,62354 ---- 380986fccfc94de2053cb58bda652e65 gcc/testsuite/gcc.target/i386/keylocker-aesenc256kl.c 82f0c1688e98d57bb5b380c9b834d5f5 gcc/testsuite/gcc.target/i386/keylocker-aesencwide128kl.c bce5027ed86913143560e79cc6a745fe 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 *************** f34a56063b53daa2722dd66e280f5aab gcc/te *** 62439,62444 **** --- 62631,62637 ---- 30d7b1638a5f604ac4353737e0db1816 gcc/testsuite/gcc.target/i386/pr104458.c a92681d4c2c5095462e23684946fe9fd gcc/testsuite/gcc.target/i386/pr104469.c 6f32caf69432ac867dd42051bcfa22a8 gcc/testsuite/gcc.target/i386/pr104502.c + 21083ed0382a1c184689d3a9ee1bc7ee gcc/testsuite/gcc.target/i386/pr104637.c c0361c1e4d91a839c96bfc8c71f15139 gcc/testsuite/gcc.target/i386/pr104674.c 69c507a5894d6d6b62f48b087adf9652 gcc/testsuite/gcc.target/i386/pr104890.c 8aea430f8fa49eb985ac268facb6294c gcc/testsuite/gcc.target/i386/pr104963.c *************** a892cf5449c572594d9ac500ec2178bc gcc/te *** 62448,62453 **** --- 62641,62651 ---- 6c6335b2ca1f773cd45cd27ad0d7a133 gcc/testsuite/gcc.target/i386/pr105000-3.c 6835f42a37c0159616cc082bd3c33721 gcc/testsuite/gcc.target/i386/pr105032.c 3de9ba59994fd09bad053a28eecbc68d gcc/testsuite/gcc.target/i386/pr105123.c + db0abcfd3877faa33b33aa19a57352a5 gcc/testsuite/gcc.target/i386/pr105554.c + afe42f2264a7583bee62a6e718faeef5 gcc/testsuite/gcc.target/i386/pr105970.c + f39114cabb6d2efeaa8e1f1a944e05e0 gcc/testsuite/gcc.target/i386/pr107304.c + 972837aa3a25d88acfe4af629c37d530 gcc/testsuite/gcc.target/i386/pr107863.c + a643678ff500c5823e0dfd6f13a78767 gcc/testsuite/gcc.target/i386/pr109276.c 304b7d185da41754f69656f5bfa7d508 gcc/testsuite/gcc.target/i386/pr11001-memcpy-1.c 7dbe55f1460795545dd744807466a430 gcc/testsuite/gcc.target/i386/pr11001-memcpy-2.c cbe58ae1efc3b97c1019a430e1fedfcb gcc/testsuite/gcc.target/i386/pr11001-memcpy-3.c *************** d82c437b681e812dd9c8b48af5ec1850 gcc/te *** 63791,63797 **** a6b13b01e1a41a2d0dec3e0debcdf80b gcc/testsuite/gcc.target/i386/pr89229-7a.c aead7f35b166baa85ab2aed11aa3c2d4 gcc/testsuite/gcc.target/i386/pr89229-7b.c d9b72f271f61a1292d8be12ea7a23b54 gcc/testsuite/gcc.target/i386/pr89229-7c.c ! 8101acdea56668e935e1e380034afee9 gcc/testsuite/gcc.target/i386/pr89261.c 956a0e340ae4dfe5721ba6a3ab98969f gcc/testsuite/gcc.target/i386/pr89290.c 9b171107d18eb3849a61bea08c583e1a gcc/testsuite/gcc.target/i386/pr89346.c 3672969c19203520cc6589315eed1976 gcc/testsuite/gcc.target/i386/pr89386-1.c --- 63989,63995 ---- a6b13b01e1a41a2d0dec3e0debcdf80b gcc/testsuite/gcc.target/i386/pr89229-7a.c aead7f35b166baa85ab2aed11aa3c2d4 gcc/testsuite/gcc.target/i386/pr89229-7b.c d9b72f271f61a1292d8be12ea7a23b54 gcc/testsuite/gcc.target/i386/pr89229-7c.c ! 4e53037c62f9dce84f092674db01aec5 gcc/testsuite/gcc.target/i386/pr89261.c 956a0e340ae4dfe5721ba6a3ab98969f gcc/testsuite/gcc.target/i386/pr89290.c 9b171107d18eb3849a61bea08c583e1a gcc/testsuite/gcc.target/i386/pr89346.c 3672969c19203520cc6589315eed1976 gcc/testsuite/gcc.target/i386/pr89386-1.c *************** cc8a162617784a2e883a5e726d28ebde gcc/te *** 64258,64264 **** 49bde97b271274cb2bc26697ce2b19be gcc/testsuite/gcc.target/i386/sse-11.c 1bb2f373c5a5eb9db6b65e377d0dac63 gcc/testsuite/gcc.target/i386/sse-12.c 5cb56c1bb70d3d793b9deec82cee096a gcc/testsuite/gcc.target/i386/sse-13.c ! ffb6ed9866dd66aafe68051249fa57a5 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 --- 64456,64462 ---- 49bde97b271274cb2bc26697ce2b19be gcc/testsuite/gcc.target/i386/sse-11.c 1bb2f373c5a5eb9db6b65e377d0dac63 gcc/testsuite/gcc.target/i386/sse-12.c 5cb56c1bb70d3d793b9deec82cee096a gcc/testsuite/gcc.target/i386/sse-13.c ! c181495c6cf99501a49865ad490489ec 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 *************** f9b1cdb0433ef7064bd1c61cb70fbb98 gcc/te *** 65062,65099 **** 7526bd093b536c4b62a2a718b487c3e3 gcc/testsuite/gcc.target/i386/xsaves-1.c d29a546e91cb2c29d0c4181a1d0bf029 gcc/testsuite/gcc.target/i386/xsaves64-1.c 2b33ab73b2913b0e2f41e8e40b35c582 gcc/testsuite/gcc.target/i386/zee.c ! ccd89cdfd8574cb92a2380ea8610e36d gcc/testsuite/gcc.target/i386/zero-scratch-regs-1.c ! 9bc3af9ce20206c7d70ba2b92e9a38d5 gcc/testsuite/gcc.target/i386/zero-scratch-regs-10.c f6edf832011ee2bcc9cb8599745631a2 gcc/testsuite/gcc.target/i386/zero-scratch-regs-11.c 377aef2617b3e54b81a10664c1a4f011 gcc/testsuite/gcc.target/i386/zero-scratch-regs-12.c ! e360a1594269460443979aab1086c546 gcc/testsuite/gcc.target/i386/zero-scratch-regs-13.c ! 0d43081f3a2c19e4acda8fb37b28b74a gcc/testsuite/gcc.target/i386/zero-scratch-regs-14.c ! 11d29f16f6f1cf20ab22f237f9ef5054 gcc/testsuite/gcc.target/i386/zero-scratch-regs-15.c ! 86e2d7c8f1fdc9ece0dcc18057e734c8 gcc/testsuite/gcc.target/i386/zero-scratch-regs-16.c ! 8b0e760acf235bfcf91f1a6c508c54df gcc/testsuite/gcc.target/i386/zero-scratch-regs-17.c ! 70644638653618b2cf37d7e270df7cc9 gcc/testsuite/gcc.target/i386/zero-scratch-regs-18.c ! 634bc9f8790c34b13a94555596d63793 gcc/testsuite/gcc.target/i386/zero-scratch-regs-19.c ! 3e24ced421af0e7083b0ba2ba1126cbb gcc/testsuite/gcc.target/i386/zero-scratch-regs-2.c ! 60cc9f696188a2cb9662989a963abb3a gcc/testsuite/gcc.target/i386/zero-scratch-regs-20.c ! ae2465acaa67981b1f9db664ba66b215 gcc/testsuite/gcc.target/i386/zero-scratch-regs-21.c ! ec58478e3410c2cfdf4caf20cd193e45 gcc/testsuite/gcc.target/i386/zero-scratch-regs-22.c ! bb8f994780f5208149eaaaf321159b73 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 ! 8b3188eddf0c6025da16c21d609fe504 gcc/testsuite/gcc.target/i386/zero-scratch-regs-26.c ! bb99510058d3acea81186ab9ff44c967 gcc/testsuite/gcc.target/i386/zero-scratch-regs-27.c ! 2c914180b27b9d39191b19ad4912efe7 gcc/testsuite/gcc.target/i386/zero-scratch-regs-28.c a0db901c2d58c6ec7373c71e5e9f5f96 gcc/testsuite/gcc.target/i386/zero-scratch-regs-29.c ! ab5126d4988a6006a3080fe606738e8d gcc/testsuite/gcc.target/i386/zero-scratch-regs-3.c bc37db967928436168b8c1061133369a gcc/testsuite/gcc.target/i386/zero-scratch-regs-30.c ! e7d7d3c51cfe8dc0a336491296c53036 gcc/testsuite/gcc.target/i386/zero-scratch-regs-31.c 66378b9cfd36021151804e3b9acaa10c gcc/testsuite/gcc.target/i386/zero-scratch-regs-32.c ! 50fd322246b281489b8fa52d8f5f61f4 gcc/testsuite/gcc.target/i386/zero-scratch-regs-4.c ! 679061d42db8d05f6910156661c88636 gcc/testsuite/gcc.target/i386/zero-scratch-regs-5.c ! 1c3ace2c0c644df8fd0480bf9027c1ea gcc/testsuite/gcc.target/i386/zero-scratch-regs-6.c ! 0322291ed263d0bcbf4365c9f2923225 gcc/testsuite/gcc.target/i386/zero-scratch-regs-7.c ! c8cfd937be632996a527ce2873df1368 gcc/testsuite/gcc.target/i386/zero-scratch-regs-8.c ! 7eb891e2209cd79e3b41fc54d2fea2c4 gcc/testsuite/gcc.target/i386/zero-scratch-regs-9.c 09fb6852403bb7a0b9b3339c49e09efb gcc/testsuite/gcc.target/ia64/20010423-1.c d42256aef37a73ae61dad2030303738b gcc/testsuite/gcc.target/ia64/20020313-1.c 80710ab442f553a1629beb106d8276a3 gcc/testsuite/gcc.target/ia64/20020326-1.c --- 65260,65297 ---- 7526bd093b536c4b62a2a718b487c3e3 gcc/testsuite/gcc.target/i386/xsaves-1.c d29a546e91cb2c29d0c4181a1d0bf029 gcc/testsuite/gcc.target/i386/xsaves64-1.c 2b33ab73b2913b0e2f41e8e40b35c582 gcc/testsuite/gcc.target/i386/zee.c ! 4527e3f177bad69ef63bade044ed5b90 gcc/testsuite/gcc.target/i386/zero-scratch-regs-1.c ! 5f9a71b75dc2564f1ad22de60aff16f6 gcc/testsuite/gcc.target/i386/zero-scratch-regs-10.c f6edf832011ee2bcc9cb8599745631a2 gcc/testsuite/gcc.target/i386/zero-scratch-regs-11.c 377aef2617b3e54b81a10664c1a4f011 gcc/testsuite/gcc.target/i386/zero-scratch-regs-12.c ! e119f919349398a051e64f94a4f814f2 gcc/testsuite/gcc.target/i386/zero-scratch-regs-13.c ! d924e961ea6a8f265cbc975304951897 gcc/testsuite/gcc.target/i386/zero-scratch-regs-14.c ! c6feb34d25dd6f06809a37f6beadb10b gcc/testsuite/gcc.target/i386/zero-scratch-regs-15.c ! a4b791bababf57b05d768d33e17ccb0b gcc/testsuite/gcc.target/i386/zero-scratch-regs-16.c ! f59054992a46415551113e95f1883e48 gcc/testsuite/gcc.target/i386/zero-scratch-regs-17.c ! d0580d13a6dbb354380d9300b48ad169 gcc/testsuite/gcc.target/i386/zero-scratch-regs-18.c ! ab819272e806b4bdb4319962a9673c71 gcc/testsuite/gcc.target/i386/zero-scratch-regs-19.c ! d313cc77f313c4dd63cd510957fdd87c gcc/testsuite/gcc.target/i386/zero-scratch-regs-2.c ! 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 ! 21aad5fd641b7c2182d6f16bfb2693e1 gcc/testsuite/gcc.target/i386/zero-scratch-regs-27.c ! df0dc23a33eb491ee7e7877623b71191 gcc/testsuite/gcc.target/i386/zero-scratch-regs-28.c a0db901c2d58c6ec7373c71e5e9f5f96 gcc/testsuite/gcc.target/i386/zero-scratch-regs-29.c ! 7b29158ed7c8cc9b7feb32c04249959b gcc/testsuite/gcc.target/i386/zero-scratch-regs-3.c 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 ! 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 ! e503a36f60906243e41efad6cd79687d gcc/testsuite/gcc.target/i386/zero-scratch-regs-7.c ! 20320b9dab040f388cb8a67cf50f9a82 gcc/testsuite/gcc.target/i386/zero-scratch-regs-8.c ! 77261340baccba3c1606d1f074300bcb gcc/testsuite/gcc.target/i386/zero-scratch-regs-9.c 09fb6852403bb7a0b9b3339c49e09efb gcc/testsuite/gcc.target/ia64/20010423-1.c d42256aef37a73ae61dad2030303738b gcc/testsuite/gcc.target/ia64/20020313-1.c 80710ab442f553a1629beb106d8276a3 gcc/testsuite/gcc.target/ia64/20020326-1.c *************** d98190bc7003de5846e7f794a9f2b8ab gcc/te *** 66410,66416 **** 438f4e658462567e81a685ced3c5a415 gcc/testsuite/gcc.target/powerpc/bool3.h 3493bdc771b9bce44627e8e680b7ec82 gcc/testsuite/gcc.target/powerpc/bswap-brd.c 13eb8866848667a4deb9edc6aa321b7a gcc/testsuite/gcc.target/powerpc/bswap-brh.c ! 5699e52d1e8829cb7c7861195d1cc017 gcc/testsuite/gcc.target/powerpc/bswap-brw.c 5f5298f748bcfaf7c81d750d7b190615 gcc/testsuite/gcc.target/powerpc/bswap-run.c 8c821490f5d0cf5f71e7cdc07e3c700f gcc/testsuite/gcc.target/powerpc/bswap16.c 3fcf5bd2b192fb87864426edc98d3d3c gcc/testsuite/gcc.target/powerpc/bswap32.c --- 66608,66614 ---- 438f4e658462567e81a685ced3c5a415 gcc/testsuite/gcc.target/powerpc/bool3.h 3493bdc771b9bce44627e8e680b7ec82 gcc/testsuite/gcc.target/powerpc/bswap-brd.c 13eb8866848667a4deb9edc6aa321b7a gcc/testsuite/gcc.target/powerpc/bswap-brh.c ! ebdd5d41e115bd9fb63175dee376d2eb gcc/testsuite/gcc.target/powerpc/bswap-brw.c 5f5298f748bcfaf7c81d750d7b190615 gcc/testsuite/gcc.target/powerpc/bswap-run.c 8c821490f5d0cf5f71e7cdc07e3c700f gcc/testsuite/gcc.target/powerpc/bswap16.c 3fcf5bd2b192fb87864426edc98d3d3c gcc/testsuite/gcc.target/powerpc/bswap32.c *************** d4ce6459348a97119b44b465bb11034f gcc/te *** 66631,66636 **** --- 66829,66836 ---- 818a2d9329056fb35fbe2858ed53b4e3 gcc/testsuite/gcc.target/powerpc/direct-move-vint1.c 500da673182d1ca48d430f3e8f4e6736 gcc/testsuite/gcc.target/powerpc/direct-move-vint2.c 3bb9355169d26ef4a2e610a4cc121c5b gcc/testsuite/gcc.target/powerpc/direct-move.h + 696e63162a2f3acf5d17e871a4d6c5b7 gcc/testsuite/gcc.target/powerpc/divic3-1.c + 1979ea6670fbb71d39841682940e44aa gcc/testsuite/gcc.target/powerpc/divic3-2.c 437116f4ece2fc838159319958a00e92 gcc/testsuite/gcc.target/powerpc/divkc3-1.c 499cd7621c221e968d7b038cf3e898d9 gcc/testsuite/gcc.target/powerpc/divkc3-2.c acd01b4a84dada449fb4247ebc8529e0 gcc/testsuite/gcc.target/powerpc/divkc3-3.c *************** f158c23481154ab06c25cbdd745dec8d gcc/te *** 66926,66933 **** dcbebe071d63c21a542a5715031d4d82 gcc/testsuite/gcc.target/powerpc/fusion-p10-logadd.c 4bdf54c34acc51427043fafe760993e1 gcc/testsuite/gcc.target/powerpc/fusion-p10-stst.c 2016e7aba1138d1b75643f27f6d362c9 gcc/testsuite/gcc.target/powerpc/fusion-p10-stst2.c ! 8b2d1bd52f7c861f8d72b5a44d92ef4c gcc/testsuite/gcc.target/powerpc/fusion.c ! 36aa1f73a4f5f1d0803aa750e5b13826 gcc/testsuite/gcc.target/powerpc/fusion2.c d339d3fe4c50dd4c2727de10dcf3374e gcc/testsuite/gcc.target/powerpc/gcse-1.c bbca57fae9dea88267eaea26d8c43380 gcc/testsuite/gcc.target/powerpc/gnuattr1.c df3448b5306ef9e06b44d7414e6a12ff gcc/testsuite/gcc.target/powerpc/gnuattr2.c --- 67126,67133 ---- dcbebe071d63c21a542a5715031d4d82 gcc/testsuite/gcc.target/powerpc/fusion-p10-logadd.c 4bdf54c34acc51427043fafe760993e1 gcc/testsuite/gcc.target/powerpc/fusion-p10-stst.c 2016e7aba1138d1b75643f27f6d362c9 gcc/testsuite/gcc.target/powerpc/fusion-p10-stst2.c ! c21eafe688d7ccbc9bdcb0aaf81bfd30 gcc/testsuite/gcc.target/powerpc/fusion.c ! 4adade68cb00ba61c6843394fdadd638 gcc/testsuite/gcc.target/powerpc/fusion2.c d339d3fe4c50dd4c2727de10dcf3374e gcc/testsuite/gcc.target/powerpc/gcse-1.c bbca57fae9dea88267eaea26d8c43380 gcc/testsuite/gcc.target/powerpc/gnuattr1.c df3448b5306ef9e06b44d7414e6a12ff gcc/testsuite/gcc.target/powerpc/gnuattr2.c *************** d4c680a0477ecbe2fd90e52278838082 gcc/te *** 66939,66945 **** b777ef2a10f6f5ff643ab886bf487233 gcc/testsuite/gcc.target/powerpc/htm-xl-intrin-1.c 8d634b2a7d443f1e5b4b69716e57ac00 gcc/testsuite/gcc.target/powerpc/indexed-addr.c 1cc843325d44861ca12b01f8232baced gcc/testsuite/gcc.target/powerpc/inf128-1.c ! 30e34ab9a7759046ef94138494f0bb86 gcc/testsuite/gcc.target/powerpc/int_128bit-runnable.c 2cfd2ecd43230367d6d063b77664e314 gcc/testsuite/gcc.target/powerpc/le-altivec-consts.c 7893fdf7b4681a84cb4d049bea9ffc10 gcc/testsuite/gcc.target/powerpc/leaf.c 9d79c9715a5734121e7d5c8fa078a7df gcc/testsuite/gcc.target/powerpc/lhs-1.c --- 67139,67145 ---- b777ef2a10f6f5ff643ab886bf487233 gcc/testsuite/gcc.target/powerpc/htm-xl-intrin-1.c 8d634b2a7d443f1e5b4b69716e57ac00 gcc/testsuite/gcc.target/powerpc/indexed-addr.c 1cc843325d44861ca12b01f8232baced gcc/testsuite/gcc.target/powerpc/inf128-1.c ! 9ff2865c08f0dc0b603621a01126bf9e gcc/testsuite/gcc.target/powerpc/int_128bit-runnable.c 2cfd2ecd43230367d6d063b77664e314 gcc/testsuite/gcc.target/powerpc/le-altivec-consts.c 7893fdf7b4681a84cb4d049bea9ffc10 gcc/testsuite/gcc.target/powerpc/leaf.c 9d79c9715a5734121e7d5c8fa078a7df gcc/testsuite/gcc.target/powerpc/lhs-1.c *************** bc09ccd31ca386dda15202c6adf9371a gcc/te *** 67013,67018 **** --- 67213,67220 ---- 44ea7227a4af1aed1643b840469d076d gcc/testsuite/gcc.target/powerpc/mmx-punpcklwd-1.c 180bf46e92dd9c837dbbc9cb04dd70c9 gcc/testsuite/gcc.target/powerpc/mod-1.c f86f87dd7c82f05785a8e530a4718235 gcc/testsuite/gcc.target/powerpc/mod-2.c + 0eeef6e17953a9f9d3921bffff4a3fad gcc/testsuite/gcc.target/powerpc/mulic3-1.c + 40832ab7e8baf16efb6af3d58eb2479b gcc/testsuite/gcc.target/powerpc/mulic3-2.c 4eaddf22e0f22b514f7215226f16b76c gcc/testsuite/gcc.target/powerpc/mulkc3-1.c 1549b9373bc2fd4008625c3dfbefb007 gcc/testsuite/gcc.target/powerpc/mulkc3-2.c 18aac6a2b165d96b59c08a6941c593dd gcc/testsuite/gcc.target/powerpc/mulkc3-3.c *************** c28edf1d4900581a18cfe9388ed98dd7 gcc/te *** 67067,67073 **** a6211dec098d657a18749d7ffe72b371 gcc/testsuite/gcc.target/powerpc/p9-novsx.c f1c22b7125d1d3b2d4a8cb3878d6a313 gcc/testsuite/gcc.target/powerpc/p9-options-1.c 9d87be0758175c69faf593117726c44c gcc/testsuite/gcc.target/powerpc/p9-permute.c ! c35fe992924972f820d30b13b50e1d48 gcc/testsuite/gcc.target/powerpc/p9-sign_extend-runnable.c 19208a1ca04ecbd61dd2fc9f62b0bb17 gcc/testsuite/gcc.target/powerpc/p9-splat-1.c b3bd137ac2457919c51b1e0885a28cf9 gcc/testsuite/gcc.target/powerpc/p9-splat-2.c cdd965ef19d5f08902aa357d47055aab gcc/testsuite/gcc.target/powerpc/p9-splat-3.c --- 67269,67275 ---- a6211dec098d657a18749d7ffe72b371 gcc/testsuite/gcc.target/powerpc/p9-novsx.c f1c22b7125d1d3b2d4a8cb3878d6a313 gcc/testsuite/gcc.target/powerpc/p9-options-1.c 9d87be0758175c69faf593117726c44c gcc/testsuite/gcc.target/powerpc/p9-permute.c ! 886c77bc76a412a94847f37ff07e2fb9 gcc/testsuite/gcc.target/powerpc/p9-sign_extend-runnable.c 19208a1ca04ecbd61dd2fc9f62b0bb17 gcc/testsuite/gcc.target/powerpc/p9-splat-1.c b3bd137ac2457919c51b1e0885a28cf9 gcc/testsuite/gcc.target/powerpc/p9-splat-2.c cdd965ef19d5f08902aa357d47055aab gcc/testsuite/gcc.target/powerpc/p9-splat-3.c *************** e1b8cd08f8318d0a6b2e5b855075001d gcc/te *** 67082,67095 **** 5d9fad6eebd37291c65898f8fbfd8aa4 gcc/testsuite/gcc.target/powerpc/p9-vec-length-6.h 4b4d6e3387e320581f6e26cd33efa8c4 gcc/testsuite/gcc.target/powerpc/p9-vec-length-7.h 542bcc43fcc4ae002c6071e4fb82f606 gcc/testsuite/gcc.target/powerpc/p9-vec-length-8.h ! 6f1960cdffbaef21e4593eccd38e7929 gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-1.c ! f671afd110d5f782e9d20ab4ebc4d4be gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-2.c ! eba9fb2ef8829b4f12eb280c7bdf546b gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-3.c ! 61e552d417782e245d4e82c437d23974 gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-4.c ! 3fa98625eb1aca5e5de550a027af26ab gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-5.c ! e3d0df1fe70a1a16f61af01a0541b590 gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-6.c 2ed902e6a35be029c1294e839ad3a0f6 gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-7.c ! 140e9ccca6e080ac87e45aa4eca7f44f gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-8.c 661823bc37a352c7a0284caefaf94ad3 gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-1.c c93356c7aed0735689569396e6f3134e gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-2.c 9855b5087d8f6fff301d3c34593e4278 gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-3.c --- 67284,67297 ---- 5d9fad6eebd37291c65898f8fbfd8aa4 gcc/testsuite/gcc.target/powerpc/p9-vec-length-6.h 4b4d6e3387e320581f6e26cd33efa8c4 gcc/testsuite/gcc.target/powerpc/p9-vec-length-7.h 542bcc43fcc4ae002c6071e4fb82f606 gcc/testsuite/gcc.target/powerpc/p9-vec-length-8.h ! b6245cfe8555a1c112ab77aa31231677 gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-1.c ! 2c4b0d06849c2813d8ba1cc5c99530ef gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-2.c ! b1888bfc7a38a6175d5283f28a368a2c gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-3.c ! f0e6330c98b8592e570e0d33c210435b gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-4.c ! b5343082f0bc012ab020a3c7990f8288 gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-5.c ! 534b0ef33b44ea2c96d3d9760d39a66e gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-6.c 2ed902e6a35be029c1294e839ad3a0f6 gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-7.c ! 20a218e848b9d768abfeca4affaeecda gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-8.c 661823bc37a352c7a0284caefaf94ad3 gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-1.c c93356c7aed0735689569396e6f3134e gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-2.c 9855b5087d8f6fff301d3c34593e4278 gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-3.c *************** c93356c7aed0735689569396e6f3134e gcc/te *** 67098,67111 **** befd102cc556de49c551f984f7607ff5 gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-6.c 6ab4acea9bc066025498eb5a8caa7ce8 gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-7.c d9bf88eb680a6b1eb840090871e1de9d gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-8.c ! 3fb71c141b802aa4981bc89dd61a0241 gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-1.c ! 998f7612089f7ca7151c60d297457a09 gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-2.c ! b2622014ac647ae93ca6a19d4a0f6e63 gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-3.c ! e3a4c5a3f53fd1f78bbff95301a9a0f3 gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-4.c ! a619bdf3d50595136050c6201d6a33d5 gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-5.c ! dd4a9f2f07298325bccd0457959de0aa gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-6.c e91a9930ace643bb1e055207643380c2 gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-7.c ! 3ddfe6216b76faa377fb67e65f91b4dd gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-8.c 347f7ced5af84328cec5b76767c2dfd0 gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-run-1.c 6011bbefd012a5722b03bf23fc01c8b7 gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-run-2.c fa24c780840f4b77dd9ff11801a2aa9a gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-run-3.c --- 67300,67313 ---- befd102cc556de49c551f984f7607ff5 gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-6.c 6ab4acea9bc066025498eb5a8caa7ce8 gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-7.c d9bf88eb680a6b1eb840090871e1de9d gcc/testsuite/gcc.target/powerpc/p9-vec-length-epil-run-8.c ! 9a27c1344dbb9441c877b805dc907046 gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-1.c ! 33fa9a224f1e37ab8974891f072663e6 gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-2.c ! 521b01c205745a9d2e925dcd51eb848d gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-3.c ! acf38bf1b4cd8c6aba876365302e136c gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-4.c ! 18f0bd05f35a09e69cd4c2810bdcaec5 gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-5.c ! 962ca313d6325e87c01096c9dfe0d5e8 gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-6.c e91a9930ace643bb1e055207643380c2 gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-7.c ! a38e3be0257e605d028979c9c058102a gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-8.c 347f7ced5af84328cec5b76767c2dfd0 gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-run-1.c 6011bbefd012a5722b03bf23fc01c8b7 gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-run-2.c fa24c780840f4b77dd9ff11801a2aa9a gcc/testsuite/gcc.target/powerpc/p9-vec-length-full-run-3.c *************** ee8c0fe3fe328a4102e36f1a91ad6105 gcc/te *** 67124,67130 **** 71775cec123fe96ec58d805a44df5147 gcc/testsuite/gcc.target/powerpc/p9-vec-length-run-8.h ca2326bfc2b9007e3b63b0bea8890a00 gcc/testsuite/gcc.target/powerpc/p9-vec-length.h 384af3a86160f8a14629fb05f541acd4 gcc/testsuite/gcc.target/powerpc/p9-vneg.c ! 1927d37785de58e49934412776e54594 gcc/testsuite/gcc.target/powerpc/p9-vparity.c b26961d59fb61a1d972f9bce8166abcf gcc/testsuite/gcc.target/powerpc/p9-vpermr.c effdc6f6f7d2783f62ecfc6b15424d8e gcc/testsuite/gcc.target/powerpc/p9-xxbr-1.c f5ff4265dd8eef473babbbc9f92afdc2 gcc/testsuite/gcc.target/powerpc/p9-xxbr-2.c --- 67326,67332 ---- 71775cec123fe96ec58d805a44df5147 gcc/testsuite/gcc.target/powerpc/p9-vec-length-run-8.h ca2326bfc2b9007e3b63b0bea8890a00 gcc/testsuite/gcc.target/powerpc/p9-vec-length.h 384af3a86160f8a14629fb05f541acd4 gcc/testsuite/gcc.target/powerpc/p9-vneg.c ! bc701c10be9cbdfa6b05c521a259cd14 gcc/testsuite/gcc.target/powerpc/p9-vparity.c b26961d59fb61a1d972f9bce8166abcf gcc/testsuite/gcc.target/powerpc/p9-vpermr.c effdc6f6f7d2783f62ecfc6b15424d8e gcc/testsuite/gcc.target/powerpc/p9-xxbr-1.c f5ff4265dd8eef473babbbc9f92afdc2 gcc/testsuite/gcc.target/powerpc/p9-xxbr-2.c *************** a64bd4e47397af3253bc9e8dc2c56780 gcc/te *** 67239,67246 **** --- 67441,67450 ---- c5b190f8976eee8b644b3fa33d5ebbb2 gcc/testsuite/gcc.target/powerpc/pr101849.c fef209ac364aa52b3c1bab51422d611c gcc/testsuite/gcc.target/powerpc/pr101985-1.c bbe41009113780dbcd6527cbec5f943c gcc/testsuite/gcc.target/powerpc/pr101985-2.c + 47aed0bc9ee0c4e28ab685155a8f49ea gcc/testsuite/gcc.target/powerpc/pr102059-4.c a192830e09e3a3d8478a89f2b2add0ff gcc/testsuite/gcc.target/powerpc/pr102347.c 0726fc47d5d46d095efa95b874637be7 gcc/testsuite/gcc.target/powerpc/pr102976.c + 2e28abb3dab00a40af19eb41bc4d56ce gcc/testsuite/gcc.target/powerpc/pr103353.c 20a7942f4601125d17110951f0d9d799 gcc/testsuite/gcc.target/powerpc/pr103627-1.c 75bf709f259ebd7bb4ea3bb9e4c7a6e3 gcc/testsuite/gcc.target/powerpc/pr103627-2.c 173204ae2ee9c78ee24b407929800cd8 gcc/testsuite/gcc.target/powerpc/pr103627-3.c *************** b7339ab4137e4c5175deca053bb790c8 gcc/te *** 67250,67255 **** --- 67454,67475 ---- db72de734e5e70d9f1ed20b5a54e7a2a gcc/testsuite/gcc.target/powerpc/pr104894-2.c bc8ea782345dbe874b74f42d43945922 gcc/testsuite/gcc.target/powerpc/pr104894.c 3c6d84405eb197341e1b506784b6c749 gcc/testsuite/gcc.target/powerpc/pr104923.c + 6e7b6dccd503c20a37d0e145939b54a6 gcc/testsuite/gcc.target/powerpc/pr105041.c + 1ab2f3b15230d62d1557536701b89524 gcc/testsuite/gcc.target/powerpc/pr106016.c + 1717ad0418e192e7d5bbcdcc715baa9a gcc/testsuite/gcc.target/powerpc/pr106017.c + 77039220fc5a52161837a12ea92d1ea3 gcc/testsuite/gcc.target/powerpc/pr106091.c + b89eb373488426e128fceff637542836 gcc/testsuite/gcc.target/powerpc/pr106736-1.c + b628655d5e6da478a0338b6a99c2b547 gcc/testsuite/gcc.target/powerpc/pr106736-2.c + 268c405264ea346b9620a21b4008ae3d gcc/testsuite/gcc.target/powerpc/pr106736-3.c + 80f943ae05ca5bf1bdb90616a4a55bee gcc/testsuite/gcc.target/powerpc/pr106736-4.c + 8c4791ff0309e78169b9fa522b35014a gcc/testsuite/gcc.target/powerpc/pr106736-5.c + cf6fc6f2cd4ce40de4bfcae2384bc88d gcc/testsuite/gcc.target/powerpc/pr108272-1.c + f50d5d85d2fd6cdb2c24ba2f99c5ed50 gcc/testsuite/gcc.target/powerpc/pr108272-2.c + 80b0790ba15d5f168fdb877edfba8e3c gcc/testsuite/gcc.target/powerpc/pr108272-3.c + 8b12dd4a97ca50e2f9880c335cebf74b gcc/testsuite/gcc.target/powerpc/pr108272-4.c + 40726e9ba9f0dbe699d13f0248929db7 gcc/testsuite/gcc.target/powerpc/pr108348-1.c + 590060f31f74e624d8948e67f5efe8a9 gcc/testsuite/gcc.target/powerpc/pr108348-2.c + d1ebac89ce86ba01adcab56447399dd9 gcc/testsuite/gcc.target/powerpc/pr108699.c c2f6d6cf82ef4931619d09e10a0a72aa gcc/testsuite/gcc.target/powerpc/pr16155.c 396ae287e72ecdda51bb3157818030a9 gcc/testsuite/gcc.target/powerpc/pr16286.c 198d8a69d2887e8fadcb050d90e21aa6 gcc/testsuite/gcc.target/powerpc/pr16458-1.c *************** c2bb4c50496aade60596e697b1d8782d gcc/te *** 67355,67360 **** --- 67575,67581 ---- f04c5add43326054cacbb6544404890d gcc/testsuite/gcc.target/powerpc/pr70010-4.c 1de006067bf04677e8e3043c80b99112 gcc/testsuite/gcc.target/powerpc/pr70010.c 30bf5235bdce0bbd05169c7ec78fb273 gcc/testsuite/gcc.target/powerpc/pr70117.c + fa25257d80acb26f0f70a5da209dbad5 gcc/testsuite/gcc.target/powerpc/pr70243.c 9f0a82f7f84690a18cb82bed87617073 gcc/testsuite/gcc.target/powerpc/pr70640.c 9f7996dd7c38f201960362b08e509c7d gcc/testsuite/gcc.target/powerpc/pr70669.c bb6ec828efc211131c5a036203ac7c94 gcc/testsuite/gcc.target/powerpc/pr70866.c *************** ffc3e49b879237e4c50decbfa7827c62 gcc/te *** 67533,67543 **** --- 67754,67766 ---- ca39e661d5c8829e74d8a523cedd9a16 gcc/testsuite/gcc.target/powerpc/pr94740.c baf149d64053b2f0f606c42999ad64b8 gcc/testsuite/gcc.target/powerpc/pr95450.c e7cf1c47ea2ac68fa8b2f1bc1dc06872 gcc/testsuite/gcc.target/powerpc/pr95907.c + 5c286273d2472c19e1388a58fbf1fae4 gcc/testsuite/gcc.target/powerpc/pr96072.c c3fdf2edbc3880b6e23670387a188c81 gcc/testsuite/gcc.target/powerpc/pr96125.c c41dc78db559b0a60ade2f03b039206d gcc/testsuite/gcc.target/powerpc/pr96139-a.c a07b15408dfcb7108da14ce215101920 gcc/testsuite/gcc.target/powerpc/pr96139-b.c 077f66488295d290f80d30233e453520 gcc/testsuite/gcc.target/powerpc/pr96139-c.c 260b4195fb458fd7f0ec3afc524236ff gcc/testsuite/gcc.target/powerpc/pr96264.c + 42e9d864b740d7bf95a81bde9f4f1fbe gcc/testsuite/gcc.target/powerpc/pr96373.c 4041fca09c3daed5a381d4dc45e9a366 gcc/testsuite/gcc.target/powerpc/pr96446.c 06df07809324154deb45d934dbebf494 gcc/testsuite/gcc.target/powerpc/pr96493.c f296eca9a733cf4bb4e198a3539e8cec gcc/testsuite/gcc.target/powerpc/pr96506-1.c *************** f138cfa6e387e1bc85747da2fc38e305 gcc/te *** 67984,67990 **** 1e5fee04b7943239f19f0ce10776f9d1 gcc/testsuite/gcc.target/powerpc/test_fpscr_drn_builtin_error.c e2ea17dd5726f5123cfd41828cad3a67 gcc/testsuite/gcc.target/powerpc/test_fpscr_rn_builtin.c b08d7736f6c15cd2e7a7cbbf0732a171 gcc/testsuite/gcc.target/powerpc/test_fpscr_rn_builtin_error.c ! fffb5388e3f0454f2afd0eade4181a0c gcc/testsuite/gcc.target/powerpc/test_mffsl.c e28cc14ddafc82b0f212f1b4ebbcf50a gcc/testsuite/gcc.target/powerpc/tfmode_off.c c2edbb1afba546ea3ac8a5efcaca9c38 gcc/testsuite/gcc.target/powerpc/ti_math1.c c3d0d51284479d220a6166a0f362536c gcc/testsuite/gcc.target/powerpc/ti_math2.c --- 68207,68213 ---- 1e5fee04b7943239f19f0ce10776f9d1 gcc/testsuite/gcc.target/powerpc/test_fpscr_drn_builtin_error.c e2ea17dd5726f5123cfd41828cad3a67 gcc/testsuite/gcc.target/powerpc/test_fpscr_rn_builtin.c b08d7736f6c15cd2e7a7cbbf0732a171 gcc/testsuite/gcc.target/powerpc/test_fpscr_rn_builtin_error.c ! e87f7fb838fef2237995418c77791ad2 gcc/testsuite/gcc.target/powerpc/test_mffsl.c e28cc14ddafc82b0f212f1b4ebbcf50a gcc/testsuite/gcc.target/powerpc/tfmode_off.c c2edbb1afba546ea3ac8a5efcaca9c38 gcc/testsuite/gcc.target/powerpc/ti_math1.c c3d0d51284479d220a6166a0f362536c gcc/testsuite/gcc.target/powerpc/ti_math2.c *************** eb96a92710915622b3f65dba4a30955d gcc/te *** 68812,68817 **** --- 69035,69044 ---- 25c3bd00fd3d097e42ac8cfc215fd0c4 gcc/testsuite/gcc.target/s390/pfpo.c bdf3ebe1c6a408e4efe2845222b3d54d gcc/testsuite/gcc.target/s390/pr102222.c 182ebf3677a29bf9b1dbb033505f78dd gcc/testsuite/gcc.target/s390/pr104775.c + b65b6b60679fe5fe589b83fa813950ac gcc/testsuite/gcc.target/s390/pr106355-1.c + 7768189c94023d287d68251021ad2dee gcc/testsuite/gcc.target/s390/pr106355-2.c + a69e5256407f09ac05e2e19ea14c9e15 gcc/testsuite/gcc.target/s390/pr106355-3.c + 5680e7515cb52b85f38e10b48d5e6a75 gcc/testsuite/gcc.target/s390/pr106355.h 765307a040de72f2f4376b7068d68018 gcc/testsuite/gcc.target/s390/pr20927.c 85f31fb9b4b15529205376d3f6fa385c gcc/testsuite/gcc.target/s390/pr24624.c 7adacbd67601dc0845e556e5632cd718 gcc/testsuite/gcc.target/s390/pr27661.c *************** e470b0a0d1a056b60c3915a6dfcfd4ae gcc/te *** 69444,69449 **** --- 69671,69681 ---- bf95d536cbad4db92f264aa740abbbbc gcc/testsuite/gcc.target/sparc/20181129-1.c 3b3205cedf38a33c506ea5c4414d489f gcc/testsuite/gcc.target/sparc/20181129-2.c 3f593e1ef43ebce309fa2b2033f8be77 gcc/testsuite/gcc.target/sparc/20210917-1.c + 0c6705acc2a655d06368478b465dca00 gcc/testsuite/gcc.target/sparc/20220510-1.c + 40321901935127f9cf34a34197b9b48a gcc/testsuite/gcc.target/sparc/20230328-1.c + c2f3fa5b3477e7057e2c90dc5425c4c9 gcc/testsuite/gcc.target/sparc/20230328-2.c + 49b5e11c8a86f6c891f68583037323b4 gcc/testsuite/gcc.target/sparc/20230328-3.c + 6a7256be670eb611556c4ac0a711fa1b gcc/testsuite/gcc.target/sparc/20230328-4.c 44373c57181608413fc07f3ec0e2ad6e gcc/testsuite/gcc.target/sparc/align.c 667a877a2fb02d919c4eaaea6fbccbad gcc/testsuite/gcc.target/sparc/array.c 941bd8aa096c3c20415035d9d17cca6e gcc/testsuite/gcc.target/sparc/attr-aligned.c *************** d5b39965a2815d8cdcaf9e4867510a0c gcc/te *** 69848,69858 **** 6f2569a915010fe1765ab3c82b2d6910 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 ! 892eb2ee284fd96557fd507fa0642156 gcc/testsuite/gcc.target/x86_64/abi/asm-support.S d9a3cf5cce632b5561f35999a595447f 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 ! 0df09e54902b0a238caad6de9dc92c5d gcc/testsuite/gcc.target/x86_64/abi/avx/asm-support.S 4061363418adffdceb4cff80966eaf32 gcc/testsuite/gcc.target/x86_64/abi/avx/avx-check.h d3c71d269c1b4265e86c5ace1089e848 gcc/testsuite/gcc.target/x86_64/abi/avx/test_m256_returning.c b43e5e8d171dcdbec5cac42b0b9a298c gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_m256.c --- 70080,70090 ---- 6f2569a915010fe1765ab3c82b2d6910 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 d9a3cf5cce632b5561f35999a595447f 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 4061363418adffdceb4cff80966eaf32 gcc/testsuite/gcc.target/x86_64/abi/avx/avx-check.h d3c71d269c1b4265e86c5ace1089e848 gcc/testsuite/gcc.target/x86_64/abi/avx/test_m256_returning.c b43e5e8d171dcdbec5cac42b0b9a298c gcc/testsuite/gcc.target/x86_64/abi/avx/test_passing_m256.c *************** d02989c16f0d1cd0951fe435483c550e gcc/te *** 69862,69868 **** 9e27e7507adfbc177435248fa82da5ef 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 ! 018d5507f0c4c2e50d7895e924a53c1b gcc/testsuite/gcc.target/x86_64/abi/avx512f/asm-support.S 1c4dc628c680a1d3ad4767c3a1455499 gcc/testsuite/gcc.target/x86_64/abi/avx512f/avx512f-check.h 75a0b911edb2a39978caadbf2c750015 gcc/testsuite/gcc.target/x86_64/abi/avx512f/test_m512_returning.c 9c2b013a549bbd28ac8dbd2c2d9cd181 gcc/testsuite/gcc.target/x86_64/abi/avx512f/test_passing_m512.c --- 70094,70100 ---- 9e27e7507adfbc177435248fa82da5ef 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 1c4dc628c680a1d3ad4767c3a1455499 gcc/testsuite/gcc.target/x86_64/abi/avx512f/avx512f-check.h 75a0b911edb2a39978caadbf2c750015 gcc/testsuite/gcc.target/x86_64/abi/avx512f/test_m512_returning.c 9c2b013a549bbd28ac8dbd2c2d9cd181 gcc/testsuite/gcc.target/x86_64/abi/avx512f/test_passing_m512.c *************** d02a2912e872fd8b7b39b69b74482091 gcc/te *** 69890,69896 **** 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 ! d162a29793ce69ce8e4f6ebb6f65cbe3 gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/do-test.S cf207cd32f48bf81f1c2ea9397f53856 gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/gen.cc b14bf90b9e86d7c81b95cad9c4d55dae gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/ms-sysv.c 4745141569ff606b1093ca95943384f4 gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/ms-sysv.exp --- 70122,70128 ---- 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 ! 2128957d25011aafcbdad36eface57a2 gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/do-test.S cf207cd32f48bf81f1c2ea9397f53856 gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/gen.cc b14bf90b9e86d7c81b95cad9c4d55dae gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/ms-sysv.c 4745141569ff606b1093ca95943384f4 gcc/testsuite/gcc.target/x86_64/abi/ms-sysv/ms-sysv.exp *************** b2f1a9a045a9e57b6091049452751096 gcc/te *** 70190,70195 **** --- 70422,70428 ---- 502192866584cff5028f4aa00858d119 gcc/testsuite/gdc.dg/Waddress.d 94208575e1a523900cf5bbbacff458ff gcc/testsuite/gdc.dg/Wcastresult1.d 48a00a7acec933f1e03b4d13199e7e63 gcc/testsuite/gdc.dg/Wcastresult2.d + ba3ec121536606fdf9d34aff37b9da35 gcc/testsuite/gdc.dg/Wpadded.d 684da8abc6d44a02e6b361d163e350c1 gcc/testsuite/gdc.dg/array1.d 06295fc1f9b1f0161cf0de7d4310451e gcc/testsuite/gdc.dg/asan/asan.exp 10180752a9d53fac31ca576e678cdd06 gcc/testsuite/gdc.dg/asan/gdc272.d *************** b60175beb28e5f269667d25260e08c71 gcc/te *** 70293,70298 **** --- 70526,70535 ---- 4a1c45c1482afaf7fe165064453176a8 gcc/testsuite/gdc.dg/imports/gdc256.d 22f231195c5f7726c704d3f9d99b0d85 gcc/testsuite/gdc.dg/imports/gdc27.d aeec8ff75316a52def72f86d4bc1708c gcc/testsuite/gdc.dg/imports/gdcpkg256/package.d + 8fba2c4130687ac9061c9b748ca84568 gcc/testsuite/gdc.dg/imports/pr108050/mod1.d + 753f5121640aa2d9e67d4f235bed8d2b gcc/testsuite/gdc.dg/imports/pr108050/mod2.d + b0fb7628aa04803e7405378e8ff66d8c gcc/testsuite/gdc.dg/imports/pr108050/package.d + c1371b9d51218c700b58595265d42b2d gcc/testsuite/gdc.dg/imports/pr108877a.d 7ae8eee97923fab094ae5ca5a1eca902 gcc/testsuite/gdc.dg/imports/pr92216.d b9989889ba43c533b1edad45c8a4bca1 gcc/testsuite/gdc.dg/intrinsics.d 2049e750a9b0b91100888e640127b311 gcc/testsuite/gdc.dg/lto/lto.exp *************** c0f2db1fcb83cbb41fda8295889368ff gcc/te *** 70308,70313 **** --- 70545,70557 ---- 13e2f7b1a821d0fa1089525b3df15479 gcc/testsuite/gdc.dg/pr101640.d 00da6db0d966d43d573f86b9fe032508 gcc/testsuite/gdc.dg/pr102185.d 616697349b5740e41fd04c0ae6074cd2 gcc/testsuite/gdc.dg/pr105004.d + 4043769c4b670791abe6549858a885b3 gcc/testsuite/gdc.dg/pr106139a.d + f4b93d30d706ee858eb3d1d73cac63f0 gcc/testsuite/gdc.dg/pr106139b.d + 78fb78f49f61330c2751bcc186e8fade gcc/testsuite/gdc.dg/pr106139c.d + 27e575511646bb151afbd1a856acdadc gcc/testsuite/gdc.dg/pr106139d.d + 9e838ba67909954cf1aa94614647413b gcc/testsuite/gdc.dg/pr107592.d + 5e07b36b71c4e1c18324a1aa28b644c9 gcc/testsuite/gdc.dg/pr108050.d + 531ba2cfc6bb317d132b6b86e9221526 gcc/testsuite/gdc.dg/pr108877.d d32aa8ed5ea10931be4ddb5bb9e863d8 gcc/testsuite/gdc.dg/pr89017.d 53fa8db94d4ca3fc9ba83769733dc0e7 gcc/testsuite/gdc.dg/pr89041.d 6c316b13f71ea31fcada56b58a41ebd1 gcc/testsuite/gdc.dg/pr89042a.d *************** fda0cf305776db386c768d3546d5e0b9 gcc/te *** 70401,70410 **** --- 70645,70656 ---- b0b5c68386e1c5992cb977b215d56e58 gcc/testsuite/gdc.dg/torture/gdc57.d d3cb0d42e94f3b4127de8609610ded70 gcc/testsuite/gdc.dg/torture/gdc66.d 663b84ca45dda4d3daa1e65189c181b8 gcc/testsuite/gdc.dg/torture/imports/gdc36.d + 50c9072e0ffdfc079790d637e1a5c72a gcc/testsuite/gdc.dg/torture/imports/pr109108.d 646170aa418a99d37c59a7bb02130400 gcc/testsuite/gdc.dg/torture/init1.d 1ae8edb9b2cd9747efb9868621aec4e8 gcc/testsuite/gdc.dg/torture/pr100882.d cede80748e43884ad3613a2a7e4b6ff3 gcc/testsuite/gdc.dg/torture/pr101273.d a24df8e498053d7ab8325fc58ede1835 gcc/testsuite/gdc.dg/torture/pr101282.d + 41c17e6e62da4333262dbaa7b4e20510 gcc/testsuite/gdc.dg/torture/pr109108.d 580aadb24b666799e25f1f02ef3b7bbb gcc/testsuite/gdc.dg/torture/pr92309.d 1b111ae77202133585fd76e6867c2615 gcc/testsuite/gdc.dg/torture/pr94424.d 658ecf9f1faf93eb8bdf8896b94d1b62 gcc/testsuite/gdc.dg/torture/pr94777b.d *************** be211d00217b412a281626e091521ca8 gcc/te *** 70430,70436 **** db32bdd5bf5efb008a8d0769d3d86934 gcc/testsuite/gdc.dg/torture/simd9304.d c8641c4ecb508bce56fb288cf0e0f8e3 gcc/testsuite/gdc.dg/torture/simd9449.d f74a24d5b20a5e26cd6f9d895a213ec6 gcc/testsuite/gdc.dg/torture/simd9910.d ! 4a51e6554d37213263e08170594ef9d0 gcc/testsuite/gdc.dg/torture/torture.exp 967f582cf2771c2254957b0968fef157 gcc/testsuite/gdc.dg/ubsan/pr88957.d 23e164f0b6f05198e3bc517f109acb2e gcc/testsuite/gdc.dg/ubsan/ubsan.exp 310f79be9999b0b9e22f7cfbfe79f71d gcc/testsuite/gdc.test/README.gcc --- 70676,70682 ---- db32bdd5bf5efb008a8d0769d3d86934 gcc/testsuite/gdc.dg/torture/simd9304.d c8641c4ecb508bce56fb288cf0e0f8e3 gcc/testsuite/gdc.dg/torture/simd9449.d f74a24d5b20a5e26cd6f9d895a213ec6 gcc/testsuite/gdc.dg/torture/simd9910.d ! b674d0d67d0978d507faeae5f49518c4 gcc/testsuite/gdc.dg/torture/torture.exp 967f582cf2771c2254957b0968fef157 gcc/testsuite/gdc.dg/ubsan/pr88957.d 23e164f0b6f05198e3bc517f109acb2e gcc/testsuite/gdc.dg/ubsan/ubsan.exp 310f79be9999b0b9e22f7cfbfe79f71d gcc/testsuite/gdc.test/README.gcc *************** e31c57d6974d04e2c34bbe41ae8c9706 gcc/te *** 72046,72051 **** --- 72292,72298 ---- 02081a92305510de44e261c5fa5e3c34 gcc/testsuite/gdc.test/fail_compilation/ice17074.d 7324203f77755460dfd2b206a19d914d gcc/testsuite/gdc.test/fail_compilation/ice17690.d be6c358100e2ef5988a9d561cda1e90b gcc/testsuite/gdc.test/fail_compilation/ice17831.d + b976eedb61aadb4465ca084f17ddd25d gcc/testsuite/gdc.test/fail_compilation/ice20264.d 1ee2df9e731e72df6ec1774356fb21e5 gcc/testsuite/gdc.test/fail_compilation/ice21060.d 61d25d3d66bc23fc5137fdca361068bc gcc/testsuite/gdc.test/fail_compilation/ice2843.d c73e0422319d9ada15828705fb8abcaa gcc/testsuite/gdc.test/fail_compilation/ice4094.d *************** d2f401f9391bf1d2889872bbdc34f16b gcc/te *** 72870,72877 **** --- 73117,73131 ---- f1950e4b4b23dc2b32ca290715b1dd9c gcc/testsuite/gfortran.dg/ISO_Fortran_binding_8.f90 ad366711f9b7f7d71373eab3da4b4e4b gcc/testsuite/gfortran.dg/ISO_Fortran_binding_9.c 131a58eb857fe3f727bc57d2b9f21e8f gcc/testsuite/gfortran.dg/ISO_Fortran_binding_9.f90 + 8039ff93d1683c85f89961a47ca07935 gcc/testsuite/gfortran.dg/PR100029.f90 + 3a862d4d610ca334e395074243d0fe19 gcc/testsuite/gfortran.dg/PR100040.f90 b57006fa0a1329365a93526a47af1b48 gcc/testsuite/gfortran.dg/PR100094.f90 + 7d31691eac81b2cecc47db81ebb7f3e7 gcc/testsuite/gfortran.dg/PR100097.f90 + 3a9f3e07df20211a1c48ab0f8f6eca97 gcc/testsuite/gfortran.dg/PR100098.f90 + 1bb9c8f2a91f52e7916455864ee6937a gcc/testsuite/gfortran.dg/PR100132.f90 + 6bb46c09071a440785e94a2327da031c gcc/testsuite/gfortran.dg/PR100136.f90 e4d3c523324e00f5ab10bffefb1a7961 gcc/testsuite/gfortran.dg/PR10018.f90 + 6999a567af5689945feacbc26380e000 gcc/testsuite/gfortran.dg/PR100245.f90 36cd9c1e3875c80db22097b9c2ad49b3 gcc/testsuite/gfortran.dg/PR19754_1.f90 e8f29c2ce9f345e588516849caa9db8f gcc/testsuite/gfortran.dg/PR19754_2.f90 7ea18cc404b53eee2348e3e57683bb56 gcc/testsuite/gfortran.dg/PR19872.f *************** c066328da870ad9b313bf9491c5b72d6 gcc/te *** 73366,73371 **** --- 73620,73626 ---- 7e01c786b8c72874d3ae753530cfb5cb gcc/testsuite/gfortran.dg/associate_24.f90 55bfeb67bee60022ebbe2186b11826b6 gcc/testsuite/gfortran.dg/associate_25.f90 c0997c9e951767642f9b109c7f40a532 gcc/testsuite/gfortran.dg/associate_26.f90 + 000795c302b3191fa720282e0b5b71c8 gcc/testsuite/gfortran.dg/associate_26a.f90 aecd7da9302bacf7aeebde56d90a2445 gcc/testsuite/gfortran.dg/associate_27.f90 366c019a469c1a5eac01c46514e12c86 gcc/testsuite/gfortran.dg/associate_28.f90 9236179c94e8ef2f6258dcf917d9dee9 gcc/testsuite/gfortran.dg/associate_29.f90 *************** fd5aa0aeb583bf1c520647699c09098c gcc/te *** 73608,73613 **** --- 73863,73869 ---- 1176bc1003bc9902e2cbbd0881833a6a gcc/testsuite/gfortran.dg/bind_c_usage_32.f90 487ac439b45d829bb00287edc9eb7e78 gcc/testsuite/gfortran.dg/bind_c_usage_33.f90 5ba4c967cb57e47c3083d78e775e9474 gcc/testsuite/gfortran.dg/bind_c_usage_33_c.c + fe581e5151066f7aab1872a01eedd446 gcc/testsuite/gfortran.dg/bind_c_usage_34.f90 d245d9e737fbf5c0213b3df7d060446c gcc/testsuite/gfortran.dg/bind_c_usage_5.f03 1b4c4194bd216642b83f69c705e997b9 gcc/testsuite/gfortran.dg/bind_c_usage_6.f03 298c127c34080232f15365f9c6db6fc0 gcc/testsuite/gfortran.dg/bind_c_usage_7.f03 *************** e22aa437c55ee962c7781d739761dfd4 gcc/te *** 74083,74089 **** 8d4999c0b84adf6f411457cf3deaee67 gcc/testsuite/gfortran.dg/class_55.f90 081b7861449ee503eb0eafc38aa74102 gcc/testsuite/gfortran.dg/class_56.f90 2fbf5aa2a748bac8f14f06f6aecf4b6a gcc/testsuite/gfortran.dg/class_57.f90 ! e5fb2c5d38e11474d612c7ab279406ba gcc/testsuite/gfortran.dg/class_58.f90 dd2c7b1cf9668f23e882c3d64580ab34 gcc/testsuite/gfortran.dg/class_59.f90 3559a2034886d45662cf5cdbdd177000 gcc/testsuite/gfortran.dg/class_6.f03 e8904afb9adfeb76555179cf83d18504 gcc/testsuite/gfortran.dg/class_60.f90 --- 74339,74345 ---- 8d4999c0b84adf6f411457cf3deaee67 gcc/testsuite/gfortran.dg/class_55.f90 081b7861449ee503eb0eafc38aa74102 gcc/testsuite/gfortran.dg/class_56.f90 2fbf5aa2a748bac8f14f06f6aecf4b6a gcc/testsuite/gfortran.dg/class_57.f90 ! 71ce5af334c27ba11d877d65ad0f7113 gcc/testsuite/gfortran.dg/class_58.f90 dd2c7b1cf9668f23e882c3d64580ab34 gcc/testsuite/gfortran.dg/class_59.f90 3559a2034886d45662cf5cdbdd177000 gcc/testsuite/gfortran.dg/class_6.f03 e8904afb9adfeb76555179cf83d18504 gcc/testsuite/gfortran.dg/class_60.f90 *************** cc0c048415b8d0593fe7e5b164763dc7 gcc/te *** 74100,74105 **** --- 74356,74362 ---- cd9759177f83fe4b6a6a007850b05c80 gcc/testsuite/gfortran.dg/class_70.f03 77eb9432daba5a35f6be287dfec77ae3 gcc/testsuite/gfortran.dg/class_71.f90 92c121dc110b05822b93da0d70bcd5bb gcc/testsuite/gfortran.dg/class_72.f90 + a2da662ef1c6e78fb94337f5f919de4b gcc/testsuite/gfortran.dg/class_73.f90 765b5ae237d318aee8909def266c457e gcc/testsuite/gfortran.dg/class_8.f03 6ad3d2ed9f82c5534e18375c93ce8c03 gcc/testsuite/gfortran.dg/class_9.f03 eff35de84f2c16f8b8abcbc407237414 gcc/testsuite/gfortran.dg/class_alias.f90 *************** f1da6751bbd1a6186b7f03b7f7e77113 gcc/te *** 74426,74431 **** --- 74683,74689 ---- 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 75ce44e9a564ff39f5a9738947fd61f0 gcc/testsuite/gfortran.dg/common_3.f90 d682a44a03643151e3f0046fc043a5f0 gcc/testsuite/gfortran.dg/common_4.f90 d2308c0b53d688aae1dcd0e309cb63c2 gcc/testsuite/gfortran.dg/common_5.f *************** ad86654ff26be55d6f8c03aa15c45da9 gcc/te *** 74696,74701 **** --- 74954,74960 ---- f955c03c941b0c9e430dd0aa042c978f gcc/testsuite/gfortran.dg/dec_union_1.f90 54fa8897424354fe36b1147275b1b014 gcc/testsuite/gfortran.dg/dec_union_10.f90 5211d9ae6a702f4330743f9f87e83568 gcc/testsuite/gfortran.dg/dec_union_11.f90 + 436b819785ec03fd97943e5f6729ee25 gcc/testsuite/gfortran.dg/dec_union_12.f90 6c8431ff3b4a3278ce13b373701985a8 gcc/testsuite/gfortran.dg/dec_union_2.f90 85cd1980dadce1ec2db721b54e8725bf gcc/testsuite/gfortran.dg/dec_union_3.f90 a4db5df7b9375240006aa16fab80e2c0 gcc/testsuite/gfortran.dg/dec_union_4.f90 *************** bf2ca054d24e06523331d95407dee17a gcc/te *** 75244,75249 **** --- 75503,75509 ---- d5c2becdf2a2a9b3476dac72cfc54877 gcc/testsuite/gfortran.dg/extends_type_of_1.f03 400c9de8234ec3d29a78be5af6d85a84 gcc/testsuite/gfortran.dg/extends_type_of_2.f03 3485cc1f6803a287f97032484eec3440 gcc/testsuite/gfortran.dg/extends_type_of_3.f90 + e2f6b20fdc9bcc4ddec5f7df21ca5ff7 gcc/testsuite/gfortran.dg/extends_type_of_4.f90 df764dd66e24cfa5a1af1a03b983104b gcc/testsuite/gfortran.dg/external_implicit_none.f90 ce177780ee2e2bc535a2720b3ea4612c gcc/testsuite/gfortran.dg/external_implicit_none_2.f90 4eca303332980555d4132fbdc52d774a gcc/testsuite/gfortran.dg/external_initializer.f90 *************** ae88a47a36ff81768bbc94c2fccb750c gcc/te *** 75616,75621 **** --- 75876,75882 ---- 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 + 38f3a98d6bdf1614d9d5429efbce8943 gcc/testsuite/gfortran.dg/g77/pr105203.f 08b2d0aa4e5c504bd6c05415aec457fb gcc/testsuite/gfortran.dg/g77/pr9258.f db8b6c06ec8fa683359365a4c0484581 gcc/testsuite/gfortran.dg/g77/short.f 632f6b94f0110d72eedbee7641bd627f gcc/testsuite/gfortran.dg/g77/strlen0.f *************** daa1172ed1d5a6072057b20aaca3b1ec gcc/te *** 76332,76338 **** c6ccb0077483440bf572afc0c07cf295 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 ! ffb510b687f0ea0845b8ed3e93ad308d gcc/testsuite/gfortran.dg/guality/guality.exp 9e2790792b04c03a1a0860c862a27b4b gcc/testsuite/gfortran.dg/guality/pr41558.f90 26d42c53448fb26d2b66a4b1d93693d3 gcc/testsuite/gfortran.dg/hollerith.f90 855af7807ad9d75aef7ff85c2859a0c2 gcc/testsuite/gfortran.dg/hollerith2.f90 --- 76593,76599 ---- c6ccb0077483440bf572afc0c07cf295 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 ! 05eb8da77a2443996d7fece3e1c4fce6 gcc/testsuite/gfortran.dg/guality/guality.exp 9e2790792b04c03a1a0860c862a27b4b gcc/testsuite/gfortran.dg/guality/pr41558.f90 26d42c53448fb26d2b66a4b1d93693d3 gcc/testsuite/gfortran.dg/hollerith.f90 855af7807ad9d75aef7ff85c2859a0c2 gcc/testsuite/gfortran.dg/hollerith2.f90 *************** f6a9f065bf39a878f022cf1db27088dd gcc/te *** 76378,76383 **** --- 76639,76645 ---- 7c6d282fb7219ea8b6437744a0db709a gcc/testsuite/gfortran.dg/ibclr_1.f90 ec89660ed76fbd433f83eba57f853883 gcc/testsuite/gfortran.dg/ibits.f90 e6c37a9def09433a6a2f8bc1d9220133 gcc/testsuite/gfortran.dg/ibits_1.f90 + 9d771e73f5b650886f4c509ed7ba4557 gcc/testsuite/gfortran.dg/ibits_2.f90 9f3ccb4943f5f4737bc99acb427e11b0 gcc/testsuite/gfortran.dg/ibset_1.f90 cc7201a9525a4793e8bf391d30c3653d gcc/testsuite/gfortran.dg/ichar_1.f90 8201f75f0deee5480134fc16f1113f0c gcc/testsuite/gfortran.dg/ichar_2.f90 *************** e8ea43c66fd6d11794019ae65955f295 gcc/te *** 76409,76414 **** --- 76671,76677 ---- 124ba3e9f6c8b5f20acc161515766cff gcc/testsuite/gfortran.dg/illegal_boz_arg_1.f90 4a93b827c3cbecf80132e133c9ffea76 gcc/testsuite/gfortran.dg/illegal_boz_arg_2.f90 b8ee27c210d03cbdecd63b4186ae10dc gcc/testsuite/gfortran.dg/illegal_boz_arg_3.f90 + eb8442e24d68dcf7d000ba19c179291d gcc/testsuite/gfortran.dg/illegal_boz_arg_4.f90 ca72e2369ff19137157ceaaa2012b721 gcc/testsuite/gfortran.dg/illegal_char.f90 d827b941652feab002a335b27a4dd9f2 gcc/testsuite/gfortran.dg/imag_1.f eaad0ac26fe911d75f0d0769ade8436c gcc/testsuite/gfortran.dg/impl_do_var_data.f90 *************** d0fdfb1260988468dbfc57fc49c04ccf gcc/te *** 76494,76499 **** --- 76757,76763 ---- 6c6d1484cc1b9a1f8096ff70ef06c025 gcc/testsuite/gfortran.dg/index_3.f90 1e3290f670df03f4a15dc4b8eb731606 gcc/testsuite/gfortran.dg/index_4.f90 691597f0ec46c0a83eb0d9e74ff02fb3 gcc/testsuite/gfortran.dg/index_5.f90 + 4238009ecd17e63a28a02c73d37bd245 gcc/testsuite/gfortran.dg/index_6.f90 c32bcbb681492fc8fc92c7fc08a343a1 gcc/testsuite/gfortran.dg/init_char_with_nonchar_ctr.f90 3b7a3a6914e202c00024fd409f044ac6 gcc/testsuite/gfortran.dg/init_flag_1.f90 1d493b9ebf831129455128eb3bc913e8 gcc/testsuite/gfortran.dg/init_flag_10.f90 *************** ba84e533d9d999d5cafa2eeaa917daa3 gcc/te *** 76625,76636 **** --- 76889,76902 ---- 9a94a4b4c3991300273d3eff16279572 gcc/testsuite/gfortran.dg/intent_optimize_1.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 6ad3133cfe62e722e018d386dbfd3404 gcc/testsuite/gfortran.dg/intent_out_1.f90 ba93579108c80828d584884c6d1a3d2a gcc/testsuite/gfortran.dg/intent_out_10.f90 7fb312ab28cce81b97498d8f3f4e4685 gcc/testsuite/gfortran.dg/intent_out_11.f90 844229c9eb8a37075774f7aa5ffaec68 gcc/testsuite/gfortran.dg/intent_out_12.f90 eaa197e83969427d3078aff95445bee7 gcc/testsuite/gfortran.dg/intent_out_13.f90 43d0dd409d7c93807035f978a18ed5c5 gcc/testsuite/gfortran.dg/intent_out_14.f90 + a82b141adaff542c8c03c6c2cbbb132f gcc/testsuite/gfortran.dg/intent_out_15.f90 633b564832f11b231ba2e100650127bb gcc/testsuite/gfortran.dg/intent_out_2.f90 88fc721c29050bdf0a2d0d7c4e316336 gcc/testsuite/gfortran.dg/intent_out_3.f90 a4fb1377a7e3fd7d6f3a448f1c020623 gcc/testsuite/gfortran.dg/intent_out_4.f90 *************** c18b2575d6a9b63674756f658ca93389 gcc/te *** 77377,77382 **** --- 77643,77649 ---- 1ce8153704ce4cea80385ed72012931d gcc/testsuite/gfortran.dg/nearest_3.f90 07145278f20c5f56fba9fc10e9fbfba2 gcc/testsuite/gfortran.dg/nearest_4.f90 e5f705447cfe3093ee85b04291d3f80c gcc/testsuite/gfortran.dg/nearest_5.f90 + a00cc61eb38cdddde8ae56513298e5bc gcc/testsuite/gfortran.dg/nearest_6.f90 5d4401879d53df84adcf50a08316a8f8 gcc/testsuite/gfortran.dg/negative-z-descriptor.f90 d2f9406b4dddc3388ec13c7a6343827c gcc/testsuite/gfortran.dg/negative_automatic_size.f90 e1c6d38824a9f8693b5457db2f9968c6 gcc/testsuite/gfortran.dg/negative_unit.f *************** ccf25bc57c7fd0870f3fa7fea60340a6 gcc/te *** 77410,77416 **** 2c6f079dd50cdebef82b1b476222d282 gcc/testsuite/gfortran.dg/newunit_6.f90 25543ea4ce258c615de028583580ae15 gcc/testsuite/gfortran.dg/nint_1.f90 16d9cc312dc3603f84627c0edcbc49a2 gcc/testsuite/gfortran.dg/nint_2.f90 ! f867bd2d1caf94b8344ac3386b825ea1 gcc/testsuite/gfortran.dg/nint_p7.f90 9aae8ef0f1f255b8f35b6d5e6807059a gcc/testsuite/gfortran.dg/no-automatic.f90 03b84fc5eca43cc5d1a0b1a93937da73 gcc/testsuite/gfortran.dg/no_arg_check_1.f90 c60b2c37f26b9fe5b1daba95b7c848d0 gcc/testsuite/gfortran.dg/no_arg_check_2.f90 --- 77677,77683 ---- 2c6f079dd50cdebef82b1b476222d282 gcc/testsuite/gfortran.dg/newunit_6.f90 25543ea4ce258c615de028583580ae15 gcc/testsuite/gfortran.dg/nint_1.f90 16d9cc312dc3603f84627c0edcbc49a2 gcc/testsuite/gfortran.dg/nint_2.f90 ! 75f491150db9183d7c839b8231781c0a gcc/testsuite/gfortran.dg/nint_p7.f90 9aae8ef0f1f255b8f35b6d5e6807059a gcc/testsuite/gfortran.dg/no-automatic.f90 03b84fc5eca43cc5d1a0b1a93937da73 gcc/testsuite/gfortran.dg/no_arg_check_1.f90 c60b2c37f26b9fe5b1daba95b7c848d0 gcc/testsuite/gfortran.dg/no_arg_check_2.f90 *************** e67abf33c2578358a5d5bab3e11f00e9 gcc/te *** 77448,77453 **** --- 77715,77721 ---- a268bf435ff3e542009031168b6619a0 gcc/testsuite/gfortran.dg/null_8.f90 f1e3cfba25a768bf7f9073932a36c7db gcc/testsuite/gfortran.dg/null_9.f90 fb9d6abbd9b9049c00ee6e992d1a8859 gcc/testsuite/gfortran.dg/null_actual.f90 + 84b898ed35bd484e690bcec9cd9f1724 gcc/testsuite/gfortran.dg/null_actual_3.f90 eb6af590881f3e995fc6b2c78089f277 gcc/testsuite/gfortran.dg/nullify_1.f f202e3843710f9492560538fa53c3847 gcc/testsuite/gfortran.dg/nullify_2.f90 768d37ebff7930db8f8a99ac16b90d32 gcc/testsuite/gfortran.dg/nullify_3.f90 *************** c081e1f510a2d68ec176356111dab188 gcc/te *** 77701,77715 **** d99cea26823109c0bb853b42df152999 gcc/testsuite/gfortran.dg/pr102715.f90 f28998ba16e7a78633a9de3d5eaf0667 gcc/testsuite/gfortran.dg/pr102816.f90 cc6ac3aa934c104c85fad8e43ae6985d gcc/testsuite/gfortran.dg/pr102817.f90 ! 87fa8e20851e07d06d4d5991b6fc240d gcc/testsuite/gfortran.dg/pr102860.f90 ! a082b0c5fdbc266f00ae264494538e49 gcc/testsuite/gfortran.dg/pr103505.f90 dc7a57f897711dfb7a3fba377198c10c gcc/testsuite/gfortran.dg/pr103588.f90 a27b232d198fc2463c04af17903b1b4c gcc/testsuite/gfortran.dg/pr103606.f90 ea7b00fcccc1df091b8087b16e502d92 gcc/testsuite/gfortran.dg/pr103607.f90 e83cb447f532a018a571c0eb3b9813ac gcc/testsuite/gfortran.dg/pr103609.f90 448c7638e7741c015d95260e6491d8fa gcc/testsuite/gfortran.dg/pr103692.f90 9c2a780c1ca6904bb5164e252d9e5455 gcc/testsuite/gfortran.dg/pr104210.f90 73191330286eb3bf2c13130685c97c95 gcc/testsuite/gfortran.dg/pr104211.f90 984f8307f36d56a0b48b5acce2dd5eb5 gcc/testsuite/gfortran.dg/pr12884.f 64075248b9d1bffd6f380bb4e2a6eae0 gcc/testsuite/gfortran.dg/pr15129.f90 e9cbd51db4e16292fc5dd1fead2e5a49 gcc/testsuite/gfortran.dg/pr15140.f90 --- 77969,78008 ---- d99cea26823109c0bb853b42df152999 gcc/testsuite/gfortran.dg/pr102715.f90 f28998ba16e7a78633a9de3d5eaf0667 gcc/testsuite/gfortran.dg/pr102816.f90 cc6ac3aa934c104c85fad8e43ae6985d gcc/testsuite/gfortran.dg/pr102817.f90 ! c35066e873add73fe333d803e2854739 gcc/testsuite/gfortran.dg/pr102860.f90 ! 4b404e5693e05cfd48ecd00e22ac323d gcc/testsuite/gfortran.dg/pr103259.f90 ! b624133cafd19857eb2915c507731455 gcc/testsuite/gfortran.dg/pr103504.f90 ! 0ca27f571c157feff083b371f4147538 gcc/testsuite/gfortran.dg/pr103505.f90 dc7a57f897711dfb7a3fba377198c10c gcc/testsuite/gfortran.dg/pr103588.f90 a27b232d198fc2463c04af17903b1b4c gcc/testsuite/gfortran.dg/pr103606.f90 ea7b00fcccc1df091b8087b16e502d92 gcc/testsuite/gfortran.dg/pr103607.f90 e83cb447f532a018a571c0eb3b9813ac gcc/testsuite/gfortran.dg/pr103609.f90 448c7638e7741c015d95260e6491d8fa gcc/testsuite/gfortran.dg/pr103692.f90 + 7880bd79a12dd5ee034f461bbaebed02 gcc/testsuite/gfortran.dg/pr103694.f90 9c2a780c1ca6904bb5164e252d9e5455 gcc/testsuite/gfortran.dg/pr104210.f90 73191330286eb3bf2c13130685c97c95 gcc/testsuite/gfortran.dg/pr104211.f90 + 4d8d0ebddb3e8c68a7b0604135d30ec0 gcc/testsuite/gfortran.dg/pr104313.f + 7a5b7a18d621b5e1b9d04b73e259ddd4 gcc/testsuite/gfortran.dg/pr104849.f90 + 22283af469347d85bd1fe4dae42939a3 gcc/testsuite/gfortran.dg/pr105230.f90 + 04437d9e5ce70eee9f187cabd7a3ae39 gcc/testsuite/gfortran.dg/pr105633.f90 + d4e9f09fafa1c1f5e009aedb22732715 gcc/testsuite/gfortran.dg/pr105954.f90 + 088bf2cb06c9d1fbdf7cdf44f05322a7 gcc/testsuite/gfortran.dg/pr106209.f90 + 8466016b4be322b136a27ed5b067e9d8 gcc/testsuite/gfortran.dg/pr106331.f90 + 667a7f6ee3d729bf7c1cce653b1cff1c gcc/testsuite/gfortran.dg/pr106857.f90 + 09719e2d59fe58682ef7a737cdf01620 gcc/testsuite/gfortran.dg/pr106934.f90 + e1ccca85dc432ca649742c05520157d9 gcc/testsuite/gfortran.dg/pr106945.f90 + a9c6ba4d14cec93cd2edec54fda6a916 gcc/testsuite/gfortran.dg/pr106985.f90 + eb96b826eeaf84f157c8635706721d40 gcc/testsuite/gfortran.dg/pr106986.f90 + 11beaeea87162696e195837c5224fa2d gcc/testsuite/gfortran.dg/pr107054.f90 + ba47b0afdca4ac305945fe0fc5dcb1d2 gcc/testsuite/gfortran.dg/pr107872.f90 + 51c1978cd57328dca2798eaa646a34b7 gcc/testsuite/gfortran.dg/pr108131.f90 + d10ee488f163142e4a7a74b3c6a8e12f gcc/testsuite/gfortran.dg/pr108193.f90 + b1a3cfdc35d1fd73d94697f204666296 gcc/testsuite/gfortran.dg/pr108420.f90 + ed294cde0b27b346f37fa7a32bf91ea7 gcc/testsuite/gfortran.dg/pr108421.f90 + 28a670973e90363c78fb79b83bf40490 gcc/testsuite/gfortran.dg/pr108501.f90 + 1836eed7a2cdfcdba4e590204735e288 gcc/testsuite/gfortran.dg/pr108502.f90 + bb19038b0b7c42c6403475e34570ae3d gcc/testsuite/gfortran.dg/pr108527.f90 + a367beafff806aa88b45192d28091201 gcc/testsuite/gfortran.dg/pr108529.f90 984f8307f36d56a0b48b5acce2dd5eb5 gcc/testsuite/gfortran.dg/pr12884.f 64075248b9d1bffd6f380bb4e2a6eae0 gcc/testsuite/gfortran.dg/pr15129.f90 e9cbd51db4e16292fc5dd1fead2e5a49 gcc/testsuite/gfortran.dg/pr15140.f90 *************** cca539dda55db1fe3d9ab628330a364e gcc/te *** 77879,77885 **** 8dc00e13e8017aa32673c1673ad9bb9b gcc/testsuite/gfortran.dg/pr47054_1.f90 dbb1bf91a8856be53abe8cd67ff0f627 gcc/testsuite/gfortran.dg/pr47054_2.f90 18cfa159030f8b4b160fe0d8e9420c68 gcc/testsuite/gfortran.dg/pr47574.f90 ! 0280bd4bfb5b153f438a9cfd70e3cd82 gcc/testsuite/gfortran.dg/pr47614.f 9ff6a3335f233c3bfe3926ceefc544b9 gcc/testsuite/gfortran.dg/pr47757-1.f90 f3e2e80b3229e8fec07b3263f3453fed gcc/testsuite/gfortran.dg/pr47757-2.f90 9d5355ff4338853aec406e4f5edae9ea gcc/testsuite/gfortran.dg/pr47757-3.f90 --- 78172,78178 ---- 8dc00e13e8017aa32673c1673ad9bb9b gcc/testsuite/gfortran.dg/pr47054_1.f90 dbb1bf91a8856be53abe8cd67ff0f627 gcc/testsuite/gfortran.dg/pr47054_2.f90 18cfa159030f8b4b160fe0d8e9420c68 gcc/testsuite/gfortran.dg/pr47574.f90 ! 5bac258cba16f4d9d341434b93beae68 gcc/testsuite/gfortran.dg/pr47614.f 9ff6a3335f233c3bfe3926ceefc544b9 gcc/testsuite/gfortran.dg/pr47757-1.f90 f3e2e80b3229e8fec07b3263f3453fed gcc/testsuite/gfortran.dg/pr47757-2.f90 9d5355ff4338853aec406e4f5edae9ea gcc/testsuite/gfortran.dg/pr47757-3.f90 *************** a3fc06fbb8d6c53a22462ce8a5fade30 gcc/te *** 77939,77945 **** fcdffb26a3d7f862eb7d9eaee5b49b49 gcc/testsuite/gfortran.dg/pr58027.f90 1ca63f28ae284979c3b2b1c01dc88abf gcc/testsuite/gfortran.dg/pr58290.f90 bc63d6ff9d523e63fa42eb148fceb4c6 gcc/testsuite/gfortran.dg/pr58484.f ! 756af060f4f83f1c7fac64450555d67c gcc/testsuite/gfortran.dg/pr58968.f 38761fc6ca20bfa8a4d47530bb0173c3 gcc/testsuite/gfortran.dg/pr59107.f90 54642dc29547df928c052d04531cae6f gcc/testsuite/gfortran.dg/pr59440-1.f90 29517347731146172a1733a27581daa9 gcc/testsuite/gfortran.dg/pr59440-2.f90 --- 78232,78238 ---- fcdffb26a3d7f862eb7d9eaee5b49b49 gcc/testsuite/gfortran.dg/pr58027.f90 1ca63f28ae284979c3b2b1c01dc88abf gcc/testsuite/gfortran.dg/pr58290.f90 bc63d6ff9d523e63fa42eb148fceb4c6 gcc/testsuite/gfortran.dg/pr58484.f ! 2892cc9f5f933b8f3110403ca2a7f315 gcc/testsuite/gfortran.dg/pr58968.f 38761fc6ca20bfa8a4d47530bb0173c3 gcc/testsuite/gfortran.dg/pr59107.f90 54642dc29547df928c052d04531cae6f gcc/testsuite/gfortran.dg/pr59440-1.f90 29517347731146172a1733a27581daa9 gcc/testsuite/gfortran.dg/pr59440-2.f90 *************** b5430af005fc8cc1b6db9ceb57688fe3 gcc/te *** 78189,78194 **** --- 78482,78488 ---- 725e595013765639d219c2012948cd9d gcc/testsuite/gfortran.dg/pr85797.f90 e85019fafc2465365ffe52752040d464 gcc/testsuite/gfortran.dg/pr85798.f90 6de8b7c7567dcceb9bbbf46563935272 gcc/testsuite/gfortran.dg/pr85816.f90 + 81b431dbb9eb76aee80a85f44bfec348 gcc/testsuite/gfortran.dg/pr85877.f90 052b31eec86fd95fce096fa3b0045dd3 gcc/testsuite/gfortran.dg/pr85895.f90 e74818417ee12b9bac513c2c5a86fdd1 gcc/testsuite/gfortran.dg/pr85938.f90 97f1dd51f9cd45871f43a46b11736fb7 gcc/testsuite/gfortran.dg/pr85975.f90 *************** a14ff0a951de87e6e87ae4eba23ae32e gcc/te *** 78421,78426 **** --- 78715,78722 ---- d21234ae551d720040933254256c6861 gcc/testsuite/gfortran.dg/pr95980.f90 ac524c67dbf5c0b6588328a02f46a124 gcc/testsuite/gfortran.dg/pr95980_2.f90 18491a80af7ea815a2d1049a91942f07 gcc/testsuite/gfortran.dg/pr95981.f90 + 46d582cee8b64dec9357e5dc86eb10c8 gcc/testsuite/gfortran.dg/pr96024.f90 + 95f12b0fb52668b7e207c4e71746b5c6 gcc/testsuite/gfortran.dg/pr96025.f90 4cd7e1edd1f016be3c9016b1817d703e gcc/testsuite/gfortran.dg/pr96038.f90 e6acc3eb976952fc47981d6ab4ed7205 gcc/testsuite/gfortran.dg/pr96085.f90 45d800261f64da91bf2398a00691d7c4 gcc/testsuite/gfortran.dg/pr96086.f90 *************** a78afb0368bddc411548d63311098918 gcc/te *** 78459,78464 **** --- 78755,78761 ---- 8a48e2264b578c77fe953f48d587af4e gcc/testsuite/gfortran.dg/pr98411.f90 661afc7f73f5e470bae7d7efa0a06cbd gcc/testsuite/gfortran.dg/pr98661.f90 6f14584e7c3845718818a0eab4f992ff gcc/testsuite/gfortran.dg/pr98974.F90 + c308feb04384f4d499a6fd6368791b62 gcc/testsuite/gfortran.dg/pr99036.f90 ab9d92c634833928d03c56d815ba4f69 gcc/testsuite/gfortran.dg/pr99060.f90 c4cc8ded91592083a4019a67d9837e2c gcc/testsuite/gfortran.dg/pr99112.f90 2b316ebb5f0c34f4b1c5764c77c3e824 gcc/testsuite/gfortran.dg/pr99204.f90 *************** ddf6a96210acd9846d96c96f4d91e038 gcc/te *** 78675,78680 **** --- 78972,78978 ---- b6c22a1a69dfaeda3ed576a61060580d gcc/testsuite/gfortran.dg/ptr-func-2.f90 2878e4bfa1dc2e80db541a4a8304daaf gcc/testsuite/gfortran.dg/ptr-func-3.f90 cf5c200d1a2cf2ebf7bcad1269a85bc7 gcc/testsuite/gfortran.dg/ptr-func-4.f90 + 2c7d131d00c984ad2bd259734d3144c7 gcc/testsuite/gfortran.dg/ptr-func-5.f90 c3fb068a6513a1b586c18e7f98aee0e3 gcc/testsuite/gfortran.dg/ptr_func_assign_1.f08 1e99e686da2b4f91da550dc5cbd8e4b4 gcc/testsuite/gfortran.dg/ptr_func_assign_2.f08 deda23d08864e8fd5de581142c84d0c3 gcc/testsuite/gfortran.dg/ptr_func_assign_3.f08 *************** e6c7c7cbf695fec200c964f4e3b125ec gcc/te *** 78931,78936 **** --- 79229,79235 ---- eef9c4fb4632664f421c4067e9f7dd53 gcc/testsuite/gfortran.dg/save_4.f90 9619c507201f560eff2135e49692d052 gcc/testsuite/gfortran.dg/save_5.f90 bcec3240f40aa5093a05d7cd8024acf3 gcc/testsuite/gfortran.dg/save_6.f90 + 751220763a6526f3644c983c901f1c25 gcc/testsuite/gfortran.dg/save_7.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 *************** c6f31959a6f27a049ee01954f0a811f0 gcc/te *** 79029,79034 **** --- 79328,79334 ---- 768c7a5a7ac507eb3c4fef8d48f0a08b gcc/testsuite/gfortran.dg/semicolon_free.f90 c137ead9ed9a3cbd4ca5f75d50965b1c gcc/testsuite/gfortran.dg/semicolon_free_2.f90 e5ae2b5b89173ed8361161ef10e352e2 gcc/testsuite/gfortran.dg/sequence_types_1.f90 + 600b9b73c8e3223409f781d7f1222630 gcc/testsuite/gfortran.dg/set_exponent_1.f90 df7acd1342733a419754eb5cbcbc9a3f gcc/testsuite/gfortran.dg/set_vm_limit.c 8c21b488e7773e67f9472b6a064868b9 gcc/testsuite/gfortran.dg/shape_1.f90 2a136a103d2e76c84d90569febf9b783 gcc/testsuite/gfortran.dg/shape_10.f90 *************** dfedf49d73e274e5c02366ccc586a488 gcc/te *** 79537,79542 **** --- 79837,79843 ---- a38aec42f7e0058d56277b2bdbf39923 gcc/testsuite/gfortran.dg/unpack_bounds_3.f90 a16cffa781475700beb86772ba80edef gcc/testsuite/gfortran.dg/unpack_init_expr.f03 77425eab660cd99123828c97f2657ca9 gcc/testsuite/gfortran.dg/unpack_mask_1.f90 + 3f54f0cd1eb1eee8a11f6a750a442af4 gcc/testsuite/gfortran.dg/unpack_vector_1.f90 21ad1ac865ebfe7d633e040a09836574 gcc/testsuite/gfortran.dg/unpack_zerosize_1.f90 fbd9ec98233c6fecb3330e95ece01679 gcc/testsuite/gfortran.dg/unreferenced_use_assoc_1.f90 7b43b740c1827893f88c955a8b8544ac gcc/testsuite/gfortran.dg/unresolved_fixup_1.f90 *************** c4cdbb7826f698ed16a2354d36deafa1 gcc/te *** 79672,79677 **** --- 79973,79979 ---- 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 + 151833a2475cd28c993b813d478c8b37 gcc/testsuite/gfortran.dg/vect/pr107254.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 *************** be5803453205216364ce8b4a9f0356a8 gcc/te *** 81526,81531 **** --- 81828,81836 ---- 02b04a1bcbc91f013644c665394a541a gcc/testsuite/gnat.dg/opt1.adb c36f023977042ca971d3f58ec44a533a gcc/testsuite/gnat.dg/opt1.ads f9299b514c5c25293c940907f5a4059d gcc/testsuite/gnat.dg/opt10.adb + 96951bbcc111d51906e9a661916136fc gcc/testsuite/gnat.dg/opt100.adb + 0ab0b8847dab59911bd57ae14b153fc9 gcc/testsuite/gnat.dg/opt100_pkg.adb + edbbd0b00edd7e8662b7c3b2dafa9ede gcc/testsuite/gnat.dg/opt100_pkg.ads 5d50fb38b1ab84c39760906cb103c522 gcc/testsuite/gnat.dg/opt10_pkg.ads 603264d4afdd2fd2174ea9c4cf4653ed gcc/testsuite/gnat.dg/opt11.adb 53160585b3a5d820b653e1e0d5f14c75 gcc/testsuite/gnat.dg/opt11.ads *************** e610e24aa950be5f6c35dbb10447cb02 gcc/te *** 81724,81729 **** --- 82029,82038 ---- cebcd76e2479c79677bbc78316b57186 gcc/testsuite/gnat.dg/opt96.adb be4ae336c50882da5846142a7791cd3a gcc/testsuite/gnat.dg/opt96_pkg.adb 15c1a01fd2ed3d1a51b5d70bb800b81b gcc/testsuite/gnat.dg/opt96_pkg.ads + 98bbede57f573f4a759215419cb26366 gcc/testsuite/gnat.dg/opt99.adb + 5a7b2faacf185dcb0d549681fb261c3d gcc/testsuite/gnat.dg/opt99_pkg1.adb + 270ad38b717c4d318e19c32599dd7fed gcc/testsuite/gnat.dg/opt99_pkg1.ads + 6bd34debf3443a19d8e0cd9764e4138d gcc/testsuite/gnat.dg/opt99_pkg2.ads feb376d91f5514b647b1ad61b025d828 gcc/testsuite/gnat.dg/opt9_pkg.ads 0a9bf4dbd445ef99721501592f66cea2 gcc/testsuite/gnat.dg/others1.adb 9f62042ad37161c5182cb92d70d0b24d gcc/testsuite/gnat.dg/out_param.adb *************** d6f97a056d7edd5832ebc058a0740e52 gcc/te *** 82324,82329 **** --- 82633,82639 ---- d5c146078d224d7491b0622d11647b77 gcc/testsuite/gnat.dg/sso14.adb d0480aca937a9fe678328be80c523277 gcc/testsuite/gnat.dg/sso15.adb 9a8b9c8338f7df1d565755ffc671257e gcc/testsuite/gnat.dg/sso16.adb + 6c87692ce5565e68f354b3b1cb842c39 gcc/testsuite/gnat.dg/sso18.adb ff784f7bca69d0717e740273960b0387 gcc/testsuite/gnat.dg/sso2.adb ccf43eb5df39869bb23ff9110d3b93cb gcc/testsuite/gnat.dg/sso2.ads 6fe64945c0d0238672cdece04341c316 gcc/testsuite/gnat.dg/sso3.adb *************** d56265e2a1a748cf215dbdfa2b2045c0 gcc/te *** 84849,84855 **** 59c449d9856c1d9abb57c3c96fccf9eb gcc/testsuite/lib/go-torture.exp 4b1e185024a94be744054157b9fa0d8e gcc/testsuite/lib/go.exp d2c996c0f1e4f52698d0d195e6ac13b8 gcc/testsuite/lib/hwasan-dg.exp ! 642d0328ce602fa6ea3a213535de4da0 gcc/testsuite/lib/lto.exp 68f849efff01c1f0a1b6f6a334fd4cea gcc/testsuite/lib/mike-g++.exp f4e309b118df6bc1f55a0b5ed4e7807d gcc/testsuite/lib/mike-gcc.exp dfa03e4b5bdd1b947f7c23113f25ef34 gcc/testsuite/lib/multiline.exp --- 85159,85165 ---- 59c449d9856c1d9abb57c3c96fccf9eb gcc/testsuite/lib/go-torture.exp 4b1e185024a94be744054157b9fa0d8e gcc/testsuite/lib/go.exp d2c996c0f1e4f52698d0d195e6ac13b8 gcc/testsuite/lib/hwasan-dg.exp ! 07c6090d0848f773ba2edb96258cd708 gcc/testsuite/lib/lto.exp 68f849efff01c1f0a1b6f6a334fd4cea gcc/testsuite/lib/mike-g++.exp f4e309b118df6bc1f55a0b5ed4e7807d gcc/testsuite/lib/mike-gcc.exp dfa03e4b5bdd1b947f7c23113f25ef34 gcc/testsuite/lib/multiline.exp *************** dfa03e4b5bdd1b947f7c23113f25ef34 gcc/te *** 84861,84867 **** cc525046146fcc22f0ed46eaef6d6c8b gcc/testsuite/lib/options.exp 4356077d58e9164b4a0f859041ea57c9 gcc/testsuite/lib/plugin-support.exp d21b42e68cda8f47745d2babefc2107a gcc/testsuite/lib/profopt.exp ! 3bf5d4eb2d9617844cabefebef3d2218 gcc/testsuite/lib/prune.exp 9b94dfbb5d5e167bb2e2390303de9665 gcc/testsuite/lib/scanasm.exp 77b098872b985d9089c10ba029c2355b gcc/testsuite/lib/scandump.exp 608b5374b252be291023c223f9a33dc9 gcc/testsuite/lib/scanipa.exp --- 85171,85177 ---- cc525046146fcc22f0ed46eaef6d6c8b gcc/testsuite/lib/options.exp 4356077d58e9164b4a0f859041ea57c9 gcc/testsuite/lib/plugin-support.exp d21b42e68cda8f47745d2babefc2107a gcc/testsuite/lib/profopt.exp ! 436fd8352c0e77a78cdc56d276e544eb gcc/testsuite/lib/prune.exp 9b94dfbb5d5e167bb2e2390303de9665 gcc/testsuite/lib/scanasm.exp 77b098872b985d9089c10ba029c2355b gcc/testsuite/lib/scandump.exp 608b5374b252be291023c223f9a33dc9 gcc/testsuite/lib/scanipa.exp *************** bf57f760d7e706b8742823fbb639ae4c gcc/te *** 84875,84881 **** ee11afd0bed136fe5f9f4b0b9347fbc1 gcc/testsuite/lib/scanwpaipa.exp e85eac7191a9c0639c23f2d8cb32aa3d gcc/testsuite/lib/target-libpath.exp 29911997572e845d73d87588342bbc60 gcc/testsuite/lib/target-supports-dg.exp ! bc21273636ce21248bc8c920a67c422c gcc/testsuite/lib/target-supports.exp 3726aa6af2e0ec126a1f3165db93c458 gcc/testsuite/lib/target-utils.exp 7f2401885e3237bcc8a97ce8be301082 gcc/testsuite/lib/timeout-dg.exp 3159102522e362ff5b08ae959de2db09 gcc/testsuite/lib/timeout.exp --- 85185,85191 ---- ee11afd0bed136fe5f9f4b0b9347fbc1 gcc/testsuite/lib/scanwpaipa.exp e85eac7191a9c0639c23f2d8cb32aa3d gcc/testsuite/lib/target-libpath.exp 29911997572e845d73d87588342bbc60 gcc/testsuite/lib/target-supports-dg.exp ! d287d8054b60f62452ef24d9f47c54b1 gcc/testsuite/lib/target-supports.exp 3726aa6af2e0ec126a1f3165db93c458 gcc/testsuite/lib/target-utils.exp 7f2401885e3237bcc8a97ce8be301082 gcc/testsuite/lib/timeout-dg.exp 3159102522e362ff5b08ae959de2db09 gcc/testsuite/lib/timeout.exp *************** a5a19934fc7c58ec8c046fe943bcc7b2 gcc/te *** 84942,84948 **** f6a135d669303e10360f4a9e17664aa7 gcc/testsuite/obj-c++.dg/cxx-class-1.mm 7a5a474af4c3ae26683ee29295314d7b gcc/testsuite/obj-c++.dg/cxx-ivars-1.mm 2dd2f7dd6f655732fc606d8c85af825b gcc/testsuite/obj-c++.dg/cxx-ivars-2.mm ! 118f7827cc56ea7303e814e19ff4f7a5 gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm 0f4f03268c6b5629c2c23fe7fbc06966 gcc/testsuite/obj-c++.dg/cxx-scope-1.mm 74ea4974ad0f897a229d4bd99f47da95 gcc/testsuite/obj-c++.dg/cxx-scope-2.mm 4d63d224c8c642188a58882a0609e394 gcc/testsuite/obj-c++.dg/defs.mm --- 85252,85258 ---- f6a135d669303e10360f4a9e17664aa7 gcc/testsuite/obj-c++.dg/cxx-class-1.mm 7a5a474af4c3ae26683ee29295314d7b gcc/testsuite/obj-c++.dg/cxx-ivars-1.mm 2dd2f7dd6f655732fc606d8c85af825b gcc/testsuite/obj-c++.dg/cxx-ivars-2.mm ! e91047651063a1662428088ff7456f48 gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm 0f4f03268c6b5629c2c23fe7fbc06966 gcc/testsuite/obj-c++.dg/cxx-scope-1.mm 74ea4974ad0f897a229d4bd99f47da95 gcc/testsuite/obj-c++.dg/cxx-scope-2.mm 4d63d224c8c642188a58882a0609e394 gcc/testsuite/obj-c++.dg/defs.mm *************** b6a4bff612a08ec461838ac1b3bd23f1 gcc/te *** 85049,85055 **** ae0cb1e1f2ed9485ab1abd0d8669c498 gcc/testsuite/obj-c++.dg/naming-3.mm dcb5ecceff49837d638a19ab2eabd0ad gcc/testsuite/obj-c++.dg/naming-4.mm bb8ccf448c201adbf05356ac551899fb gcc/testsuite/obj-c++.dg/no-extra-load.mm ! e5781d45f8249482300a6cabf2eefd87 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 5b12ec15a14b9b9f9987ee302a9137e0 gcc/testsuite/obj-c++.dg/plugin/plugin.exp --- 85359,85365 ---- ae0cb1e1f2ed9485ab1abd0d8669c498 gcc/testsuite/obj-c++.dg/naming-3.mm dcb5ecceff49837d638a19ab2eabd0ad gcc/testsuite/obj-c++.dg/naming-4.mm bb8ccf448c201adbf05356ac551899fb gcc/testsuite/obj-c++.dg/no-extra-load.mm ! 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 5b12ec15a14b9b9f9987ee302a9137e0 gcc/testsuite/obj-c++.dg/plugin/plugin.exp *************** ab539e16480243bccd13cb0ab5c05a26 gcc/te *** 85533,85539 **** 81b21eb69c89e40578d3c8712e5193e2 gcc/testsuite/objc.dg/objc-foreach-3.m d6bb76e151385d5dcc0bccac5e79fa6e gcc/testsuite/objc.dg/objc-foreach-4.m 7aa5deeefbee0740247f45a83aea37f4 gcc/testsuite/objc.dg/objc-foreach-5.m ! cb9b5197bed9aef6cef86220a5ab2fd9 gcc/testsuite/objc.dg/objc-gc-4.m 19ed68d9eed2befbaefc5dc8b866d0cf gcc/testsuite/objc.dg/objc-nofilename-1.m 35fb6a51ab2ee402a296c57fae46dd84 gcc/testsuite/objc.dg/param-1.m 8c15bc469e56fdb17a7b24540bf21491 gcc/testsuite/objc.dg/pch/interface-1.hs --- 85843,85849 ---- 81b21eb69c89e40578d3c8712e5193e2 gcc/testsuite/objc.dg/objc-foreach-3.m d6bb76e151385d5dcc0bccac5e79fa6e gcc/testsuite/objc.dg/objc-foreach-4.m 7aa5deeefbee0740247f45a83aea37f4 gcc/testsuite/objc.dg/objc-foreach-5.m ! 608ea2106bb549a54ca754a76a22fde2 gcc/testsuite/objc.dg/objc-gc-4.m 19ed68d9eed2befbaefc5dc8b866d0cf gcc/testsuite/objc.dg/objc-nofilename-1.m 35fb6a51ab2ee402a296c57fae46dd84 gcc/testsuite/objc.dg/param-1.m 8c15bc469e56fdb17a7b24540bf21491 gcc/testsuite/objc.dg/pch/interface-1.hs *************** f75e637e91dac91b91c777479ef081fb gcc/tr *** 85935,85950 **** 5b3d82167a78e6c870c4b85721b98f7d gcc/tree-emutls.c df51783bb1013af8d36a6926324b9944 gcc/tree-hash-traits.h 4e0ed6ef3bdd74441de24187193d838f gcc/tree-hasher.h ! 511676ae9943534d43b199dfae5d4478 gcc/tree-if-conv.c a3ff52ffa889157518435812a966fe3d gcc/tree-if-conv.h ! 57d82e2b2b776193ccc17a53320580fc gcc/tree-inline.c b0a166f5b8df4431a3a01703e73ca5e0 gcc/tree-inline.h ! 7bbed0b509eec2f9ac682b47cd5237c2 gcc/tree-into-ssa.c 84e9d715b2250b3a6d8f326c5b90c1a8 gcc/tree-into-ssa.h 362bdb78a0bdfa101b91dba0c927dc5f gcc/tree-iterator.c 36ab5451f3575ada26fffe25b559d254 gcc/tree-iterator.h ! bcd24e6df75dc13de98c2ea3bb72fd00 gcc/tree-loop-distribution.c ! 8569b405b180aa6eaf3c9650d5fbdaee gcc/tree-nested.c 9b519af6b08c9d2fbe9dad37203b5196 gcc/tree-nested.h bf98a34c788757224ad19a297b7e6e98 gcc/tree-nrv.c 31323bc7fd67cf0285f538efc0a1ee45 gcc/tree-object-size.c --- 86245,86260 ---- 5b3d82167a78e6c870c4b85721b98f7d gcc/tree-emutls.c df51783bb1013af8d36a6926324b9944 gcc/tree-hash-traits.h 4e0ed6ef3bdd74441de24187193d838f gcc/tree-hasher.h ! 31022778d18bf792a69a187ac79ca3b7 gcc/tree-if-conv.c a3ff52ffa889157518435812a966fe3d gcc/tree-if-conv.h ! 75fbbf1adcb320a5718f2e08c024e18f gcc/tree-inline.c b0a166f5b8df4431a3a01703e73ca5e0 gcc/tree-inline.h ! 6c5a02ff772cdfc006605f2111870348 gcc/tree-into-ssa.c 84e9d715b2250b3a6d8f326c5b90c1a8 gcc/tree-into-ssa.h 362bdb78a0bdfa101b91dba0c927dc5f gcc/tree-iterator.c 36ab5451f3575ada26fffe25b559d254 gcc/tree-iterator.h ! cccab62e1e945617803be890ebcc612b gcc/tree-loop-distribution.c ! c9ed3e3c7133b073e16ace262b613d21 gcc/tree-nested.c 9b519af6b08c9d2fbe9dad37203b5196 gcc/tree-nested.h bf98a34c788757224ad19a297b7e6e98 gcc/tree-nrv.c 31323bc7fd67cf0285f538efc0a1ee45 gcc/tree-object-size.c *************** d3b084ad7aba2560ef42b2f258f952f6 gcc/tr *** 85956,85982 **** a51487616194a8071dfe4b9c3bd11c1d gcc/tree-pass.h 5699380a625e6242da8eea993e58e918 gcc/tree-phinodes.c 853eb3b96a580d586e049ff23c1f1ca9 gcc/tree-phinodes.h ! 96a8529c97ec5c2d5f4bfc1414c403fd gcc/tree-predcom.c 0e721a7ed54aae97900bc285a55f9060 gcc/tree-pretty-print.c a47959dbcad350d44f1fb6b79a580f48 gcc/tree-pretty-print.h 6e0dc1ffdcd6528a72da60eb226c8ec5 gcc/tree-profile.c 4d7fa46a3c3b714a513a8cc862595763 gcc/tree-scalar-evolution.c 3119791bf78200bcb022199390392521 gcc/tree-scalar-evolution.h ! d96860bf091765735df36806aaa21a7f gcc/tree-sra.c 1ae9bb0b98165f1efe0c7c7a11bab6cc gcc/tree-sra.h ee9c205c9ab2fa90fe88b3ae0c79920e gcc/tree-ssa-address.c c54597ef98c1ca43588073766641d8d8 gcc/tree-ssa-address.h 1dc8bd000811175c3b54ac3d7057a41c gcc/tree-ssa-alias-compare.h ! ae6b9755cd7d52e366ae8e3ff8a55b13 gcc/tree-ssa-alias.c c9427a5d21dd629e85e87b47aeb4fe74 gcc/tree-ssa-alias.h ! 97eeb8af4b63d82c62d38723598b98f3 gcc/tree-ssa-ccp.c c3a38b89c2fc91798eb9bcec7d1a921b gcc/tree-ssa-ccp.h 14f20b171e9eeef632fb82641a87fd7d gcc/tree-ssa-coalesce.c dbf97ae62841bae185383de08c1010af gcc/tree-ssa-coalesce.h 7cda46f9d86f92ef2a6a9b13d9ea5458 gcc/tree-ssa-copy.c b47681fd6550b2337b9111c3b884c764 gcc/tree-ssa-dce.c f89d08a599ef7443309a0083d3eed3b5 gcc/tree-ssa-dce.h ! e6b364314b092283962e9b8fc40f2b2a gcc/tree-ssa-dom.c 5d4ec6bd4c2537b8b3b9934eeb5ac5bd gcc/tree-ssa-dom.h 1d91441633d5656eb9eb7aaffb6abfbf gcc/tree-ssa-dse.c b0a51b2bfb537b29341db8e5e9d06c49 gcc/tree-ssa-dse.h --- 86266,86292 ---- a51487616194a8071dfe4b9c3bd11c1d gcc/tree-pass.h 5699380a625e6242da8eea993e58e918 gcc/tree-phinodes.c 853eb3b96a580d586e049ff23c1f1ca9 gcc/tree-phinodes.h ! c39a05e74944c253a30c592f5e5c050f gcc/tree-predcom.c 0e721a7ed54aae97900bc285a55f9060 gcc/tree-pretty-print.c a47959dbcad350d44f1fb6b79a580f48 gcc/tree-pretty-print.h 6e0dc1ffdcd6528a72da60eb226c8ec5 gcc/tree-profile.c 4d7fa46a3c3b714a513a8cc862595763 gcc/tree-scalar-evolution.c 3119791bf78200bcb022199390392521 gcc/tree-scalar-evolution.h ! d77845e3fdbc8ee510ec6e021838de11 gcc/tree-sra.c 1ae9bb0b98165f1efe0c7c7a11bab6cc gcc/tree-sra.h ee9c205c9ab2fa90fe88b3ae0c79920e gcc/tree-ssa-address.c c54597ef98c1ca43588073766641d8d8 gcc/tree-ssa-address.h 1dc8bd000811175c3b54ac3d7057a41c gcc/tree-ssa-alias-compare.h ! 47b033b1d0ce877637ca3f13d1c7867f gcc/tree-ssa-alias.c c9427a5d21dd629e85e87b47aeb4fe74 gcc/tree-ssa-alias.h ! 08f21094a7adde6f4140996dd8e711aa gcc/tree-ssa-ccp.c c3a38b89c2fc91798eb9bcec7d1a921b gcc/tree-ssa-ccp.h 14f20b171e9eeef632fb82641a87fd7d gcc/tree-ssa-coalesce.c dbf97ae62841bae185383de08c1010af gcc/tree-ssa-coalesce.h 7cda46f9d86f92ef2a6a9b13d9ea5458 gcc/tree-ssa-copy.c b47681fd6550b2337b9111c3b884c764 gcc/tree-ssa-dce.c f89d08a599ef7443309a0083d3eed3b5 gcc/tree-ssa-dce.h ! e8d307398085c8e9e10df7def0cee108 gcc/tree-ssa-dom.c 5d4ec6bd4c2537b8b3b9934eeb5ac5bd gcc/tree-ssa-dom.h 1d91441633d5656eb9eb7aaffb6abfbf gcc/tree-ssa-dse.c b0a51b2bfb537b29341db8e5e9d06c49 gcc/tree-ssa-dse.h *************** f87b8cba0a5eaf206c581f51abff7795 gcc/tr *** 85985,85993 **** 5e21627768f782974d385f0b8591b7c3 gcc/tree-ssa-live.c 92bca15e046dc5f13eb16bedaf5bdf70 gcc/tree-ssa-live.h 98d45850103ddab74c7b6b7446089026 gcc/tree-ssa-loop-ch.c ! 440e59e128fa41f324523645d1c23303 gcc/tree-ssa-loop-im.c 15f1defc34f3db829c93c302e1b7fd48 gcc/tree-ssa-loop-ivcanon.c ! 120e8a77d75728ac826cd04b9e0addf5 gcc/tree-ssa-loop-ivopts.c cc3adcca25191b12b03af31ce868f9f5 gcc/tree-ssa-loop-ivopts.h ac370f5c6ed5c448ce93e995b5b90a23 gcc/tree-ssa-loop-manip.c 9101108741728365b900cefedbca0f1a gcc/tree-ssa-loop-manip.h --- 86295,86303 ---- 5e21627768f782974d385f0b8591b7c3 gcc/tree-ssa-live.c 92bca15e046dc5f13eb16bedaf5bdf70 gcc/tree-ssa-live.h 98d45850103ddab74c7b6b7446089026 gcc/tree-ssa-loop-ch.c ! dd195eca2449c8e9d51427eb1005726d gcc/tree-ssa-loop-im.c 15f1defc34f3db829c93c302e1b7fd48 gcc/tree-ssa-loop-ivcanon.c ! da7a763b8d68d52c1d4f38fa52b3a2eb gcc/tree-ssa-loop-ivopts.c cc3adcca25191b12b03af31ce868f9f5 gcc/tree-ssa-loop-ivopts.h ac370f5c6ed5c448ce93e995b5b90a23 gcc/tree-ssa-loop-manip.c 9101108741728365b900cefedbca0f1a gcc/tree-ssa-loop-manip.h *************** ac370f5c6ed5c448ce93e995b5b90a23 gcc/tr *** 85998,86004 **** 80c9261b9586acb7b3f4dd8057e45a00 gcc/tree-ssa-loop-unswitch.c 7c5fb48d5c26a7cc6cc1328519686513 gcc/tree-ssa-loop.c e7b45902d3db8fd8ee5db0a06d9ebd6a gcc/tree-ssa-loop.h ! 0162473e371a1803cd6e2ab6854b1a90 gcc/tree-ssa-math-opts.c 21767eb2af5cf900357d0cdff9563462 gcc/tree-ssa-math-opts.h c4f4a7c3982de8a83d63700eeab025e2 gcc/tree-ssa-operands.c 89fb9150ca77cb47d3eb6e508c47a938 gcc/tree-ssa-operands.h --- 86308,86314 ---- 80c9261b9586acb7b3f4dd8057e45a00 gcc/tree-ssa-loop-unswitch.c 7c5fb48d5c26a7cc6cc1328519686513 gcc/tree-ssa-loop.c e7b45902d3db8fd8ee5db0a06d9ebd6a gcc/tree-ssa-loop.h ! 49535e84dc43edc22b7eb241cbb11c3d gcc/tree-ssa-math-opts.c 21767eb2af5cf900357d0cdff9563462 gcc/tree-ssa-math-opts.h c4f4a7c3982de8a83d63700eeab025e2 gcc/tree-ssa-operands.c 89fb9150ca77cb47d3eb6e508c47a938 gcc/tree-ssa-operands.h *************** aca824b1c600ea02a32079f9880c7dea gcc/tr *** 86007,86020 **** 14975f2fbf60664af2dc43d15b308760 gcc/tree-ssa-pre.c 53216871795caf5a9e7fc4db4952b4cf gcc/tree-ssa-propagate.c 2f608b017c74261fb20e2c50494fd211 gcc/tree-ssa-propagate.h ! eee92cf1f06ab8481d88af258f022f9d gcc/tree-ssa-reassoc.c 4f7d545bd96bf81d7343beee53323b74 gcc/tree-ssa-reassoc.h ! 4950a1f43992a5da4cf68d70522c8fb9 gcc/tree-ssa-sccvn.c cbdcf02ee4848c736cf8a9fee3c78084 gcc/tree-ssa-sccvn.h 654628a1f0f77b863091072217fd81f1 gcc/tree-ssa-scopedtables.c 89f4a37820db62debf8e9c7547c734db gcc/tree-ssa-scopedtables.h ! 88ea1b186fca75987e9c87011bdc67e1 gcc/tree-ssa-sink.c ! dd6a2364f5f12e2e98ceb10340828c81 gcc/tree-ssa-strlen.c 07cd4ed8db0b69a9df3f67a6c078ee8d gcc/tree-ssa-strlen.h 9fb3a1e33afb337d2a7ba2fc50492ee3 gcc/tree-ssa-structalias.c 226048531a518fe848311ca013413b8d gcc/tree-ssa-tail-merge.c --- 86317,86330 ---- 14975f2fbf60664af2dc43d15b308760 gcc/tree-ssa-pre.c 53216871795caf5a9e7fc4db4952b4cf gcc/tree-ssa-propagate.c 2f608b017c74261fb20e2c50494fd211 gcc/tree-ssa-propagate.h ! 195680d13dd61ce280c58ecc4cb79f78 gcc/tree-ssa-reassoc.c 4f7d545bd96bf81d7343beee53323b74 gcc/tree-ssa-reassoc.h ! c70a726c1b1a70e7d6dde2a0f8c7a841 gcc/tree-ssa-sccvn.c cbdcf02ee4848c736cf8a9fee3c78084 gcc/tree-ssa-sccvn.h 654628a1f0f77b863091072217fd81f1 gcc/tree-ssa-scopedtables.c 89f4a37820db62debf8e9c7547c734db gcc/tree-ssa-scopedtables.h ! 790c1b8ddfefcb28fa83b8c8da6711c8 gcc/tree-ssa-sink.c ! 2a74814d76e466173dbdd4a59430aeb5 gcc/tree-ssa-strlen.c 07cd4ed8db0b69a9df3f67a6c078ee8d gcc/tree-ssa-strlen.h 9fb3a1e33afb337d2a7ba2fc50492ee3 gcc/tree-ssa-structalias.c 226048531a518fe848311ca013413b8d gcc/tree-ssa-tail-merge.c *************** b252a171d500e0cab975d3ee869ac82d gcc/tr *** 86027,86033 **** 7bc29409f7411f4024d12d0d0ac494ad gcc/tree-ssa-threadupdate.h f8386c0188448d8e4805f34fc0e485b3 gcc/tree-ssa-uncprop.c ea574c34b2c417a9766c17108b7e8dbf gcc/tree-ssa-uninit.c ! 29bb73fc2a8d417d652e5e3951bd183a gcc/tree-ssa.c b1739bf5d288192714af8e0c8b1c1e7d gcc/tree-ssa.h e61b4c021883038ea2d1201943d95548 gcc/tree-ssanames.c 5f0d001d3a6ba13a46a13e9ddf70fd64 gcc/tree-ssanames.h --- 86337,86343 ---- 7bc29409f7411f4024d12d0d0ac494ad gcc/tree-ssa-threadupdate.h f8386c0188448d8e4805f34fc0e485b3 gcc/tree-ssa-uncprop.c ea574c34b2c417a9766c17108b7e8dbf gcc/tree-ssa-uninit.c ! 0ebe7ed201fdfab089f555ee9da5b365 gcc/tree-ssa.c b1739bf5d288192714af8e0c8b1c1e7d gcc/tree-ssa.h e61b4c021883038ea2d1201943d95548 gcc/tree-ssanames.c 5f0d001d3a6ba13a46a13e9ddf70fd64 gcc/tree-ssanames.h *************** e61b4c021883038ea2d1201943d95548 gcc/tr *** 86041,86062 **** 4af837819cb8ea23c7b76ee276d8c81c gcc/tree-switch-conversion.h 749044dc570d709e923db8e1de207a10 gcc/tree-tailcall.c 9255abeccc3056f1b1dec591b5f7b8be gcc/tree-vect-data-refs.c ! 1ebc96a1f1b17e2d4917ee7d5f298d55 gcc/tree-vect-generic.c faa5329b1f390b639f568c946e5a7777 gcc/tree-vect-loop-manip.c ! 242637c341c0caf2914dc3bcb4bd49d4 gcc/tree-vect-loop.c ! acca60fc389457619cfc622078ceff30 gcc/tree-vect-patterns.c d20a5aa2757fc39d3413e3c933b5a72c gcc/tree-vect-slp-patterns.c ! 8ca7395eca12fec080251f1f107d9ed6 gcc/tree-vect-slp.c ! 009c29bf1d3888a29458c28ac5c11e99 gcc/tree-vect-stmts.c f6bd437c971fbfa030e5a50db314eb6d gcc/tree-vector-builder.c ab254195b6cc59013f830527799845a1 gcc/tree-vector-builder.h a81602a0b8310bde0b9239772d873f96 gcc/tree-vectorizer.c 792136b23c7db03363719c735c0ee4d4 gcc/tree-vectorizer.h b54ce4bde08399c6f5c90b9f9a513261 gcc/tree-vrp.c 8b2b735df1dd01f7b24caa58f59891c7 gcc/tree-vrp.h ! 0adc6587548100af57ad30b73ca05895 gcc/tree.c 54bdda1062541e94a710f93dc39c2732 gcc/tree.def ! 979c1c60ea69e2a2957e90be2a76611e gcc/tree.h f5d9f8fed65a9d8d94c3bc3a54d17175 gcc/treestruct.def 29d87aedf6eb8f5f9b858b6ce49f18ba gcc/tristate.cc 0462624e1a963d1b936e36b375115848 gcc/tristate.h --- 86351,86372 ---- 4af837819cb8ea23c7b76ee276d8c81c gcc/tree-switch-conversion.h 749044dc570d709e923db8e1de207a10 gcc/tree-tailcall.c 9255abeccc3056f1b1dec591b5f7b8be gcc/tree-vect-data-refs.c ! fa3d1b7ce69a8d17ed7bc454487932da gcc/tree-vect-generic.c faa5329b1f390b639f568c946e5a7777 gcc/tree-vect-loop-manip.c ! a395535355e0cfda3f747375413325a7 gcc/tree-vect-loop.c ! 203988e6abb4803e9aaebad41e562ada gcc/tree-vect-patterns.c d20a5aa2757fc39d3413e3c933b5a72c gcc/tree-vect-slp-patterns.c ! 651826aa7fb759a2afbbaf965da09c94 gcc/tree-vect-slp.c ! 22bcf7fc4bcb86b28aac757c9aabe029 gcc/tree-vect-stmts.c f6bd437c971fbfa030e5a50db314eb6d gcc/tree-vector-builder.c ab254195b6cc59013f830527799845a1 gcc/tree-vector-builder.h a81602a0b8310bde0b9239772d873f96 gcc/tree-vectorizer.c 792136b23c7db03363719c735c0ee4d4 gcc/tree-vectorizer.h b54ce4bde08399c6f5c90b9f9a513261 gcc/tree-vrp.c 8b2b735df1dd01f7b24caa58f59891c7 gcc/tree-vrp.h ! 2783c26b54321979fd4c3f1132dc4010 gcc/tree.c 54bdda1062541e94a710f93dc39c2732 gcc/tree.def ! a19c8f255b245f3003488a0502147b24 gcc/tree.h f5d9f8fed65a9d8d94c3bc3a54d17175 gcc/treestruct.def 29d87aedf6eb8f5f9b858b6ce49f18ba gcc/tristate.cc 0462624e1a963d1b936e36b375115848 gcc/tristate.h *************** c71a123f0c3811bd59554fb1ad3c863e gcc/ub *** 86071,86077 **** 20c6e75500616d21c9936946caddc196 gcc/unique-ptr-tests.cc 9f40370f290cb66e11bbd1a3249892a7 gcc/valtrack.c e9a5a2bcf328bb2c2dbec4ecfd97885e gcc/valtrack.h ! 0195b138ae357db0146d1d1c4542e946 gcc/value-prof.c 70a81436a47247d33da6b1e9538938e3 gcc/value-prof.h caeec7cd819a00f5cf83cd1c83a1913b gcc/value-query.cc edd2102162203ffa195120a8bbef433c gcc/value-query.h --- 86381,86387 ---- 20c6e75500616d21c9936946caddc196 gcc/unique-ptr-tests.cc 9f40370f290cb66e11bbd1a3249892a7 gcc/valtrack.c e9a5a2bcf328bb2c2dbec4ecfd97885e gcc/valtrack.h ! cb06809d168b36aea2dadb6ed47049e8 gcc/value-prof.c 70a81436a47247d33da6b1e9538938e3 gcc/value-prof.h caeec7cd819a00f5cf83cd1c83a1913b gcc/value-query.cc edd2102162203ffa195120a8bbef433c gcc/value-query.h *************** b570e943102175a39a612c7e13a38a2a gcc/va *** 86080,86086 **** e4d9d9cdb525e7d4d2d226084ad63a4a gcc/value-range.cc 7b1ab74e3c70cb1e22679b101181c1ea gcc/value-range.h b4a721a0d586edfb07a7dfe2a28a2e57 gcc/var-tracking.c ! 0ba7005a97ed487b4279e905a00e533d gcc/varasm.c b8d6bbc9c059388ffa49a3df1eeeb2aa gcc/varasm.h 454e8d39b138d6457d65bb6ea63fc17c gcc/varpool.c 55d5e60e44e9f699246223cdcfc9fd2c gcc/vec-perm-indices.c --- 86390,86396 ---- e4d9d9cdb525e7d4d2d226084ad63a4a gcc/value-range.cc 7b1ab74e3c70cb1e22679b101181c1ea gcc/value-range.h b4a721a0d586edfb07a7dfe2a28a2e57 gcc/var-tracking.c ! 5bac24280d14f3b71b3fe442797293c8 gcc/varasm.c b8d6bbc9c059388ffa49a3df1eeeb2aa gcc/varasm.h 454e8d39b138d6457d65bb6ea63fc17c gcc/varpool.c 55d5e60e44e9f699246223cdcfc9fd2c gcc/vec-perm-indices.c *************** a5ff571a86711f1889f6148b6f0a1a72 gcc/vt *** 86100,86115 **** b35c7bd9acfca64983cd187331ce7fc6 gcc/wide-int-bitmask.h 8d3319eefa4768131dfef66304346db8 gcc/wide-int-print.cc 010cd322521c1ee0542f4081fab7aaf6 gcc/wide-int-print.h ! b7defe2c7e4731284f747aa156bda45a gcc/wide-int.cc ! fe759b1aa00610d99f1520cfe196ce92 gcc/wide-int.h 3fbc3ce873dd1439e18734542a1cd26e gcc/xcoff.h 5a99ef1e1f569bf6e04aebf72d4afad4 gcc/xcoffout.c b683ffab756b05a88907135f72dec974 gcc/xcoffout.h ! 2985e36c2600337bbde4afeba4e536a6 gnattools/ChangeLog aaa671ca98fa9f94bfedd0ab395c5505 gnattools/Makefile.in ! 8385a4d775aa1b9949c1f88488491c86 gnattools/configure ! 1e063bb0b806e41cc0ed23d1b7047746 gnattools/configure.ac ! c4f96c1af9fbd72d1893af0e8ee88f54 gotools/ChangeLog 6f7b730e8dfbdff92349c010bb18cf00 gotools/Makefile.am 040d059ae30c619fdd918cd30bfbfae4 gotools/Makefile.in 7e23031e2e274aaa07b61c1e8f18dc99 gotools/README --- 86410,86425 ---- b35c7bd9acfca64983cd187331ce7fc6 gcc/wide-int-bitmask.h 8d3319eefa4768131dfef66304346db8 gcc/wide-int-print.cc 010cd322521c1ee0542f4081fab7aaf6 gcc/wide-int-print.h ! 2124eec1dfdfe903e5f9b8b957b62d76 gcc/wide-int.cc ! 3f7c57c8afe9673aff295ccc58ea0024 gcc/wide-int.h 3fbc3ce873dd1439e18734542a1cd26e gcc/xcoff.h 5a99ef1e1f569bf6e04aebf72d4afad4 gcc/xcoffout.c b683ffab756b05a88907135f72dec974 gcc/xcoffout.h ! f0c70c6b8982a9bb8589209b5531210c gnattools/ChangeLog aaa671ca98fa9f94bfedd0ab395c5505 gnattools/Makefile.in ! 612bff48e9d0bfce4a8a8b2ce0e136ae gnattools/configure ! 5904825aa8ada9f931733a205c8ed847 gnattools/configure.ac ! 5ba578a6ea80c04b3bd4005daee93f5f gotools/ChangeLog 6f7b730e8dfbdff92349c010bb18cf00 gotools/Makefile.am 040d059ae30c619fdd918cd30bfbfae4 gotools/Makefile.in 7e23031e2e274aaa07b61c1e8f18dc99 gotools/README *************** c4e8176c1964a5ebe0a55900f2141299 gotool *** 86120,86126 **** eb2aeb3a6cffe7b26a8f1c8a2da23dcd gotools/gofmt.1 59530bdf33659b29e73d4adb9f9f6552 include/COPYING d32239bcb673463ab874e80d47fae504 include/COPYING3 ! d73a46aa8d4299508a777584456b6e44 include/ChangeLog 4263432a72ff47ed8bf420208ee7eea5 include/ChangeLog-9103 a43d76108493b20da790f953f829c6a5 include/ChangeLog.jit 550446a6d9ed6d7ecce30d964b346154 include/ansidecl.h --- 86430,86436 ---- eb2aeb3a6cffe7b26a8f1c8a2da23dcd gotools/gofmt.1 59530bdf33659b29e73d4adb9f9f6552 include/COPYING d32239bcb673463ab874e80d47fae504 include/COPYING3 ! b659f105ecd44a8ad0d1977ee30fa0cd include/ChangeLog 4263432a72ff47ed8bf420208ee7eea5 include/ChangeLog-9103 a43d76108493b20da790f953f829c6a5 include/ChangeLog.jit 550446a6d9ed6d7ecce30d964b346154 include/ansidecl.h *************** e58c74ae29d8b45747b53a32b29ba5af includ *** 86167,86173 **** a19eadb3ab028fbbb684ab26b212fe84 include/xregex2.h 05cc8ec924c7145a48d1d059c0b58df2 include/xtensa-config.h 361482dd6b5b5eb7090fff3986fba68a install-sh ! 0cc3dde214d3eb99cf3b9c54dbbcff27 intl/ChangeLog ad7ef2b19b44e4d5518287805d6ded02 intl/Makefile.in 6ec998bb4716c744bf8185e607f69301 intl/README 76ca170a525d5b84d90f0478fe788931 intl/VERSION --- 86477,86483 ---- a19eadb3ab028fbbb684ab26b212fe84 include/xregex2.h 05cc8ec924c7145a48d1d059c0b58df2 include/xtensa-config.h 361482dd6b5b5eb7090fff3986fba68a install-sh ! ea4d75c7a75a5a8692c4c19bc015bf2c intl/ChangeLog ad7ef2b19b44e4d5518287805d6ded02 intl/Makefile.in 6ec998bb4716c744bf8185e607f69301 intl/README 76ca170a525d5b84d90f0478fe788931 intl/VERSION *************** ec38b8a64a735196854a8f7d76b79a78 intl/p *** 86210,86221 **** b4758a0194e3e41362b939911472ce62 intl/relocatable.c bedade7bcfc3bc5eb09a2c6844f637f3 intl/relocatable.h 43f287d082528203fc85c1d2d81bf30d intl/textdomain.c ! bd5afc89cd9c4aed2a3b07f7c35b3ebe libada/ChangeLog 84bf37346561835ab6fb79f3753dbf61 libada/Makefile.in c851e0f50ad5e334f1cdf3b8c0bae3e2 libada/configure ad0c7ec998fb800e00bc645459274350 libada/configure.ac 46d3fe6da7a771cc2d5420c4137a6861 libatomic/.gitignore ! c5486c19736406439617d61bf5149484 libatomic/ChangeLog d910fab8524c7ab8918b567931a14133 libatomic/Makefile.am 8f480fdd121c7e44c048fec76c598b1f libatomic/Makefile.in 879263fa8d462b018b9a483d6ac68e45 libatomic/acinclude.m4 --- 86520,86531 ---- b4758a0194e3e41362b939911472ce62 intl/relocatable.c bedade7bcfc3bc5eb09a2c6844f637f3 intl/relocatable.h 43f287d082528203fc85c1d2d81bf30d intl/textdomain.c ! fe258fe4e62aa683f6287039d67947d0 libada/ChangeLog 84bf37346561835ab6fb79f3753dbf61 libada/Makefile.in c851e0f50ad5e334f1cdf3b8c0bae3e2 libada/configure ad0c7ec998fb800e00bc645459274350 libada/configure.ac 46d3fe6da7a771cc2d5420c4137a6861 libatomic/.gitignore ! eebbe627fd1aeab0e90eb3af5d784bef libatomic/ChangeLog d910fab8524c7ab8918b567931a14133 libatomic/Makefile.am 8f480fdd121c7e44c048fec76c598b1f libatomic/Makefile.in 879263fa8d462b018b9a483d6ac68e45 libatomic/acinclude.m4 *************** e5afe77110b6d4c991ded92ab19ff55f libato *** 86240,86250 **** d04f86e742ddfedb71fb4a3d0ceede39 libatomic/config/powerpc/host-config.h ff19d9adec40aace68f117295ca8e962 libatomic/config/rtems/host-config.h d162950eb155d3f7b71fa7fd06738e07 libatomic/config/rtems/lock.c dde9dd7b7e923b04f6925736c96905aa libatomic/config/s390/exch_n.c ed3d69739cb2f35407547229f0393f92 libatomic/config/t-aix ad77cb9ee31bb899efbe3bbf69552fd8 libatomic/config/x86/fenv.c ae940a7b89ae9316379daa6d06c11015 libatomic/config/x86/host-config.h ! 516566ff2313eff082a068934d1ddd1c libatomic/config/x86/init.c 1a3caf1a22e09fc89766313026e541e3 libatomic/configure 009993f4c4928e75d0ab6d3d73aab846 libatomic/configure.ac 87f2fe7e2bce59d09f679252f292d515 libatomic/configure.tgt --- 86550,86563 ---- d04f86e742ddfedb71fb4a3d0ceede39 libatomic/config/powerpc/host-config.h ff19d9adec40aace68f117295ca8e962 libatomic/config/rtems/host-config.h d162950eb155d3f7b71fa7fd06738e07 libatomic/config/rtems/lock.c + a8478ee8d2cd46e9a043499fcd5a5000 libatomic/config/s390/cas_n.c dde9dd7b7e923b04f6925736c96905aa libatomic/config/s390/exch_n.c + a5662851f79984e0d6f62988fd02f2e1 libatomic/config/s390/load_n.c + 49767832346a46e0dba239734437126c libatomic/config/s390/store_n.c ed3d69739cb2f35407547229f0393f92 libatomic/config/t-aix ad77cb9ee31bb899efbe3bbf69552fd8 libatomic/config/x86/fenv.c ae940a7b89ae9316379daa6d06c11015 libatomic/config/x86/host-config.h ! b0b763dbb2ecced5d84e7a614d80d1c6 libatomic/config/x86/init.c 1a3caf1a22e09fc89766313026e541e3 libatomic/configure 009993f4c4928e75d0ab6d3d73aab846 libatomic/configure.ac 87f2fe7e2bce59d09f679252f292d515 libatomic/configure.tgt *************** c03a072efac9b30f8f8429ac52fd246b libato *** 86305,86311 **** 8a7308fda7ed1543cb9e3be0f8e47bce libatomic/testsuite/libatomic.c/atomic-store-5.c 40618200985a15bcba64f871863da498 libatomic/testsuite/libatomic.c/c.exp 97b0c9cdfcb733664bdf4efe0f5dc449 libatomic/testsuite/libatomic.c/generic-2.c ! af231953141eb286b0b8dd94a2bd4dae libbacktrace/ChangeLog eb3a88b53140eb234a99a4b3a55e56bf libbacktrace/ChangeLog.jit e2733ae499e3face714f963e5163ef66 libbacktrace/Makefile.am f5ab4b9f2111a21142693282701ca531 libbacktrace/Makefile.in --- 86618,86624 ---- 8a7308fda7ed1543cb9e3be0f8e47bce libatomic/testsuite/libatomic.c/atomic-store-5.c 40618200985a15bcba64f871863da498 libatomic/testsuite/libatomic.c/c.exp 97b0c9cdfcb733664bdf4efe0f5dc449 libatomic/testsuite/libatomic.c/generic-2.c ! aa9f6ccd0567112272550a637344eae7 libbacktrace/ChangeLog eb3a88b53140eb234a99a4b3a55e56bf libbacktrace/ChangeLog.jit e2733ae499e3face714f963e5163ef66 libbacktrace/Makefile.am f5ab4b9f2111a21142693282701ca531 libbacktrace/Makefile.in *************** a1a0a081f4a744549061bcb3714c3dad libbac *** 86353,86359 **** 45e5c08b384a557511236842576c4857 libbacktrace/xcoff.c 16559a9b859947ea3f119724e6184a22 libbacktrace/xztest.c b4592ed6fe2affe39672dd913198f71a libbacktrace/ztest.c ! 6075b1d96c0ee6c5bd58b9e0a33b6398 libcc1/ChangeLog 28f4a58e6f8e07b09cd25b0a1ad72059 libcc1/Makefile.am a02f5370fb2d8bff9e13e39745a680ca libcc1/Makefile.in b39668f1b706dbfe7203b3cfa277b792 libcc1/aclocal.m4 --- 86666,86672 ---- 45e5c08b384a557511236842576c4857 libbacktrace/xcoff.c 16559a9b859947ea3f119724e6184a22 libbacktrace/xztest.c b4592ed6fe2affe39672dd913198f71a libbacktrace/ztest.c ! e39eb398206b0883783c76644c5b882d libcc1/ChangeLog 28f4a58e6f8e07b09cd25b0a1ad72059 libcc1/Makefile.am a02f5370fb2d8bff9e13e39745a680ca libcc1/Makefile.in b39668f1b706dbfe7203b3cfa277b792 libcc1/aclocal.m4 *************** d7011f3caeeeb336058853a2a6ae7759 libcc1 *** 86385,86391 **** 8e32b4f309146e8842db7a077d77be28 libcody/CMakeLists.txt c96a56ec7f0400e30e99a9aa445e0425 libcody/CODING.md b5243c8c76fc965a409394a30679e613 libcody/CONTRIB.md ! 73836cc08c51d197e88a2b6679e9a291 libcody/ChangeLog 86d3f3a95c324c9479bd8986968f4327 libcody/LICENSE 3d4a4494284f7f6d717caade46832e87 libcody/Makefile.in ca1c6fe3df5427016005ce753c73d454 libcody/README.md --- 86698,86704 ---- 8e32b4f309146e8842db7a077d77be28 libcody/CMakeLists.txt c96a56ec7f0400e30e99a9aa445e0425 libcody/CODING.md b5243c8c76fc965a409394a30679e613 libcody/CONTRIB.md ! 2306704c50aae3a46662fb6e14ccbd25 libcody/ChangeLog 86d3f3a95c324c9479bd8986968f4327 libcody/LICENSE 3d4a4494284f7f6d717caade46832e87 libcody/Makefile.in ca1c6fe3df5427016005ce753c73d454 libcody/README.md *************** a1b928d660ba86d7133b5ee270e45bcc libcod *** 86404,86410 **** 6419dfc879387358e95288142e569914 libcody/packet.cc 688ece05c8b9d378b3df186808162e76 libcody/resolver.cc b1f3850fc5ac62999d1e124aa6f76531 libcody/server.cc ! e9528382b04de8e8b2951f52942d2c51 libcpp/ChangeLog 2bd831b17997584e38305782cebe6948 libcpp/ChangeLog.jit 93f0c1663de0a7f51de84bcf52cf415a libcpp/Makefile.in 9d15bb14e9ac1a74366e673ea260722e libcpp/aclocal.m4 --- 86717,86723 ---- 6419dfc879387358e95288142e569914 libcody/packet.cc 688ece05c8b9d378b3df186808162e76 libcody/resolver.cc b1f3850fc5ac62999d1e124aa6f76531 libcody/server.cc ! f86437d681fca5dc211c16107b247e0f libcpp/ChangeLog 2bd831b17997584e38305782cebe6948 libcpp/ChangeLog.jit 93f0c1663de0a7f51de84bcf52cf415a libcpp/Makefile.in 9d15bb14e9ac1a74366e673ea260722e libcpp/aclocal.m4 *************** aa753fa10493688739205dff0d332e7b libcpp *** 86412,86420 **** a82e3eb1d8561484e9ba80fe49aaa3d2 libcpp/config.in d8b25b32c46363f3c8d928ff9659642f libcpp/configure ba01f7813ce714bfa7427ced165ee873 libcpp/configure.ac ! daafcf78bfd2e318f5c757e3d61bd1ed libcpp/directives.c a66a22409e4a783d7044f888621c8bc2 libcpp/errors.c ! 663c725deffa3329ae6a2554c1e7e64f libcpp/expr.c 317ee9a4d4fd5e7d914307f5ba7151ff libcpp/files.c d5218c1d5fc8cde726dc168fafef10a7 libcpp/generated_cpp_wcwidth.h 0b7cb9146c5ba48f860378f633064ffc libcpp/identifiers.c --- 86725,86733 ---- a82e3eb1d8561484e9ba80fe49aaa3d2 libcpp/config.in d8b25b32c46363f3c8d928ff9659642f libcpp/configure ba01f7813ce714bfa7427ced165ee873 libcpp/configure.ac ! 285fe80b6fe0aa36c70bb91ec075e270 libcpp/directives.c a66a22409e4a783d7044f888621c8bc2 libcpp/errors.c ! 17086cc131942082bc7a791c97d65e8d libcpp/expr.c 317ee9a4d4fd5e7d914307f5ba7151ff libcpp/files.c d5218c1d5fc8cde726dc168fafef10a7 libcpp/generated_cpp_wcwidth.h 0b7cb9146c5ba48f860378f633064ffc libcpp/identifiers.c *************** bc0fe66954c989fdf43e0bbe096954b5 libcpp *** 86431,86437 **** a8704715c342e0c595438ec99b83299f libcpp/makeucnid.c 016253cecf75a29fd5f5075b866cca1f libcpp/mkdeps.c 944a753ccf1b023047aaed1f1f362bec libcpp/pch.c ! 66d04d8bc89629cd6ca2820ce59032c3 libcpp/po/ChangeLog 236a7764238de3aa208e3a857c56f478 libcpp/po/be.gmo ede9d45d28b1c1cb82c92ff039a45d66 libcpp/po/be.po a64f63d1193f804860308855177c5f6a libcpp/po/ca.gmo --- 86744,86750 ---- a8704715c342e0c595438ec99b83299f libcpp/makeucnid.c 016253cecf75a29fd5f5075b866cca1f libcpp/mkdeps.c 944a753ccf1b023047aaed1f1f362bec libcpp/pch.c ! c0df2beafed6a11a810da02ec25b28ce libcpp/po/ChangeLog 236a7764238de3aa208e3a857c56f478 libcpp/po/be.gmo ede9d45d28b1c1cb82c92ff039a45d66 libcpp/po/be.po a64f63d1193f804860308855177c5f6a libcpp/po/ca.gmo *************** bcbe0b107dacf31d1cf1ca1261d43f1b libcpp *** 86481,86487 **** 56610cf3fd7d260581ebd54124f17a78 libcpp/ucnid.h 89258efea2d9a909c625ed72b6acbd8c libcpp/ucnid.tab a6c2b3de06c7424706b16f4c206396a1 libdecnumber/.gitignore ! 7c4a46981e1b31d34713e935baf4a96d libdecnumber/ChangeLog 2bd831b17997584e38305782cebe6948 libdecnumber/ChangeLog.jit 1eef4e8e73dcf150b06bd03f9621374a libdecnumber/Makefile.in 2a70099a79e40a57a666d5430a5e2529 libdecnumber/aclocal.m4 --- 86794,86800 ---- 56610cf3fd7d260581ebd54124f17a78 libcpp/ucnid.h 89258efea2d9a909c625ed72b6acbd8c libcpp/ucnid.tab a6c2b3de06c7424706b16f4c206396a1 libdecnumber/.gitignore ! f794296cfb4f466a29f5c05313a9a5f4 libdecnumber/ChangeLog 2bd831b17997584e38305782cebe6948 libdecnumber/ChangeLog.jit 1eef4e8e73dcf150b06bd03f9621374a libdecnumber/Makefile.in 2a70099a79e40a57a666d5430a5e2529 libdecnumber/aclocal.m4 *************** a97c47969dfc92a7666dfe3c2e1e1448 libdec *** 86544,86550 **** 7557e8f40c659cd1bb5f753e31c6a143 libdecnumber/dpd/decimal64.c 8bd3494633aae56ffed31440b3d78709 libdecnumber/dpd/decimal64.h 0f6db29710e7075c2fd62bc4478b3b8d libdecnumber/dpd/decimal64Symbols.h ! 3555496716856585bd114ba7a86be457 libffi/ChangeLog ba66fc19311348d373ec271be939a659 libffi/ChangeLog.libffi fbbc216bc25d759a72ea3e6d734af56b libffi/ChangeLog.libgcj d946d2b97454ad50a1dbfbf48923c5be libffi/ChangeLog.v1 --- 86857,86863 ---- 7557e8f40c659cd1bb5f753e31c6a143 libdecnumber/dpd/decimal64.c 8bd3494633aae56ffed31440b3d78709 libdecnumber/dpd/decimal64.h 0f6db29710e7075c2fd62bc4478b3b8d libdecnumber/dpd/decimal64Symbols.h ! b359a38fe32eb2709b6f27b1207dd590 libffi/ChangeLog ba66fc19311348d373ec271be939a659 libffi/ChangeLog.libffi fbbc216bc25d759a72ea3e6d734af56b libffi/ChangeLog.libgcj d946d2b97454ad50a1dbfbf48923c5be libffi/ChangeLog.v1 *************** d47c79b281339983862a8e52d8c73f0f libffi *** 86905,86913 **** 291be426192f460f6a07dfe1c96ab094 libffi/testsuite/libffi.special/special.exp 93fc3ea311b79f64004992807ce75d1e libffi/testsuite/libffi.special/unwindtest.cc 185d0795017fbbe253a13db8e34085f9 libffi/testsuite/libffi.special/unwindtest_ffi_call.cc ! 6eb0d5982b6db18571060241a0f5b0a9 libgcc/ChangeLog 90ca8ec10aa72a56ea751ad2cb5c131a libgcc/Makefile.in ! baa9afece0e8bacf77a73da979ef7ffd libgcc/config.host 312fccd8251056a36e26bad71f9cfaa2 libgcc/config.in 5d16c02b68779d0e7fb45016d4ecb4ac libgcc/config/aarch64/aarch64-unwind.h 646d68758bd6b30ca567cbceb14dfb6a libgcc/config/aarch64/crtfastmath.c --- 87218,87226 ---- 291be426192f460f6a07dfe1c96ab094 libffi/testsuite/libffi.special/special.exp 93fc3ea311b79f64004992807ce75d1e libffi/testsuite/libffi.special/unwindtest.cc 185d0795017fbbe253a13db8e34085f9 libffi/testsuite/libffi.special/unwindtest_ffi_call.cc ! bff2eb5d0a89cb50526f322672f82521 libgcc/ChangeLog 90ca8ec10aa72a56ea751ad2cb5c131a libgcc/Makefile.in ! 93556a381ebbadb36302bee1564ee40c libgcc/config.host 312fccd8251056a36e26bad71f9cfaa2 libgcc/config.in 5d16c02b68779d0e7fb45016d4ecb4ac libgcc/config/aarch64/aarch64-unwind.h 646d68758bd6b30ca567cbceb14dfb6a libgcc/config/aarch64/crtfastmath.c *************** cfe47d82e0550bbf47dc813dc9bbe0e0 libgcc *** 86917,86928 **** d8a39f13120bd3c04e6a660de012539c libgcc/config/aarch64/libgcc-softfp.ver 988f848a48f8b5e837cc00431d88c52f libgcc/config/aarch64/linux-unwind.h 40132133c0c5920f1fbe0e2f68fe1a20 libgcc/config/aarch64/lse-init.c ! 3dbd9bbf24aab9a0ce5e58a017487e43 libgcc/config/aarch64/lse.S b4ebe34df7eb6f156fa0092446240683 libgcc/config/aarch64/sfp-exceptions.c 5686e75a58d21cab99056d441253793a libgcc/config/aarch64/sfp-machine.h 0fed261daa40e6ac5e19e0418624df97 libgcc/config/aarch64/sync-cache.c 46ad32ea4432c33cc66b5c506f256f85 libgcc/config/aarch64/t-aarch64 ! a21eb9a6807f6899bae0eba1b99913d8 libgcc/config/aarch64/t-lse 2df62f8f58c3b33868deef587589dd2d libgcc/config/aarch64/t-softfp cf8972e02bca2f3487befef7eb41b710 libgcc/config/aarch64/value-unwind.h 4298c844b474b4c6e1fd422499d78722 libgcc/config/alpha/crtfastmath.c --- 87230,87241 ---- d8a39f13120bd3c04e6a660de012539c libgcc/config/aarch64/libgcc-softfp.ver 988f848a48f8b5e837cc00431d88c52f libgcc/config/aarch64/linux-unwind.h 40132133c0c5920f1fbe0e2f68fe1a20 libgcc/config/aarch64/lse-init.c ! 3249f3907d28a93bab13505596f1a45c libgcc/config/aarch64/lse.S b4ebe34df7eb6f156fa0092446240683 libgcc/config/aarch64/sfp-exceptions.c 5686e75a58d21cab99056d441253793a libgcc/config/aarch64/sfp-machine.h 0fed261daa40e6ac5e19e0418624df97 libgcc/config/aarch64/sync-cache.c 46ad32ea4432c33cc66b5c506f256f85 libgcc/config/aarch64/t-aarch64 ! 88a123d0c9ed9611199aa827ca596aa9 libgcc/config/aarch64/t-lse 2df62f8f58c3b33868deef587589dd2d libgcc/config/aarch64/t-softfp cf8972e02bca2f3487befef7eb41b710 libgcc/config/aarch64/value-unwind.h 4298c844b474b4c6e1fd422499d78722 libgcc/config/alpha/crtfastmath.c *************** f86b268e128ae9507dd4c4ab33f481bd libgcc *** 87033,87039 **** 528c00778fc721cd65682dee59c24986 libgcc/config/avr/lib1funcs.S 622f81485f02d0eac2caaafa7d3a2fd1 libgcc/config/avr/lib2-object.mk 8694b2f379782b84ed6357615cf633d2 libgcc/config/avr/lib2funcs.c ! 0463102ac73d8b70755095df6a10d30f libgcc/config/avr/libf7/ChangeLog 01d9cd125602bd97e7101818005c93ea libgcc/config/avr/libf7/asm-defs.h 0b54a2cbfebb93a4e1bddfa3600d6f0b libgcc/config/avr/libf7/f7-renames.h d2e81096820c9d7276656d444c139c73 libgcc/config/avr/libf7/f7-wraps.h --- 87346,87352 ---- 528c00778fc721cd65682dee59c24986 libgcc/config/avr/lib1funcs.S 622f81485f02d0eac2caaafa7d3a2fd1 libgcc/config/avr/lib2-object.mk 8694b2f379782b84ed6357615cf633d2 libgcc/config/avr/lib2funcs.c ! 76aaab386aa600183c3a6d05245160d4 libgcc/config/avr/libf7/ChangeLog 01d9cd125602bd97e7101818005c93ea libgcc/config/avr/libf7/asm-defs.h 0b54a2cbfebb93a4e1bddfa3600d6f0b libgcc/config/avr/libf7/f7-renames.h d2e81096820c9d7276656d444c139c73 libgcc/config/avr/libf7/f7-wraps.h *************** c0d4a5a9b2844505ec941ff60cae008f libgcc *** 87041,87047 **** bd55d461babc1d292e882d26b3147797 libgcc/config/avr/libf7/f7wraps.sh e967bbaef515b9bde9023a1a7a336849 libgcc/config/avr/libf7/libf7-array.def 5d9def53110ec07e8f29e66d593d758f libgcc/config/avr/libf7/libf7-asm-object.mk ! 987f580afc3d26e1d2f693c55f7d1572 libgcc/config/avr/libf7/libf7-asm.sx 6b4886ae302fca1fa733831066c5c830 libgcc/config/avr/libf7/libf7-c-object.mk 9e2660f882f79c124c85b8732a55464e libgcc/config/avr/libf7/libf7-common.mk d911b844dc79ba84d1e0184f8f67ed31 libgcc/config/avr/libf7/libf7-const.def --- 87354,87360 ---- bd55d461babc1d292e882d26b3147797 libgcc/config/avr/libf7/f7wraps.sh e967bbaef515b9bde9023a1a7a336849 libgcc/config/avr/libf7/libf7-array.def 5d9def53110ec07e8f29e66d593d758f libgcc/config/avr/libf7/libf7-asm-object.mk ! 291b23e34bf1ddf0e9af2a5d1c0c8bde libgcc/config/avr/libf7/libf7-asm.sx 6b4886ae302fca1fa733831066c5c830 libgcc/config/avr/libf7/libf7-c-object.mk 9e2660f882f79c124c85b8732a55464e libgcc/config/avr/libf7/libf7-common.mk d911b844dc79ba84d1e0184f8f67ed31 libgcc/config/avr/libf7/libf7-const.def *************** df9f2dd192dc7f0c2fa7379e97d7dd56 libgcc *** 87115,87121 **** 6869661ee0baed578d47394ab32af913 libgcc/config/darwin-crt-tm.c 03e941235ffae6f01e89a827a6ce2281 libgcc/config/darwin-crt3.c 3d9ace1569f13aadc86ee3608541f634 libgcc/config/darwin-unwind.ver ! 0a39ed05e14b91757915624896a5823f libgcc/config/darwin10-unwind-find-enc-func.c c71a778a00e36dfcea7f846c3f944d73 libgcc/config/epiphany/crti.S 81ae5aa8ec7128f805369eae26a9ca51 libgcc/config/epiphany/crtint.S 66f1c169dbd8ad3adee5b4141420edf6 libgcc/config/epiphany/crtm1reg-r43.S --- 87428,87434 ---- 6869661ee0baed578d47394ab32af913 libgcc/config/darwin-crt-tm.c 03e941235ffae6f01e89a827a6ce2281 libgcc/config/darwin-crt3.c 3d9ace1569f13aadc86ee3608541f634 libgcc/config/darwin-unwind.ver ! 416f37158b8f19edbb3c495781577dd5 libgcc/config/darwin10-unwind-find-enc-func.c c71a778a00e36dfcea7f846c3f944d73 libgcc/config/epiphany/crti.S 81ae5aa8ec7128f805369eae26a9ca51 libgcc/config/epiphany/crtint.S 66f1c169dbd8ad3adee5b4141420edf6 libgcc/config/epiphany/crtm1reg-r43.S *************** a5336bdb818cef70b030985f1ecd71d2 libgcc *** 87324,87330 **** 106eb3ec1043b9c1da426cc9d86d298d libgcc/config/ia64/vms-unwind.h 3111db86980b8c9207be8642a36d5dd2 libgcc/config/iq2000/lib2funcs.c 102f7dad8ad6b54434a1b8313d1e42c4 libgcc/config/iq2000/t-iq2000 ! d45ed72194da04b134152c4f522c63ed libgcc/config/libbid/ChangeLog 877df4b05d912fc2033823fa0eece3af libgcc/config/libbid/_addsub_dd.c a3d813dc882ec4c07e412c32c9b380e1 libgcc/config/libbid/_addsub_sd.c 3cd22bfaff5638bc2cb990fbc4e906cd libgcc/config/libbid/_addsub_td.c --- 87637,87643 ---- 106eb3ec1043b9c1da426cc9d86d298d libgcc/config/ia64/vms-unwind.h 3111db86980b8c9207be8642a36d5dd2 libgcc/config/iq2000/lib2funcs.c 102f7dad8ad6b54434a1b8313d1e42c4 libgcc/config/iq2000/t-iq2000 ! d781b2eb9746a66453f9924c4be916f2 libgcc/config/libbid/ChangeLog 877df4b05d912fc2033823fa0eece3af libgcc/config/libbid/_addsub_dd.c a3d813dc882ec4c07e412c32c9b380e1 libgcc/config/libbid/_addsub_sd.c 3cd22bfaff5638bc2cb990fbc4e906cd libgcc/config/libbid/_addsub_td.c *************** ada9a39786da3b2e999f7440a17a1ed7 libgcc *** 88125,88132 **** 7f567bcd22705a965e07f79e8f68ebaa libgcc/config/stormy16/umodsi3.c f199b38114ce849b77b38bd475d72cff libgcc/config/t-crtfm 060a49bb5c4a53a2125123d4cbd571de libgcc/config/t-crtstuff-pic ! 06e78a9599e0fde8f283aa4d9bed8e2e libgcc/config/t-darwin f699f9e7159ba2c6033406086c5c8299 libgcc/config/t-darwin-ehs ee7ad6460936fc6f3f89ecb711376477 libgcc/config/t-dfprules d747115cbcc2bd56b6b4f73c350c2ae3 libgcc/config/t-eh-dw2-dip b9d08c1cbead9131f216accd515ec32c libgcc/config/t-fdpbit --- 88438,88448 ---- 7f567bcd22705a965e07f79e8f68ebaa libgcc/config/stormy16/umodsi3.c f199b38114ce849b77b38bd475d72cff libgcc/config/t-crtfm 060a49bb5c4a53a2125123d4cbd571de libgcc/config/t-crtstuff-pic ! fc8b2970727885119792967fb3344fda libgcc/config/t-darwin f699f9e7159ba2c6033406086c5c8299 libgcc/config/t-darwin-ehs + 5f05c653ae1e197bae3fc3fc5ca1e59d libgcc/config/t-darwin-min-1 + d8138086c2f686d6fb17804f19019954 libgcc/config/t-darwin-min-5 + 830793a6b0d554dc6c4495bc27a0c9e3 libgcc/config/t-darwin-min-8 ee7ad6460936fc6f3f89ecb711376477 libgcc/config/t-dfprules d747115cbcc2bd56b6b4f73c350c2ae3 libgcc/config/t-eh-dw2-dip b9d08c1cbead9131f216accd515ec32c libgcc/config/t-fdpbit *************** d2f04dc4b7a8d7df8c1cbc551b037ded libgcc *** 88146,88152 **** eb3161bf886026cdcf8a78cea885fdd2 libgcc/config/t-openbsd-thread 474d97884b393e08b0ce416dd09493bc libgcc/config/t-rtems bf9d89259ee614c5ffe517d943e09be5 libgcc/config/t-slibgcc ! 3ecc4173a1b262e4770c789455b2cfc9 libgcc/config/t-slibgcc-darwin 57f27c60e5d8c572d2645821ec5935e0 libgcc/config/t-slibgcc-elf-ver d6e035c76b062969d2034bfb0db3e68b libgcc/config/t-slibgcc-fuchsia 57e4154cb283fd7d9f323f5d85d534d9 libgcc/config/t-slibgcc-gld --- 88462,88468 ---- eb3161bf886026cdcf8a78cea885fdd2 libgcc/config/t-openbsd-thread 474d97884b393e08b0ce416dd09493bc libgcc/config/t-rtems bf9d89259ee614c5ffe517d943e09be5 libgcc/config/t-slibgcc ! 588d81383c65cf44cee60a4c7ff77fcb libgcc/config/t-slibgcc-darwin 57f27c60e5d8c572d2645821ec5935e0 libgcc/config/t-slibgcc-elf-ver d6e035c76b062969d2034bfb0db3e68b libgcc/config/t-slibgcc-fuchsia 57e4154cb283fd7d9f323f5d85d534d9 libgcc/config/t-slibgcc-gld *************** e67a974e1f8cb55dcc72068be10e9832 libgcc *** 88381,88387 **** 8a8461c4f8e531d7252eacf261e3799b libgcc/vtv_end_preinit.c d1bdf1e757a5a9eeb3bc447fc6938f48 libgcc/vtv_start.c f99c5f0b1f8f77dbbb1db940bb61ef02 libgcc/vtv_start_preinit.c ! 95e78facf3c971311d7c0a2b14be3033 libgfortran/ChangeLog 9aca36338382e5b4b730e7779170b24d libgfortran/ChangeLog-2002 80d3edc880c2da0b7a2beec2e2c4f774 libgfortran/ChangeLog-2003 9f0239429993a5e64ed793eb6c55a5c1 libgfortran/ChangeLog-2004 --- 88697,88703 ---- 8a8461c4f8e531d7252eacf261e3799b libgcc/vtv_end_preinit.c d1bdf1e757a5a9eeb3bc447fc6938f48 libgcc/vtv_start.c f99c5f0b1f8f77dbbb1db940bb61ef02 libgcc/vtv_start_preinit.c ! b9cecd49614c34e0d2561524255d2f3d libgfortran/ChangeLog 9aca36338382e5b4b730e7779170b24d libgfortran/ChangeLog-2002 80d3edc880c2da0b7a2beec2e2c4f774 libgfortran/ChangeLog-2003 9f0239429993a5e64ed793eb6c55a5c1 libgfortran/ChangeLog-2004 *************** caf93ff057c135366a3fabf9c1992ad9 libgo/ *** 93173,93179 **** 0b7cc30b317196a42882ace5a55527bd libgo/go/syscall/libcall_hurd.go 562e5aacf2778a3c9a00918069e43b2f libgo/go/syscall/libcall_hurd_386.go ad4306c7d52c93cc9cdfbaa2415c8ad4 libgo/go/syscall/libcall_irix.go ! 2f1987db41335974b8c0d5af17cf3895 libgo/go/syscall/libcall_linux.go 08d02e9ba31a2f132b6670d56e5f9a91 libgo/go/syscall/libcall_linux_386.go d0dfa8e45cee5defb536480f056ed447 libgo/go/syscall/libcall_linux_alpha.go 0f110f6b4b28d847963c11d0307ebbfb libgo/go/syscall/libcall_linux_amd64.go --- 93489,93495 ---- 0b7cc30b317196a42882ace5a55527bd libgo/go/syscall/libcall_hurd.go 562e5aacf2778a3c9a00918069e43b2f libgo/go/syscall/libcall_hurd_386.go ad4306c7d52c93cc9cdfbaa2415c8ad4 libgo/go/syscall/libcall_irix.go ! 40420bf875a1f378e0c79829b064df72 libgo/go/syscall/libcall_linux.go 08d02e9ba31a2f132b6670d56e5f9a91 libgo/go/syscall/libcall_linux_386.go d0dfa8e45cee5defb536480f056ed447 libgo/go/syscall/libcall_linux_alpha.go 0f110f6b4b28d847963c11d0307ebbfb libgo/go/syscall/libcall_linux_amd64.go *************** da8feb87689c14c2ade32638da912eac libgo/ *** 93763,93769 **** 9f3cbb4598995168f1b1042a587ee8e9 libgo/runtime/runtime_c.c 7e8c8817ee732c944857259927850d02 libgo/runtime/stack.c f1f0917f45d626d15a5f129fef3d81e2 libgo/runtime/yield.c ! 3ed2085cb41333632578bcadc9dc38b7 libgo/sysinfo.c 64195708a46fb2d5225149f15a8e3991 libgo/testsuite/Makefile.am a88e7b262182c586e88c9684af1ccc29 libgo/testsuite/Makefile.in 180c96a619276205ec9fc8e8217b67bd libgo/testsuite/config/default.exp --- 94079,94085 ---- 9f3cbb4598995168f1b1042a587ee8e9 libgo/runtime/runtime_c.c 7e8c8817ee732c944857259927850d02 libgo/runtime/stack.c f1f0917f45d626d15a5f129fef3d81e2 libgo/runtime/yield.c ! bbdd09eff35db84aaca212e617f7a7a5 libgo/sysinfo.c 64195708a46fb2d5225149f15a8e3991 libgo/testsuite/Makefile.am a88e7b262182c586e88c9684af1ccc29 libgo/testsuite/Makefile.in 180c96a619276205ec9fc8e8217b67bd libgo/testsuite/config/default.exp *************** e3e86019491a40bd4f45424d7ce11037 libgo/ *** 93772,93778 **** c5574d106d35be5d94e80301b0855ada libgo/testsuite/libgo-test-support.exp.in bf162aa572f7b96b25dbd2b027845d32 libgo/testsuite/libgo.testmain/testmain.exp cc9d2a0e34e31ba866a8caf9f46f48f3 libgomp/.gitattributes ! ec2a66db82d0f24a63e3418b3247e9ad libgomp/ChangeLog 0d55aa862aee66efdc5f8d62c94ff8fb libgomp/ChangeLog.graphite 775674136485d314e8cfa08ec26c4fc4 libgomp/Makefile.am cc0f858ff11f575dddb9c6738a27e009 libgomp/Makefile.in --- 94088,94094 ---- c5574d106d35be5d94e80301b0855ada libgo/testsuite/libgo-test-support.exp.in bf162aa572f7b96b25dbd2b027845d32 libgo/testsuite/libgo.testmain/testmain.exp cc9d2a0e34e31ba866a8caf9f46f48f3 libgomp/.gitattributes ! 1ffbbc864d940ea48e2573fd8a0457a7 libgomp/ChangeLog 0d55aa862aee66efdc5f8d62c94ff8fb libgomp/ChangeLog.graphite 775674136485d314e8cfa08ec26c4fc4 libgomp/Makefile.am cc0f858ff11f575dddb9c6738a27e009 libgomp/Makefile.in *************** de1c2d0c718443d5a90b60ea327939da libgom *** 93903,93912 **** a9602ab9ee9f89734074f35456117573 libgomp/libgomp-plugin.c 465ccd19218bce34f9416c8e5367ac12 libgomp/libgomp-plugin.h aaa17bf11b59931da2d709d5a2e528a2 libgomp/libgomp.h ! 68a20844b29390c9e09e2416ac66b5b9 libgomp/libgomp.info 67964eb0101a54721e14945594dc2c5a libgomp/libgomp.map 8b2aa50aecad82171348a6918309afd6 libgomp/libgomp.spec.in ! 1207eb54aa3a040f8b931b86d5d21b1d libgomp/libgomp.texi b474ebd58d1c5d3bcb39f0c5f2efec6a libgomp/libgomp_f.h.in 09ffcd91d661a0b21fe7c335ce09c201 libgomp/libgomp_g.h 8233367e108fccb64e978ccda1dd0951 libgomp/lock.c --- 94219,94228 ---- a9602ab9ee9f89734074f35456117573 libgomp/libgomp-plugin.c 465ccd19218bce34f9416c8e5367ac12 libgomp/libgomp-plugin.h aaa17bf11b59931da2d709d5a2e528a2 libgomp/libgomp.h ! 432d5efca3f07728384abbca918233db libgomp/libgomp.info 67964eb0101a54721e14945594dc2c5a libgomp/libgomp.map 8b2aa50aecad82171348a6918309afd6 libgomp/libgomp.spec.in ! 35bd4b0ff6c30e1469eefe3679e00b15 libgomp/libgomp.texi b474ebd58d1c5d3bcb39f0c5f2efec6a libgomp/libgomp_f.h.in 09ffcd91d661a0b21fe7c335ce09c201 libgomp/libgomp_g.h 8233367e108fccb64e978ccda1dd0951 libgomp/lock.c *************** e372584ef8304cf52e4e09a9fc05adf3 libgom *** 93944,93951 **** 954d195e8d56380488976617fde73813 libgomp/single.c e6cf92cd98976f129367e400696fabbb libgomp/splay-tree.c 48ca4acfe2742359f3e2a732ec5d92d4 libgomp/splay-tree.h ! 3671c9767a3fc1f7e8f80f6478c46c2e libgomp/target.c ! 7d9ef00b8b9879aafb854635ed8dcd09 libgomp/task.c ff8d8695435d2fd418bcc6437db02562 libgomp/taskloop.c 1d1cca28977e6aef439521c8d10eed90 libgomp/team.c 8d61131215921c894f5e0449c79c0a18 libgomp/teams.c --- 94260,94267 ---- 954d195e8d56380488976617fde73813 libgomp/single.c e6cf92cd98976f129367e400696fabbb libgomp/splay-tree.c 48ca4acfe2742359f3e2a732ec5d92d4 libgomp/splay-tree.h ! 8069e8d901e58ae167f068c77f31f8ba libgomp/target.c ! d28876ac11c1d87fccada014c29d267a libgomp/task.c ff8d8695435d2fd418bcc6437db02562 libgomp/taskloop.c 1d1cca28977e6aef439521c8d10eed90 libgomp/team.c 8d61131215921c894f5e0449c79c0a18 libgomp/teams.c *************** bddf1919febc77ab73283f66e954b61e libgom *** 94051,94056 **** --- 94367,94373 ---- 3bbd0f0d348eb705be604978b2e32097 libgomp/testsuite/libgomp.c++/member-7.C 1af322f02a0df2cf1f3c2c01d328da07 libgomp/testsuite/libgomp.c++/nested-1.C 3f755c96f4b692988ea0d1ddeef1ca9b libgomp/testsuite/libgomp.c++/parallel-1.C + 918bd233ad318b00f080ec4f186b4ee1 libgomp/testsuite/libgomp.c++/pr108180.C c57d4e906a72b08e5f49bef40306b63f libgomp/testsuite/libgomp.c++/pr24455-1.C e922df8c56b5c5885b9aa8d370725ea9 libgomp/testsuite/libgomp.c++/pr24455.C ebbf9a13ba035141ba01b3281fd27fea libgomp/testsuite/libgomp.c++/pr26691.C *************** dfe1951e336cd10cf4b2330c5ffb28f4 libgom *** 94266,94271 **** --- 94583,94589 ---- 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 + 010e1c442bf8c18b7045c53d36e8346e libgomp/testsuite/libgomp.c-c++-common/pr106981.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 *************** d2cb6d4c0500a7f9ba372f1dbf3296c1 libgom *** 94324,94329 **** --- 94642,94649 ---- 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 + 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 *************** ebdfdc0bfc1675a26f73ba66329d6e75 libgom *** 94533,94538 **** --- 94853,94859 ---- dce925481bd33e4b6155a992941a2741 libgomp/testsuite/libgomp.c/places-7.c 033508b78702497acf629bd938d3000c libgomp/testsuite/libgomp.c/places-8.c bb57a9ccf51a738ab2985a513801a658 libgomp/testsuite/libgomp.c/pr104385.c + 37f576b8026bd1367998c4594550703d libgomp/testsuite/libgomp.c/pr108459.c c522146f1617da47efbc34dedb563f61 libgomp/testsuite/libgomp.c/pr24455-1.c 4d9e31cef64ff399334db6c29e3a07db libgomp/testsuite/libgomp.c/pr24455.c 5f9c41745fbf27e0d2ca8e182c9ff34f libgomp/testsuite/libgomp.c/pr26171.c *************** cfb96280c2ccf2711f5cc008a7b246ae libgom *** 94685,94691 **** 3676a99310c885b9ffc9885d81871df4 libgomp/testsuite/libgomp.c/target-29.c b7efacf79d1aeccedabb2bb25be9f758 libgomp/testsuite/libgomp.c/target-3.c 89b93437359f4de22f03c55eb9283547 libgomp/testsuite/libgomp.c/target-30.c ! fb05ccdba2c69c6ada8c59531dc61e6b 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 --- 95006,95012 ---- 3676a99310c885b9ffc9885d81871df4 libgomp/testsuite/libgomp.c/target-29.c b7efacf79d1aeccedabb2bb25be9f758 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 *************** f7ff00e5f2a30832f7f427c91fa1f61b libgom *** 94714,94719 **** --- 95035,95042 ---- 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 *************** a0fea6593244c117295ec1c75e63b64f libgom *** 94878,94883 **** --- 95201,95207 ---- e3121f156cff11c333c32e13f4f02f1c libgomp/testsuite/libgomp.fortran/examples-4/teams-6.f90 f221242394d1d1eed14fbd76d9a03c2f libgomp/testsuite/libgomp.fortran/fortran.exp 1d7f490f3aa22662cdd277712b26a462 libgomp/testsuite/libgomp.fortran/is_device_ptr-1.f90 + 7d6e994b12e9cf90a0da46994b83ba45 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 *************** d58b22d6389008961e84f8a1b3d9a8f9 libgom *** 95063,95068 **** --- 95387,95393 ---- 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 fecda9fc3e70ac57c13ecf7a85196138 libgomp/testsuite/libgomp.fortran/vla1.f90 4bd76ef74f55ed2027a8be5f22222133 libgomp/testsuite/libgomp.fortran/vla2.f90 *************** e8a3245c095430c8ef2413afe2ee4c48 libgom *** 95716,95722 **** 1d2e2e1ab9f0d92351625f2c5661dbb8 libgomp/testsuite/libgomp.oacc-fortran/update-dt-array.f90 989e6535f20045be32e9e91643a0b08f libgomp/testsuite/libgomp.oacc-fortran/vector-routine.f90 8ad28ef1808c27a75ad52229a13307c4 libgomp/work.c ! 0600fee6b19aff2c196bbd8652e43fa4 libhsail-rt/ChangeLog 9147b482b39962a71e580b4a8265285e libhsail-rt/Makefile.am f63e3c959c7490f1fbe708067e4884ae libhsail-rt/Makefile.in de97a355fadb5753d182cbcf06b1b33a libhsail-rt/README --- 96041,96047 ---- 1d2e2e1ab9f0d92351625f2c5661dbb8 libgomp/testsuite/libgomp.oacc-fortran/update-dt-array.f90 989e6535f20045be32e9e91643a0b08f libgomp/testsuite/libgomp.oacc-fortran/vector-routine.f90 8ad28ef1808c27a75ad52229a13307c4 libgomp/work.c ! 8199367cfb5b8c9a3936e07edaf953d0 libhsail-rt/ChangeLog 9147b482b39962a71e580b4a8265285e libhsail-rt/Makefile.am f63e3c959c7490f1fbe708067e4884ae libhsail-rt/Makefile.in de97a355fadb5753d182cbcf06b1b33a libhsail-rt/README *************** f35af2a2efaa8dd337095878b57cabf5 libhsa *** 95743,95754 **** ef9f05873915c22cae79ef5545355353 libhsail-rt/target-config.h.in 99c2e5e712b990ee07be10f53e41f3fb libiberty/.gitignore a916467b91076e631dd8edb7424769c7 libiberty/COPYING.LIB ! 3ef05da1891969dfc77c23fe81145f5f libiberty/ChangeLog 347c31392973de6a4872d540c1718dc1 libiberty/ChangeLog.jit d2b139408a3f08c5813183e34dc39b38 libiberty/Makefile.in c68dbf7834af4281ebd84caa3fd54680 libiberty/README f9b2cd52c3c30368d71459347fb64849 libiberty/_doprnt.c ! ad7456c201ca1e60520e6955b41a964c libiberty/acinclude.m4 d1955a5319e9f2bf4d714152f8da1d1a libiberty/aclocal.m4 e60c2e7c5dcdd19510066c13f1a527d3 libiberty/alloca.c 2a8c5652b247080a01280f8c6af37fdc libiberty/argv.c --- 96068,96079 ---- ef9f05873915c22cae79ef5545355353 libhsail-rt/target-config.h.in 99c2e5e712b990ee07be10f53e41f3fb libiberty/.gitignore a916467b91076e631dd8edb7424769c7 libiberty/COPYING.LIB ! 42df9bda84ab9b70a31fb6a816b4490e libiberty/ChangeLog 347c31392973de6a4872d540c1718dc1 libiberty/ChangeLog.jit d2b139408a3f08c5813183e34dc39b38 libiberty/Makefile.in c68dbf7834af4281ebd84caa3fd54680 libiberty/README f9b2cd52c3c30368d71459347fb64849 libiberty/_doprnt.c ! 2e1dbd37d12611c5ab73d891f76df8da libiberty/acinclude.m4 d1955a5319e9f2bf4d714152f8da1d1a libiberty/aclocal.m4 e60c2e7c5dcdd19510066c13f1a527d3 libiberty/alloca.c 2a8c5652b247080a01280f8c6af37fdc libiberty/argv.c *************** c490c2d0e84347da40a272a019f71dd4 libibe *** 95772,95778 **** 044204f5b4bcac5eae2face0602129ae libiberty/config/mh-fbsd21 904bdcd9daf97fa55a9ca8901ffe7435 libiberty/config/mh-openedition 38e76da568ab25260754fdb9d5080513 libiberty/config/mh-windows ! 56a45e5f8af31c8caed97f4e4dc5379f libiberty/configure a93da0f9e4f38f080e092efb748971a0 libiberty/configure.ac 5824bd0f9be9f4fa74bb3bdc7fd9431c libiberty/configure.com 3f7c04aad9685c914253ef29a611199e libiberty/copying-lib.texi --- 96097,96103 ---- 044204f5b4bcac5eae2face0602129ae libiberty/config/mh-fbsd21 904bdcd9daf97fa55a9ca8901ffe7435 libiberty/config/mh-openedition 38e76da568ab25260754fdb9d5080513 libiberty/config/mh-windows ! bad9c83898f551f0fcf3586aee84ec2f libiberty/configure a93da0f9e4f38f080e092efb748971a0 libiberty/configure.ac 5824bd0f9be9f4fa74bb3bdc7fd9431c libiberty/configure.com 3f7c04aad9685c914253ef29a611199e libiberty/copying-lib.texi *************** cc534c2ea00ea0b5e49ba8f61c6e467d libibe *** 95873,95879 **** fd1435a5be24d2ed84909540998dd5d7 libiberty/strnlen.c 5b0eb0000c746fc4c1854f00bb80b53d libiberty/strrchr.c f214096086d1747033efa505022dd89c libiberty/strsignal.c ! 4f7ee7afbc48687f2bb8436658acff27 libiberty/strstr.c ef49b0148e933f2d05c4db04f2e84822 libiberty/strtod.c c9bd3841bbde6d8ae680f62523f00ab0 libiberty/strtol.c 9968bbb75dc08ce768389912954f4348 libiberty/strtoll.c --- 96198,96204 ---- fd1435a5be24d2ed84909540998dd5d7 libiberty/strnlen.c 5b0eb0000c746fc4c1854f00bb80b53d libiberty/strrchr.c f214096086d1747033efa505022dd89c libiberty/strsignal.c ! 118932d11e6b27c7319a4397c2b933f7 libiberty/strstr.c ef49b0148e933f2d05c4db04f2e84822 libiberty/strtod.c c9bd3841bbde6d8ae680f62523f00ab0 libiberty/strtol.c 9968bbb75dc08ce768389912954f4348 libiberty/strtoll.c *************** b2c289eb14e9197dcad172f3acba12b7 libibe *** 95910,95916 **** 6f774a92661ca4a067f1691a7925524b libiberty/xstrerror.c 8d3c8fb3f736a2aa560ea573c413e8a7 libiberty/xstrndup.c e99d7e473939c4eba9b0590e304ce757 libiberty/xvasprintf.c ! 4a6c2b57c38c180822666ad7c42a8d10 libitm/ChangeLog a9df0726c501bf71a46f426068e8fc9f libitm/Makefile.am 06bb67375770bbbe550b5708624ed9d8 libitm/Makefile.in af64519b66d5357841d3fcdec64563ed libitm/aatree.cc --- 96235,96241 ---- 6f774a92661ca4a067f1691a7925524b libiberty/xstrerror.c 8d3c8fb3f736a2aa560ea573c413e8a7 libiberty/xstrndup.c e99d7e473939c4eba9b0590e304ce757 libiberty/xvasprintf.c ! e09a2544b98f04759459847912ba0a69 libitm/ChangeLog a9df0726c501bf71a46f426068e8fc9f libitm/Makefile.am 06bb67375770bbbe550b5708624ed9d8 libitm/Makefile.in af64519b66d5357841d3fcdec64563ed libitm/aatree.cc *************** c9222a512fcc4f010415011a88500092 libitm *** 95968,95974 **** ab70f9809e69aeb6236ac85b453d22ae libitm/dispatch.h 00dbe1cee8d24eca61f7b471d1bdb412 libitm/eh_cpp.cc 0fc2c7d1a46777c2f9aeaa3dbc4010c1 libitm/libitm.h ! 0f6bf728083356d692bee2d5435b13e6 libitm/libitm.info 0c43820b921ecdbe9d98f068100e716a libitm/libitm.map ea467d7117853d139bb288ab75261139 libitm/libitm.spec.in 210ab7d12145f345b6d37bcbc56f15c7 libitm/libitm.texi --- 96293,96299 ---- ab70f9809e69aeb6236ac85b453d22ae libitm/dispatch.h 00dbe1cee8d24eca61f7b471d1bdb412 libitm/eh_cpp.cc 0fc2c7d1a46777c2f9aeaa3dbc4010c1 libitm/libitm.h ! c1fc682ec5f42c6b58a80400747a6925 libitm/libitm.info 0c43820b921ecdbe9d98f068100e716a libitm/libitm.map ea467d7117853d139bb288ab75261139 libitm/libitm.spec.in 210ab7d12145f345b6d37bcbc56f15c7 libitm/libitm.texi *************** b4e503ecfdccc9f13da8f73eeb6f23a9 libitm *** 96014,96020 **** ef24198422c19f99b0c41be6a16f7081 libitm/testsuite/libitm.c/txrelease.c fe2e602544303e0ca40c8acd58bf0397 libitm/useraction.cc c3a4f9a7b553245bf2dbb55c53767427 libitm/util.cc ! 82b71d58ac5e330e61497928e573d767 libobjc/ChangeLog fee63cfea98fac80ab4c9369ce19765a libobjc/Makefile.in 0b2f74b5c1588ee9de0dd076fccc99a6 libobjc/NXConstStr.m df7a2af88216fb36f0319f328ada2fb8 libobjc/Object.m --- 96339,96345 ---- ef24198422c19f99b0c41be6a16f7081 libitm/testsuite/libitm.c/txrelease.c fe2e602544303e0ca40c8acd58bf0397 libitm/useraction.cc c3a4f9a7b553245bf2dbb55c53767427 libitm/util.cc ! 62d09b1bd225b6fd9431b0491c2bf762 libobjc/ChangeLog fee63cfea98fac80ab4c9369ce19765a libobjc/Makefile.in 0b2f74b5c1588ee9de0dd076fccc99a6 libobjc/NXConstStr.m df7a2af88216fb36f0319f328ada2fb8 libobjc/Object.m *************** e514cfffa12c9e3a276f91bda41431b4 libobj *** 96071,96077 **** b19a45655f215076ddf0ba0abecfbb45 libobjc/selector.c 1c03202bdb561211ad5e1d73cbb0172e libobjc/sendmsg.c efb54be80262d2dd7d3b30974990576e libobjc/thr.c ! e85300e88baba6ec17a08d77fc3ce9b9 liboffloadmic/ChangeLog 99e2b0817f42c602b520261f7dee183b liboffloadmic/Makefile.am a64a74f82774f355013471ad4dbe5014 liboffloadmic/Makefile.in ab5ae12a0dda7edadc0bd2be40ccff6a liboffloadmic/aclocal.m4 --- 96396,96402 ---- b19a45655f215076ddf0ba0abecfbb45 libobjc/selector.c 1c03202bdb561211ad5e1d73cbb0172e libobjc/sendmsg.c efb54be80262d2dd7d3b30974990576e libobjc/thr.c ! 44e07d11ccf4a715faa9b6b1a45e69cc liboffloadmic/ChangeLog 99e2b0817f42c602b520261f7dee183b liboffloadmic/Makefile.am a64a74f82774f355013471ad4dbe5014 liboffloadmic/Makefile.in ab5ae12a0dda7edadc0bd2be40ccff6a liboffloadmic/aclocal.m4 *************** b1def68202639bd452fb59aea3371fe4 liboff *** 96159,96165 **** 4659326a13bd5fed47bb680ddb6f5dc3 liboffloadmic/runtime/orsl-lite/include/orsl-lite.h cc603cdf253cc686bfcee192bb7630df liboffloadmic/runtime/orsl-lite/lib/orsl-lite.c dff5c8575c49d6aa71e549b0fa021479 liboffloadmic/runtime/orsl-lite/version.txt ! 793d5c99ec5ebb7fca5998ec76aa8152 libphobos/ChangeLog 33bab560c80ad2bb8f6a01c76e8fac58 libphobos/Makefile.am c82f2c9df9a32b41c885f634fd4618b4 libphobos/Makefile.in ee88c20a7744a2305503e1670f3b7889 libphobos/README.gcc --- 96484,96490 ---- 4659326a13bd5fed47bb680ddb6f5dc3 liboffloadmic/runtime/orsl-lite/include/orsl-lite.h cc603cdf253cc686bfcee192bb7630df liboffloadmic/runtime/orsl-lite/lib/orsl-lite.c dff5c8575c49d6aa71e549b0fa021479 liboffloadmic/runtime/orsl-lite/version.txt ! ebda4a0cd4cf549c396fa50dd2ea265d libphobos/ChangeLog 33bab560c80ad2bb8f6a01c76e8fac58 libphobos/Makefile.am c82f2c9df9a32b41c885f634fd4618b4 libphobos/Makefile.in ee88c20a7744a2305503e1670f3b7889 libphobos/README.gcc *************** f276ebf85ef328a41c5ca86da694d73f libpho *** 96211,96222 **** e73e1e0aaf48227fef16ff41037ecbdd libphobos/libdruntime/core/stdc/ctype.d b0bed8bde9d9aa6689fee207f4ae06e0 libphobos/libdruntime/core/stdc/errno.d e91ed8a068db9723b27deb61078c2a0e libphobos/libdruntime/core/stdc/errno_.c ! 5bc69913491ed28a0c3a08bf4d2434d8 libphobos/libdruntime/core/stdc/fenv.d 627bd812c57c65e72ca9360911ec5e37 libphobos/libdruntime/core/stdc/float_.d 7b0fbc4eebf5b3364fd3541f51608b9a libphobos/libdruntime/core/stdc/inttypes.d 1a30fd546325cb5ed6fe746ef0c6f995 libphobos/libdruntime/core/stdc/limits.d b51a1082520c7feae033856d8ff7feaf libphobos/libdruntime/core/stdc/locale.d ! f81c12ec62853e665d8537a2590e7006 libphobos/libdruntime/core/stdc/math.d 94c1f25ee3344d05581afb7715c36fd8 libphobos/libdruntime/core/stdc/signal.d 637ca0b5e651c59698ec62ce8235a651 libphobos/libdruntime/core/stdc/stdarg.d ec9f863d9c7addf6af7a13d803894041 libphobos/libdruntime/core/stdc/stddef.d --- 96536,96547 ---- e73e1e0aaf48227fef16ff41037ecbdd libphobos/libdruntime/core/stdc/ctype.d b0bed8bde9d9aa6689fee207f4ae06e0 libphobos/libdruntime/core/stdc/errno.d e91ed8a068db9723b27deb61078c2a0e libphobos/libdruntime/core/stdc/errno_.c ! 8b7dca68e04aed464404e277aa7f4c04 libphobos/libdruntime/core/stdc/fenv.d 627bd812c57c65e72ca9360911ec5e37 libphobos/libdruntime/core/stdc/float_.d 7b0fbc4eebf5b3364fd3541f51608b9a libphobos/libdruntime/core/stdc/inttypes.d 1a30fd546325cb5ed6fe746ef0c6f995 libphobos/libdruntime/core/stdc/limits.d b51a1082520c7feae033856d8ff7feaf libphobos/libdruntime/core/stdc/locale.d ! e24fe2f6a3ac4e63538f26572ef003d6 libphobos/libdruntime/core/stdc/math.d 94c1f25ee3344d05581afb7715c36fd8 libphobos/libdruntime/core/stdc/signal.d 637ca0b5e651c59698ec62ce8235a651 libphobos/libdruntime/core/stdc/stdarg.d ec9f863d9c7addf6af7a13d803894041 libphobos/libdruntime/core/stdc/stddef.d *************** ed254802fe236c52abe7ec9ebf7f8f79 libpho *** 96373,96379 **** c1dac6288753c891f8ec173a3dc57d62 libphobos/libdruntime/core/sys/posix/arpa/inet.d 1a446ce70964990d0864c586f5755fe0 libphobos/libdruntime/core/sys/posix/config.d 676658d748ed751e7fc65ece0c887cfc libphobos/libdruntime/core/sys/posix/dirent.d ! 131db3f9d781b6dfdb4fa72d4981218d libphobos/libdruntime/core/sys/posix/dlfcn.d 308cbd84ae80447c14acd90eabef36aa libphobos/libdruntime/core/sys/posix/fcntl.d 7c2ed4684f1e1236c753e224d3861bc6 libphobos/libdruntime/core/sys/posix/grp.d 78097ad54d7e30233bc2096505d9381f libphobos/libdruntime/core/sys/posix/iconv.d --- 96698,96704 ---- c1dac6288753c891f8ec173a3dc57d62 libphobos/libdruntime/core/sys/posix/arpa/inet.d 1a446ce70964990d0864c586f5755fe0 libphobos/libdruntime/core/sys/posix/config.d 676658d748ed751e7fc65ece0c887cfc libphobos/libdruntime/core/sys/posix/dirent.d ! 03375c438f630c39214517a4695f81ca libphobos/libdruntime/core/sys/posix/dlfcn.d 308cbd84ae80447c14acd90eabef36aa libphobos/libdruntime/core/sys/posix/fcntl.d 7c2ed4684f1e1236c753e224d3861bc6 libphobos/libdruntime/core/sys/posix/grp.d 78097ad54d7e30233bc2096505d9381f libphobos/libdruntime/core/sys/posix/iconv.d *************** f018b3052e24a1c26e41901675990102 libpho *** 96390,96396 **** 453c6c187ee2dc82d0fa5abc3504c0b1 libphobos/libdruntime/core/sys/posix/pwd.d 4a9f21b35663aad717b12e86926bf338 libphobos/libdruntime/core/sys/posix/sched.d e28f540a5c2e22756eefd8b50d01a0a0 libphobos/libdruntime/core/sys/posix/semaphore.d ! 802cdc5f25ac3225689c0d239b5568df libphobos/libdruntime/core/sys/posix/setjmp.d eecb290966813f46751b150311a3e9ba libphobos/libdruntime/core/sys/posix/signal.d c93e4de9caab4a1470e278682e6c903d libphobos/libdruntime/core/sys/posix/spawn.d 5c93ef14880500138d9f642ec4d501e0 libphobos/libdruntime/core/sys/posix/stdc/time.d --- 96715,96721 ---- 453c6c187ee2dc82d0fa5abc3504c0b1 libphobos/libdruntime/core/sys/posix/pwd.d 4a9f21b35663aad717b12e86926bf338 libphobos/libdruntime/core/sys/posix/sched.d e28f540a5c2e22756eefd8b50d01a0a0 libphobos/libdruntime/core/sys/posix/semaphore.d ! db51838365bfc29283d5d8a115f4cb99 libphobos/libdruntime/core/sys/posix/setjmp.d eecb290966813f46751b150311a3e9ba libphobos/libdruntime/core/sys/posix/signal.d c93e4de9caab4a1470e278682e6c903d libphobos/libdruntime/core/sys/posix/spawn.d 5c93ef14880500138d9f642ec4d501e0 libphobos/libdruntime/core/sys/posix/stdc/time.d *************** d1a065cefdde38d41ee3b3018f769a41 libpho *** 96412,96418 **** a1bfb009ab16e1b9ac568b1bdee35fac libphobos/libdruntime/core/sys/posix/sys/statvfs.d f71ae7f996ce3771b140c9a921b5aeb9 libphobos/libdruntime/core/sys/posix/sys/time.d 3ae60f821a06e5d186bca19aba1d47e6 libphobos/libdruntime/core/sys/posix/sys/ttycom.d ! 7a8ec90679d130ed9a9a2a83dbca6592 libphobos/libdruntime/core/sys/posix/sys/types.d 2d6bebed89a89ff7ab8a98164586e3f8 libphobos/libdruntime/core/sys/posix/sys/uio.d 052e161c5cb19aa20eb6573d04d35678 libphobos/libdruntime/core/sys/posix/sys/un.d 9d80c5eb1f9e3c226152f4b1a775ade7 libphobos/libdruntime/core/sys/posix/sys/utsname.d --- 96737,96743 ---- a1bfb009ab16e1b9ac568b1bdee35fac libphobos/libdruntime/core/sys/posix/sys/statvfs.d f71ae7f996ce3771b140c9a921b5aeb9 libphobos/libdruntime/core/sys/posix/sys/time.d 3ae60f821a06e5d186bca19aba1d47e6 libphobos/libdruntime/core/sys/posix/sys/ttycom.d ! a494a1fe4fe480d2879d58c59cea5b29 libphobos/libdruntime/core/sys/posix/sys/types.d 2d6bebed89a89ff7ab8a98164586e3f8 libphobos/libdruntime/core/sys/posix/sys/uio.d 052e161c5cb19aa20eb6573d04d35678 libphobos/libdruntime/core/sys/posix/sys/un.d 9d80c5eb1f9e3c226152f4b1a775ade7 libphobos/libdruntime/core/sys/posix/sys/utsname.d *************** a29875e6acf5d065eab3c5037a3b3e8c libpho *** 96634,96640 **** ba6c574496316ee8452cb145f4f816fb libphobos/libdruntime/gcc/config.d.in d1bc6dd2550ef17d320b1583376b8b36 libphobos/libdruntime/gcc/deh.d bffb543e12c3ce864f73bb97ca4107ae libphobos/libdruntime/gcc/drtstuff.c ! 4ed9b6c174a2679960bcb7ec76b3ec47 libphobos/libdruntime/gcc/emutls.d 9a777f758428471cbf8230c1c999b6df libphobos/libdruntime/gcc/gthread.d 952bb8e2b4c008fd81f8acb0f0c972b9 libphobos/libdruntime/gcc/libbacktrace.d.in 8cf9845da9c1aedb6ce9878ed08c9df8 libphobos/libdruntime/gcc/sections/common.d --- 96959,96965 ---- ba6c574496316ee8452cb145f4f816fb libphobos/libdruntime/gcc/config.d.in d1bc6dd2550ef17d320b1583376b8b36 libphobos/libdruntime/gcc/deh.d bffb543e12c3ce864f73bb97ca4107ae libphobos/libdruntime/gcc/drtstuff.c ! e8579b2f859f0798b654aa6ad988dcfc libphobos/libdruntime/gcc/emutls.d 9a777f758428471cbf8230c1c999b6df libphobos/libdruntime/gcc/gthread.d 952bb8e2b4c008fd81f8acb0f0c972b9 libphobos/libdruntime/gcc/libbacktrace.d.in 8cf9845da9c1aedb6ce9878ed08c9df8 libphobos/libdruntime/gcc/sections/common.d *************** d5e63a537336c57c3de8697fc334d37b libpho *** 96645,96651 **** e3859370c796afb93733e146dc19ea70 libphobos/libdruntime/gcc/unwind/arm.d e9f9b70dcc86d63920bac973ef5f9fc0 libphobos/libdruntime/gcc/unwind/arm_common.d 50e5fecb9286822a640e4145c21d7807 libphobos/libdruntime/gcc/unwind/c6x.d ! c9ece913a80fb2002e7e45b3c7d12cd8 libphobos/libdruntime/gcc/unwind/generic.d ae8fde642e27c32d71fbe494e7033cf6 libphobos/libdruntime/gcc/unwind/package.d 883e374c29aa5c26149e82cca526b7e4 libphobos/libdruntime/gcc/unwind/pe.d a3c7fae6372b9dfd9fcc3bf208e19d61 libphobos/libdruntime/object.d --- 96970,96976 ---- e3859370c796afb93733e146dc19ea70 libphobos/libdruntime/gcc/unwind/arm.d e9f9b70dcc86d63920bac973ef5f9fc0 libphobos/libdruntime/gcc/unwind/arm_common.d 50e5fecb9286822a640e4145c21d7807 libphobos/libdruntime/gcc/unwind/c6x.d ! 5f6ac74ec69fe8af787e4f8ea36636a1 libphobos/libdruntime/gcc/unwind/generic.d ae8fde642e27c32d71fbe494e7033cf6 libphobos/libdruntime/gcc/unwind/package.d 883e374c29aa5c26149e82cca526b7e4 libphobos/libdruntime/gcc/unwind/pe.d a3c7fae6372b9dfd9fcc3bf208e19d61 libphobos/libdruntime/object.d *************** d64e7c6f9f940e7d7f14d7d36c358989 libpho *** 96799,96805 **** d471e006e4eff73c7d20b9167e24d741 libphobos/src/std/numeric.d 388208c6635979df5a07648d1f0cdc2e libphobos/src/std/outbuffer.d 842f278bff583b4bd01499694eadcb0c libphobos/src/std/parallelism.d ! 2b189485e4897de30dbd494f6d788e0b libphobos/src/std/path.d 8e5e73cca99a16adb64a6a03126b3caa libphobos/src/std/process.d 592b96acd85b7ae34760c56d2e1af9f7 libphobos/src/std/random.d 1d5f5bfe4477f509753c7242be1c9583 libphobos/src/std/range/interfaces.d --- 97124,97130 ---- d471e006e4eff73c7d20b9167e24d741 libphobos/src/std/numeric.d 388208c6635979df5a07648d1f0cdc2e libphobos/src/std/outbuffer.d 842f278bff583b4bd01499694eadcb0c libphobos/src/std/parallelism.d ! fcf7bc584822bd24e2dff6630f0b2bfa libphobos/src/std/path.d 8e5e73cca99a16adb64a6a03126b3caa libphobos/src/std/process.d 592b96acd85b7ae34760c56d2e1af9f7 libphobos/src/std/random.d 1d5f5bfe4477f509753c7242be1c9583 libphobos/src/std/range/interfaces.d *************** b99f626316273c3daf2953bfd822609c libpho *** 96817,96823 **** df4f18ae8c7b1188ceb25cebc8cdbfad libphobos/src/std/signals.d 209df4ea3736cae127de93cd246ea310 libphobos/src/std/socket.d 6a33097edd4ad1e0309cbf45449a8d4e libphobos/src/std/stdint.d ! be8a624f7d83029b625cc6a304f7ce56 libphobos/src/std/stdio.d 54c3c76107b8a7608d8de8cfbff0a908 libphobos/src/std/string.d ae3eea4dd286cc0c253a4bf4f0382cef libphobos/src/std/system.d 857bc18696d7036249f50428486036b0 libphobos/src/std/traits.d --- 97142,97148 ---- df4f18ae8c7b1188ceb25cebc8cdbfad libphobos/src/std/signals.d 209df4ea3736cae127de93cd246ea310 libphobos/src/std/socket.d 6a33097edd4ad1e0309cbf45449a8d4e libphobos/src/std/stdint.d ! 57242fb8198eaad3e6f7a207b8f9aa86 libphobos/src/std/stdio.d 54c3c76107b8a7608d8de8cfbff0a908 libphobos/src/std/string.d ae3eea4dd286cc0c253a4bf4f0382cef libphobos/src/std/system.d 857bc18696d7036249f50428486036b0 libphobos/src/std/traits.d *************** b32be97cb294b7836a5e6d15a92b9047 libpho *** 96892,96900 **** 78729aa84444a843eaada3c2e3a17e43 libphobos/testsuite/libphobos.typeinfo/comparison.d f0442e8b8974938ded0d17389f8b0608 libphobos/testsuite/libphobos.typeinfo/struct-align.d 245b43d36cad9840fce44fbf4358d424 libphobos/testsuite/libphobos.typeinfo/typeinfo.exp ! 9b10185286c1d2167a91a48b650c30fd libphobos/testsuite/testsuite_flags.in a916467b91076e631dd8edb7424769c7 libquadmath/COPYING.LIB ! 082fc14a59e440c9da61462ac0a56041 libquadmath/ChangeLog 4696eddf264dd090e144b4849b0a6d91 libquadmath/Makefile.am 644a78a01d94abe28b364eaa21142d82 libquadmath/Makefile.in d9afbc1f1e04c7e461265ff9323cc6f4 libquadmath/acinclude.m4 --- 97217,97225 ---- 78729aa84444a843eaada3c2e3a17e43 libphobos/testsuite/libphobos.typeinfo/comparison.d f0442e8b8974938ded0d17389f8b0608 libphobos/testsuite/libphobos.typeinfo/struct-align.d 245b43d36cad9840fce44fbf4358d424 libphobos/testsuite/libphobos.typeinfo/typeinfo.exp ! b3afbf17360c0b2823892dba0b9bb0fd libphobos/testsuite/testsuite_flags.in a916467b91076e631dd8edb7424769c7 libquadmath/COPYING.LIB ! 5c9aa15085fb39e4af9c48b247e8f2ee libquadmath/ChangeLog 4696eddf264dd090e144b4849b0a6d91 libquadmath/Makefile.am 644a78a01d94abe28b364eaa21142d82 libquadmath/Makefile.in d9afbc1f1e04c7e461265ff9323cc6f4 libquadmath/acinclude.m4 *************** d9afbc1f1e04c7e461265ff9323cc6f4 libqua *** 96902,96908 **** cf5a7864ff15ab4dd1604e0f6fe4e501 libquadmath/config.h.in 7b01e196ad5d8354ad07398ee5c470fe libquadmath/configure 279cb151e8c43d5af048eb1a9608a435 libquadmath/configure.ac ! 4181c78dc5377afc7ef8c3c5c3ad4107 libquadmath/libquadmath.info f698e3dbcbae17420f2b72b77578ea17 libquadmath/libquadmath.texi 77280bb7ee423875e03d9c0d34527df6 libquadmath/libtool-version 452fee0ef153d65eb7413a5103c63a23 libquadmath/math/acoshq.c --- 97227,97233 ---- cf5a7864ff15ab4dd1604e0f6fe4e501 libquadmath/config.h.in 7b01e196ad5d8354ad07398ee5c470fe libquadmath/configure 279cb151e8c43d5af048eb1a9608a435 libquadmath/configure.ac ! 294a516d45bf6cb3b333799e2aa38934 libquadmath/libquadmath.info f698e3dbcbae17420f2b72b77578ea17 libquadmath/libquadmath.texi 77280bb7ee423875e03d9c0d34527df6 libquadmath/libtool-version 452fee0ef153d65eb7413a5103c63a23 libquadmath/math/acoshq.c *************** cd139c8f7066ccd99c46052b7b67b2cb libqua *** 97030,97040 **** a21481cfd0382ef41901608376f2161c libquadmath/quadmath_weak.h e766022f8615b72cbc38335d262e9d3d libquadmath/strtod/grouping.h a73fdec6746eaad8ccdc8e8403aac562 libquadmath/strtod/mpn2flt128.c ! a81cc82679e80c86cfbd5575867450d0 libquadmath/strtod/strtod_l.c af84fa5118f4adec8393614994e1c4d6 libquadmath/strtod/strtoflt128.c d15a18f7c46ba2add6148edc5b7563c0 libquadmath/strtod/tens_in_limb.c 12c73a846f7668d29de720bd79502bef libquadmath/update-quadmath.py ! b292904740befccece28f220ae057841 libsanitizer/ChangeLog 63916ba64a3cfa7ce2809fb46ab38597 libsanitizer/HOWTO_MERGE 0249c37748936faf5b1efd5789587909 libsanitizer/LICENSE.TXT 4b97cb7f10927471b74a1536f5472643 libsanitizer/LOCAL_PATCHES --- 97355,97365 ---- a21481cfd0382ef41901608376f2161c libquadmath/quadmath_weak.h e766022f8615b72cbc38335d262e9d3d libquadmath/strtod/grouping.h a73fdec6746eaad8ccdc8e8403aac562 libquadmath/strtod/mpn2flt128.c ! e0bd9b8669e44ec6010f92da1d5188ad libquadmath/strtod/strtod_l.c af84fa5118f4adec8393614994e1c4d6 libquadmath/strtod/strtoflt128.c d15a18f7c46ba2add6148edc5b7563c0 libquadmath/strtod/tens_in_limb.c 12c73a846f7668d29de720bd79502bef libquadmath/update-quadmath.py ! d98cbb0940ba935aea752d0cbe71d04f libsanitizer/ChangeLog 63916ba64a3cfa7ce2809fb46ab38597 libsanitizer/HOWTO_MERGE 0249c37748936faf5b1efd5789587909 libsanitizer/LICENSE.TXT 4b97cb7f10927471b74a1536f5472643 libsanitizer/LOCAL_PATCHES *************** c38c4aad80d927b2557c5e1699d5ad04 libsan *** 97112,97120 **** b0666c8f23d627e872a9a54b1a201cec libsanitizer/asan/libtool-version 5e33ed31fe41aaddda140fbff4ce0a62 libsanitizer/builtins/assembly.h 4d6948c4912be5da16e30aac001b87d7 libsanitizer/config.h.in ! 71791af9e7d64000760bb85e094f90bd libsanitizer/configure ! b3d0b12bf4f8383e0827e526087737cb libsanitizer/configure.ac ! ebd023260ace15db0db0a8e46ee9efa1 libsanitizer/configure.tgt cc44a43ab9d9eda272e30cd495ce110f libsanitizer/hwasan/Makefile.am 4145fee4229c812edebc4f61974d28de libsanitizer/hwasan/Makefile.in d7b2b70db329a1129a9bed7c9f516b5d libsanitizer/hwasan/hwasan.cpp --- 97437,97445 ---- b0666c8f23d627e872a9a54b1a201cec libsanitizer/asan/libtool-version 5e33ed31fe41aaddda140fbff4ce0a62 libsanitizer/builtins/assembly.h 4d6948c4912be5da16e30aac001b87d7 libsanitizer/config.h.in ! d44020b94021641c8c4778a0c40c187b libsanitizer/configure ! e36acdc823a7fe758ab63c509ff67705 libsanitizer/configure.ac ! 2aa7184c9837a70e5e06a2eddb23b890 libsanitizer/configure.tgt cc44a43ab9d9eda272e30cd495ce110f libsanitizer/hwasan/Makefile.am 4145fee4229c812edebc4f61974d28de libsanitizer/hwasan/Makefile.in d7b2b70db329a1129a9bed7c9f516b5d libsanitizer/hwasan/hwasan.cpp *************** dfd8ca61572d533c9a5fef9d44521a89 libsan *** 97320,97326 **** 51a6933c53085e75485e4b4c59f1e3e2 libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.h d41d8cd98f00b204e9800998ecf8427e libsanitizer/sanitizer_common/sanitizer_platform_limits_openbsd.cpp d41d8cd98f00b204e9800998ecf8427e libsanitizer/sanitizer_common/sanitizer_platform_limits_openbsd.h ! 05a4270278b83d4569c32fecd5704e86 libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp 7401184b97c53ec1f30593bc0174b15b libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h 6a600fe0b2f737602ab53034aaeaf443 libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.cpp 7e240cd8f027b06b432493422a3ffc45 libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.h --- 97645,97651 ---- 51a6933c53085e75485e4b4c59f1e3e2 libsanitizer/sanitizer_common/sanitizer_platform_limits_netbsd.h d41d8cd98f00b204e9800998ecf8427e libsanitizer/sanitizer_common/sanitizer_platform_limits_openbsd.cpp d41d8cd98f00b204e9800998ecf8427e libsanitizer/sanitizer_common/sanitizer_platform_limits_openbsd.h ! 2dda80709396f16ca211c082039e1cb9 libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp 7401184b97c53ec1f30593bc0174b15b libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h 6a600fe0b2f737602ab53034aaeaf443 libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.cpp 7e240cd8f027b06b432493422a3ffc45 libsanitizer/sanitizer_common/sanitizer_platform_limits_solaris.h *************** bd58abd803667b3373381b6bb1b68f1b libsan *** 97501,97507 **** 545e91fffb8d4987ca5d1c0054aadd11 libsanitizer/ubsan/ubsan_win_dll_thunk.cpp e9c85349d92ab1a6b66d0872077acd3b libsanitizer/ubsan/ubsan_win_dynamic_runtime_thunk.cpp 72f297f487b6bb9db917cce361192c28 libsanitizer/ubsan/ubsan_win_weak_interception.cpp ! abb78e1fad31fd8ca1ab017d1c54d6d3 libssp/ChangeLog cf4ee646515263611d025bd12ba88148 libssp/Makefile.am b56958cdc5828ca811c35bbf479b3a09 libssp/Makefile.in f6f6c804e40e3a3ef407d3d13fafb6c0 libssp/aclocal.m4 --- 97826,97832 ---- 545e91fffb8d4987ca5d1c0054aadd11 libsanitizer/ubsan/ubsan_win_dll_thunk.cpp e9c85349d92ab1a6b66d0872077acd3b libsanitizer/ubsan/ubsan_win_dynamic_runtime_thunk.cpp 72f297f487b6bb9db917cce361192c28 libsanitizer/ubsan/ubsan_win_weak_interception.cpp ! dcba294aae1119c721821ee1901385f4 libssp/ChangeLog cf4ee646515263611d025bd12ba88148 libssp/Makefile.am b56958cdc5828ca811c35bbf479b3a09 libssp/Makefile.in f6f6c804e40e3a3ef407d3d13fafb6c0 libssp/aclocal.m4 *************** df66ccf23f6b963bb290249d790ccb82 libssp *** 97530,97536 **** 0a9dff73d2333b2997da42b4615533fd libssp/strncpy-chk.c 11c140b790d482decba4951f6508dd84 libssp/vsnprintf-chk.c 2ce510f683585f686681d926e3fafb82 libssp/vsprintf-chk.c ! 7611c7124f4f303e076c2155c0e67d22 libstdc++-v3/ChangeLog 7aa6c40440a44fcf5ec94c066160c2f8 libstdc++-v3/ChangeLog-1998 7aff86600b6a1ed3fa87305075a92db0 libstdc++-v3/ChangeLog-1999 a6f28e8fc9bb07696a9e068b439a3a87 libstdc++-v3/ChangeLog-2000 --- 97855,97861 ---- 0a9dff73d2333b2997da42b4615533fd libssp/strncpy-chk.c 11c140b790d482decba4951f6508dd84 libssp/vsnprintf-chk.c 2ce510f683585f686681d926e3fafb82 libssp/vsprintf-chk.c ! 02740c537980456c66c0543fbef1f690 libstdc++-v3/ChangeLog 7aa6c40440a44fcf5ec94c066160c2f8 libstdc++-v3/ChangeLog-1998 7aff86600b6a1ed3fa87305075a92db0 libstdc++-v3/ChangeLog-1999 a6f28e8fc9bb07696a9e068b439a3a87 libstdc++-v3/ChangeLog-2000 *************** a8f4290dba5b481ad426148a03c75dd0 libstd *** 97559,97565 **** f372af73db4ac0ad88e43199e1f29e08 libstdc++-v3/README 9f6362760cb2f50e39da8d81855a408f libstdc++-v3/acinclude.m4 734c1cbc8791fbceb09b49c5d07d6966 libstdc++-v3/aclocal.m4 ! 03206c41c4b2669881872e3465f2c926 libstdc++-v3/config.h.in b01fddf6d6bea14bdfb65dbd4c979845 libstdc++-v3/config/abi/compatibility.h 4dc0ed9711e1e8d1c3555df4a246013c libstdc++-v3/config/abi/post/aarch64-linux-gnu/baseline_symbols.txt 730569c0ef38f6e6322b3c4ac65253ce libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt --- 97884,97890 ---- f372af73db4ac0ad88e43199e1f29e08 libstdc++-v3/README 9f6362760cb2f50e39da8d81855a408f libstdc++-v3/acinclude.m4 734c1cbc8791fbceb09b49c5d07d6966 libstdc++-v3/aclocal.m4 ! 7a21bb3f82d6599b3df6536f6c5e2b6b libstdc++-v3/config.h.in b01fddf6d6bea14bdfb65dbd4c979845 libstdc++-v3/config/abi/compatibility.h 4dc0ed9711e1e8d1c3555df4a246013c libstdc++-v3/config/abi/post/aarch64-linux-gnu/baseline_symbols.txt 730569c0ef38f6e6322b3c4ac65253ce libstdc++-v3/config/abi/post/alpha-linux-gnu/baseline_symbols.txt *************** f4f2b26e27c3957ff5929b885646364f libstd *** 97703,97709 **** bf2705404dd521ebcceeafe57468080d libstdc++-v3/config/os/generic/ctype_base.h 73886695d0bba09b495be44138801960 libstdc++-v3/config/os/generic/ctype_configure_char.cc 48817692e8c606525ef9889af16b6269 libstdc++-v3/config/os/generic/ctype_inline.h ! 47fdd345f650cdcb509d00e47f36e44a libstdc++-v3/config/os/generic/error_constants.h 431a6ecf06ba237be9373b2cb922d764 libstdc++-v3/config/os/generic/os_defines.h 5b9a724ca8744a0e193a82f2ea8e9f5b libstdc++-v3/config/os/gnu-linux/arm-eabi-extra.ver c99864811cb81795f882ee8d709a39f8 libstdc++-v3/config/os/gnu-linux/ctype_base.h --- 98028,98034 ---- bf2705404dd521ebcceeafe57468080d libstdc++-v3/config/os/generic/ctype_base.h 73886695d0bba09b495be44138801960 libstdc++-v3/config/os/generic/ctype_configure_char.cc 48817692e8c606525ef9889af16b6269 libstdc++-v3/config/os/generic/ctype_inline.h ! e85acf0e6ea1dc38eb0bb62caabf030e libstdc++-v3/config/os/generic/error_constants.h 431a6ecf06ba237be9373b2cb922d764 libstdc++-v3/config/os/generic/os_defines.h 5b9a724ca8744a0e193a82f2ea8e9f5b libstdc++-v3/config/os/gnu-linux/arm-eabi-extra.ver c99864811cb81795f882ee8d709a39f8 libstdc++-v3/config/os/gnu-linux/ctype_base.h *************** d00b9bfddb0e8397de2d35e76f678cf4 libstd *** 97750,97757 **** 233fbfff89917179ae9fc7fecbd37a4b libstdc++-v3/config/os/vxworks/ctype_configure_char.cc 1b61257cbf79eed6c1465ccd5906ed98 libstdc++-v3/config/os/vxworks/ctype_inline.h cf270f423d6238158d5385095a7fc932 libstdc++-v3/config/os/vxworks/os_defines.h ! a69bbe50a3ebbd9d900f2fb44dc7fd53 libstdc++-v3/configure ! d3b5d9175c6f9f05ef6fc6392133a461 libstdc++-v3/configure.ac 6f48d91af78c16e62f258e7bedec5125 libstdc++-v3/configure.host 1ad0555cf1f65702d35f5d19683b6a49 libstdc++-v3/crossconfig.m4 cc745dd7b8642a37dd519d4df34943fc libstdc++-v3/doc/Makefile.am --- 98075,98082 ---- 233fbfff89917179ae9fc7fecbd37a4b libstdc++-v3/config/os/vxworks/ctype_configure_char.cc 1b61257cbf79eed6c1465ccd5906ed98 libstdc++-v3/config/os/vxworks/ctype_inline.h cf270f423d6238158d5385095a7fc932 libstdc++-v3/config/os/vxworks/os_defines.h ! bb138c795b8fa8f9b6308a322527f2d6 libstdc++-v3/configure ! e75e2a687e109a14e424958757b1a73d libstdc++-v3/configure.ac 6f48d91af78c16e62f258e7bedec5125 libstdc++-v3/configure.host 1ad0555cf1f65702d35f5d19683b6a49 libstdc++-v3/crossconfig.m4 cc745dd7b8642a37dd519d4df34943fc libstdc++-v3/doc/Makefile.am *************** cc745dd7b8642a37dd519d4df34943fc libstd *** 97761,97770 **** 520db39aef0e2a59418132af88b897ed libstdc++-v3/doc/doxygen/mainpage.html 3486d64b0aaa601908006a0e78395ca3 libstdc++-v3/doc/doxygen/stdheader.cc 1273764cd133c402d2d3f22cf2913af5 libstdc++-v3/doc/doxygen/tables.html ! 094b7ada8fdae2bf6b49063199dddd20 libstdc++-v3/doc/doxygen/user.cfg.in 66e139590a163a3e9d632f33fbe1d1b3 libstdc++-v3/doc/html/README c68ff21babfa14f20b98e36a2c808418 libstdc++-v3/doc/html/api.html ! fd168dc2b2d0c12b1e17b40ffec96390 libstdc++-v3/doc/html/bk02.html 47886ba7da131bf3cbf81a27cada5f6f libstdc++-v3/doc/html/bk03.html a75d614dcfc1b2374bccc626e2464c94 libstdc++-v3/doc/html/faq.html 1ae70f0bf94464b036515d333fff8ab2 libstdc++-v3/doc/html/images/confdeps.png --- 98086,98095 ---- 520db39aef0e2a59418132af88b897ed libstdc++-v3/doc/doxygen/mainpage.html 3486d64b0aaa601908006a0e78395ca3 libstdc++-v3/doc/doxygen/stdheader.cc 1273764cd133c402d2d3f22cf2913af5 libstdc++-v3/doc/doxygen/tables.html ! ae1d81dcf67297b85e355542550b5a72 libstdc++-v3/doc/doxygen/user.cfg.in 66e139590a163a3e9d632f33fbe1d1b3 libstdc++-v3/doc/html/README c68ff21babfa14f20b98e36a2c808418 libstdc++-v3/doc/html/api.html ! 08920438eea18325b4bfdf979379ff66 libstdc++-v3/doc/html/bk02.html 47886ba7da131bf3cbf81a27cada5f6f libstdc++-v3/doc/html/bk03.html a75d614dcfc1b2374bccc626e2464c94 libstdc++-v3/doc/html/faq.html 1ae70f0bf94464b036515d333fff8ab2 libstdc++-v3/doc/html/images/confdeps.png *************** d7249eb4d31bd107d0b09ea3c80cb723 libstd *** 97846,97852 **** 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 ! c31c56e341c4377c8c4d0ab3861a0fce libstdc++-v3/doc/html/index.html 24de5f936e90a1f57f037f166ff75004 libstdc++-v3/doc/html/manual/abi.html 4ce10e27356ac31a5b7962aecbeb3638 libstdc++-v3/doc/html/manual/algorithms.html 70a5fa3916abe3de8650b93632b6914b libstdc++-v3/doc/html/manual/api.html --- 98171,98177 ---- 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 ! 610c408505940d785574f4226d31a6ac libstdc++-v3/doc/html/index.html 24de5f936e90a1f57f037f166ff75004 libstdc++-v3/doc/html/manual/abi.html 4ce10e27356ac31a5b7962aecbeb3638 libstdc++-v3/doc/html/manual/algorithms.html 70a5fa3916abe3de8650b93632b6914b libstdc++-v3/doc/html/manual/api.html *************** b8ac9fc2f2cfcaed0450c79e2fb01569 libstd *** 97861,97867 **** 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 ! f6f0410c2bcc234e2fa3a5dd8949e086 libstdc++-v3/doc/html/manual/bugs.html cc3700f2fde50987f186f23abf98a7b1 libstdc++-v3/doc/html/manual/concept_checking.html f3a54a6315d716742603d33f454f2c19 libstdc++-v3/doc/html/manual/concurrency.html 99088f38a5f288b88340a71d68f773eb libstdc++-v3/doc/html/manual/configure.html --- 98186,98192 ---- 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 ! 190c152c7bf619500ce7752aa21d0d14 libstdc++-v3/doc/html/manual/bugs.html cc3700f2fde50987f186f23abf98a7b1 libstdc++-v3/doc/html/manual/concept_checking.html f3a54a6315d716742603d33f454f2c19 libstdc++-v3/doc/html/manual/concurrency.html 99088f38a5f288b88340a71d68f773eb libstdc++-v3/doc/html/manual/configure.html *************** afcc2751dae09e088abc1e3175cb94cc libstd *** 97882,97901 **** 6ff2323d07ed91e8dec5a072df16f901 libstdc++-v3/doc/html/manual/ext_concurrency_impl.html 9eae121ff2ad3f2dd5a2748f87f9f530 libstdc++-v3/doc/html/manual/ext_concurrency_use.html 0597d03ff215b7f17e0240178c030166 libstdc++-v3/doc/html/manual/ext_containers.html ! 2388a381a3fca44bacf99a523f6e2bba libstdc++-v3/doc/html/manual/ext_demangling.html 05003e71d54cfdfd4c8291489f8ffa07 libstdc++-v3/doc/html/manual/ext_io.html 44f8ef8b093904d418755d0e32d700b7 libstdc++-v3/doc/html/manual/ext_iterators.html 8f3bd86e04d263ad87cc258c289aae6d libstdc++-v3/doc/html/manual/ext_numerics.html 6d380acac52eb8c888a54068e44b16ac libstdc++-v3/doc/html/manual/ext_preface.html 5632eb8ef681cd35b41be7eb7a3d7a98 libstdc++-v3/doc/html/manual/ext_sgi.html 9b34310c7cb7faa4373ee6683678c457 libstdc++-v3/doc/html/manual/ext_utilities.html ! 5c3d4b1da33055adb0a5fc9742fdbe19 libstdc++-v3/doc/html/manual/extensions.html 909760c7437c6622b56dcc4fb9ba89e8 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 ! e39219ab2b0d00f3de0b1cbf5c06eeba libstdc++-v3/doc/html/manual/index.html 8687facb6d19ccc2a663efbc50e745a1 libstdc++-v3/doc/html/manual/internals.html ! 29e0671531d99a27944e6d073ec62182 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 --- 98207,98226 ---- 6ff2323d07ed91e8dec5a072df16f901 libstdc++-v3/doc/html/manual/ext_concurrency_impl.html 9eae121ff2ad3f2dd5a2748f87f9f530 libstdc++-v3/doc/html/manual/ext_concurrency_use.html 0597d03ff215b7f17e0240178c030166 libstdc++-v3/doc/html/manual/ext_containers.html ! 3946985aede4994e9743b0f8d71b41ba libstdc++-v3/doc/html/manual/ext_demangling.html 05003e71d54cfdfd4c8291489f8ffa07 libstdc++-v3/doc/html/manual/ext_io.html 44f8ef8b093904d418755d0e32d700b7 libstdc++-v3/doc/html/manual/ext_iterators.html 8f3bd86e04d263ad87cc258c289aae6d libstdc++-v3/doc/html/manual/ext_numerics.html 6d380acac52eb8c888a54068e44b16ac libstdc++-v3/doc/html/manual/ext_preface.html 5632eb8ef681cd35b41be7eb7a3d7a98 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 909760c7437c6622b56dcc4fb9ba89e8 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 ! 9cb98475bfe2ee8ee8805949feb804d1 libstdc++-v3/doc/html/manual/index.html 8687facb6d19ccc2a663efbc50e745a1 libstdc++-v3/doc/html/manual/internals.html ! 6201c72ac50b989374f36bd1c9bd65ba 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 *************** d6e655afa90caf559aa77ae772faf5dc libstd *** 97928,97938 **** dc012f6bbeb24332ca023dc15d6da9cf libstdc++-v3/doc/html/manual/profile_mode_devel.html d55e182adbf08772ec85b18d390b0dbb libstdc++-v3/doc/html/manual/profile_mode_diagnostics.html 0e9a02c563561ad32d5b24fd930bf8f5 libstdc++-v3/doc/html/manual/profile_mode_impl.html ! 30dc2d04c79d520f048c2759bf437b5b libstdc++-v3/doc/html/manual/setup.html f82628740b7b95e95da49ce234a05bca 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 ! 3b1206d3071580d56c6149d5ddf385a9 libstdc++-v3/doc/html/manual/status.html ea0c531c09fa230f346f8ba700961e4a libstdc++-v3/doc/html/manual/std_contents.html dbb5f81a9e8864374fbb835eaa4e8b0d libstdc++-v3/doc/html/manual/streambufs.html 47e6a6ef4752e7c7e3ecb2a4948a7514 libstdc++-v3/doc/html/manual/strings.html --- 98253,98263 ---- dc012f6bbeb24332ca023dc15d6da9cf libstdc++-v3/doc/html/manual/profile_mode_devel.html d55e182adbf08772ec85b18d390b0dbb libstdc++-v3/doc/html/manual/profile_mode_diagnostics.html 0e9a02c563561ad32d5b24fd930bf8f5 libstdc++-v3/doc/html/manual/profile_mode_impl.html ! ffceba0f3c20f451f9753c101c0fa634 libstdc++-v3/doc/html/manual/setup.html f82628740b7b95e95da49ce234a05bca 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 ! 747f526a267b126b1c01e9f4dcdc461f libstdc++-v3/doc/html/manual/status.html ea0c531c09fa230f346f8ba700961e4a libstdc++-v3/doc/html/manual/std_contents.html dbb5f81a9e8864374fbb835eaa4e8b0d libstdc++-v3/doc/html/manual/streambufs.html 47e6a6ef4752e7c7e3ecb2a4948a7514 libstdc++-v3/doc/html/manual/strings.html *************** b9abf80a75c223a9423b212d20240602 libstd *** 97952,97958 **** ccc3b1a320ccc49a977c80546610195b libstdc++-v3/doc/html/manual/using_namespaces.html d881fcffb799c09a28d8174ccb1326a2 libstdc++-v3/doc/html/manual/utilities.html ccbc0492a648982f2dc225595bdbc567 libstdc++-v3/doc/xml/api.xml ! 61748d51ede56b338ef61ce9232c23e0 libstdc++-v3/doc/xml/authors.xml 5906074c27c57c65b220c35bbcb2c5ec libstdc++-v3/doc/xml/book.txml 44d3a92b83abfb18efac80519c79b44c libstdc++-v3/doc/xml/chapter.txml 011b8e6a5442e4dc08f02e7295b644a3 libstdc++-v3/doc/xml/class.txml --- 98277,98283 ---- ccc3b1a320ccc49a977c80546610195b libstdc++-v3/doc/html/manual/using_namespaces.html d881fcffb799c09a28d8174ccb1326a2 libstdc++-v3/doc/html/manual/utilities.html ccbc0492a648982f2dc225595bdbc567 libstdc++-v3/doc/xml/api.xml ! e1775a73c7dd9e58d002cffb39192faa libstdc++-v3/doc/xml/authors.xml 5906074c27c57c65b220c35bbcb2c5ec libstdc++-v3/doc/xml/book.txml 44d3a92b83abfb18efac80519c79b44c libstdc++-v3/doc/xml/chapter.txml 011b8e6a5442e4dc08f02e7295b644a3 libstdc++-v3/doc/xml/class.txml *************** e3215d958bafd6fd02249dc5bab42f58 libstd *** 98158,98166 **** f320f25003678cca910f09ba54c923fc libstdc++-v3/doc/xml/manual/diagnostics.xml 561ce4bba87e35c92c47d95599ca9d9b libstdc++-v3/doc/xml/manual/documentation_hacking.xml a3b670e11d8db732a9352e2fbe236347 libstdc++-v3/doc/xml/manual/evolution.xml ! 14742e66a2ac01343ef60e87d06d05ff libstdc++-v3/doc/xml/manual/extensions.xml 7f1864c7f3c3b2bfde84b7086be97ca7 libstdc++-v3/doc/xml/manual/internals.xml ! 3bb41abfa95c0595af0cde92765188a9 libstdc++-v3/doc/xml/manual/intro.xml 93c3158fe28bdfbbf03dd039cc4e79a2 libstdc++-v3/doc/xml/manual/io.xml 5ac71d67674ea22bcf1e54043bf8e99d libstdc++-v3/doc/xml/manual/iterators.xml b9c8759ff9b60e09bd2875420a55cd31 libstdc++-v3/doc/xml/manual/locale.xml --- 98483,98491 ---- f320f25003678cca910f09ba54c923fc libstdc++-v3/doc/xml/manual/diagnostics.xml 561ce4bba87e35c92c47d95599ca9d9b libstdc++-v3/doc/xml/manual/documentation_hacking.xml a3b670e11d8db732a9352e2fbe236347 libstdc++-v3/doc/xml/manual/evolution.xml ! 137276d6eb0bbaf6563b8319770dc747 libstdc++-v3/doc/xml/manual/extensions.xml 7f1864c7f3c3b2bfde84b7086be97ca7 libstdc++-v3/doc/xml/manual/internals.xml ! 5f4d26ae4a278b447450c82258dc4229 libstdc++-v3/doc/xml/manual/intro.xml 93c3158fe28bdfbbf03dd039cc4e79a2 libstdc++-v3/doc/xml/manual/io.xml 5ac71d67674ea22bcf1e54043bf8e99d libstdc++-v3/doc/xml/manual/iterators.xml b9c8759ff9b60e09bd2875420a55cd31 libstdc++-v3/doc/xml/manual/locale.xml *************** b00f98f125f6186c369ce588d795f978 libstd *** 98171,98184 **** 7edd591e15a0bbc76d58e9edcb7c28d1 libstdc++-v3/doc/xml/manual/parallel_mode.xml b4f22a512ad29af70c76d4e459bdf2a8 libstdc++-v3/doc/xml/manual/policy_data_structures.xml d766137e6e226eaf2c354f95fd9c7274 libstdc++-v3/doc/xml/manual/policy_data_structures_biblio.xml ! 2f4a4ec5c3f1beecb2e7e72f3b0d2958 libstdc++-v3/doc/xml/manual/prerequisites.xml cec5c5415c371a664adb0490e2571c3c libstdc++-v3/doc/xml/manual/shared_ptr.xml ! 9a8f1a85034e6fe72b02302051aa7af9 libstdc++-v3/doc/xml/manual/spine.xml 0bba6071dae55602cf351932ae6931d8 libstdc++-v3/doc/xml/manual/status_cxx1998.xml 7760eae3d9ab7cabae519904b3a5759e libstdc++-v3/doc/xml/manual/status_cxx2011.xml d7679667c783a269bb7718eb5d95f435 libstdc++-v3/doc/xml/manual/status_cxx2014.xml 5bb9fe8fa9f85b6d25e0d01355973428 libstdc++-v3/doc/xml/manual/status_cxx2017.xml ! 0d8d3e572d69acd09396d06e8249808b libstdc++-v3/doc/xml/manual/status_cxx2020.xml 3c72998c4574690fac280c058a0db757 libstdc++-v3/doc/xml/manual/status_cxxis29124.xml a3c830bf7580b2f5b61bb7806aa3f498 libstdc++-v3/doc/xml/manual/status_cxxtr1.xml 716b0440e3bfb860e5ee262a17e4f11a libstdc++-v3/doc/xml/manual/status_cxxtr24733.xml --- 98496,98510 ---- 7edd591e15a0bbc76d58e9edcb7c28d1 libstdc++-v3/doc/xml/manual/parallel_mode.xml b4f22a512ad29af70c76d4e459bdf2a8 libstdc++-v3/doc/xml/manual/policy_data_structures.xml d766137e6e226eaf2c354f95fd9c7274 libstdc++-v3/doc/xml/manual/policy_data_structures_biblio.xml ! f25986e96331b9ee671b4fe62ab33a1c libstdc++-v3/doc/xml/manual/prerequisites.xml cec5c5415c371a664adb0490e2571c3c libstdc++-v3/doc/xml/manual/shared_ptr.xml ! d7f222c42325cd44eadad2c59eef7e6f libstdc++-v3/doc/xml/manual/spine.xml 0bba6071dae55602cf351932ae6931d8 libstdc++-v3/doc/xml/manual/status_cxx1998.xml 7760eae3d9ab7cabae519904b3a5759e libstdc++-v3/doc/xml/manual/status_cxx2011.xml d7679667c783a269bb7718eb5d95f435 libstdc++-v3/doc/xml/manual/status_cxx2014.xml 5bb9fe8fa9f85b6d25e0d01355973428 libstdc++-v3/doc/xml/manual/status_cxx2017.xml ! d0e5411965f73ec23af63f5d5368623b libstdc++-v3/doc/xml/manual/status_cxx2020.xml ! 9d049d3b44a1dd0ce226b835023c5749 libstdc++-v3/doc/xml/manual/status_cxx2023.xml 3c72998c4574690fac280c058a0db757 libstdc++-v3/doc/xml/manual/status_cxxis29124.xml a3c830bf7580b2f5b61bb7806aa3f498 libstdc++-v3/doc/xml/manual/status_cxxtr1.xml 716b0440e3bfb860e5ee262a17e4f11a libstdc++-v3/doc/xml/manual/status_cxxtr24733.xml *************** e2e099be3dd6a4b7a940a7232635ee2c libstd *** 98192,98199 **** 05d0e18187995e8ce64185beb05cd6ed libstdc++-v3/doc/xml/spine.xml bd966b4a0df6f2a84f9770525581d45c libstdc++-v3/doc/xsl/customization.xsl.in 42d14268f2b16c54a6bc2f71538a838c libstdc++-v3/fragment.am ! 908772cdec680f1cf3d09ef32b451662 libstdc++-v3/include/Makefile.am ! 8460c7fbbd13ff4153eed9b078a3e453 libstdc++-v3/include/Makefile.in 83813d3bf45dd53bdc13d769af501845 libstdc++-v3/include/backward/auto_ptr.h 93f8180370b2b5df7b580ce625762260 libstdc++-v3/include/backward/backward_warning.h 3ba6b626499f6c5a1cf871734a77df07 libstdc++-v3/include/backward/binders.h --- 98518,98525 ---- 05d0e18187995e8ce64185beb05cd6ed libstdc++-v3/doc/xml/spine.xml bd966b4a0df6f2a84f9770525581d45c libstdc++-v3/doc/xsl/customization.xsl.in 42d14268f2b16c54a6bc2f71538a838c libstdc++-v3/fragment.am ! 390947ded0aca3859c15dc207c021817 libstdc++-v3/include/Makefile.am ! f35e76d44f04c3f95d97b41633e52b63 libstdc++-v3/include/Makefile.in 83813d3bf45dd53bdc13d769af501845 libstdc++-v3/include/backward/auto_ptr.h 93f8180370b2b5df7b580ce625762260 libstdc++-v3/include/backward/backward_warning.h 3ba6b626499f6c5a1cf871734a77df07 libstdc++-v3/include/backward/binders.h *************** f6791325ac8042a3d1825c0f1ae0765b libstd *** 98207,98216 **** 937e9d7f00d3ed7cff7ec8fafeb8a8bc libstdc++-v3/include/bits/alloc_traits.h 58ff381dfbb0c52b9ff69747242a3a8f libstdc++-v3/include/bits/allocated_ptr.h 52abf05a7426983321ecef80fe4251be libstdc++-v3/include/bits/allocator.h ! e3f9f74fba67d8b5e1538ec2829d6ccd libstdc++-v3/include/bits/atomic_base.h adb82b0133e664d7a6d703cde2ee9b90 libstdc++-v3/include/bits/atomic_futex.h 56bd6a5d218c8ecad595a4d829f9b5b8 libstdc++-v3/include/bits/atomic_timed_wait.h ! eeec5baac9e782444495e4ff1d7010c4 libstdc++-v3/include/bits/atomic_wait.h 3a2158164dc155855b2c0175c5f3c80b libstdc++-v3/include/bits/basic_ios.h bd6a297c732d4d1fc2db79f61e854e8c libstdc++-v3/include/bits/basic_ios.tcc 7e5346b1ac8ec4f2b0e876ce53e4b6e1 libstdc++-v3/include/bits/basic_string.h --- 98533,98542 ---- 937e9d7f00d3ed7cff7ec8fafeb8a8bc libstdc++-v3/include/bits/alloc_traits.h 58ff381dfbb0c52b9ff69747242a3a8f libstdc++-v3/include/bits/allocated_ptr.h 52abf05a7426983321ecef80fe4251be libstdc++-v3/include/bits/allocator.h ! 339a86ad6564a9bda3ab406d4e92d790 libstdc++-v3/include/bits/atomic_base.h adb82b0133e664d7a6d703cde2ee9b90 libstdc++-v3/include/bits/atomic_futex.h 56bd6a5d218c8ecad595a4d829f9b5b8 libstdc++-v3/include/bits/atomic_timed_wait.h ! 7be82262897ffdbc9f9aafae04ec8055 libstdc++-v3/include/bits/atomic_wait.h 3a2158164dc155855b2c0175c5f3c80b libstdc++-v3/include/bits/basic_ios.h bd6a297c732d4d1fc2db79f61e854e8c libstdc++-v3/include/bits/basic_ios.tcc 7e5346b1ac8ec4f2b0e876ce53e4b6e1 libstdc++-v3/include/bits/basic_string.h *************** a143652aea71c3de835d07a5ca715a81 libstd *** 98227,98260 **** fe864b2a299875de978dcc610a835eb6 libstdc++-v3/include/bits/enable_special_members.h 00ebb6049dacf8ab023b15caf7b3a690 libstdc++-v3/include/bits/erase_if.h a7d5bb28720ccf51fe638410018fc593 libstdc++-v3/include/bits/forward_list.h ! 7ce3876e2c3546f4e3f7fb947e3479a7 libstdc++-v3/include/bits/forward_list.tcc 42e0fac7ef6d3d3217e48ce36672e534 libstdc++-v3/include/bits/fs_dir.h 70ce7389ec86c32b97e433d940247f4b libstdc++-v3/include/bits/fs_fwd.h ! d486ec76d1eac079f1e5ed61ee50cc50 libstdc++-v3/include/bits/fs_ops.h ! 8877eb003169ec54e3ef21d88efdadbc libstdc++-v3/include/bits/fs_path.h 1e083c1a36d484e25c40b96ad6699e4e libstdc++-v3/include/bits/fstream.tcc dd8a128f529a9f6f73237a176e7299bc libstdc++-v3/include/bits/functexcept.h 3854e123c62afb06ce8eff3213da177e libstdc++-v3/include/bits/functional_hash.h 7e28c413fb2ff8f896ab6f4b81296589 libstdc++-v3/include/bits/gslice.h ! 6d64fcf711e66e1774782608ff3b5159 libstdc++-v3/include/bits/gslice_array.h 1b162c169c5c035be9f65e875ba43048 libstdc++-v3/include/bits/hashtable.h 985a1e281b3b291fa13c4044bfc48b31 libstdc++-v3/include/bits/hashtable_policy.h ! 94b514a53ce7d1816738c38c1e0655a8 libstdc++-v3/include/bits/indirect_array.h 70c7a436935136a62065871cf31e4943 libstdc++-v3/include/bits/invoke.h b81521437ef0ce936cef3eaef2df90db libstdc++-v3/include/bits/ios_base.h 6605273dbd3b4a796727eff37aa712ed libstdc++-v3/include/bits/istream.tcc 66ebf5810a684c1af0a71a8d8819b3eb libstdc++-v3/include/bits/iterator_concepts.h ! 9c607b8172976c0554f82e593ebab6e7 libstdc++-v3/include/bits/list.tcc 9033c9a135c14cc8c1b25fb5774e57e7 libstdc++-v3/include/bits/locale_classes.h d9209b1a8387c8074c0b4dfa10383f2d libstdc++-v3/include/bits/locale_classes.tcc b93ec8fb60ddfb747f6a4956d056226e libstdc++-v3/include/bits/locale_conv.h 60086948f806696451f55032cdff69dc libstdc++-v3/include/bits/locale_facets.h 20df9195fafbed780aca7f7a838399e3 libstdc++-v3/include/bits/locale_facets.tcc 40d368932a34a5a714551d5411431aed libstdc++-v3/include/bits/locale_facets_nonio.h ! 05f284aca697735aea072159826db863 libstdc++-v3/include/bits/locale_facets_nonio.tcc bded7dc13b4cfa5d81cf5165cc84122a libstdc++-v3/include/bits/localefwd.h ! 3f32eafc5a86b24ba1ddea1f2c791f2f libstdc++-v3/include/bits/mask_array.h ! 3b99ebe899129f76e71b6a400b7ae599 libstdc++-v3/include/bits/max_size_type.h 3f6b104467902cda411d015a32d97cf1 libstdc++-v3/include/bits/memoryfwd.h 156ce13c58f77c44098165fa0e6b5efc libstdc++-v3/include/bits/move.h 434b2342bf495fd191265b752a71fc44 libstdc++-v3/include/bits/node_handle.h --- 98553,98586 ---- fe864b2a299875de978dcc610a835eb6 libstdc++-v3/include/bits/enable_special_members.h 00ebb6049dacf8ab023b15caf7b3a690 libstdc++-v3/include/bits/erase_if.h a7d5bb28720ccf51fe638410018fc593 libstdc++-v3/include/bits/forward_list.h ! 2f0cf51176b50d64270bb5e7ba78708b libstdc++-v3/include/bits/forward_list.tcc 42e0fac7ef6d3d3217e48ce36672e534 libstdc++-v3/include/bits/fs_dir.h 70ce7389ec86c32b97e433d940247f4b libstdc++-v3/include/bits/fs_fwd.h ! 0b0e4fe70f7a52ec967bc4d0e526470f libstdc++-v3/include/bits/fs_ops.h ! 047582c6013e3d323020f4adc7a65203 libstdc++-v3/include/bits/fs_path.h 1e083c1a36d484e25c40b96ad6699e4e libstdc++-v3/include/bits/fstream.tcc dd8a128f529a9f6f73237a176e7299bc libstdc++-v3/include/bits/functexcept.h 3854e123c62afb06ce8eff3213da177e libstdc++-v3/include/bits/functional_hash.h 7e28c413fb2ff8f896ab6f4b81296589 libstdc++-v3/include/bits/gslice.h ! e456cf0f51e466e78775ed5c4895339c libstdc++-v3/include/bits/gslice_array.h 1b162c169c5c035be9f65e875ba43048 libstdc++-v3/include/bits/hashtable.h 985a1e281b3b291fa13c4044bfc48b31 libstdc++-v3/include/bits/hashtable_policy.h ! 0c0a3a285147405c46b1222a8f53b9da libstdc++-v3/include/bits/indirect_array.h 70c7a436935136a62065871cf31e4943 libstdc++-v3/include/bits/invoke.h b81521437ef0ce936cef3eaef2df90db libstdc++-v3/include/bits/ios_base.h 6605273dbd3b4a796727eff37aa712ed libstdc++-v3/include/bits/istream.tcc 66ebf5810a684c1af0a71a8d8819b3eb libstdc++-v3/include/bits/iterator_concepts.h ! f9e14195e3b39126d58f67842330de06 libstdc++-v3/include/bits/list.tcc 9033c9a135c14cc8c1b25fb5774e57e7 libstdc++-v3/include/bits/locale_classes.h d9209b1a8387c8074c0b4dfa10383f2d libstdc++-v3/include/bits/locale_classes.tcc b93ec8fb60ddfb747f6a4956d056226e libstdc++-v3/include/bits/locale_conv.h 60086948f806696451f55032cdff69dc libstdc++-v3/include/bits/locale_facets.h 20df9195fafbed780aca7f7a838399e3 libstdc++-v3/include/bits/locale_facets.tcc 40d368932a34a5a714551d5411431aed libstdc++-v3/include/bits/locale_facets_nonio.h ! 8875e3fc634ade502ae8d5c70b7bc407 libstdc++-v3/include/bits/locale_facets_nonio.tcc bded7dc13b4cfa5d81cf5165cc84122a libstdc++-v3/include/bits/localefwd.h ! ce159ba2bb3c8fced8b24b10ca50c912 libstdc++-v3/include/bits/mask_array.h ! e3279d92169ee9dafabefe79d86b0114 libstdc++-v3/include/bits/max_size_type.h 3f6b104467902cda411d015a32d97cf1 libstdc++-v3/include/bits/memoryfwd.h 156ce13c58f77c44098165fa0e6b5efc libstdc++-v3/include/bits/move.h 434b2342bf495fd191265b752a71fc44 libstdc++-v3/include/bits/node_handle.h *************** e270c86004665d7c88cb0daea0668abd libstd *** 98266,98314 **** e6a5e9764ebd755e32e991292611e659 libstdc++-v3/include/bits/ptr_traits.h bf73b2a247be8d104de523be716f61f4 libstdc++-v3/include/bits/quoted_string.h 470011eef0ce4aa0582e38f577095a5c libstdc++-v3/include/bits/random.h ! 5f69bfbde6bf41c8001a80d38abd542a libstdc++-v3/include/bits/random.tcc 8dad5e77e5e4bab2b7000771d297ea9a libstdc++-v3/include/bits/range_access.h 0cfaa408ff48de2b121439f9f325d90c libstdc++-v3/include/bits/ranges_algo.h ! e2df1ee55df6addd8c7b5d3bde579658 libstdc++-v3/include/bits/ranges_algobase.h ! e0904214b08e51aa4604c6df133c3bbb libstdc++-v3/include/bits/ranges_base.h 52dfeae5cd28cdecf71c6362cd101927 libstdc++-v3/include/bits/ranges_cmp.h 920cfa2cb58c94bed4db10b0a892ca19 libstdc++-v3/include/bits/ranges_uninitialized.h a22ca821dd328be54106bfb299193706 libstdc++-v3/include/bits/ranges_util.h bafb49c6b1a65444216c071f25b43760 libstdc++-v3/include/bits/refwrap.h ! 843befce3c9575f43a5893d8dad4dc61 libstdc++-v3/include/bits/regex.h ! 98d3d51046b708d9220ef857b955650f libstdc++-v3/include/bits/regex.tcc ! b8b0cf85c115bbd16b3256e7f86315c5 libstdc++-v3/include/bits/regex_automaton.h 1a0c43de6ed4d56e298516e81208096a libstdc++-v3/include/bits/regex_automaton.tcc ! 9b98eca9adb64a3789d65233db362bf5 libstdc++-v3/include/bits/regex_compiler.h ! 04718138ae92de2ca5211b1127e6bdfb libstdc++-v3/include/bits/regex_compiler.tcc ! 528eeb9a41f8fa2f75c7da93f3a87e51 libstdc++-v3/include/bits/regex_constants.h ! fa9fbe5b4b6b38cebc35d0a4f86d2aa2 libstdc++-v3/include/bits/regex_error.h ! bf2631da804338ebd183a2ab97e8fe71 libstdc++-v3/include/bits/regex_executor.h ! f419d75dd099ff83043ecee608bcbd0b libstdc++-v3/include/bits/regex_executor.tcc ! 716607b7d27d47a176e82ac8130fdf31 libstdc++-v3/include/bits/regex_scanner.h ! 785e8171663dd2f0db22813a93c65ed9 libstdc++-v3/include/bits/regex_scanner.tcc d761f7d17cd87d90c96bcaa692fffffc libstdc++-v3/include/bits/semaphore_base.h bae24842408b2172fbea488e17b09021 libstdc++-v3/include/bits/shared_ptr.h 007e220395413941831ec80cc4e916b7 libstdc++-v3/include/bits/shared_ptr_atomic.h ! 903a445df4ef3034a2163ac5a9adc8da libstdc++-v3/include/bits/shared_ptr_base.h ! 76a4a29ee68e815ad238f784a66392d3 libstdc++-v3/include/bits/slice_array.h 82bbae243b362815baa11a73f83d2188 libstdc++-v3/include/bits/specfun.h 13dd655f9d33eef94922ec1a670c462c libstdc++-v3/include/bits/sstream.tcc 0ca803a7f09755f05290802f0dd2b38c libstdc++-v3/include/bits/std_abs.h 0c73b43d052808013e7562d398c72d7e libstdc++-v3/include/bits/std_function.h c65174fff50fe5647fc68ed6f3ae1695 libstdc++-v3/include/bits/std_mutex.h ! f2a5652c1fba7b750bcb17f96dcc1a75 libstdc++-v3/include/bits/std_thread.h c661d981a881e8628863fac1295c261c libstdc++-v3/include/bits/stl_algo.h c0e5fec159b35d2e970802869ef11db5 libstdc++-v3/include/bits/stl_algobase.h 98118948adc1b932091fb4e357a8762c libstdc++-v3/include/bits/stl_bvector.h ! 6847fc10df4d7118742d961154d17bb9 libstdc++-v3/include/bits/stl_construct.h ! 030b82de595162b8288defee8ca51bc1 libstdc++-v3/include/bits/stl_deque.h 42c8c895e947368df44a306d292f341c libstdc++-v3/include/bits/stl_function.h 9b5d138d0bfe5519552ee1fd50135555 libstdc++-v3/include/bits/stl_heap.h ! 42972cf6f6ba275d7ce1bc489a712015 libstdc++-v3/include/bits/stl_iterator.h 76a3280d9bb3ee6191804428721c4059 libstdc++-v3/include/bits/stl_iterator_base_funcs.h 4c794f35830ab1d4f96e6d5dacb8ecc7 libstdc++-v3/include/bits/stl_iterator_base_types.h ! 98c11423a3f4c54610e2c3580faffbd7 libstdc++-v3/include/bits/stl_list.h aee57a8661ec66bcbd3d049a16df390e libstdc++-v3/include/bits/stl_map.h b8cb58fbb28fca627fd75d308c3b79fa libstdc++-v3/include/bits/stl_multimap.h f6c4537c41eed49ed99d69f857341edf libstdc++-v3/include/bits/stl_multiset.h --- 98592,98640 ---- e6a5e9764ebd755e32e991292611e659 libstdc++-v3/include/bits/ptr_traits.h bf73b2a247be8d104de523be716f61f4 libstdc++-v3/include/bits/quoted_string.h 470011eef0ce4aa0582e38f577095a5c libstdc++-v3/include/bits/random.h ! 8cf7e40729429a0463cd5053621cd6d9 libstdc++-v3/include/bits/random.tcc 8dad5e77e5e4bab2b7000771d297ea9a libstdc++-v3/include/bits/range_access.h 0cfaa408ff48de2b121439f9f325d90c libstdc++-v3/include/bits/ranges_algo.h ! 4719959228ef3f1d6d0cf6d9f298e12d libstdc++-v3/include/bits/ranges_algobase.h ! 66d60ff1263299ae568fa036c0ca5d30 libstdc++-v3/include/bits/ranges_base.h 52dfeae5cd28cdecf71c6362cd101927 libstdc++-v3/include/bits/ranges_cmp.h 920cfa2cb58c94bed4db10b0a892ca19 libstdc++-v3/include/bits/ranges_uninitialized.h a22ca821dd328be54106bfb299193706 libstdc++-v3/include/bits/ranges_util.h bafb49c6b1a65444216c071f25b43760 libstdc++-v3/include/bits/refwrap.h ! 1ebbdc6dc36c8eef044a3ec47c3146be libstdc++-v3/include/bits/regex.h ! c7e2fa5548b6f93e2a1914080eb0103b libstdc++-v3/include/bits/regex.tcc ! 5327068d8775945e521cfa9fd18c5e42 libstdc++-v3/include/bits/regex_automaton.h 1a0c43de6ed4d56e298516e81208096a libstdc++-v3/include/bits/regex_automaton.tcc ! a3e674de2d1e3d15fe3d7689b9dea90f libstdc++-v3/include/bits/regex_compiler.h ! cb9abc6dd1a4d7a09e538f506967b105 libstdc++-v3/include/bits/regex_compiler.tcc ! 21d8747400b4b178c32c2ab82a119b24 libstdc++-v3/include/bits/regex_constants.h ! b3dbf12cf3c53f692fd7087d543bae9a libstdc++-v3/include/bits/regex_error.h ! 81aba84bbe8ffab6fe7eba666b6ab341 libstdc++-v3/include/bits/regex_executor.h ! 7245f80b6f3dc184283379c7f59e591a libstdc++-v3/include/bits/regex_executor.tcc ! 9cf8e92427973b264f4cecfad5f32a97 libstdc++-v3/include/bits/regex_scanner.h ! 9e7e74e5a0ad4b722eee3b8a3b333cda libstdc++-v3/include/bits/regex_scanner.tcc d761f7d17cd87d90c96bcaa692fffffc libstdc++-v3/include/bits/semaphore_base.h bae24842408b2172fbea488e17b09021 libstdc++-v3/include/bits/shared_ptr.h 007e220395413941831ec80cc4e916b7 libstdc++-v3/include/bits/shared_ptr_atomic.h ! 8d23d9a03c9ca5773e092d05679e2362 libstdc++-v3/include/bits/shared_ptr_base.h ! 335127ffb0db171d2fa4c680b2ceb381 libstdc++-v3/include/bits/slice_array.h 82bbae243b362815baa11a73f83d2188 libstdc++-v3/include/bits/specfun.h 13dd655f9d33eef94922ec1a670c462c libstdc++-v3/include/bits/sstream.tcc 0ca803a7f09755f05290802f0dd2b38c libstdc++-v3/include/bits/std_abs.h 0c73b43d052808013e7562d398c72d7e libstdc++-v3/include/bits/std_function.h c65174fff50fe5647fc68ed6f3ae1695 libstdc++-v3/include/bits/std_mutex.h ! 97ef8c43fe11d08801719f27fae030d6 libstdc++-v3/include/bits/std_thread.h c661d981a881e8628863fac1295c261c libstdc++-v3/include/bits/stl_algo.h c0e5fec159b35d2e970802869ef11db5 libstdc++-v3/include/bits/stl_algobase.h 98118948adc1b932091fb4e357a8762c libstdc++-v3/include/bits/stl_bvector.h ! d13395651729d9a26632373217b7daf3 libstdc++-v3/include/bits/stl_construct.h ! 680f1c65504734f73467529986f3369b libstdc++-v3/include/bits/stl_deque.h 42c8c895e947368df44a306d292f341c libstdc++-v3/include/bits/stl_function.h 9b5d138d0bfe5519552ee1fd50135555 libstdc++-v3/include/bits/stl_heap.h ! adfbaa72dad2c93f2f61417c54c47efb libstdc++-v3/include/bits/stl_iterator.h 76a3280d9bb3ee6191804428721c4059 libstdc++-v3/include/bits/stl_iterator_base_funcs.h 4c794f35830ab1d4f96e6d5dacb8ecc7 libstdc++-v3/include/bits/stl_iterator_base_types.h ! 10807eb51dc43c99a91c93e176ba24b1 libstdc++-v3/include/bits/stl_list.h aee57a8661ec66bcbd3d049a16df390e libstdc++-v3/include/bits/stl_map.h b8cb58fbb28fca627fd75d308c3b79fa libstdc++-v3/include/bits/stl_multimap.h f6c4537c41eed49ed99d69f857341edf libstdc++-v3/include/bits/stl_multiset.h *************** e1046f3460e6b41c7e73808ecb83be4d libstd *** 98328,98341 **** 68cf363b8a59975fef89e4a35f305aac libstdc++-v3/include/bits/streambuf_iterator.h edfcae2473cc1997408a2778fd824b00 libstdc++-v3/include/bits/string_view.tcc dce486b4bf1d6d2797c477681a012b6b libstdc++-v3/include/bits/stringfwd.h ! 36a5335258d3016e02f890395595a676 libstdc++-v3/include/bits/this_thread_sleep.h 13b7236ca3b4f48a897996d806dfcd78 libstdc++-v3/include/bits/uniform_int_dist.h f121bb0af76bb2def80cd57ec47a7a93 libstdc++-v3/include/bits/unique_lock.h 4b5ae66ad1eb2fe06e6955f59533f596 libstdc++-v3/include/bits/unique_ptr.h b23caecd2ad3808e9572b2051285a5ef libstdc++-v3/include/bits/unordered_map.h 2b37ceccf2a7d7b2510b97d737feb425 libstdc++-v3/include/bits/unordered_set.h 3232586c3c5b827a38bfdd0f1cb692d3 libstdc++-v3/include/bits/uses_allocator.h ! 3ce8e46172f802fe63611201ceff37c3 libstdc++-v3/include/bits/uses_allocator_args.h 92ac9967aa8b4e7ebb4019d9e5fc2cf6 libstdc++-v3/include/bits/valarray_after.h 68516738753362c2db0a29a86a8e6264 libstdc++-v3/include/bits/valarray_array.h 164619db6e4fbc8072543c783e3b533e libstdc++-v3/include/bits/valarray_array.tcc --- 98654,98667 ---- 68cf363b8a59975fef89e4a35f305aac libstdc++-v3/include/bits/streambuf_iterator.h edfcae2473cc1997408a2778fd824b00 libstdc++-v3/include/bits/string_view.tcc dce486b4bf1d6d2797c477681a012b6b libstdc++-v3/include/bits/stringfwd.h ! dbb7d35501a7cc0d81b824c8f19a4970 libstdc++-v3/include/bits/this_thread_sleep.h 13b7236ca3b4f48a897996d806dfcd78 libstdc++-v3/include/bits/uniform_int_dist.h f121bb0af76bb2def80cd57ec47a7a93 libstdc++-v3/include/bits/unique_lock.h 4b5ae66ad1eb2fe06e6955f59533f596 libstdc++-v3/include/bits/unique_ptr.h b23caecd2ad3808e9572b2051285a5ef libstdc++-v3/include/bits/unordered_map.h 2b37ceccf2a7d7b2510b97d737feb425 libstdc++-v3/include/bits/unordered_set.h 3232586c3c5b827a38bfdd0f1cb692d3 libstdc++-v3/include/bits/uses_allocator.h ! 3c4c1862bc686ce6c2d097b32a3cb5f7 libstdc++-v3/include/bits/uses_allocator_args.h 92ac9967aa8b4e7ebb4019d9e5fc2cf6 libstdc++-v3/include/bits/valarray_after.h 68516738753362c2db0a29a86a8e6264 libstdc++-v3/include/bits/valarray_array.h 164619db6e4fbc8072543c783e3b533e libstdc++-v3/include/bits/valarray_array.tcc *************** ffaf8d3718dd333ea27a4a80ef91f2ca libstd *** 98401,98407 **** 46a63be570cb38caa5e9a9dbbb602cc7 libstdc++-v3/include/c_global/cstdalign 74c8c88b10906374a040dbdbdff64367 libstdc++-v3/include/c_global/cstdarg 50d2074e121e5079532c038fbffec30e libstdc++-v3/include/c_global/cstdbool ! 6265732c237dbce60877696f72fb210b libstdc++-v3/include/c_global/cstddef 3495a000699aeacc73362a939388c5d3 libstdc++-v3/include/c_global/cstdint a7ce4ac37bb51deeb3861d4cb6c8f260 libstdc++-v3/include/c_global/cstdio 5c22b21848d5ef9504ded4ba9ac0f5b0 libstdc++-v3/include/c_global/cstdlib --- 98727,98733 ---- 46a63be570cb38caa5e9a9dbbb602cc7 libstdc++-v3/include/c_global/cstdalign 74c8c88b10906374a040dbdbdff64367 libstdc++-v3/include/c_global/cstdarg 50d2074e121e5079532c038fbffec30e libstdc++-v3/include/c_global/cstdbool ! 0fa40ad26372c117a0b028cc33f68d50 libstdc++-v3/include/c_global/cstddef 3495a000699aeacc73362a939388c5d3 libstdc++-v3/include/c_global/cstdint a7ce4ac37bb51deeb3861d4cb6c8f260 libstdc++-v3/include/c_global/cstdio 5c22b21848d5ef9504ded4ba9ac0f5b0 libstdc++-v3/include/c_global/cstdlib *************** fee23cd92a92d6bf2f6fdd3850d1ec1a libstd *** 98470,98491 **** 51feabb5a9aff9c2650be847f563769d libstdc++-v3/include/experimental/array 363feb942b9ed4fdcb8f065231501c85 libstdc++-v3/include/experimental/bits/fs_dir.h f5e02eb1311a467ce3d8138ce931f3eb libstdc++-v3/include/experimental/bits/fs_fwd.h ! 52737c1e85c36fe263ef86630cece5a7 libstdc++-v3/include/experimental/bits/fs_ops.h ! 39c79598ce86e66f13b60c1891b17e80 libstdc++-v3/include/experimental/bits/fs_path.h f35b43a0d32627601d4bfe3ac24e84ff libstdc++-v3/include/experimental/bits/lfts_config.h 6c96027917a74ba73627fb559e8bbeb7 libstdc++-v3/include/experimental/bits/net.h 19f9985a717ce911687aa7087349693d libstdc++-v3/include/experimental/bits/numeric_traits.h 526bcbcdfb0acc96580ff835ceb38948 libstdc++-v3/include/experimental/bits/shared_ptr.h ! 2e2d3bbaa3bfc8f5b2865938517b4aa7 libstdc++-v3/include/experimental/bits/simd.h ! 77017778ba2d0d32457cec429d6d6977 libstdc++-v3/include/experimental/bits/simd_builtin.h ! 24126236d714fbf83db8ddc38457b246 libstdc++-v3/include/experimental/bits/simd_converter.h ! c7387f3f41d4df9d699e9b1336d67344 libstdc++-v3/include/experimental/bits/simd_detail.h ! eec02f44fcb5eba6ba668e810c146d8d libstdc++-v3/include/experimental/bits/simd_fixed_size.h ! 847194b3fe1db090040fca784135ea40 libstdc++-v3/include/experimental/bits/simd_math.h ! 0bcac8d453d8e154e6ccb741b4519051 libstdc++-v3/include/experimental/bits/simd_neon.h ! 7b753c6c4038aa02447cf0318cdeb6ec libstdc++-v3/include/experimental/bits/simd_ppc.h ! 5c1c0064d9b5bbd62fff9f3d0f78f5b6 libstdc++-v3/include/experimental/bits/simd_scalar.h ! b4b13543518a05fcce27741e6abddd5b libstdc++-v3/include/experimental/bits/simd_x86.h a7070d3b5675c71011b2b53a091f1276 libstdc++-v3/include/experimental/bits/simd_x86_conversions.h 3a18bdda008c9ee7d00a7fe3df2978f7 libstdc++-v3/include/experimental/bits/string_view.tcc 854d9b5964314dea05a89721173b4da0 libstdc++-v3/include/experimental/buffer --- 98796,98817 ---- 51feabb5a9aff9c2650be847f563769d libstdc++-v3/include/experimental/array 363feb942b9ed4fdcb8f065231501c85 libstdc++-v3/include/experimental/bits/fs_dir.h f5e02eb1311a467ce3d8138ce931f3eb libstdc++-v3/include/experimental/bits/fs_fwd.h ! ec486b11aba3d3daa70d9ffaa56ae032 libstdc++-v3/include/experimental/bits/fs_ops.h ! eb27e9e05d97a3299e71d2dbd817eb49 libstdc++-v3/include/experimental/bits/fs_path.h f35b43a0d32627601d4bfe3ac24e84ff libstdc++-v3/include/experimental/bits/lfts_config.h 6c96027917a74ba73627fb559e8bbeb7 libstdc++-v3/include/experimental/bits/net.h 19f9985a717ce911687aa7087349693d libstdc++-v3/include/experimental/bits/numeric_traits.h 526bcbcdfb0acc96580ff835ceb38948 libstdc++-v3/include/experimental/bits/shared_ptr.h ! 146a65a53d67a17837f80c6b72583c2a libstdc++-v3/include/experimental/bits/simd.h ! bd8bb2775a56beef8d5e7035f29313b3 libstdc++-v3/include/experimental/bits/simd_builtin.h ! cc64fe357953ec34875f1b32641b45db libstdc++-v3/include/experimental/bits/simd_converter.h ! 2ea5647aa5c4573ab52b119e9e93e0d5 libstdc++-v3/include/experimental/bits/simd_detail.h ! acafc82b1c2b3da5288baa6534636825 libstdc++-v3/include/experimental/bits/simd_fixed_size.h ! a757b9f3a68db3ae2f36e012ea2215b9 libstdc++-v3/include/experimental/bits/simd_math.h ! a6758085744d5817f8a1186ee2015ea4 libstdc++-v3/include/experimental/bits/simd_neon.h ! 54fcaa202fda15079cb885020f6bf1e5 libstdc++-v3/include/experimental/bits/simd_ppc.h ! 807f9675127d0f7a2fb50eb6d56c5816 libstdc++-v3/include/experimental/bits/simd_scalar.h ! 9fef4ad443d852ede506049316aaecfb libstdc++-v3/include/experimental/bits/simd_x86.h a7070d3b5675c71011b2b53a091f1276 libstdc++-v3/include/experimental/bits/simd_x86_conversions.h 3a18bdda008c9ee7d00a7fe3df2978f7 libstdc++-v3/include/experimental/bits/string_view.tcc 854d9b5964314dea05a89721173b4da0 libstdc++-v3/include/experimental/buffer *************** baeaf7b9b85bb476117d286653f6d6dd libstd *** 98495,98501 **** 7b2663037e13929b806bf614936012cd libstdc++-v3/include/experimental/filesystem de12aef18178267fe21aaf85aa6b5d98 libstdc++-v3/include/experimental/forward_list 5dcfda8a1ea0023fdf730226a958f492 libstdc++-v3/include/experimental/functional ! 3123308f1adec058d0f6137b80537c97 libstdc++-v3/include/experimental/internet 91becacad368d2748dbba54d79e1d1d4 libstdc++-v3/include/experimental/io_context 4691bb9a4cbb032dd0b0bd7a07fa1867 libstdc++-v3/include/experimental/iterator 760aa8f9adda752006a29223129fb0e3 libstdc++-v3/include/experimental/list --- 98821,98827 ---- 7b2663037e13929b806bf614936012cd libstdc++-v3/include/experimental/filesystem de12aef18178267fe21aaf85aa6b5d98 libstdc++-v3/include/experimental/forward_list 5dcfda8a1ea0023fdf730226a958f492 libstdc++-v3/include/experimental/functional ! 2bac1861f620f34b47b9363a9802588b libstdc++-v3/include/experimental/internet 91becacad368d2748dbba54d79e1d1d4 libstdc++-v3/include/experimental/io_context 4691bb9a4cbb032dd0b0bd7a07fa1867 libstdc++-v3/include/experimental/iterator 760aa8f9adda752006a29223129fb0e3 libstdc++-v3/include/experimental/list *************** de12aef18178267fe21aaf85aa6b5d98 libstd *** 98504,98511 **** 8d496ecdcd31004e5178103976818db7 libstdc++-v3/include/experimental/memory_resource 00e11abd45c1991e940e3cc0ce0ebe37 libstdc++-v3/include/experimental/net c37c4ab64b91d429eb61d78fdc4ae75e libstdc++-v3/include/experimental/netfwd ! e9319e5893708aa04f34ad9d9a5782d8 libstdc++-v3/include/experimental/numeric ! 254db9903f2d7fb0c771809d3d79d4c9 libstdc++-v3/include/experimental/optional 88381df08a09b23c6f601a2631339c94 libstdc++-v3/include/experimental/propagate_const b9a97a912d958096564644bd8f9c49e6 libstdc++-v3/include/experimental/random bcc2870c86a9e3a62d9cc64e34919516 libstdc++-v3/include/experimental/ratio --- 98830,98837 ---- 8d496ecdcd31004e5178103976818db7 libstdc++-v3/include/experimental/memory_resource 00e11abd45c1991e940e3cc0ce0ebe37 libstdc++-v3/include/experimental/net c37c4ab64b91d429eb61d78fdc4ae75e libstdc++-v3/include/experimental/netfwd ! ada4b171b7ac317029dc5b4134f19eb6 libstdc++-v3/include/experimental/numeric ! 92b7e24d8b53000153f9a9f69dfe4b12 libstdc++-v3/include/experimental/optional 88381df08a09b23c6f601a2631339c94 libstdc++-v3/include/experimental/propagate_const b9a97a912d958096564644bd8f9c49e6 libstdc++-v3/include/experimental/random bcc2870c86a9e3a62d9cc64e34919516 libstdc++-v3/include/experimental/ratio *************** b156f0d597a2edae1a06e54aba071e41 libstd *** 98880,98891 **** 6f7d40cef8f663c474dbafbd94db6d41 libstdc++-v3/include/std/algorithm 463aea90e2091f752c8b3d12848f07af libstdc++-v3/include/std/any 1c0c57ef53ca4293de32b58ded42452f libstdc++-v3/include/std/array ! 570573a00e531ffdecd17c4b451394a3 libstdc++-v3/include/std/atomic ! 113c8eb3a8d8b67c8404665c3eb0af4b libstdc++-v3/include/std/barrier 0c9f83580f47735e5a15465796ce574b libstdc++-v3/include/std/bit 92df508c8bd5ee1e5201893372265093 libstdc++-v3/include/std/bitset ! 22f4855f519d0c64e0fd08dd60af4544 libstdc++-v3/include/std/charconv ! 84f035b368ef2b37d7074a834881f74c libstdc++-v3/include/std/chrono 9fc8010f8954d7f9d9b7b73480068af4 libstdc++-v3/include/std/codecvt 34ecc2d19af4343e2194a05671920bcf libstdc++-v3/include/std/complex b27a8ffddfc035eda249b54de11167b3 libstdc++-v3/include/std/concepts --- 99206,99217 ---- 6f7d40cef8f663c474dbafbd94db6d41 libstdc++-v3/include/std/algorithm 463aea90e2091f752c8b3d12848f07af libstdc++-v3/include/std/any 1c0c57ef53ca4293de32b58ded42452f libstdc++-v3/include/std/array ! d842f1d8213f596f991e9ec192107bd5 libstdc++-v3/include/std/atomic ! f41d2b238bdba11f9f434620788dc4f8 libstdc++-v3/include/std/barrier 0c9f83580f47735e5a15465796ce574b libstdc++-v3/include/std/bit 92df508c8bd5ee1e5201893372265093 libstdc++-v3/include/std/bitset ! b1df1e999fa804759ad24974f4c88720 libstdc++-v3/include/std/charconv ! a3c948e3df2b6be15b9120cd88c5d7ea libstdc++-v3/include/std/chrono 9fc8010f8954d7f9d9b7b73480068af4 libstdc++-v3/include/std/codecvt 34ecc2d19af4343e2194a05671920bcf libstdc++-v3/include/std/complex b27a8ffddfc035eda249b54de11167b3 libstdc++-v3/include/std/concepts *************** a237fb5e78eed942187e2c31d09781cd libstd *** 98897,98908 **** f5cdaa349c402ad3dc30fafc021795ed libstdc++-v3/include/std/forward_list bb00f2ca62b1de81f535a88e31c1f5de libstdc++-v3/include/std/fstream 58a2fdd72fd79ee358a1e9503125bf81 libstdc++-v3/include/std/functional ! d477bf4402a3b2bf03b9630bd82c16f4 libstdc++-v3/include/std/future 845b6c7d80f2571b48679fa2d1782e3c libstdc++-v3/include/std/iomanip 7f2ddbbe088dd66d76a348a256dba943 libstdc++-v3/include/std/ios ! 3c26a7aac28e06bf5c15f34547dccfe2 libstdc++-v3/include/std/iosfwd cc9ef3d2217fc8c34ac467dc84040a1a libstdc++-v3/include/std/iostream ! 0c8c5d6467ac30bab3d781a7a81604b8 libstdc++-v3/include/std/istream 18a3b1062d8afaac67497cf9e22a5001 libstdc++-v3/include/std/iterator 02e04305d111ee17f9c47d5be14bfde0 libstdc++-v3/include/std/latch 5db2105ed53cebe7e72b5aeade698f93 libstdc++-v3/include/std/limits --- 99223,99234 ---- f5cdaa349c402ad3dc30fafc021795ed libstdc++-v3/include/std/forward_list bb00f2ca62b1de81f535a88e31c1f5de libstdc++-v3/include/std/fstream 58a2fdd72fd79ee358a1e9503125bf81 libstdc++-v3/include/std/functional ! aeccc26fd2923b40ab6ab541a599d4d0 libstdc++-v3/include/std/future 845b6c7d80f2571b48679fa2d1782e3c libstdc++-v3/include/std/iomanip 7f2ddbbe088dd66d76a348a256dba943 libstdc++-v3/include/std/ios ! d6816b5794f77db9b59059fe08c3e584 libstdc++-v3/include/std/iosfwd cc9ef3d2217fc8c34ac467dc84040a1a libstdc++-v3/include/std/iostream ! f95692de5da00857033814f24e527e8a libstdc++-v3/include/std/istream 18a3b1062d8afaac67497cf9e22a5001 libstdc++-v3/include/std/iterator 02e04305d111ee17f9c47d5be14bfde0 libstdc++-v3/include/std/latch 5db2105ed53cebe7e72b5aeade698f93 libstdc++-v3/include/std/limits *************** f36de15c1f3b7e03051daa3f7c7472c5 libstd *** 98913,98952 **** 09387c343cf665a54b81117127a6a648 libstdc++-v3/include/std/memory_resource 44c7dab7177844460c0d95f3b2c6d2dd libstdc++-v3/include/std/mutex 0f98490a23012b0d475a6438918e05e8 libstdc++-v3/include/std/numbers ! c5ef47ada66192553fd8a6a03625d70e libstdc++-v3/include/std/numeric c26f8f7af799f7f3a2830f1689b12757 libstdc++-v3/include/std/optional efcc2fdc15a99e21f2c4a97ee2924fce libstdc++-v3/include/std/ostream 61b007baae14c52b13732aad82286815 libstdc++-v3/include/std/queue aad0b8c05c77db48c9ae1eddb9e0380d libstdc++-v3/include/std/random ! 3064407113806c9e18b6e82819e298e2 libstdc++-v3/include/std/ranges 338a84095148e5196b391a7fdf949691 libstdc++-v3/include/std/ratio 52827264570402b0bccc80a3adb4bf59 libstdc++-v3/include/std/regex 7aa445d626fba3c86cea701c7db4db7c libstdc++-v3/include/std/scoped_allocator 7ea9ab55b16bf212329fa852a89c8167 libstdc++-v3/include/std/semaphore 742567ce5079b72e691794c61cfb2af3 libstdc++-v3/include/std/set 91a9a4fa6c63c846408b4454d2c8f4b2 libstdc++-v3/include/std/shared_mutex ! e0c9f8627e498a77f31adb76a452b0b1 libstdc++-v3/include/std/source_location ! 357a7b4c1da8f56bcf0a40d239d6ecf5 libstdc++-v3/include/std/span ! 906b5423836b8b95366b23366f24b8c5 libstdc++-v3/include/std/sstream ed0009b64dfff30999a2182d0189ee7f libstdc++-v3/include/std/stack 9d66312aa64c804c24a1e83155f4a200 libstdc++-v3/include/std/stdexcept 34c6da09a169cc099e8108f6af279a65 libstdc++-v3/include/std/stop_token 05c6cffed4833f117e386206af8f878e libstdc++-v3/include/std/streambuf 8eccd3adbdc9f406ec98e5483acf9c01 libstdc++-v3/include/std/string ! 0a773ecf42b54e0084752df53c9771e9 libstdc++-v3/include/std/string_view ! 675010f60f0d3d515817ed986722981c libstdc++-v3/include/std/syncstream 58f6c2eb152b2f7a05834ac1c4ebb1ed libstdc++-v3/include/std/system_error 83a8f781edae2a22c67cf12b96568a03 libstdc++-v3/include/std/thread ! 987d70e3d16382cfa8a07dca96afab5e libstdc++-v3/include/std/tuple ! c35bd8e7b58e4d200f7129541933ae7b libstdc++-v3/include/std/type_traits 330d42fb74c13496f374d6b2cb3cbf7c libstdc++-v3/include/std/typeindex 16ace88be8613b378b5fffc1958351a0 libstdc++-v3/include/std/unordered_map aeb2a92a3c9a2263f24568c8ece52a4c libstdc++-v3/include/std/unordered_set d9438feb050100a59ccb2bd7e22fb8f6 libstdc++-v3/include/std/utility ! 54baaf5124374152e58dec3ec0861669 libstdc++-v3/include/std/valarray ! 93b603e7d4c481cb8e46ce989dab4dcf libstdc++-v3/include/std/variant b2ab68817368c3805d64bb4978a6129d libstdc++-v3/include/std/vector ! 6a729ab766e821a330853c5fd48bcca5 libstdc++-v3/include/std/version 7a3df4ee77f8051d9c8970f892588ef6 libstdc++-v3/include/tr1/array 79c7b722cf8e5135a96d12e1a660393b libstdc++-v3/include/tr1/bessel_function.tcc 814be185cac0443c6e0933c450d9f912 libstdc++-v3/include/tr1/beta_function.tcc --- 99239,99278 ---- 09387c343cf665a54b81117127a6a648 libstdc++-v3/include/std/memory_resource 44c7dab7177844460c0d95f3b2c6d2dd libstdc++-v3/include/std/mutex 0f98490a23012b0d475a6438918e05e8 libstdc++-v3/include/std/numbers ! 05fc9ec988e9d247d6fa5ac50919e7aa libstdc++-v3/include/std/numeric c26f8f7af799f7f3a2830f1689b12757 libstdc++-v3/include/std/optional efcc2fdc15a99e21f2c4a97ee2924fce libstdc++-v3/include/std/ostream 61b007baae14c52b13732aad82286815 libstdc++-v3/include/std/queue aad0b8c05c77db48c9ae1eddb9e0380d libstdc++-v3/include/std/random ! 2b61b0677f1059cc909c183a0771844d libstdc++-v3/include/std/ranges 338a84095148e5196b391a7fdf949691 libstdc++-v3/include/std/ratio 52827264570402b0bccc80a3adb4bf59 libstdc++-v3/include/std/regex 7aa445d626fba3c86cea701c7db4db7c libstdc++-v3/include/std/scoped_allocator 7ea9ab55b16bf212329fa852a89c8167 libstdc++-v3/include/std/semaphore 742567ce5079b72e691794c61cfb2af3 libstdc++-v3/include/std/set 91a9a4fa6c63c846408b4454d2c8f4b2 libstdc++-v3/include/std/shared_mutex ! fa82172d1e8f851dd0540265a9722f00 libstdc++-v3/include/std/source_location ! d7e096e8706bd2f5ace3097757edca5b libstdc++-v3/include/std/span ! c390f93b8a3477ea03336ee6336fdd3d libstdc++-v3/include/std/sstream ed0009b64dfff30999a2182d0189ee7f libstdc++-v3/include/std/stack 9d66312aa64c804c24a1e83155f4a200 libstdc++-v3/include/std/stdexcept 34c6da09a169cc099e8108f6af279a65 libstdc++-v3/include/std/stop_token 05c6cffed4833f117e386206af8f878e libstdc++-v3/include/std/streambuf 8eccd3adbdc9f406ec98e5483acf9c01 libstdc++-v3/include/std/string ! 24d0d039f982ec14049a14db0a3e415c libstdc++-v3/include/std/string_view ! 73e7d99c342a65822fcbfaf4033adf71 libstdc++-v3/include/std/syncstream 58f6c2eb152b2f7a05834ac1c4ebb1ed libstdc++-v3/include/std/system_error 83a8f781edae2a22c67cf12b96568a03 libstdc++-v3/include/std/thread ! 75ec944808fb35b5874a917bfc65812a libstdc++-v3/include/std/tuple ! 6d1101c58cc358a53860711cff8ba743 libstdc++-v3/include/std/type_traits 330d42fb74c13496f374d6b2cb3cbf7c libstdc++-v3/include/std/typeindex 16ace88be8613b378b5fffc1958351a0 libstdc++-v3/include/std/unordered_map aeb2a92a3c9a2263f24568c8ece52a4c libstdc++-v3/include/std/unordered_set d9438feb050100a59ccb2bd7e22fb8f6 libstdc++-v3/include/std/utility ! c850b998f4d1266de1335fea45c46997 libstdc++-v3/include/std/valarray ! aa36fc0f6303b753dfa37dc4df5ea6dd libstdc++-v3/include/std/variant b2ab68817368c3805d64bb4978a6129d libstdc++-v3/include/std/vector ! 32ddefff83b609d61eb548868fcc1de1 libstdc++-v3/include/std/version 7a3df4ee77f8051d9c8970f892588ef6 libstdc++-v3/include/tr1/array 79c7b722cf8e5135a96d12e1a660393b libstdc++-v3/include/tr1/bessel_function.tcc 814be185cac0443c6e0933c450d9f912 libstdc++-v3/include/tr1/beta_function.tcc *************** b21af20d19c1de40ba9cd41e413f6562 libstd *** 99112,99119 **** ef60735f8655321222e620486f219e8d libstdc++-v3/python/hook.in 68b329da9893e34099c7d8ad5cb9c940 libstdc++-v3/python/libstdcxx/__init__.py 484cb11df73bf42227946114a89d29b5 libstdc++-v3/python/libstdcxx/v6/__init__.py ! 5c88121f75cb36f7f97e43dcedeace5c libstdc++-v3/python/libstdcxx/v6/printers.py ! 9e215f5fde222b3fe8e836e3183e4404 libstdc++-v3/python/libstdcxx/v6/xmethods.py cdac7363b91e7d57b85f7b560f62f033 libstdc++-v3/scripts/check_compile a4c1d51bba293cee2307fc7f9dd090f7 libstdc++-v3/scripts/check_performance 128d0fbc24e1d43d9ff93d14bd521aa6 libstdc++-v3/scripts/check_simd --- 99438,99445 ---- ef60735f8655321222e620486f219e8d libstdc++-v3/python/hook.in 68b329da9893e34099c7d8ad5cb9c940 libstdc++-v3/python/libstdcxx/__init__.py 484cb11df73bf42227946114a89d29b5 libstdc++-v3/python/libstdcxx/v6/__init__.py ! 57e2dfeea4206195f4bc1c93dd577c8f libstdc++-v3/python/libstdcxx/v6/printers.py ! 59c472e7513b52ab1d9d374544b513a1 libstdc++-v3/python/libstdcxx/v6/xmethods.py cdac7363b91e7d57b85f7b560f62f033 libstdc++-v3/scripts/check_compile a4c1d51bba293cee2307fc7f9dd090f7 libstdc++-v3/scripts/check_performance 128d0fbc24e1d43d9ff93d14bd521aa6 libstdc++-v3/scripts/check_simd *************** e8e7773bc629a008b2813ee507a0dab6 libstd *** 99127,99138 **** 80b6ff44b325c6b6d113435d8eea4b76 libstdc++-v3/scripts/make_graph.py f614496940b16d8f5c8685d91a47903e libstdc++-v3/scripts/run_doxygen 7579350b0ac0412cb42e9c354485ebd9 libstdc++-v3/scripts/testsuite_flags.in ! 90d9f3e1d4379ef148eff766138db885 libstdc++-v3/src/Makefile.am ! 3d242c79bb2931ab9442d67f04ec5292 libstdc++-v3/src/Makefile.in 000cfcfbee87b2cd6e095ada940b97be libstdc++-v3/src/c++11/Makefile.am d7fac9138ce1d66a3a3bcb97a36bd4f7 libstdc++-v3/src/c++11/Makefile.in fdce91d6f0e0cb276b62993742bb7146 libstdc++-v3/src/c++11/chrono.cc ! 7ec3713834b6a0a9356d439a66579099 libstdc++-v3/src/c++11/codecvt.cc 2fbc29206c3ec26f5a499d1d8b01ea01 libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc 20622ccf2bba591552b35f31986affd8 libstdc++-v3/src/c++11/compatibility-c++0x.cc a9122c87521f59de28f5cb332637e5fd libstdc++-v3/src/c++11/compatibility-chrono.cc --- 99453,99464 ---- 80b6ff44b325c6b6d113435d8eea4b76 libstdc++-v3/scripts/make_graph.py f614496940b16d8f5c8685d91a47903e libstdc++-v3/scripts/run_doxygen 7579350b0ac0412cb42e9c354485ebd9 libstdc++-v3/scripts/testsuite_flags.in ! 540aa599307276b9714dfede05c3d9c9 libstdc++-v3/src/Makefile.am ! 31b5fcce9517c88d3dff0af26917a13c libstdc++-v3/src/Makefile.in 000cfcfbee87b2cd6e095ada940b97be libstdc++-v3/src/c++11/Makefile.am d7fac9138ce1d66a3a3bcb97a36bd4f7 libstdc++-v3/src/c++11/Makefile.in fdce91d6f0e0cb276b62993742bb7146 libstdc++-v3/src/c++11/chrono.cc ! 5d72b8cbe3d629d23e82b0f151d64b0c libstdc++-v3/src/c++11/codecvt.cc 2fbc29206c3ec26f5a499d1d8b01ea01 libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc 20622ccf2bba591552b35f31986affd8 libstdc++-v3/src/c++11/compatibility-c++0x.cc a9122c87521f59de28f5cb332637e5fd libstdc++-v3/src/c++11/compatibility-chrono.cc *************** b1e311a760b7fc9f79f4c3e116d870ad libstd *** 99153,99159 **** 9c2da2f0e682809a7efdecfc6fa49934 libstdc++-v3/src/c++11/cow-wstring-io-inst.cc 30ddd0f9c87af440dc416afc40d57f44 libstdc++-v3/src/c++11/ctype.cc d63ad10cee99effce602ecfd86f2c6b3 libstdc++-v3/src/c++11/cxx11-hash_tr1.cc ! 333a9eec225a90ac835319896b494725 libstdc++-v3/src/c++11/cxx11-ios_failure.cc 3e4964b37cb4e0a7a3dabf39ce83038d libstdc++-v3/src/c++11/cxx11-locale-inst.cc 83fbc2f04af1752e626ce5c04fc41021 libstdc++-v3/src/c++11/cxx11-shim_facets.cc 547060ebce06c57f1d36a3ebb230f6d1 libstdc++-v3/src/c++11/cxx11-stdexcept.cc --- 99479,99485 ---- 9c2da2f0e682809a7efdecfc6fa49934 libstdc++-v3/src/c++11/cow-wstring-io-inst.cc 30ddd0f9c87af440dc416afc40d57f44 libstdc++-v3/src/c++11/ctype.cc d63ad10cee99effce602ecfd86f2c6b3 libstdc++-v3/src/c++11/cxx11-hash_tr1.cc ! 4f92f1859ce25dfdaeea79ca1d8f5092 libstdc++-v3/src/c++11/cxx11-ios_failure.cc 3e4964b37cb4e0a7a3dabf39ce83038d libstdc++-v3/src/c++11/cxx11-locale-inst.cc 83fbc2f04af1752e626ce5c04fc41021 libstdc++-v3/src/c++11/cxx11-shim_facets.cc 547060ebce06c57f1d36a3ebb230f6d1 libstdc++-v3/src/c++11/cxx11-stdexcept.cc *************** b17f6f7ac95e790c63dc4b307011484f libstd *** 99164,99170 **** a3e4eadf15f208dba5ae3f1a63d51220 libstdc++-v3/src/c++11/functexcept.cc 9a3c407f47856f2156a033d0c5ed9830 libstdc++-v3/src/c++11/functional.cc 03c63e35d2bfb3354ac527797632baf0 libstdc++-v3/src/c++11/futex.cc ! a779e1496a831a9e58dbfe0c2393a9e3 libstdc++-v3/src/c++11/future.cc a4701f7f549c0b1fd6c50e2e2b9cc9ed libstdc++-v3/src/c++11/hash_c++0x.cc 7637f776a1c1ed11f452aa84d3d64491 libstdc++-v3/src/c++11/hashtable_c++0x.cc 21ef2783c98363b3c7027ae99e9a9471 libstdc++-v3/src/c++11/ios-inst.cc --- 99490,99496 ---- a3e4eadf15f208dba5ae3f1a63d51220 libstdc++-v3/src/c++11/functexcept.cc 9a3c407f47856f2156a033d0c5ed9830 libstdc++-v3/src/c++11/functional.cc 03c63e35d2bfb3354ac527797632baf0 libstdc++-v3/src/c++11/futex.cc ! 9b4db1b1b8dd7b982447382c10919b06 libstdc++-v3/src/c++11/future.cc a4701f7f549c0b1fd6c50e2e2b9cc9ed libstdc++-v3/src/c++11/hash_c++0x.cc 7637f776a1c1ed11f452aa84d3d64491 libstdc++-v3/src/c++11/hashtable_c++0x.cc 21ef2783c98363b3c7027ae99e9a9471 libstdc++-v3/src/c++11/ios-inst.cc *************** a4ad998b432d02bb72aaf1d87d0acd8b libstd *** 99179,99185 **** 4a9c69794963372e7cfe7a89a3c36fa5 libstdc++-v3/src/c++11/mutex_pool.h 6949bb94e5a7111191195d7c1509f2a1 libstdc++-v3/src/c++11/ostream-inst.cc 92279da6a43eb47f7355581a4a2a7631 libstdc++-v3/src/c++11/placeholders.cc ! 22dcc0914aa84993903fc88abdcf0df9 libstdc++-v3/src/c++11/random.cc b3f5a0e85916e3062a0f408f5c588e05 libstdc++-v3/src/c++11/regex.cc 6f5ac010c707f1b6b80de53cf1266a6b libstdc++-v3/src/c++11/shared_ptr.cc a058c0b6cc7d0111a3e534392191bf7d libstdc++-v3/src/c++11/snprintf_lite.cc --- 99505,99511 ---- 4a9c69794963372e7cfe7a89a3c36fa5 libstdc++-v3/src/c++11/mutex_pool.h 6949bb94e5a7111191195d7c1509f2a1 libstdc++-v3/src/c++11/ostream-inst.cc 92279da6a43eb47f7355581a4a2a7631 libstdc++-v3/src/c++11/placeholders.cc ! f8df61631f623cf4b445c24be77744cb libstdc++-v3/src/c++11/random.cc b3f5a0e85916e3062a0f408f5c588e05 libstdc++-v3/src/c++11/regex.cc 6f5ac010c707f1b6b80de53cf1266a6b libstdc++-v3/src/c++11/shared_ptr.cc a058c0b6cc7d0111a3e534392191bf7d libstdc++-v3/src/c++11/snprintf_lite.cc *************** a058c0b6cc7d0111a3e534392191bf7d libstd *** 99188,99194 **** f719f4c27c082199cb4cc7bd224b1235 libstdc++-v3/src/c++11/streambuf-inst.cc 1956880dcf7cf135e21c20c27366d969 libstdc++-v3/src/c++11/string-inst.cc 918dca1dc0f88fdd6ea72120d506122a libstdc++-v3/src/c++11/string-io-inst.cc ! 76ebfb5cb77b5f40609034aa4e6346f4 libstdc++-v3/src/c++11/system_error.cc 9381c68fea89c0b9811704782c8014d3 libstdc++-v3/src/c++11/thread.cc d0b105c1c7ce2890dc9ff2748affabbf libstdc++-v3/src/c++11/wlocale-inst.cc dcfd2322c93dd48b11088455fc3beba2 libstdc++-v3/src/c++11/wstring-inst.cc --- 99514,99520 ---- f719f4c27c082199cb4cc7bd224b1235 libstdc++-v3/src/c++11/streambuf-inst.cc 1956880dcf7cf135e21c20c27366d969 libstdc++-v3/src/c++11/string-inst.cc 918dca1dc0f88fdd6ea72120d506122a libstdc++-v3/src/c++11/string-io-inst.cc ! 20a9cd0f6a58a6324b62e78dece910c5 libstdc++-v3/src/c++11/system_error.cc 9381c68fea89c0b9811704782c8014d3 libstdc++-v3/src/c++11/thread.cc d0b105c1c7ce2890dc9ff2748affabbf libstdc++-v3/src/c++11/wlocale-inst.cc dcfd2322c93dd48b11088455fc3beba2 libstdc++-v3/src/c++11/wstring-inst.cc *************** dcfd2322c93dd48b11088455fc3beba2 libstd *** 99200,99211 **** 0732bbfdd57bfb7a0d6e33b50a9d479d libstdc++-v3/src/c++17/cow-fs_path.cc fe48c009c5684613dd310097f544a115 libstdc++-v3/src/c++17/cow-string-inst.cc 21e22ff1ddec6a91c7b379d6f6398649 libstdc++-v3/src/c++17/default_resource.h ! 242d9497f8938d611ecbc446bc541a5c libstdc++-v3/src/c++17/floating_from_chars.cc 6c16689b0ed0520761730e22e879f4d8 libstdc++-v3/src/c++17/floating_to_chars.cc 85f8c336c16b7a6c978470d355cf20f1 libstdc++-v3/src/c++17/fs_dir.cc ! 7381544274fe7860efd69083895166df libstdc++-v3/src/c++17/fs_ops.cc ! 8e13c63ce5c5f6b76072b2c38173c975 libstdc++-v3/src/c++17/fs_path.cc ! 875017e6a7576d4589b31911090cd940 libstdc++-v3/src/c++17/memory_resource.cc 6d9c0bef465f18c79af1f9a7af80b525 libstdc++-v3/src/c++17/ostream-inst.cc f7696e2f5518e5e873ced4beacb8d107 libstdc++-v3/src/c++17/ryu/LOCAL_PATCHES 47f52d4af05ab513a6a1ab62c5fdc086 libstdc++-v3/src/c++17/ryu/MERGE --- 99526,99537 ---- 0732bbfdd57bfb7a0d6e33b50a9d479d libstdc++-v3/src/c++17/cow-fs_path.cc fe48c009c5684613dd310097f544a115 libstdc++-v3/src/c++17/cow-string-inst.cc 21e22ff1ddec6a91c7b379d6f6398649 libstdc++-v3/src/c++17/default_resource.h ! 347ca979db50958eaba5df3b65909d67 libstdc++-v3/src/c++17/floating_from_chars.cc 6c16689b0ed0520761730e22e879f4d8 libstdc++-v3/src/c++17/floating_to_chars.cc 85f8c336c16b7a6c978470d355cf20f1 libstdc++-v3/src/c++17/fs_dir.cc ! 40af88a864bedc0bcaf8ac8dab543dff libstdc++-v3/src/c++17/fs_ops.cc ! a4c1c272e3c9a294033335a0e5484b1a libstdc++-v3/src/c++17/fs_path.cc ! 4f8936bcc944c24dd77ef27499d54342 libstdc++-v3/src/c++17/memory_resource.cc 6d9c0bef465f18c79af1f9a7af80b525 libstdc++-v3/src/c++17/ostream-inst.cc f7696e2f5518e5e873ced4beacb8d107 libstdc++-v3/src/c++17/ryu/LOCAL_PATCHES 47f52d4af05ab513a6a1ab62c5fdc086 libstdc++-v3/src/c++17/ryu/MERGE *************** fbb127f006c65ae37d591c627cc6235c libstd *** 99225,99231 **** 82231ef77687529627b4a19e5ba192a7 libstdc++-v3/src/c++17/uint128_t.h ac15faa3fb83593da9575905b1478902 libstdc++-v3/src/c++20/Makefile.am 94388664bad26272c36c8b4a277d2214 libstdc++-v3/src/c++20/Makefile.in ! edbcebd86d4459a054bf7300f4eb0860 libstdc++-v3/src/c++20/sstream-inst.cc 6802c325a00d0f72a28087f0e515b2cd libstdc++-v3/src/c++98/Makefile.am 443653488d884dcd6503d401769cf71f libstdc++-v3/src/c++98/Makefile.in 8c7f00d8db3289676db19dd406fdf1dd libstdc++-v3/src/c++98/allocator-inst.cc --- 99551,99557 ---- 82231ef77687529627b4a19e5ba192a7 libstdc++-v3/src/c++17/uint128_t.h ac15faa3fb83593da9575905b1478902 libstdc++-v3/src/c++20/Makefile.am 94388664bad26272c36c8b4a277d2214 libstdc++-v3/src/c++20/Makefile.in ! 02f2f1f0ff6a21e9145659052f890746 libstdc++-v3/src/c++20/sstream-inst.cc 6802c325a00d0f72a28087f0e515b2cd libstdc++-v3/src/c++98/Makefile.am 443653488d884dcd6503d401769cf71f libstdc++-v3/src/c++98/Makefile.in 8c7f00d8db3289676db19dd406fdf1dd libstdc++-v3/src/c++98/allocator-inst.cc *************** b673220babee424d2b70a4dbda885118 libstd *** 99274,99283 **** d61e45b9d5e6a114646872dd2109583e libstdc++-v3/src/filesystem/cow-ops.cc 1cec190567d6217eca7c91ba30fcac96 libstdc++-v3/src/filesystem/cow-path.cc c775a951bdee850a043193645b4b64bf libstdc++-v3/src/filesystem/dir-common.h ! 637a51cfa86d128b5039c1da9a512c59 libstdc++-v3/src/filesystem/dir.cc ! f8ea984a816f949e86f29a00746cfeaf libstdc++-v3/src/filesystem/ops-common.h ! 05f797c1c2984089a988357d16a253e9 libstdc++-v3/src/filesystem/ops.cc ! 35978d397a37f9c8652bddaca54e8f22 libstdc++-v3/src/filesystem/path.cc 4d050a72fe3bf6800e6b61c3d97b09ca libstdc++-v3/src/shared/hashtable-aux.cc 269e3bac13e39e68daa7adab30401447 libstdc++-v3/testsuite/17_intro/badnames.cc 664bdcdc68f1dc65bafa053d9a6ac9f2 libstdc++-v3/testsuite/17_intro/freestanding.cc --- 99600,99609 ---- d61e45b9d5e6a114646872dd2109583e libstdc++-v3/src/filesystem/cow-ops.cc 1cec190567d6217eca7c91ba30fcac96 libstdc++-v3/src/filesystem/cow-path.cc c775a951bdee850a043193645b4b64bf libstdc++-v3/src/filesystem/dir-common.h ! 8b93f288bccf5e6241cdf17789c69a5f libstdc++-v3/src/filesystem/dir.cc ! b154291a5f4ccee644a304086f12d462 libstdc++-v3/src/filesystem/ops-common.h ! 1bcc5233f72eadb2b15255585d53acca libstdc++-v3/src/filesystem/ops.cc ! b321d71970560f8bf4fb6fbc04c30c3b libstdc++-v3/src/filesystem/path.cc 4d050a72fe3bf6800e6b61c3d97b09ca libstdc++-v3/src/shared/hashtable-aux.cc 269e3bac13e39e68daa7adab30401447 libstdc++-v3/testsuite/17_intro/badnames.cc 664bdcdc68f1dc65bafa053d9a6ac9f2 libstdc++-v3/testsuite/17_intro/freestanding.cc *************** b8a53b2b8da32d102d69cbedea3d2216 libstd *** 99335,99341 **** 8c11d848a50b34cc41e4f38457340ab0 libstdc++-v3/testsuite/17_intro/headers/c++2020/operator_names.cc 00f02d1595a0b4d76fa4c334f1d290c3 libstdc++-v3/testsuite/17_intro/headers/c++2020/stdc++.cc 9a503e9f7a4962b02dcf7af55a6ec225 libstdc++-v3/testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc ! b69b7124207f01e2002aa803e816c2a7 libstdc++-v3/testsuite/17_intro/names.cc c8b92b0456cec060527cba3fcf483eb7 libstdc++-v3/testsuite/17_intro/shared_with_static_deps.cc 31f0502096c772d1e15fff55afb87ea4 libstdc++-v3/testsuite/17_intro/static.cc fb6074535e87c7e3a68810fb1d497360 libstdc++-v3/testsuite/17_intro/tag_type_explicit_ctor.cc --- 99661,99667 ---- 8c11d848a50b34cc41e4f38457340ab0 libstdc++-v3/testsuite/17_intro/headers/c++2020/operator_names.cc 00f02d1595a0b4d76fa4c334f1d290c3 libstdc++-v3/testsuite/17_intro/headers/c++2020/stdc++.cc 9a503e9f7a4962b02dcf7af55a6ec225 libstdc++-v3/testsuite/17_intro/headers/c++2020/stdc++_multiple_inclusion.cc ! 7a3d7369604a204f88765f23ed6ca629 libstdc++-v3/testsuite/17_intro/names.cc c8b92b0456cec060527cba3fcf483eb7 libstdc++-v3/testsuite/17_intro/shared_with_static_deps.cc 31f0502096c772d1e15fff55afb87ea4 libstdc++-v3/testsuite/17_intro/static.cc fb6074535e87c7e3a68810fb1d497360 libstdc++-v3/testsuite/17_intro/tag_type_explicit_ctor.cc *************** b00f036debbe09aaba5288e14cb68a7d libstd *** 99593,99599 **** f00a16c69147887fb51ac87e69df3e28 libstdc++-v3/testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc e2240bdcf9676c72c7c0c106e3126049 libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs.cc e12608d86c78ef09146d4d23502dbcd1 libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs_c++20.cc ! d2847864a51ba5ee6af63d8680746e17 libstdc++-v3/testsuite/20_util/allocator/void.cc d8d2792700c4256d6bafe5f823baa7e4 libstdc++-v3/testsuite/20_util/allocator_traits/header-2.cc 0caa10ed5d647c7934481bf543e1c544 libstdc++-v3/testsuite/20_util/allocator_traits/header.cc f21d13983b6538238c18e581209d3d0e libstdc++-v3/testsuite/20_util/allocator_traits/members/92878_92947.cc --- 99919,99925 ---- f00a16c69147887fb51ac87e69df3e28 libstdc++-v3/testsuite/20_util/allocator/requirements/explicit_instantiation/1.cc e2240bdcf9676c72c7c0c106e3126049 libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs.cc e12608d86c78ef09146d4d23502dbcd1 libstdc++-v3/testsuite/20_util/allocator/requirements/typedefs_c++20.cc ! 36b81f6e6644ebbb23d4603005320b9d libstdc++-v3/testsuite/20_util/allocator/void.cc d8d2792700c4256d6bafe5f823baa7e4 libstdc++-v3/testsuite/20_util/allocator_traits/header-2.cc 0caa10ed5d647c7934481bf543e1c544 libstdc++-v3/testsuite/20_util/allocator_traits/header.cc f21d13983b6538238c18e581209d3d0e libstdc++-v3/testsuite/20_util/allocator_traits/members/92878_92947.cc *************** e3ad3ddb332d6e3943018f602b2bb29e libstd *** 99777,99786 **** 40813b675a8962c145ce6313c1044852 libstdc++-v3/testsuite/20_util/from_chars/1_neg.cc a6110c4b49ec7f62741f6522e32a6c6b libstdc++-v3/testsuite/20_util/from_chars/2.cc 379a14c4cd58776231fa28677fddc4b6 libstdc++-v3/testsuite/20_util/from_chars/3.cc ! f3ccdf4af13dcd90b2d482870fb5c408 libstdc++-v3/testsuite/20_util/from_chars/4.cc 7c06b66f04ab4eec4b2c5fddbedb2ef7 libstdc++-v3/testsuite/20_util/from_chars/5.cc 876e65536f484bd6edb44cae8b8e1073 libstdc++-v3/testsuite/20_util/from_chars/6.cc f9142ca7542677ebcdbdfcd2a8c64199 libstdc++-v3/testsuite/20_util/from_chars/compare.cc a7e1719aa31ba0787fd23e6109145fbd libstdc++-v3/testsuite/20_util/from_chars/requirements.cc e96c312728ed1f0052831242b1e0499c libstdc++-v3/testsuite/20_util/function/1.cc 97923bb98b81c72f4e8849de83c22bd6 libstdc++-v3/testsuite/20_util/function/10.cc --- 100103,100113 ---- 40813b675a8962c145ce6313c1044852 libstdc++-v3/testsuite/20_util/from_chars/1_neg.cc a6110c4b49ec7f62741f6522e32a6c6b libstdc++-v3/testsuite/20_util/from_chars/2.cc 379a14c4cd58776231fa28677fddc4b6 libstdc++-v3/testsuite/20_util/from_chars/3.cc ! 81536ab55638eeb18dfce5447e49372c libstdc++-v3/testsuite/20_util/from_chars/4.cc 7c06b66f04ab4eec4b2c5fddbedb2ef7 libstdc++-v3/testsuite/20_util/from_chars/5.cc 876e65536f484bd6edb44cae8b8e1073 libstdc++-v3/testsuite/20_util/from_chars/6.cc f9142ca7542677ebcdbdfcd2a8c64199 libstdc++-v3/testsuite/20_util/from_chars/compare.cc + 6772f8cd93ed8ce0eff86720c075a1f3 libstdc++-v3/testsuite/20_util/from_chars/pr105324.cc a7e1719aa31ba0787fd23e6109145fbd libstdc++-v3/testsuite/20_util/from_chars/requirements.cc e96c312728ed1f0052831242b1e0499c libstdc++-v3/testsuite/20_util/function/1.cc 97923bb98b81c72f4e8849de83c22bd6 libstdc++-v3/testsuite/20_util/function/10.cc *************** d1d8477a1c8d2c653545136b672d90a1 libstd *** 100063,100070 **** 1f0e13e56c2859c6f9d33d950145dd08 libstdc++-v3/testsuite/20_util/is_nothrow_constructible/value_c++20.cc ccec019719d047b45fd7d533d6806083 libstdc++-v3/testsuite/20_util/is_nothrow_convertible/requirements/explicit_instantiation.cc 06f14c380966307810d78cfa21154eef libstdc++-v3/testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc ! 8e8eeaf825cf5c5f267ace68da9e66f1 libstdc++-v3/testsuite/20_util/is_nothrow_convertible/value.cc ! fe1751d3b300ceb6b2a354ad1ab84ada libstdc++-v3/testsuite/20_util/is_nothrow_convertible/value_ext.cc 92ff60ce1eaeb43657622a57f19538ca libstdc++-v3/testsuite/20_util/is_nothrow_copy_assignable/requirements/explicit_instantiation.cc a5cb728650f87108206e09da15430b55 libstdc++-v3/testsuite/20_util/is_nothrow_copy_assignable/requirements/typedefs.cc a2fb959a92554bb25f85214c1e20e7d4 libstdc++-v3/testsuite/20_util/is_nothrow_copy_assignable/value.cc --- 100390,100396 ---- 1f0e13e56c2859c6f9d33d950145dd08 libstdc++-v3/testsuite/20_util/is_nothrow_constructible/value_c++20.cc ccec019719d047b45fd7d533d6806083 libstdc++-v3/testsuite/20_util/is_nothrow_convertible/requirements/explicit_instantiation.cc 06f14c380966307810d78cfa21154eef libstdc++-v3/testsuite/20_util/is_nothrow_convertible/requirements/typedefs.cc ! 37312b591bf951d0bef1f97b14fd3d28 libstdc++-v3/testsuite/20_util/is_nothrow_convertible/value.cc 92ff60ce1eaeb43657622a57f19538ca libstdc++-v3/testsuite/20_util/is_nothrow_copy_assignable/requirements/explicit_instantiation.cc a5cb728650f87108206e09da15430b55 libstdc++-v3/testsuite/20_util/is_nothrow_copy_assignable/requirements/typedefs.cc a2fb959a92554bb25f85214c1e20e7d4 libstdc++-v3/testsuite/20_util/is_nothrow_copy_assignable/value.cc *************** af2b15dc0413fdf9d9d040d6274aeb49 libstd *** 100078,100083 **** --- 100404,100410 ---- 909b086f8ab07d0aaccf6a3bbefae04d libstdc++-v3/testsuite/20_util/is_nothrow_destructible/requirements/typedefs.cc 1e59eeb1d22448a627913928912d6957 libstdc++-v3/testsuite/20_util/is_nothrow_destructible/value.cc 3be5b8ea44193cd44fbac61f1e3e1226 libstdc++-v3/testsuite/20_util/is_nothrow_invocable/83395.cc + 8abffa6e70c3dd6e801c0527a55bde98 libstdc++-v3/testsuite/20_util/is_nothrow_invocable/91456.cc 646fe798da0204d769fd7fcf06e2b587 libstdc++-v3/testsuite/20_util/is_nothrow_invocable/incomplete_args_neg.cc 3361e0b4fb9e8c826cfdeb5a86cc15cb libstdc++-v3/testsuite/20_util/is_nothrow_invocable/incomplete_neg.cc 0bcbd1e272e4290024ec7bfdeb7eda96 libstdc++-v3/testsuite/20_util/is_nothrow_invocable/requirements/explicit_instantiation.cc *************** ef0c6e9bae1e6df4b914524a245d22ee libstd *** 100220,100226 **** e39c1513cb91414e10fa2e58a219f5f4 libstdc++-v3/testsuite/20_util/memory_resource/2.cc 5d2ae94d53540a249feeefcaf009c6ee libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/1.cc 57f1a863ec911ebe90e06f1ad29dc0ba libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/93208.cc ! 9b7885adf866441bc83a9da6d2d12602 libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/allocate.cc 282463af8ff2a1ba05d9b89cf8d69de4 libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/deallocate.cc 3b660d19b8a810d3dc6e8528530fd296 libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/release.cc 1f98394f63b151e05c53d2d8bff5c17a libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc --- 100547,100553 ---- e39c1513cb91414e10fa2e58a219f5f4 libstdc++-v3/testsuite/20_util/memory_resource/2.cc 5d2ae94d53540a249feeefcaf009c6ee libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/1.cc 57f1a863ec911ebe90e06f1ad29dc0ba libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/93208.cc ! b78965699296dd735da1d911adb89232 libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/allocate.cc 282463af8ff2a1ba05d9b89cf8d69de4 libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/deallocate.cc 3b660d19b8a810d3dc6e8528530fd296 libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/release.cc 1f98394f63b151e05c53d2d8bff5c17a libstdc++-v3/testsuite/20_util/monotonic_buffer_resource/upstream_resource.cc *************** ac5c6e03a642c0de87325f1d1184af62 libstd *** 100318,100323 **** --- 100645,100651 ---- aaa15cfd6f26e0bdfdf36143e47db23a libstdc++-v3/testsuite/20_util/pair/astuple/astuple_cpp14.cc d31c50d42649cc28417caaad7bf7347e libstdc++-v3/testsuite/20_util/pair/astuple/constexpr_get.cc 49ecc83fbbfd3f602ba6befca13cf43a libstdc++-v3/testsuite/20_util/pair/astuple/constexpr_get_by_type.cc + f2f2b91309730f195c55679493733944 libstdc++-v3/testsuite/20_util/pair/astuple/get-2.cc fdd6f03cd47f5235fdefae4cde0e47e1 libstdc++-v3/testsuite/20_util/pair/astuple/get.cc 5061f9c8e10f9f13a90a6061857a3299 libstdc++-v3/testsuite/20_util/pair/astuple/get_by_type.cc 19a126d1e8148367c5ccbee544b9c89f libstdc++-v3/testsuite/20_util/pair/astuple/get_by_type_neg.cc *************** b55afcc94d1a91a2a689c0587349d422 libstd *** 100431,100436 **** --- 100759,100765 ---- 7c4e6d61c93c97f2533c1cb31d44c529 libstdc++-v3/testsuite/20_util/result_of/sfinae_friendly_1.cc 3a68fb53cde5817cb58725200bd4a9b5 libstdc++-v3/testsuite/20_util/result_of/sfinae_friendly_2.cc d35d4db73c35b1943c77273ed173d9dc libstdc++-v3/testsuite/20_util/scoped_allocator/1.cc + 35133b79da6d1d1682fa724daad0923a libstdc++-v3/testsuite/20_util/scoped_allocator/108952.cc b270f73ff97fa36792a6b0faf61b0191 libstdc++-v3/testsuite/20_util/scoped_allocator/2.cc 5b5b197c3784a132cf0b0a6fdf265089 libstdc++-v3/testsuite/20_util/scoped_allocator/3.cc 14237034a0ba21d271477e724c70175e libstdc++-v3/testsuite/20_util/scoped_allocator/65279.cc *************** d98df0b309eca2ab7730157cd8d7a84a libstd *** 100708,100714 **** cd6e87cc2bc277c9bd69063e8eea2817 libstdc++-v3/testsuite/20_util/tuple/requirements/dr2367.cc ca9ac6997faa284d081bf6a24d5a3da4 libstdc++-v3/testsuite/20_util/tuple/requirements/dr801.cc 43fedc385c7ce652a2826e88c4c18727 libstdc++-v3/testsuite/20_util/tuple/requirements/explicit_instantiation.cc ! 1ece695951a9c7644bcbd55d3c803bc1 libstdc++-v3/testsuite/20_util/tuple/swap.cc 62f03f71592fe0072c08b7b0092c29f1 libstdc++-v3/testsuite/20_util/tuple/swap_cxx17.cc 7233e6e7c83752f9e6c4efba32ed5ceb libstdc++-v3/testsuite/20_util/tuple/tuple_element.cc c190385542e45d4575995a22902596b6 libstdc++-v3/testsuite/20_util/tuple/tuple_element_t.cc --- 101037,101043 ---- cd6e87cc2bc277c9bd69063e8eea2817 libstdc++-v3/testsuite/20_util/tuple/requirements/dr2367.cc ca9ac6997faa284d081bf6a24d5a3da4 libstdc++-v3/testsuite/20_util/tuple/requirements/dr801.cc 43fedc385c7ce652a2826e88c4c18727 libstdc++-v3/testsuite/20_util/tuple/requirements/explicit_instantiation.cc ! 4f5469dfa96036e70e1d8c696ab90e01 libstdc++-v3/testsuite/20_util/tuple/swap.cc 62f03f71592fe0072c08b7b0092c29f1 libstdc++-v3/testsuite/20_util/tuple/swap_cxx17.cc 7233e6e7c83752f9e6c4efba32ed5ceb libstdc++-v3/testsuite/20_util/tuple/tuple_element.cc c190385542e45d4575995a22902596b6 libstdc++-v3/testsuite/20_util/tuple/tuple_element_t.cc *************** c366b09cca0254eb576e5d20741489ea libstd *** 100784,100790 **** 4a7cafdbbe65743044943fc950f31e26 libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/swap.cc f2d15adcff80720680fa72562602c205 libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc c3d3f31ade66cdbabe6b4061faf55eb4 libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc ! 97955951344e8b8bc44a36e0c2088c42 libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/allocate.cc 6494d5007d60a9aecfa0336e25e7376b libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/cons.cc a902ae49c2c7a151484df76bd06803df libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/is_equal.cc 04874e51f91ee5382ce597c953eee878 libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/options.cc --- 101113,101119 ---- 4a7cafdbbe65743044943fc950f31e26 libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/swap.cc f2d15adcff80720680fa72562602c205 libstdc++-v3/testsuite/20_util/unique_ptr/specialized_algorithms/swap_cxx17.cc c3d3f31ade66cdbabe6b4061faf55eb4 libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/allocate-max-chunks.cc ! a2908b358d3ce3e3ca86f8f3e5bbd16e libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/allocate.cc 6494d5007d60a9aecfa0336e25e7376b libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/cons.cc a902ae49c2c7a151484df76bd06803df libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/is_equal.cc 04874e51f91ee5382ce597c953eee878 libstdc++-v3/testsuite/20_util/unsynchronized_pool_resource/options.cc *************** ad5da87905da76675c011cea122c63d0 libstd *** 100797,100802 **** --- 101126,101132 ---- 94da979e26afd2b1ac9050756ced02a7 libstdc++-v3/testsuite/20_util/uses_allocator/92878_92947.cc 66c740424aabea47657522aa536816ba libstdc++-v3/testsuite/20_util/uses_allocator/cons_neg.cc 2f6d8997cf3698510fbf6c9a880d7a7d libstdc++-v3/testsuite/20_util/uses_allocator/construction.cc + 91b3ce25542d2c354c6bf26e9e2c27e4 libstdc++-v3/testsuite/20_util/uses_allocator/lwg3527.cc 8b23fa82c3cf4eb6bd0073777a8f351f libstdc++-v3/testsuite/20_util/uses_allocator/make_obj.cc aae6d425bfd5346e2bfe0bdb42a12f6b libstdc++-v3/testsuite/20_util/uses_allocator/requirements/explicit_instantiation.cc 99b710c9d615ca5cebaebad0a330f6aa libstdc++-v3/testsuite/20_util/uses_allocator/requirements/typedefs.cc *************** bd926109610b524294a31f8b588ecdf3 libstd *** 100819,100824 **** --- 101149,101155 ---- 1fae117acfc243666f94908e82433d14 libstdc++-v3/testsuite/20_util/variant/exception_safety.cc 643721405cfa4061df25e73b8e7c34e1 libstdc++-v3/testsuite/20_util/variant/hash.cc db6615334a6f62b43f4d68fe86977cbb libstdc++-v3/testsuite/20_util/variant/index_type.cc + e56cd950ff384e81521ce2616669bfa4 libstdc++-v3/testsuite/20_util/variant/lwg3585.cc e10f1ccdf1246cb98e4dab271cb80a36 libstdc++-v3/testsuite/20_util/variant/relops/89851.cc 6e572612abf329377c4cf424b11d2c04 libstdc++-v3/testsuite/20_util/variant/relops/90008.cc 6651742cfc1bb4258874bcc98a9449ec libstdc++-v3/testsuite/20_util/variant/relops/three_way.cc *************** f7dd4f87adde6cb2df536a32dd286087 libstd *** 100832,100837 **** --- 101163,101169 ---- 6f877b48fdad86c664b26edc2cbad29f libstdc++-v3/testsuite/20_util/weak_ptr/cons/constexpr.cc 6214eef2cb17dd40487e55e95dad16a4 libstdc++-v3/testsuite/20_util/weak_ptr/cons/deduction.cc a1c3fc381e8b5cb07d7a81318b43580f libstdc++-v3/testsuite/20_util/weak_ptr/cons/noexcept_move_construct.cc + 6a9ce5f99e0bc779530a9660ce1210f8 libstdc++-v3/testsuite/20_util/weak_ptr/cons/self_move.cc 88209dc54287543e8ca3b154854bd2e0 libstdc++-v3/testsuite/20_util/weak_ptr/lock/1.cc 4bc5d42bcaa8a672e738a30df3f40de3 libstdc++-v3/testsuite/20_util/weak_ptr/observers/owner_before.cc fb22e4bd606041e6c06feebce0991bcd libstdc++-v3/testsuite/20_util/weak_ptr/requirements/explicit_instantiation/1.cc *************** f384543feceee16e4c2f3dc67b08d6d3 libstd *** 100884,100892 **** b091419044bc272594d866b19b81a4c9 libstdc++-v3/testsuite/21_strings/basic_string/cons/char/86138.cc e55cad3ae1eca79dd5dbabda415b5195 libstdc++-v3/testsuite/21_strings/basic_string/cons/char/9.cc 92d998193f9c95718e36fb8e744a98e6 libstdc++-v3/testsuite/21_strings/basic_string/cons/char/deduction.cc ! 08c69b37f34e9fcc8004657dd22e98b5 libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable.cc ! fdd720fde4d8b7e03f0978aeadcd81c3 libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2.cc ! be02a76b8f313965269535d0bb869e9a libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc f5903ca34648b8e12d5d121053bbc2d7 libstdc++-v3/testsuite/21_strings/basic_string/cons/char/noexcept_move_construct.cc 08f71bfd429fdb9ce8b4e68a45021bb7 libstdc++-v3/testsuite/21_strings/basic_string/cons/char/self_move.cc e2d28362398397903a672439dced1e06 libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/1.cc --- 101216,101224 ---- b091419044bc272594d866b19b81a4c9 libstdc++-v3/testsuite/21_strings/basic_string/cons/char/86138.cc e55cad3ae1eca79dd5dbabda415b5195 libstdc++-v3/testsuite/21_strings/basic_string/cons/char/9.cc 92d998193f9c95718e36fb8e744a98e6 libstdc++-v3/testsuite/21_strings/basic_string/cons/char/deduction.cc ! 94738fd9de3a3ffa8a82ddc80c983736 libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable.cc ! 0d911d3bff7a6d77ebbe16fd6bbf03a6 libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2.cc ! 1ad869be1498a6f114edc745920ff2b8 libstdc++-v3/testsuite/21_strings/basic_string/cons/char/moveable2_c++17.cc f5903ca34648b8e12d5d121053bbc2d7 libstdc++-v3/testsuite/21_strings/basic_string/cons/char/noexcept_move_construct.cc 08f71bfd429fdb9ce8b4e68a45021bb7 libstdc++-v3/testsuite/21_strings/basic_string/cons/char/self_move.cc e2d28362398397903a672439dced1e06 libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/1.cc *************** bfe4ab2c78076a6e63350263a3e02c5a libstd *** 100902,100910 **** 70a190f25fff952cb4a3e38e573a84fe libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/86138.cc ad777f4a28de75bcc98d79112c231069 libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/9.cc 9181213226b0db35785cd11bc02f5784 libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc ! 3a8e67d81072d6e7ddb397a8390b21c6 libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable.cc ! 6666500f25229c00ddddd5e871ccfb4d libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc ! bb81fab73b1288b3375cbe1bdcea490d libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc 6fd0a02fa7e53162fe645c435849e895 libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/noexcept_move_construct.cc 984584c2e1a06d29e600b9c58c438bb0 libstdc++-v3/testsuite/21_strings/basic_string/debug/1_neg.cc 94cf20eb5fea5595de99c508bda8999a libstdc++-v3/testsuite/21_strings/basic_string/debug/2_neg.cc --- 101234,101242 ---- 70a190f25fff952cb4a3e38e573a84fe libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/86138.cc ad777f4a28de75bcc98d79112c231069 libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/9.cc 9181213226b0db35785cd11bc02f5784 libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/deduction.cc ! 358a68553f6555d08c6f8837095eaeef libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable.cc ! a8f3fcf978b3805f63e89d0ba504c988 libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2.cc ! 9b4e92dfe90b0e8a1b4604764efb6121 libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/moveable2_c++17.cc 6fd0a02fa7e53162fe645c435849e895 libstdc++-v3/testsuite/21_strings/basic_string/cons/wchar_t/noexcept_move_construct.cc 984584c2e1a06d29e600b9c58c438bb0 libstdc++-v3/testsuite/21_strings/basic_string/debug/1_neg.cc 94cf20eb5fea5595de99c508bda8999a libstdc++-v3/testsuite/21_strings/basic_string/debug/2_neg.cc *************** bf775781f97f27016a1de082b99cb066 libstd *** 100976,100989 **** ac907d18580861af5e60a18f34b3dd0d libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/3.cc ee3a5c39dfcf1b03eb6687fdddb7deb0 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/4.cc 7689d4eb51835bbca85634cb4fc7d7c7 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/64657.cc ! 343fa5f220cddcff36445b1f4cc1a9cd libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc 68016e73a14554996e92bb4751501d4a libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/move_assign.cc c4b97c6cc26415c9317d1a7fba5af004 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/move_assign_optim.cc 8315b2235343a4a4ccc5e159ba4221d4 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/1.cc 7511dd8946b7b1402f9dc0e42829779d libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/2.cc 010289dbc32b7bb4ed2607b561a1aa17 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/3.cc 95eb4713eab6d3b2f9ab2c9d04fa1acf libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc ! 02fb1795cd73633cb03926cf32bc9d33 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc df8371a298515f69ab2ee268102ad750 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/move_assign.cc 43720ea349c982885e2a46621ad19ee8 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/move_assign_optim.cc cdb9ede449fb05842a36d19b3de84d3d libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/1.cc --- 101308,101321 ---- ac907d18580861af5e60a18f34b3dd0d libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/3.cc ee3a5c39dfcf1b03eb6687fdddb7deb0 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/4.cc 7689d4eb51835bbca85634cb4fc7d7c7 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/64657.cc ! 4296b7cc1b95610edbef73b3142df99c libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/87749.cc 68016e73a14554996e92bb4751501d4a libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/move_assign.cc c4b97c6cc26415c9317d1a7fba5af004 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/char/move_assign_optim.cc 8315b2235343a4a4ccc5e159ba4221d4 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/1.cc 7511dd8946b7b1402f9dc0e42829779d libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/2.cc 010289dbc32b7bb4ed2607b561a1aa17 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/3.cc 95eb4713eab6d3b2f9ab2c9d04fa1acf libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/4.cc ! 36de4fc4929a7443462aa03974e46fce libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/87749.cc df8371a298515f69ab2ee268102ad750 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/move_assign.cc 43720ea349c982885e2a46621ad19ee8 libstdc++-v3/testsuite/21_strings/basic_string/modifiers/assign/wchar_t/move_assign_optim.cc cdb9ede449fb05842a36d19b3de84d3d libstdc++-v3/testsuite/21_strings/basic_string/modifiers/insert/char/1.cc *************** d68dab1b04d63dd4e3fceb08007d9e0b libstd *** 101111,101122 **** 024bc13940db67bdbed4bd27adb64b24 libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/3.cc 5975b3534ce70f6db979af8022d716d1 libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/nonnull.cc cde4d3da0ea077f27241896801e8b62e libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range.cc ! a4f9e3607774ef2331c5cd93f7845be6 libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc 027619cd14c68144376f29ed00225b4a libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc 3be7fda5bae7081671a8b56eac758ac1 libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc 890564180920737d396dfd75262eec0c libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc fc0038d9b5b16512e0fa693de683f05e libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc ! 567dda958cc31c3a8e8b55db8f18cb9d libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc cc4a598b278b12478ef790a938f450bc libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/1.cc 0646c482e37e8424f332900e2d2c26c6 libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/2.cc 0ed6d62ff4abdeab6a6da39da337b91b libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc --- 101443,101454 ---- 024bc13940db67bdbed4bd27adb64b24 libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/3.cc 5975b3534ce70f6db979af8022d716d1 libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/nonnull.cc cde4d3da0ea077f27241896801e8b62e libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range.cc ! 1553158a9663bcc081ff74152aa09995 libstdc++-v3/testsuite/21_strings/basic_string_view/cons/char/range_c++20.cc 027619cd14c68144376f29ed00225b4a libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/1.cc 3be7fda5bae7081671a8b56eac758ac1 libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/2.cc 890564180920737d396dfd75262eec0c libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/3.cc fc0038d9b5b16512e0fa693de683f05e libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/nonnull.cc ! 00567c2ca9813bf5afa218b94355a60a libstdc++-v3/testsuite/21_strings/basic_string_view/cons/wchar_t/range_c++20.cc cc4a598b278b12478ef790a938f450bc libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/1.cc 0646c482e37e8424f332900e2d2c26c6 libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/2.cc 0ed6d62ff4abdeab6a6da39da337b91b libstdc++-v3/testsuite/21_strings/basic_string_view/element_access/char/back_constexpr_neg.cc *************** e96c0904be90027e3dd04c4f36f4c148 libstd *** 101166,101172 **** 08434190dcd52439abb046b581e9a103 libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc 210115794b6ece22afaff5cd96f17566 libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/1.cc 058675fee9a617afcd68fcf62464dc83 libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/2.cc ! eb02a4fa2890eb65be9983306367c835 libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc 0e5f68ccfe3fbf6bcf807dbae4c652ac libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc ed356778358ec3db608c44a76b8ec21c libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc b92f0a6b615175785f7cd18ebaffcf62 libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/constexpr.cc --- 101498,101504 ---- 08434190dcd52439abb046b581e9a103 libstdc++-v3/testsuite/21_strings/basic_string_view/operations/contains/wchar_t/1.cc 210115794b6ece22afaff5cd96f17566 libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/1.cc 058675fee9a617afcd68fcf62464dc83 libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/2.cc ! 632a86830f2387201fb7d04fbcb47d69 libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/char/constexpr.cc 0e5f68ccfe3fbf6bcf807dbae4c652ac libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/1.cc ed356778358ec3db608c44a76b8ec21c libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/2.cc b92f0a6b615175785f7cd18ebaffcf62 libstdc++-v3/testsuite/21_strings/basic_string_view/operations/copy/wchar_t/constexpr.cc *************** ea035fd1703043173c556b707d860944 libstd *** 102153,102158 **** --- 102485,102491 ---- 4a1d935a5b4ed56e471a36148934047a libstdc++-v3/testsuite/23_containers/forward_list/operations/7.cc c64716f53aebf514c78d3418ea4238f0 libstdc++-v3/testsuite/23_containers/forward_list/operations/90105.cc 3e38365bc364038126ca0bf9ba41e0a9 libstdc++-v3/testsuite/23_containers/forward_list/operations/91620.cc + 7a189e8b9d2375d727e2175b911806df libstdc++-v3/testsuite/23_containers/forward_list/operations/merge.cc ed1c990c0651d29ea22162cfd4492705 libstdc++-v3/testsuite/23_containers/forward_list/operations/remove_cxx20_return.cc 82dae48024b8b4efba3e01ab0e22b17d libstdc++-v3/testsuite/23_containers/forward_list/operations/remove_freed.cc 34cd2f1d3b48d7452c36ff47bc070ca8 libstdc++-v3/testsuite/23_containers/forward_list/operations/unique_cxx20_return.cc *************** beeca7a8e5a68f05c55b5f036dfae41a libstd *** 103333,103345 **** 1f090b3647a98de217dc36823829e05d libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/typedefs.cc 54b2766b9fbe73218d8470be531e0926 libstdc++-v3/testsuite/24_iterators/bidirectional/concept.cc c79d1f0e10c0a939f0c6401bc65db1e0 libstdc++-v3/testsuite/24_iterators/bidirectional/tag.cc ! 64a13a1fb43872055e33902203f05261 libstdc++-v3/testsuite/24_iterators/common_iterator/1.cc ! aeb31a80322253f628082c76be6b3455 libstdc++-v3/testsuite/24_iterators/common_iterator/2.cc fbb02ff8ea44647787a1d58b0af33694 libstdc++-v3/testsuite/24_iterators/container_access.cc 985edba23526581e2811581b195af9aa libstdc++-v3/testsuite/24_iterators/contiguous/concept.cc d77d56d08a4417d44491163642da79fb libstdc++-v3/testsuite/24_iterators/contiguous/tag.cc 260d0f9649b885323173c667220c0dcc libstdc++-v3/testsuite/24_iterators/counted_iterator/1.cc a768c04fe288f140bd6cd57555e1895b libstdc++-v3/testsuite/24_iterators/counted_iterator/lwg3389.cc da76f425f8371ea7d8b7b449a8aa177b libstdc++-v3/testsuite/24_iterators/customization_points/92894.cc ea8a2e5202d41e63eb3eec79cfc06b0b libstdc++-v3/testsuite/24_iterators/customization_points/iter_move.cc da2cbef76db54168f270e4b9335b069a libstdc++-v3/testsuite/24_iterators/customization_points/iter_swap.cc --- 103666,103680 ---- 1f090b3647a98de217dc36823829e05d libstdc++-v3/testsuite/24_iterators/back_insert_iterator/requirements/typedefs.cc 54b2766b9fbe73218d8470be531e0926 libstdc++-v3/testsuite/24_iterators/bidirectional/concept.cc c79d1f0e10c0a939f0c6401bc65db1e0 libstdc++-v3/testsuite/24_iterators/bidirectional/tag.cc ! 53c3cc1bbc012c74e90b69b17cf1ad7d libstdc++-v3/testsuite/24_iterators/common_iterator/1.cc ! fb111ce7bbedeceab984ff4e60e07c4f libstdc++-v3/testsuite/24_iterators/common_iterator/100823.cc ! 4a4b0670c8604b859b321b278d33e371 libstdc++-v3/testsuite/24_iterators/common_iterator/2.cc fbb02ff8ea44647787a1d58b0af33694 libstdc++-v3/testsuite/24_iterators/container_access.cc 985edba23526581e2811581b195af9aa libstdc++-v3/testsuite/24_iterators/contiguous/concept.cc d77d56d08a4417d44491163642da79fb libstdc++-v3/testsuite/24_iterators/contiguous/tag.cc 260d0f9649b885323173c667220c0dcc libstdc++-v3/testsuite/24_iterators/counted_iterator/1.cc a768c04fe288f140bd6cd57555e1895b libstdc++-v3/testsuite/24_iterators/counted_iterator/lwg3389.cc + 564e115ff4a93acb59630b87fa2920f9 libstdc++-v3/testsuite/24_iterators/counted_iterator/lwg3643.cc da76f425f8371ea7d8b7b449a8aa177b libstdc++-v3/testsuite/24_iterators/customization_points/92894.cc ea8a2e5202d41e63eb3eec79cfc06b0b libstdc++-v3/testsuite/24_iterators/customization_points/iter_move.cc da2cbef76db54168f270e4b9335b069a libstdc++-v3/testsuite/24_iterators/customization_points/iter_swap.cc *************** b83580062979fb7f9ca63ed95de103ca libstd *** 103398,103410 **** f1b3ed883beb84a0ab6a40680b3b8919 libstdc++-v3/testsuite/24_iterators/move_iterator/debug_neg.cc 616a547223c3716a41e85ec3fec50874 libstdc++-v3/testsuite/24_iterators/move_iterator/dr2061.cc bb690f467c25f63dba9533e5b3f90c56 libstdc++-v3/testsuite/24_iterators/move_iterator/dr2106.cc ! c4eb82f09dfdab955ee9beaa8c382aa3 libstdc++-v3/testsuite/24_iterators/move_iterator/dr3265.cc 1cc84b858963466af88283995dbedba2 libstdc++-v3/testsuite/24_iterators/move_iterator/dr3435.cc f61c9fca6266649673037a304f5087d1 libstdc++-v3/testsuite/24_iterators/move_iterator/greedy_ops.cc 0533536b91d1b8889bc0514c951db02e libstdc++-v3/testsuite/24_iterators/move_iterator/input_iterator.cc 677f7e3442a1f49a2317e5d2e84aafbc libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3390.cc c4da277c7c5ed43e70bfcf1d7f0988e8 libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3391.cc 159970e8940b0bda179e39132e46b6f7 libstdc++-v3/testsuite/24_iterators/move_iterator/move_only.cc fa15fa33472593185ffd5c4507ebd70a libstdc++-v3/testsuite/24_iterators/move_iterator/rel_ops_c++20.cc 00713bae4b62792aaac5258e8985b3b4 libstdc++-v3/testsuite/24_iterators/move_iterator/sentinel.cc 7197efde86b8ed3ae703ab142f49bcf0 libstdc++-v3/testsuite/24_iterators/normal_iterator/58403.cc --- 103733,103746 ---- f1b3ed883beb84a0ab6a40680b3b8919 libstdc++-v3/testsuite/24_iterators/move_iterator/debug_neg.cc 616a547223c3716a41e85ec3fec50874 libstdc++-v3/testsuite/24_iterators/move_iterator/dr2061.cc bb690f467c25f63dba9533e5b3f90c56 libstdc++-v3/testsuite/24_iterators/move_iterator/dr2106.cc ! 12b6e3522d53d9d130c1bb1701dad8d3 libstdc++-v3/testsuite/24_iterators/move_iterator/dr3265.cc 1cc84b858963466af88283995dbedba2 libstdc++-v3/testsuite/24_iterators/move_iterator/dr3435.cc f61c9fca6266649673037a304f5087d1 libstdc++-v3/testsuite/24_iterators/move_iterator/greedy_ops.cc 0533536b91d1b8889bc0514c951db02e libstdc++-v3/testsuite/24_iterators/move_iterator/input_iterator.cc 677f7e3442a1f49a2317e5d2e84aafbc libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3390.cc c4da277c7c5ed43e70bfcf1d7f0988e8 libstdc++-v3/testsuite/24_iterators/move_iterator/lwg3391.cc 159970e8940b0bda179e39132e46b6f7 libstdc++-v3/testsuite/24_iterators/move_iterator/move_only.cc + 73d58e3cbae9543e1eeb43f9d31428f7 libstdc++-v3/testsuite/24_iterators/move_iterator/p2520r0.cc fa15fa33472593185ffd5c4507ebd70a libstdc++-v3/testsuite/24_iterators/move_iterator/rel_ops_c++20.cc 00713bae4b62792aaac5258e8985b3b4 libstdc++-v3/testsuite/24_iterators/move_iterator/sentinel.cc 7197efde86b8ed3ae703ab142f49bcf0 libstdc++-v3/testsuite/24_iterators/normal_iterator/58403.cc *************** eeecef6511dbe7faed8ceedfb45bf6a2 libstd *** 103441,103446 **** --- 103777,103783 ---- 00606ba56af13a3b035c586a3d9cf4cd libstdc++-v3/testsuite/24_iterators/range_operations/100768.cc f106b0e20bbe5d07a7358692912006b9 libstdc++-v3/testsuite/24_iterators/range_operations/advance.cc 0801af026902ec25c1d5d62d2deba688 libstdc++-v3/testsuite/24_iterators/range_operations/advance_debug_neg.cc + 5dcff108eb2f62baa60bfa3a74d92304 libstdc++-v3/testsuite/24_iterators/range_operations/advance_overflow.cc 2f4b9ccddd25fdf144f1acfd7e17410b libstdc++-v3/testsuite/24_iterators/range_operations/distance.cc 8b27bbddfc1deb1ac2effc7160d22c2f libstdc++-v3/testsuite/24_iterators/range_operations/next.cc 0ed9099160635d30a917767db4db3dae libstdc++-v3/testsuite/24_iterators/range_operations/prev.cc *************** bd0fbcb5db9b9f8cd4dc55a21d39d8eb libstd *** 103516,103522 **** 37092a5d667f0f28b7e935968d25aae8 libstdc++-v3/testsuite/25_algorithms/copy/94013.cc 45915ce0a8f26f04668919afa3a1813b libstdc++-v3/testsuite/25_algorithms/copy/95578.cc 0c8ee5b6733184cae3f4d172c8c52482 libstdc++-v3/testsuite/25_algorithms/copy/constexpr.cc ! 44a89eac99ce0aa39d58b48bed7d32f0 libstdc++-v3/testsuite/25_algorithms/copy/constrained.cc 88c4528cea53c54b25e61640d60c4a0f libstdc++-v3/testsuite/25_algorithms/copy/debug/1_neg.cc 13b2ddea0038c1efaabdac86c47114a4 libstdc++-v3/testsuite/25_algorithms/copy/debug/2_neg.cc 760427e630997a8203a7268ee08a95d0 libstdc++-v3/testsuite/25_algorithms/copy/debug/95289.cc --- 103853,103859 ---- 37092a5d667f0f28b7e935968d25aae8 libstdc++-v3/testsuite/25_algorithms/copy/94013.cc 45915ce0a8f26f04668919afa3a1813b libstdc++-v3/testsuite/25_algorithms/copy/95578.cc 0c8ee5b6733184cae3f4d172c8c52482 libstdc++-v3/testsuite/25_algorithms/copy/constexpr.cc ! e51084101676a4a35b29d3170d773828 libstdc++-v3/testsuite/25_algorithms/copy/constrained.cc 88c4528cea53c54b25e61640d60c4a0f libstdc++-v3/testsuite/25_algorithms/copy/debug/1_neg.cc 13b2ddea0038c1efaabdac86c47114a4 libstdc++-v3/testsuite/25_algorithms/copy/debug/2_neg.cc 760427e630997a8203a7268ee08a95d0 libstdc++-v3/testsuite/25_algorithms/copy/debug/95289.cc *************** d6d738daa2fb7536d325bbab3bb41381 libstd *** 104307,104315 **** 3650d2216818f2ba57822b06cee66094 libstdc++-v3/testsuite/26_numerics/exclusive_scan/1.cc 18d6fd29ad28a49bce4185886e09e6b0 libstdc++-v3/testsuite/26_numerics/exclusive_scan/constexpr.cc 035f097a4cbac827b34920eee0ee8bf6 libstdc++-v3/testsuite/26_numerics/gcd/1.cc 8f690c236f5d680132daa280eab779da libstdc++-v3/testsuite/26_numerics/gcd/2.cc e1eef8dcd54b6f8f7d0c889513032a89 libstdc++-v3/testsuite/26_numerics/gcd/92978.cc ! b2c1940a905dcd37f8efd5a51b0e152c libstdc++-v3/testsuite/26_numerics/gcd/gcd_neg.cc 78a1257e886c15e45707eb67714de1ea libstdc++-v3/testsuite/26_numerics/headers/ccomplex/std_c++0x_neg.cc 87fa325024fefcb4e09d2fc2dd6cd0e4 libstdc++-v3/testsuite/26_numerics/headers/cfenv/std_c++0x_neg.cc ee5cb68763f5316db942768de7f63885 libstdc++-v3/testsuite/26_numerics/headers/cfenv/types_std_c++0x.cc --- 104644,104653 ---- 3650d2216818f2ba57822b06cee66094 libstdc++-v3/testsuite/26_numerics/exclusive_scan/1.cc 18d6fd29ad28a49bce4185886e09e6b0 libstdc++-v3/testsuite/26_numerics/exclusive_scan/constexpr.cc 035f097a4cbac827b34920eee0ee8bf6 libstdc++-v3/testsuite/26_numerics/gcd/1.cc + f09f29f322df2c041a6b58149c341fbf libstdc++-v3/testsuite/26_numerics/gcd/105844.cc 8f690c236f5d680132daa280eab779da libstdc++-v3/testsuite/26_numerics/gcd/2.cc e1eef8dcd54b6f8f7d0c889513032a89 libstdc++-v3/testsuite/26_numerics/gcd/92978.cc ! c5909bb28c019d213ee8ce34bedb3559 libstdc++-v3/testsuite/26_numerics/gcd/gcd_neg.cc 78a1257e886c15e45707eb67714de1ea libstdc++-v3/testsuite/26_numerics/headers/ccomplex/std_c++0x_neg.cc 87fa325024fefcb4e09d2fc2dd6cd0e4 libstdc++-v3/testsuite/26_numerics/headers/cfenv/std_c++0x_neg.cc ee5cb68763f5316db942768de7f63885 libstdc++-v3/testsuite/26_numerics/headers/cfenv/types_std_c++0x.cc *************** ca515eec6dcf95e4063fb3ab64a94bc5 libstd *** 104381,104388 **** 2b30c375f549fcebe2d9133babf8f1d3 libstdc++-v3/testsuite/26_numerics/iota/requirements/explicit_instantiation/2.cc 5e6025e1f61ad9a25692ba76600ad17e libstdc++-v3/testsuite/26_numerics/iota/requirements/explicit_instantiation/pod.cc 78bc2f6a8af17b9da892c5cf84774e13 libstdc++-v3/testsuite/26_numerics/lcm/1.cc cc14972137ac3671e8a0b1bb4ba78a70 libstdc++-v3/testsuite/26_numerics/lcm/92978.cc ! d7f23f3da9d988332eb5ecfedb0fbc50 libstdc++-v3/testsuite/26_numerics/lcm/lcm_neg.cc 7bed10ce7f1644a8746230d5d1b477e5 libstdc++-v3/testsuite/26_numerics/lerp/1.cc f9ae973e3d6f85f4c35471e62402ba98 libstdc++-v3/testsuite/26_numerics/lerp/constexpr.cc 198cb21048f5d36f6a9bf84a5b2dd536 libstdc++-v3/testsuite/26_numerics/lerp/version.cc --- 104719,104727 ---- 2b30c375f549fcebe2d9133babf8f1d3 libstdc++-v3/testsuite/26_numerics/iota/requirements/explicit_instantiation/2.cc 5e6025e1f61ad9a25692ba76600ad17e libstdc++-v3/testsuite/26_numerics/iota/requirements/explicit_instantiation/pod.cc 78bc2f6a8af17b9da892c5cf84774e13 libstdc++-v3/testsuite/26_numerics/lcm/1.cc + 33dfc662dbc265f12b54bdd4abdd7a90 libstdc++-v3/testsuite/26_numerics/lcm/105844.cc cc14972137ac3671e8a0b1bb4ba78a70 libstdc++-v3/testsuite/26_numerics/lcm/92978.cc ! 3c8cd7acb6cec48c1fe56129865bb8e0 libstdc++-v3/testsuite/26_numerics/lcm/lcm_neg.cc 7bed10ce7f1644a8746230d5d1b477e5 libstdc++-v3/testsuite/26_numerics/lerp/1.cc f9ae973e3d6f85f4c35471e62402ba98 libstdc++-v3/testsuite/26_numerics/lerp/constexpr.cc 198cb21048f5d36f6a9bf84a5b2dd536 libstdc++-v3/testsuite/26_numerics/lerp/version.cc *************** eaab8da52e90e6bed94b2407b5280e54 libstd *** 104573,104579 **** 11ff35cec63419439a1fa833e3e90484 libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/parms.cc d0b1bdb8a940abd68cee45e678d7a03d libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/equal.cc d3822899f315bf452e87e8f0f76b5834 libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/inequal.cc ! 6e4c6a254352409872aea8086bd3dda4 libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/serialize.cc ece58a631cd3234ac4e27f65017c0235 libstdc++-v3/testsuite/26_numerics/random/normal_distribution/requirements/explicit_instantiation/1.cc 6497a4d7ec2630e9fff27e5267299e74 libstdc++-v3/testsuite/26_numerics/random/normal_distribution/requirements/typedefs.cc 40b72729a0e17d81cbefa6813ed07d79 libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc --- 104912,104918 ---- 11ff35cec63419439a1fa833e3e90484 libstdc++-v3/testsuite/26_numerics/random/normal_distribution/cons/parms.cc d0b1bdb8a940abd68cee45e678d7a03d libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/equal.cc d3822899f315bf452e87e8f0f76b5834 libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/inequal.cc ! b19351fb19300dd1da723fa8f511c90e libstdc++-v3/testsuite/26_numerics/random/normal_distribution/operators/serialize.cc ece58a631cd3234ac4e27f65017c0235 libstdc++-v3/testsuite/26_numerics/random/normal_distribution/requirements/explicit_instantiation/1.cc 6497a4d7ec2630e9fff27e5267299e74 libstdc++-v3/testsuite/26_numerics/random/normal_distribution/requirements/typedefs.cc 40b72729a0e17d81cbefa6813ed07d79 libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/cons/default.cc *************** e64b7ea27aa7d7003509f9a5058d7756 libstd *** 104704,104710 **** 96990c8a70908a4cbba33c1b8a0a05f7 libstdc++-v3/testsuite/26_numerics/valarray/40691.cc 06e6013171253921d2e67067ebad37cc libstdc++-v3/testsuite/26_numerics/valarray/69116.cc a92871e20e904ca167eba8ec10d164d4 libstdc++-v3/testsuite/26_numerics/valarray/83860.cc ! 592e61791a81302e3ef7a54946ffdca1 libstdc++-v3/testsuite/26_numerics/valarray/87641.cc ff59b525a762e0ec0946e89c5e8382ad libstdc++-v3/testsuite/26_numerics/valarray/95592.cc 517333ece3443a0eaf5f4c848d773918 libstdc++-v3/testsuite/26_numerics/valarray/algo.cc 3e191d68e11822f58de5e4bd15365ca5 libstdc++-v3/testsuite/26_numerics/valarray/binary_closure.cc --- 105043,105049 ---- 96990c8a70908a4cbba33c1b8a0a05f7 libstdc++-v3/testsuite/26_numerics/valarray/40691.cc 06e6013171253921d2e67067ebad37cc libstdc++-v3/testsuite/26_numerics/valarray/69116.cc a92871e20e904ca167eba8ec10d164d4 libstdc++-v3/testsuite/26_numerics/valarray/83860.cc ! db49f1442acea70c3f18576f978dc3d7 libstdc++-v3/testsuite/26_numerics/valarray/87641.cc ff59b525a762e0ec0946e89c5e8382ad libstdc++-v3/testsuite/26_numerics/valarray/95592.cc 517333ece3443a0eaf5f4c848d773918 libstdc++-v3/testsuite/26_numerics/valarray/algo.cc 3e191d68e11822f58de5e4bd15365ca5 libstdc++-v3/testsuite/26_numerics/valarray/binary_closure.cc *************** f4981696c12f409e4c975bb1300014ee libstd *** 105045,105050 **** --- 105384,105390 ---- 12ea92388dbac4a0d7571d73b909bc2e libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/lwg2499.cc 700a3afedeb412c5b26d5d35b37318bc libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/char/lwg2499_neg.cc f281f4ecb3e7ee43b16a03d632881397 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 35eb903d910dbaef5b68c41b0f7f5af2 libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/pod/3983-2.cc dc789e8232354508689ebfde38eed89e libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/1.cc 4bb4834804bab4ed5a4b44f94828436a libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/11095-i.cc *************** da9ebfbb4bdd82e8fba20813a5f22346 libstd *** 105056,105061 **** --- 105396,105402 ---- 9a1fd03041b42849289c07cf948296b8 libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499.cc fe3957370c20a94917b8c08635eda173 libstdc++-v3/testsuite/27_io/basic_istream/extractors_character/wchar_t/lwg2499_neg.cc a5b39100e3ef5d0b8229cac79538a976 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 8b2e6695b44603c556ae9a9d546ea3ac libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/1.cc c1450feb66e172ffea2f025126b9ea42 libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/2.cc 91395634320ab8fa7fb3a2b24ec13c19 libstdc++-v3/testsuite/27_io/basic_istream/extractors_other/char/26181.cc *************** a8f08f12e07d34aced996f0ef16f7486 libstd *** 105544,105580 **** 12c64f56a311b7479e97421eb4245118 libstdc++-v3/testsuite/27_io/filesystem/iterators/91067.cc 34a26bc8c96de0f7df3ee9dff5b80443 libstdc++-v3/testsuite/27_io/filesystem/iterators/caching.cc b74acfd30c0988b4096342e63e84e3ec libstdc++-v3/testsuite/27_io/filesystem/iterators/directory_iterator.cc ! 304b563b62625027227f0c89f75ae00b libstdc++-v3/testsuite/27_io/filesystem/iterators/error_reporting.cc c2deb7759283eeb6e004fe49aa1cd137 libstdc++-v3/testsuite/27_io/filesystem/iterators/pop.cc 9707dd0737bc1e446ea08a7e91680c32 libstdc++-v3/testsuite/27_io/filesystem/iterators/recursion_pending.cc a8ce9a69761fe4c5e4eabb70aa80928d libstdc++-v3/testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc ! 5d2ba944a9d67ae8792d4a32c0cb7a26 libstdc++-v3/testsuite/27_io/filesystem/operations/absolute.cc ! 1aaf48ba68cc2149c685314ed18f6b22 libstdc++-v3/testsuite/27_io/filesystem/operations/all.cc ! 3030b1e930d491aa14d2246d59419ca4 libstdc++-v3/testsuite/27_io/filesystem/operations/canonical.cc ! 59018bb9bac4c1cb42ad0546e6c3eca9 libstdc++-v3/testsuite/27_io/filesystem/operations/copy.cc cc24c97c2b68dd3bd3a716999460368c libstdc++-v3/testsuite/27_io/filesystem/operations/copy_file.cc caa5518185a6665ae00783e8306f3cfb libstdc++-v3/testsuite/27_io/filesystem/operations/create_directories.cc 6ef2f1971d171af530b49e925ba37121 libstdc++-v3/testsuite/27_io/filesystem/operations/create_directory.cc b8e28a052ae7850018fd3142c6df4392 libstdc++-v3/testsuite/27_io/filesystem/operations/create_symlink.cc 36128b43b7b5d2b93dcec2ec8c05d5cd libstdc++-v3/testsuite/27_io/filesystem/operations/current_path.cc f9236910033867255d2c510f27adf9a3 libstdc++-v3/testsuite/27_io/filesystem/operations/equivalent.cc ! 7d673caf7ebae2eb3dddc940da5ff65d libstdc++-v3/testsuite/27_io/filesystem/operations/exists.cc b2912abacd587768365c0d3110da9812 libstdc++-v3/testsuite/27_io/filesystem/operations/file_size.cc ! 530baf288f4ce86573fd862bbd2a88a7 libstdc++-v3/testsuite/27_io/filesystem/operations/is_empty.cc 7cb769255b1ae0ffa98623d5df1522e8 libstdc++-v3/testsuite/27_io/filesystem/operations/last_write_time.cc a304bce858b100433ff63c9f1ab74199 libstdc++-v3/testsuite/27_io/filesystem/operations/permissions.cc d472e0aaf3d65d72e01ee7e29c122aa4 libstdc++-v3/testsuite/27_io/filesystem/operations/proximate.cc ! c5a49bd0a1448743377e8a5874e43972 libstdc++-v3/testsuite/27_io/filesystem/operations/read_symlink.cc ead113c96fabb328faec60f304390d6d libstdc++-v3/testsuite/27_io/filesystem/operations/relative.cc 0a68e427522322c3ffc6ea5f4207bd15 libstdc++-v3/testsuite/27_io/filesystem/operations/remove.cc c069bb2dcb9c020663acc7909e7f5b77 libstdc++-v3/testsuite/27_io/filesystem/operations/remove_all.cc b661ceb4844b789316d89e35b99b2100 libstdc++-v3/testsuite/27_io/filesystem/operations/rename.cc 7e15f2f4b6af8060c3bd89554d02f5d6 libstdc++-v3/testsuite/27_io/filesystem/operations/resize_file.cc 65c6d95957a44daffefdfccc0cc76722 libstdc++-v3/testsuite/27_io/filesystem/operations/space.cc ! 90c27031cdbd3b50e1460fa272bc92c3 libstdc++-v3/testsuite/27_io/filesystem/operations/status.cc ! dc6fff43af6f213cf7716f98fcde7623 libstdc++-v3/testsuite/27_io/filesystem/operations/symlink_status.cc ! 208783c1814e704b7d946a5fc2a98879 libstdc++-v3/testsuite/27_io/filesystem/operations/temp_directory_path.cc 781339e8c95335b74ca33750fbad2e9b libstdc++-v3/testsuite/27_io/filesystem/operations/weakly_canonical.cc e5d73d0c8090549ef1d89888b19bea00 libstdc++-v3/testsuite/27_io/filesystem/path/append/path.cc e6bcd096eac06dd3fd04d064865847de libstdc++-v3/testsuite/27_io/filesystem/path/append/source.cc e11c3c93b534813ee06118cf49897b83 libstdc++-v3/testsuite/27_io/filesystem/path/assign/assign.cc --- 105885,105922 ---- 12c64f56a311b7479e97421eb4245118 libstdc++-v3/testsuite/27_io/filesystem/iterators/91067.cc 34a26bc8c96de0f7df3ee9dff5b80443 libstdc++-v3/testsuite/27_io/filesystem/iterators/caching.cc b74acfd30c0988b4096342e63e84e3ec libstdc++-v3/testsuite/27_io/filesystem/iterators/directory_iterator.cc ! d75cd276368c0b1c8203756ff611b3d6 libstdc++-v3/testsuite/27_io/filesystem/iterators/error_reporting.cc c2deb7759283eeb6e004fe49aa1cd137 libstdc++-v3/testsuite/27_io/filesystem/iterators/pop.cc 9707dd0737bc1e446ea08a7e91680c32 libstdc++-v3/testsuite/27_io/filesystem/iterators/recursion_pending.cc a8ce9a69761fe4c5e4eabb70aa80928d libstdc++-v3/testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc ! ce6f979d9dd438236c97598cb50cb9df libstdc++-v3/testsuite/27_io/filesystem/operations/absolute.cc ! f429189ce8d84ef9ecca2447eed26eca libstdc++-v3/testsuite/27_io/filesystem/operations/all.cc ! 799e424f80fdd50fb11c61ce488bfa6c libstdc++-v3/testsuite/27_io/filesystem/operations/canonical.cc ! 2463e393a832cf802d727297cd84354c libstdc++-v3/testsuite/27_io/filesystem/operations/copy.cc cc24c97c2b68dd3bd3a716999460368c libstdc++-v3/testsuite/27_io/filesystem/operations/copy_file.cc caa5518185a6665ae00783e8306f3cfb libstdc++-v3/testsuite/27_io/filesystem/operations/create_directories.cc 6ef2f1971d171af530b49e925ba37121 libstdc++-v3/testsuite/27_io/filesystem/operations/create_directory.cc b8e28a052ae7850018fd3142c6df4392 libstdc++-v3/testsuite/27_io/filesystem/operations/create_symlink.cc 36128b43b7b5d2b93dcec2ec8c05d5cd libstdc++-v3/testsuite/27_io/filesystem/operations/current_path.cc f9236910033867255d2c510f27adf9a3 libstdc++-v3/testsuite/27_io/filesystem/operations/equivalent.cc ! 23ceb7e5150665ee1eaf3e1beb8d8a1b libstdc++-v3/testsuite/27_io/filesystem/operations/exists.cc b2912abacd587768365c0d3110da9812 libstdc++-v3/testsuite/27_io/filesystem/operations/file_size.cc ! b1b27739fde1426ac5f40f4d6918c043 libstdc++-v3/testsuite/27_io/filesystem/operations/is_empty.cc 7cb769255b1ae0ffa98623d5df1522e8 libstdc++-v3/testsuite/27_io/filesystem/operations/last_write_time.cc a304bce858b100433ff63c9f1ab74199 libstdc++-v3/testsuite/27_io/filesystem/operations/permissions.cc d472e0aaf3d65d72e01ee7e29c122aa4 libstdc++-v3/testsuite/27_io/filesystem/operations/proximate.cc ! b7349bedfec4c4a6814f2c0873123de3 libstdc++-v3/testsuite/27_io/filesystem/operations/read_symlink.cc ead113c96fabb328faec60f304390d6d libstdc++-v3/testsuite/27_io/filesystem/operations/relative.cc 0a68e427522322c3ffc6ea5f4207bd15 libstdc++-v3/testsuite/27_io/filesystem/operations/remove.cc c069bb2dcb9c020663acc7909e7f5b77 libstdc++-v3/testsuite/27_io/filesystem/operations/remove_all.cc b661ceb4844b789316d89e35b99b2100 libstdc++-v3/testsuite/27_io/filesystem/operations/rename.cc 7e15f2f4b6af8060c3bd89554d02f5d6 libstdc++-v3/testsuite/27_io/filesystem/operations/resize_file.cc 65c6d95957a44daffefdfccc0cc76722 libstdc++-v3/testsuite/27_io/filesystem/operations/space.cc ! 7d8e116ba27817ecd9ae1a1f2f948c5f libstdc++-v3/testsuite/27_io/filesystem/operations/status.cc ! 63b994352755f1b221220d53943d8a09 libstdc++-v3/testsuite/27_io/filesystem/operations/symlink_status.cc ! abe3f517aaaf59098642f921fb785ea0 libstdc++-v3/testsuite/27_io/filesystem/operations/temp_directory_path.cc 781339e8c95335b74ca33750fbad2e9b libstdc++-v3/testsuite/27_io/filesystem/operations/weakly_canonical.cc + 9897c7912c7b47987d118515b02ab561 libstdc++-v3/testsuite/27_io/filesystem/path/108636.cc e5d73d0c8090549ef1d89888b19bea00 libstdc++-v3/testsuite/27_io/filesystem/path/append/path.cc e6bcd096eac06dd3fd04d064865847de libstdc++-v3/testsuite/27_io/filesystem/path/append/source.cc e11c3c93b534813ee06118cf49897b83 libstdc++-v3/testsuite/27_io/filesystem/path/assign/assign.cc *************** eb710086077188afe8c298ef512c841a libstd *** 105632,105638 **** 6371ba5fc358b85f322d4833001e4aa2 libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/append.cc 2d3db4b0d72aabef3c837ba6f52f0d85 libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/cmp.cc dec8c79a5bc2399d1595c9f061708800 libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/cmp_c++20.cc ! 2059565a12e2395f1e85979d4154cca5 libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/hash_value.cc 7851c3692ca7ff1bb4bff8b71d6f6e53 libstdc++-v3/testsuite/27_io/filesystem/path/query/empty.cc 7bcd60b1f9599198af56241824f50086 libstdc++-v3/testsuite/27_io/filesystem/path/query/empty_neg.cc 3d55fe07cc6ec8b390ae57c19fce6267 libstdc++-v3/testsuite/27_io/filesystem/path/query/has_extension.cc --- 105974,105980 ---- 6371ba5fc358b85f322d4833001e4aa2 libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/append.cc 2d3db4b0d72aabef3c837ba6f52f0d85 libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/cmp.cc dec8c79a5bc2399d1595c9f061708800 libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/cmp_c++20.cc ! c71bc23e897c84f42f3daa8687b0c160 libstdc++-v3/testsuite/27_io/filesystem/path/nonmember/hash_value.cc 7851c3692ca7ff1bb4bff8b71d6f6e53 libstdc++-v3/testsuite/27_io/filesystem/path/query/empty.cc 7bcd60b1f9599198af56241824f50086 libstdc++-v3/testsuite/27_io/filesystem/path/query/empty_neg.cc 3d55fe07cc6ec8b390ae57c19fce6267 libstdc++-v3/testsuite/27_io/filesystem/path/query/has_extension.cc *************** bcd242b983b4c3e24ba8c01215ae68a3 libstd *** 105672,105677 **** --- 106014,106021 ---- 2ae48016030e56632af746345c997ef6 libstdc++-v3/testsuite/27_io/headers/iomanip/synopsis.cc 24e616854fa5a99df5617964d8127773 libstdc++-v3/testsuite/27_io/headers/ios/synopsis.cc ee5b755d9b5f1badd148cdc44ae9b40d libstdc++-v3/testsuite/27_io/headers/ios/types_std.cc + d906060c9622cff9e1841dd145e48eb7 libstdc++-v3/testsuite/27_io/headers/iosfwd/synopsis.cc + b1725afef889c7079a28e6871384e686 libstdc++-v3/testsuite/27_io/headers/iosfwd/types.cc cc423714502cc8b1d27d87b1a4f6f5fd libstdc++-v3/testsuite/27_io/headers/iostream/synopsis.cc c00f679d7af39ec3ab7e04d771edb933 libstdc++-v3/testsuite/27_io/headers/iostream/types_std.cc c24a982bacd7d5216a5236223a64004b libstdc++-v3/testsuite/27_io/headers/istream/synopsis.cc *************** e23926ff3ce8c8e5f63b0b0607735eb8 libstd *** 105844,105850 **** e48290eaf4730b6dfa0549c871907f51 libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_00_03.cc 029c52ba7081721d4131a83aedcf864b libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_01_03.cc b48adc8a871e717a601f44ed994ad59b libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_02_03.cc ! 67b4bbc7c57e75164e1ca4630f93e03f libstdc++-v3/testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc 603ffc3ff7281bd8f987155e80327817 libstdc++-v3/testsuite/28_regex/algorithms/regex_match/dr2329_neg.cc ca3caca8ccf3ec184326c1f6110a2267 libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/53622.cc 1fe83c47f1b08aa5b21645b4d2074273 libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/57173.cc --- 106188,106194 ---- e48290eaf4730b6dfa0549c871907f51 libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_00_03.cc 029c52ba7081721d4131a83aedcf864b libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_01_03.cc b48adc8a871e717a601f44ed994ad59b libstdc++-v3/testsuite/28_regex/algorithms/regex_match/basic/string_range_02_03.cc ! 3286f5929b26264ce5d4b68b27849357 libstdc++-v3/testsuite/28_regex/algorithms/regex_match/cstring_bracket_01.cc 603ffc3ff7281bd8f987155e80327817 libstdc++-v3/testsuite/28_regex/algorithms/regex_match/dr2329_neg.cc ca3caca8ccf3ec184326c1f6110a2267 libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/53622.cc 1fe83c47f1b08aa5b21645b4d2074273 libstdc++-v3/testsuite/28_regex/algorithms/regex_match/ecma/char/57173.cc *************** a36db31d6ed097df55527d05b350dc07 libstd *** 105870,105875 **** --- 106214,106221 ---- 47e57eadf06286acd4053960605f2e8b libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_01_03.cc f315439939fc2e753fc01261bb617fae libstdc++-v3/testsuite/28_regex/algorithms/regex_match/extended/string_range_02_03.cc b9702c5f60fe5a0094493d181372c1d3 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 b9ddef6aca02b8171eb8e101802d88a1 libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/51711.cc 3aba5539e381fd669c20b5df6fe03c80 libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/basic_replace.cc ffffa6b84498fb75ac805ea386714767 libstdc++-v3/testsuite/28_regex/algorithms/regex_replace/char/dr2213.cc *************** d46d20e6ee1fbdfa35e83ebade887c8a libstd *** 105884,105889 **** --- 106230,106237 ---- dceba1f156bfd90a9ac606de1f6f4321 libstdc++-v3/testsuite/28_regex/algorithms/regex_search/ecma/flags.cc 0a5cfaaa97e508d606ffcd131b67256c libstdc++-v3/testsuite/28_regex/algorithms/regex_search/ecma/greedy.cc b4e38cc3b5a9fd64d5ffe9b9bdacbe6c 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 82fbecca0f4aedc8a5a818619bc8bbc9 libstdc++-v3/testsuite/28_regex/basic_regex/85098.cc e0db0e1a4e3e3acb57279a005a712a48 libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/cstring.cc 1af07bb16557f1660c4e11a52a380664 libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/cstring_op.cc *************** efd2028c9762d2ea264af3600222530c libstd *** 105893,105898 **** --- 106241,106247 ---- 60e0c6d395e9484e3305621573a0cd59 libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/range.cc d44630e1b57c57648d832647baa3e62d libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/string.cc c80a3903527e42fc3636c63e6097124e libstdc++-v3/testsuite/28_regex/basic_regex/assign/char/string_op.cc + 195cadd08b447221da1077de685740f9 libstdc++-v3/testsuite/28_regex/basic_regex/assign/exception_safety.cc 5cbf3e7bd512cb1977969cbafa1ac532 libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/cstring.cc 5fa5aa118f92c335e0243b24026b57c9 libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/cstring_op.cc 5e4929d573c4209033439995b5dbb44d libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/lwg3296.cc *************** df74943b49b48855ebc9aafd22769ac7 libstd *** 105915,105925 **** --- 106264,106276 ---- e362b0a0f56c0344de6acc1ea2adf5af libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_egrep.cc 59951f798a5f068ec5775a849c2963a4 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/cstring_grep.cc a5821571f17550b3574573f5458d6bd1 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/default.cc + 9c80b6a78eb2b9bd9362289c681a9cfb libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/other.cc f45d6c2e9d073e50576f4096d2440cea libstdc++-v3/testsuite/28_regex/basic_regex/ctors/char/range.cc 6bd64861481a628b37f218551789741a libstdc++-v3/testsuite/28_regex/basic_regex/ctors/copy_char.cc 5c1d7050d71a0b6d741ec5181c84c06c libstdc++-v3/testsuite/28_regex/basic_regex/ctors/deduction.cc 0c50313b4bac3a5fc946d7f8f707db30 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/extended/cstring.cc cadc60cd5bc0f9efc2dfacbf9a4b6bb4 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 966067e7fd66c32ecb744b30b39f50d3 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/move_char.cc 71733dfea7bf6823b4247e68b8f3f6a2 libstdc++-v3/testsuite/28_regex/basic_regex/ctors/string_char.cc adf8fed06001b5040fe0ab2f7bc6984c libstdc++-v3/testsuite/28_regex/basic_regex/ctors/string_wchar_t.cc *************** e781afcc7944ac3bef0bc8812f1b341e libstd *** 105952,105958 **** 0cc80a403cad8e4e52104e8ccbba1576 libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/typedefs.cc b57454612a4d974285bb908b705d9083 libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/wchar_t/string_01.cc 6f1de6694bab4a2d8b193f1f1368d611 libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/wchar_t/wstring_02.cc ! 9e61d1e19fd36f31ae0f5ec6a41b0d6a libstdc++-v3/testsuite/28_regex/match_results/102667.cc 406c6e3793a245ef4ac8ce8399728640 libstdc++-v3/testsuite/28_regex/match_results/94627.cc 80db37d9a637c75bf0912e558e1b431e libstdc++-v3/testsuite/28_regex/match_results/ctors/char/default.cc 90fe7d75e0128796f3b434f31fb53cc6 libstdc++-v3/testsuite/28_regex/match_results/ctors/wchar_t/default.cc --- 106303,106309 ---- 0cc80a403cad8e4e52104e8ccbba1576 libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/typedefs.cc b57454612a4d974285bb908b705d9083 libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/wchar_t/string_01.cc 6f1de6694bab4a2d8b193f1f1368d611 libstdc++-v3/testsuite/28_regex/iterators/regex_token_iterator/wchar_t/wstring_02.cc ! e50868497a6eac9c6a7e389f3cda11ef libstdc++-v3/testsuite/28_regex/match_results/102667.cc 406c6e3793a245ef4ac8ce8399728640 libstdc++-v3/testsuite/28_regex/match_results/94627.cc 80db37d9a637c75bf0912e558e1b431e libstdc++-v3/testsuite/28_regex/match_results/ctors/char/default.cc 90fe7d75e0128796f3b434f31fb53cc6 libstdc++-v3/testsuite/28_regex/match_results/ctors/wchar_t/default.cc *************** a6895903b2d7913e7b2a7aa4d157f098 libstd *** 106014,106022 **** 1ddf69470009336d53bf56da545f26b1 libstdc++-v3/testsuite/29_atomics/atomic/cons/default.cc b3b3ee14ae71b79bd86c119de204abde libstdc++-v3/testsuite/29_atomics/atomic/cons/direct_list.cc 45c1979f01455edb4abcf95c9ff6c21c libstdc++-v3/testsuite/29_atomics/atomic/cons/single_value.cc ! ede3d84def5df840542541759477a876 libstdc++-v3/testsuite/29_atomics/atomic/cons/user_pod.cc 7be4b872919f03f9d67d9ce5b0379374 libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc 101e68f53a1b3b636fb1547c3b320daf libstdc++-v3/testsuite/29_atomics/atomic/is_always_lock_free.cc 47ac1850b97210b2ae79f021d61f689f libstdc++-v3/testsuite/29_atomics/atomic/nonmembers.cc 02e3a139f4e373b95538e5626ecf6ba2 libstdc++-v3/testsuite/29_atomics/atomic/operators/51811.cc cb4b41e3959401ed6b34f896071925f9 libstdc++-v3/testsuite/29_atomics/atomic/operators/56011.cc --- 106365,106374 ---- 1ddf69470009336d53bf56da545f26b1 libstdc++-v3/testsuite/29_atomics/atomic/cons/default.cc b3b3ee14ae71b79bd86c119de204abde libstdc++-v3/testsuite/29_atomics/atomic/cons/direct_list.cc 45c1979f01455edb4abcf95c9ff6c21c libstdc++-v3/testsuite/29_atomics/atomic/cons/single_value.cc ! e9931e3bebd357f701b04d321c1c9e27 libstdc++-v3/testsuite/29_atomics/atomic/cons/user_pod.cc 7be4b872919f03f9d67d9ce5b0379374 libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc 101e68f53a1b3b636fb1547c3b320daf libstdc++-v3/testsuite/29_atomics/atomic/is_always_lock_free.cc + 7f98d9343ac2e8c46fbeb04ca3e70000 libstdc++-v3/testsuite/29_atomics/atomic/lwg3220.cc 47ac1850b97210b2ae79f021d61f689f libstdc++-v3/testsuite/29_atomics/atomic/nonmembers.cc 02e3a139f4e373b95538e5626ecf6ba2 libstdc++-v3/testsuite/29_atomics/atomic/operators/51811.cc cb4b41e3959401ed6b34f896071925f9 libstdc++-v3/testsuite/29_atomics/atomic/operators/56011.cc *************** ce276607d5f33b3abd3e31a43e6dc24e libstd *** 106030,106036 **** e0f3d8128b70041b681f19ec11ab37ca libstdc++-v3/testsuite/29_atomics/atomic/requirements/types_neg.cc 5aa0309b5d914737141c3abbfe367169 libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/1.cc a3f60ba9129a461104d66a390c41284d libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/100334.cc ! 1bbd36fc668c5a21a5d73bd02a337603 libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/102994.cc 87c1fa5601addba17bc52f62fa4d7397 libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/2.cc 6861f8c4291859a3cc0ced46dd171977 libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/bool.cc 169877172155fcd6f623a352404a6e62 libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/generic.cc --- 106382,106388 ---- e0f3d8128b70041b681f19ec11ab37ca libstdc++-v3/testsuite/29_atomics/atomic/requirements/types_neg.cc 5aa0309b5d914737141c3abbfe367169 libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/1.cc a3f60ba9129a461104d66a390c41284d libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/100334.cc ! 2bdcb62d2982452b9993a032e812baa0 libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/102994.cc 87c1fa5601addba17bc52f62fa4d7397 libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/2.cc 6861f8c4291859a3cc0ced46dd171977 libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/bool.cc 169877172155fcd6f623a352404a6e62 libstdc++-v3/testsuite/29_atomics/atomic/wait_notify/generic.cc *************** f97c082fdfaea713256eaf09e88cbc5e libstd *** 106045,106056 **** 4c8fb3d10cffcaa9312931748f1e1eb0 libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/value_init.cc f57c8545237b34be34586de3d6bae59d libstdc++-v3/testsuite/29_atomics/atomic_flag/requirements/standard_layout.cc dc5f67fd77b0f3b9aa2b2b3f80d02e3d libstdc++-v3/testsuite/29_atomics/atomic_flag/requirements/trivial.cc ! edebfae8d52ad3d4f38eccb1edfe8dde libstdc++-v3/testsuite/29_atomics/atomic_flag/test/explicit.cc ! 7fe30fbb7f68e1ea4ced380c8b5216e9 libstdc++-v3/testsuite/29_atomics/atomic_flag/test/implicit.cc fef3c8d588032f89270c5a40aa7a119f libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc 63a4be6ae0476ff336478c9173e1730e libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc 63a4be6ae0476ff336478c9173e1730e libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc ! a700626b7e5354bdbc2ed57b70402d3d libstdc++-v3/testsuite/29_atomics/atomic_flag/wait_notify/1.cc 45fdb3095e393b8e18c76282792a374f libstdc++-v3/testsuite/29_atomics/atomic_float/1.cc 3b8bf408367b67adf4db171ae7239402 libstdc++-v3/testsuite/29_atomics/atomic_float/95282.cc 955ca2fe3232f00ac0432b334101f316 libstdc++-v3/testsuite/29_atomics/atomic_float/requirements.cc --- 106397,106408 ---- 4c8fb3d10cffcaa9312931748f1e1eb0 libstdc++-v3/testsuite/29_atomics/atomic_flag/cons/value_init.cc f57c8545237b34be34586de3d6bae59d libstdc++-v3/testsuite/29_atomics/atomic_flag/requirements/standard_layout.cc dc5f67fd77b0f3b9aa2b2b3f80d02e3d libstdc++-v3/testsuite/29_atomics/atomic_flag/requirements/trivial.cc ! b04623a3bc2f0b28cab2cb4dc68da20a libstdc++-v3/testsuite/29_atomics/atomic_flag/test/explicit.cc ! 4f42407be23e9768998aa1f260d108b6 libstdc++-v3/testsuite/29_atomics/atomic_flag/test/implicit.cc fef3c8d588032f89270c5a40aa7a119f libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/explicit-hle.cc 63a4be6ae0476ff336478c9173e1730e libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/explicit.cc 63a4be6ae0476ff336478c9173e1730e libstdc++-v3/testsuite/29_atomics/atomic_flag/test_and_set/implicit.cc ! f04f4a38e7f65322302303d4f7038ec6 libstdc++-v3/testsuite/29_atomics/atomic_flag/wait_notify/1.cc 45fdb3095e393b8e18c76282792a374f libstdc++-v3/testsuite/29_atomics/atomic_float/1.cc 3b8bf408367b67adf4db171ae7239402 libstdc++-v3/testsuite/29_atomics/atomic_float/95282.cc 955ca2fe3232f00ac0432b334101f316 libstdc++-v3/testsuite/29_atomics/atomic_float/requirements.cc *************** aa1f06a23500403a7a1ba5db62bc9e1b libstd *** 106096,106101 **** --- 106448,106454 ---- cc1003e6bf23f4dc3c0b07de7f9de32c libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++20_neg.cc 4dd53765013d344ab12c16eb49eeeb2e libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++2a.cc 0b9554d92746531f6352092073f9eed0 libstdc++-v3/testsuite/29_atomics/headers/atomic/types_std_c++2a_neg.cc + 5b1af9fe172aee7236f683fc11c916e0 libstdc++-v3/testsuite/30_threads/async/106695.cc 2d869ecf21ea0185eacacd020b24228f libstdc++-v3/testsuite/30_threads/async/42819.cc 3ea51df4c3cfccc42ff6a9b63ced1be6 libstdc++-v3/testsuite/30_threads/async/49668.cc 66d3331119a31123900cabf8cce73578 libstdc++-v3/testsuite/30_threads/async/54297.cc *************** e3d5a64c59d8ac294a46db48f478907a libstd *** 106216,106221 **** --- 106569,106575 ---- c9aede0180240302f0365cdb6f9c3642 libstdc++-v3/testsuite/30_threads/packaged_task/cons/alloc_min.cc cc50eb6d42ef5dc2dea81fa3c8ee8e91 libstdc++-v3/testsuite/30_threads/packaged_task/cons/assign_neg.cc d5fbdab65ffa2863f03ff37984fb2dfb libstdc++-v3/testsuite/30_threads/packaged_task/cons/copy_neg.cc + 922f490a3c9acd1bc20db3ecb9146e9c libstdc++-v3/testsuite/30_threads/packaged_task/cons/deduction.cc 28c551b37db017eb02bdf1febc5d4feb libstdc++-v3/testsuite/30_threads/packaged_task/cons/move.cc c56981c514cb7ac65fb8b15e6e318b3e libstdc++-v3/testsuite/30_threads/packaged_task/cons/move_assign.cc 51eda418b9ac64743008bbd3fca9dc57 libstdc++-v3/testsuite/30_threads/packaged_task/forced_unwind.cc *************** dfe91faf82812b1de2b8e68122780b56 libstd *** 106374,106379 **** --- 106728,106734 ---- 20c5fe5c87220e29d0c83c65537066d5 libstdc++-v3/testsuite/30_threads/this_thread/sleep_until-mt.cc 8922c40e0f88b50ae642cf610cad5fac libstdc++-v3/testsuite/30_threads/this_thread/sleep_until.cc 18d644acadc3b71fa6b3f7fffd26f272 libstdc++-v3/testsuite/30_threads/this_thread/yield.cc + 01f0a9872e8d09e04052489193a9e1e9 libstdc++-v3/testsuite/30_threads/thread/106695.cc f51fe4810d0958a58eba10dd8751f263 libstdc++-v3/testsuite/30_threads/thread/70503.cc 343a2e5db5d85100ad7e19722057e55b libstdc++-v3/testsuite/30_threads/thread/84532.cc a3ad5b01386b626105129aa34109ef1d libstdc++-v3/testsuite/30_threads/thread/adl.cc *************** f754118861b851f83334813d834cb200 libstd *** 106646,106675 **** 0be28e8a597f5f3524b05d382977857a libstdc++-v3/testsuite/experimental/filesystem/filesystem_error/cons.cc e38807857185bfa4fa204e43c8d76017 libstdc++-v3/testsuite/experimental/filesystem/iterators/97731.cc a006bf4896a3ab51a977686eb5af2608 libstdc++-v3/testsuite/experimental/filesystem/iterators/directory_iterator.cc ! 6800b111af867d1c5dc76da92647aa5f libstdc++-v3/testsuite/experimental/filesystem/iterators/error_reporting.cc 80bbc9f1b2ea6c7f500e8644d05570a3 libstdc++-v3/testsuite/experimental/filesystem/iterators/pop.cc de6b07ec83a54c05b64ca4d6bff5757a libstdc++-v3/testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc 4bf5a178f6bbfd23a8d1f09e46377566 libstdc++-v3/testsuite/experimental/filesystem/operations/absolute.cc ! b6c97dcfa5875e35bd817ceef71106dc libstdc++-v3/testsuite/experimental/filesystem/operations/canonical.cc ! c979d08bc61ab33d1c6cda360f40c791 libstdc++-v3/testsuite/experimental/filesystem/operations/copy.cc fef1c8651e0cbfb01549c5b72aadbc39 libstdc++-v3/testsuite/experimental/filesystem/operations/copy_file.cc 1c06749732447770da445a16de413059 libstdc++-v3/testsuite/experimental/filesystem/operations/create_directories.cc 317f29c90d1d3057cd6b04a82da018fa libstdc++-v3/testsuite/experimental/filesystem/operations/create_directory.cc 102afdecfff9639d959c908bf8ca4d24 libstdc++-v3/testsuite/experimental/filesystem/operations/create_symlink.cc f613a7a13aba7ff97f2dc5f334d5219d libstdc++-v3/testsuite/experimental/filesystem/operations/current_path.cc b6f9f83cef2f2ba95a2192bcaf1f4864 libstdc++-v3/testsuite/experimental/filesystem/operations/equivalent.cc ! 3c93d6effedc549f4f047242502657dc libstdc++-v3/testsuite/experimental/filesystem/operations/exists.cc 22c3881333e194d83327843ef3822453 libstdc++-v3/testsuite/experimental/filesystem/operations/file_size.cc ! c360883dd40ebb4911fbc402d5c81e26 libstdc++-v3/testsuite/experimental/filesystem/operations/is_empty.cc 2a9b90a7de6f905407da9ed34a374ed6 libstdc++-v3/testsuite/experimental/filesystem/operations/last_write_time.cc 7ec5c0f902c789196ebec7b7878cf8d1 libstdc++-v3/testsuite/experimental/filesystem/operations/permissions.cc ! c212f31fe176502dcf5879b849cad120 libstdc++-v3/testsuite/experimental/filesystem/operations/read_symlink.cc b2434804edf60c4a00c9d2c1c59a5d45 libstdc++-v3/testsuite/experimental/filesystem/operations/remove.cc 929f7124480e1d5a90d315e22f7fb288 libstdc++-v3/testsuite/experimental/filesystem/operations/remove_all.cc d032a966b5c68f5f7ee9cc78de2ab201 libstdc++-v3/testsuite/experimental/filesystem/operations/rename.cc 7f64a5cd007797c662010bef0a36d653 libstdc++-v3/testsuite/experimental/filesystem/operations/space.cc 99989ba6e2f0b58f00abcc249759b5f5 libstdc++-v3/testsuite/experimental/filesystem/operations/status.cc ! d47b1af6f5fecaf7d0e2f34635e7faa7 libstdc++-v3/testsuite/experimental/filesystem/operations/temp_directory_path.cc 45702a06c1f1ce65575cf3d643ec9778 libstdc++-v3/testsuite/experimental/filesystem/path/append/path.cc 57259422207ece8ba121629f54f87323 libstdc++-v3/testsuite/experimental/filesystem/path/assign/assign.cc acd11e30150439c609f7b3127f4e669e libstdc++-v3/testsuite/experimental/filesystem/path/assign/copy.cc --- 107001,107030 ---- 0be28e8a597f5f3524b05d382977857a libstdc++-v3/testsuite/experimental/filesystem/filesystem_error/cons.cc e38807857185bfa4fa204e43c8d76017 libstdc++-v3/testsuite/experimental/filesystem/iterators/97731.cc a006bf4896a3ab51a977686eb5af2608 libstdc++-v3/testsuite/experimental/filesystem/iterators/directory_iterator.cc ! 9cad268e6c62c9232d92f99bfcd1b4e1 libstdc++-v3/testsuite/experimental/filesystem/iterators/error_reporting.cc 80bbc9f1b2ea6c7f500e8644d05570a3 libstdc++-v3/testsuite/experimental/filesystem/iterators/pop.cc de6b07ec83a54c05b64ca4d6bff5757a libstdc++-v3/testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc 4bf5a178f6bbfd23a8d1f09e46377566 libstdc++-v3/testsuite/experimental/filesystem/operations/absolute.cc ! 698ea2835398d235c98d3e70df7035eb libstdc++-v3/testsuite/experimental/filesystem/operations/canonical.cc ! 7509549c9b9a1e13fa1d3ab87ccc5188 libstdc++-v3/testsuite/experimental/filesystem/operations/copy.cc fef1c8651e0cbfb01549c5b72aadbc39 libstdc++-v3/testsuite/experimental/filesystem/operations/copy_file.cc 1c06749732447770da445a16de413059 libstdc++-v3/testsuite/experimental/filesystem/operations/create_directories.cc 317f29c90d1d3057cd6b04a82da018fa libstdc++-v3/testsuite/experimental/filesystem/operations/create_directory.cc 102afdecfff9639d959c908bf8ca4d24 libstdc++-v3/testsuite/experimental/filesystem/operations/create_symlink.cc f613a7a13aba7ff97f2dc5f334d5219d libstdc++-v3/testsuite/experimental/filesystem/operations/current_path.cc b6f9f83cef2f2ba95a2192bcaf1f4864 libstdc++-v3/testsuite/experimental/filesystem/operations/equivalent.cc ! 240d6485ab5931455c18741acb51b1a4 libstdc++-v3/testsuite/experimental/filesystem/operations/exists.cc 22c3881333e194d83327843ef3822453 libstdc++-v3/testsuite/experimental/filesystem/operations/file_size.cc ! a2b6fd5f5e12279e495380b410c7b918 libstdc++-v3/testsuite/experimental/filesystem/operations/is_empty.cc 2a9b90a7de6f905407da9ed34a374ed6 libstdc++-v3/testsuite/experimental/filesystem/operations/last_write_time.cc 7ec5c0f902c789196ebec7b7878cf8d1 libstdc++-v3/testsuite/experimental/filesystem/operations/permissions.cc ! 3ab357a1a9e57b38ed1660b72883b3bd libstdc++-v3/testsuite/experimental/filesystem/operations/read_symlink.cc b2434804edf60c4a00c9d2c1c59a5d45 libstdc++-v3/testsuite/experimental/filesystem/operations/remove.cc 929f7124480e1d5a90d315e22f7fb288 libstdc++-v3/testsuite/experimental/filesystem/operations/remove_all.cc d032a966b5c68f5f7ee9cc78de2ab201 libstdc++-v3/testsuite/experimental/filesystem/operations/rename.cc 7f64a5cd007797c662010bef0a36d653 libstdc++-v3/testsuite/experimental/filesystem/operations/space.cc 99989ba6e2f0b58f00abcc249759b5f5 libstdc++-v3/testsuite/experimental/filesystem/operations/status.cc ! 45f219a857e03ed480a23a0bda836ade libstdc++-v3/testsuite/experimental/filesystem/operations/temp_directory_path.cc 45702a06c1f1ce65575cf3d643ec9778 libstdc++-v3/testsuite/experimental/filesystem/path/append/path.cc 57259422207ece8ba121629f54f87323 libstdc++-v3/testsuite/experimental/filesystem/path/assign/assign.cc acd11e30150439c609f7b3127f4e669e libstdc++-v3/testsuite/experimental/filesystem/path/assign/copy.cc *************** d11b0cf5365cf27c6d9b1d7791b5032a libstd *** 106885,106890 **** --- 107240,107246 ---- 6158ee68c53b1eb6668b2d3c43fb5fec libstdc++-v3/testsuite/experimental/set/erasure.cc 95bdc242cfce24b906dbef7ece3f3c80 libstdc++-v3/testsuite/experimental/simd/driver.sh 81cb6163311a6d96c80beba0c32c1c2b libstdc++-v3/testsuite/experimental/simd/generate_makefile.sh + 56d67c9da176e2529070c1242cc45290 libstdc++-v3/testsuite/experimental/simd/pr109261_constexpr_simd.cc c9ff7f42a3440a4c43a3f282f1814dd9 libstdc++-v3/testsuite/experimental/simd/standard_abi_usable.cc 8456d329f682f25f869aac367480356e libstdc++-v3/testsuite/experimental/simd/standard_abi_usable_2.cc 5a175cd78dfff9373203c96c10e3955c libstdc++-v3/testsuite/experimental/simd/tests/abs.cc *************** f3c5c39d1408e1d33dabcdf445e2c782 libstd *** 106896,106912 **** 74ad34d6973b64b38024a394a01f1161 libstdc++-v3/testsuite/experimental/simd/tests/bits/simd_view.h 8de2d2aeb91e62ba589ada0576abb058 libstdc++-v3/testsuite/experimental/simd/tests/bits/test_values.h 65a6dd497514ee32b17e005140e09fda libstdc++-v3/testsuite/experimental/simd/tests/bits/ulp.h ! 2032e011aacfd34f2d6b4783e4fc473d libstdc++-v3/testsuite/experimental/simd/tests/bits/verify.h 9399282958998d0c420735d9e8bff5cb libstdc++-v3/testsuite/experimental/simd/tests/broadcast.cc 977e5f8160480e0d84e8af0cd0bdf830 libstdc++-v3/testsuite/experimental/simd/tests/casts.cc ! f4a6d8335e1aa0a66b0c967770d88d8e libstdc++-v3/testsuite/experimental/simd/tests/fpclassify.cc ! c5b05eea9fbf7b71c19cfa2a846d0279 libstdc++-v3/testsuite/experimental/simd/tests/frexp.cc 81582e24f42794a07f49e599a516681e libstdc++-v3/testsuite/experimental/simd/tests/generator.cc adbc631eadb5370098f35704939b6974 libstdc++-v3/testsuite/experimental/simd/tests/hypot3_fma.cc 7e0b9ff5db5e0afb69c263a26cfa6f4d libstdc++-v3/testsuite/experimental/simd/tests/integer_operators.cc ! 44803853cac67bc3e991b95bc4bfa630 libstdc++-v3/testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc 81528b3b70b7e95113ebc427718f8cfa libstdc++-v3/testsuite/experimental/simd/tests/loadstore.cc ! 78e03703072fd862da2609d16e285553 libstdc++-v3/testsuite/experimental/simd/tests/logarithm.cc 1567e8d6e3e1dc9e9d9628193a061cbc libstdc++-v3/testsuite/experimental/simd/tests/mask_broadcast.cc ee32cb3dc270cd9c5b142d8474c6d16b libstdc++-v3/testsuite/experimental/simd/tests/mask_conversions.cc ba9b7aac3934b84324828d733a449d61 libstdc++-v3/testsuite/experimental/simd/tests/mask_implicit_cvt.cc --- 107252,107268 ---- 74ad34d6973b64b38024a394a01f1161 libstdc++-v3/testsuite/experimental/simd/tests/bits/simd_view.h 8de2d2aeb91e62ba589ada0576abb058 libstdc++-v3/testsuite/experimental/simd/tests/bits/test_values.h 65a6dd497514ee32b17e005140e09fda libstdc++-v3/testsuite/experimental/simd/tests/bits/ulp.h ! 06993acd614542b9e420883fe81cbd96 libstdc++-v3/testsuite/experimental/simd/tests/bits/verify.h 9399282958998d0c420735d9e8bff5cb libstdc++-v3/testsuite/experimental/simd/tests/broadcast.cc 977e5f8160480e0d84e8af0cd0bdf830 libstdc++-v3/testsuite/experimental/simd/tests/casts.cc ! aa99c7456e1a6412989b2f1963298165 libstdc++-v3/testsuite/experimental/simd/tests/fpclassify.cc ! 5a94ab09164550f82e79f860da351658 libstdc++-v3/testsuite/experimental/simd/tests/frexp.cc 81582e24f42794a07f49e599a516681e libstdc++-v3/testsuite/experimental/simd/tests/generator.cc adbc631eadb5370098f35704939b6974 libstdc++-v3/testsuite/experimental/simd/tests/hypot3_fma.cc 7e0b9ff5db5e0afb69c263a26cfa6f4d libstdc++-v3/testsuite/experimental/simd/tests/integer_operators.cc ! 220221092b420d0d6934c7e7b2800fdf libstdc++-v3/testsuite/experimental/simd/tests/ldexp_scalbn_scalbln_modf.cc 81528b3b70b7e95113ebc427718f8cfa libstdc++-v3/testsuite/experimental/simd/tests/loadstore.cc ! 5587036b52742527728c11e9c936a790 libstdc++-v3/testsuite/experimental/simd/tests/logarithm.cc 1567e8d6e3e1dc9e9d9628193a061cbc libstdc++-v3/testsuite/experimental/simd/tests/mask_broadcast.cc ee32cb3dc270cd9c5b142d8474c6d16b libstdc++-v3/testsuite/experimental/simd/tests/mask_conversions.cc ba9b7aac3934b84324828d733a449d61 libstdc++-v3/testsuite/experimental/simd/tests/mask_implicit_cvt.cc *************** a56eeb3150825c9a4db053388474786f libstd *** 106917,106931 **** 05e6aa776ac3dde07f0f2ce945c4a544 libstdc++-v3/testsuite/experimental/simd/tests/math_1arg.cc f37dc37a1f2deeadb0848d5805880a2a libstdc++-v3/testsuite/experimental/simd/tests/math_2arg.cc 1ade40b68adc65e1bad2fdf759d3fc1e libstdc++-v3/testsuite/experimental/simd/tests/operator_cvt.cc ! 11e4094b7fc8e4030355ae2cb1d6b658 libstdc++-v3/testsuite/experimental/simd/tests/operators.cc ! 1348140447e84634e81a90837eb270d9 libstdc++-v3/testsuite/experimental/simd/tests/reductions.cc 0341be10ab6e8b1246b259c04a1afa0c libstdc++-v3/testsuite/experimental/simd/tests/remqo.cc ba101bb407815a6b8b49859dbaaa00bb libstdc++-v3/testsuite/experimental/simd/tests/simd.cc 6b6dbb3d4d3b7a56bf3570ed20eb16c8 libstdc++-v3/testsuite/experimental/simd/tests/sincos.cc 61a90382bc83c25a753e1480a048aaaa libstdc++-v3/testsuite/experimental/simd/tests/split_concat.cc a6db162d1694878802870f025bf0ec8d libstdc++-v3/testsuite/experimental/simd/tests/splits.cc 72907251a60264f03456e984af6e7bf7 libstdc++-v3/testsuite/experimental/simd/tests/trigonometric.cc ! 9695bfa73d592ed767dc526955d838a0 libstdc++-v3/testsuite/experimental/simd/tests/trunc_ceil_floor.cc d438fe157e89bb1710a4139d869d3465 libstdc++-v3/testsuite/experimental/simd/tests/where.cc 86d9256ca573b52ba687b1af3bbce55b libstdc++-v3/testsuite/experimental/source_location/1.cc 4088567100341bbbfcb9418037f955d4 libstdc++-v3/testsuite/experimental/string/erasure.cc --- 107273,107287 ---- 05e6aa776ac3dde07f0f2ce945c4a544 libstdc++-v3/testsuite/experimental/simd/tests/math_1arg.cc f37dc37a1f2deeadb0848d5805880a2a libstdc++-v3/testsuite/experimental/simd/tests/math_2arg.cc 1ade40b68adc65e1bad2fdf759d3fc1e libstdc++-v3/testsuite/experimental/simd/tests/operator_cvt.cc ! 31e1763a8c41e3a545f586c167d8ae4f libstdc++-v3/testsuite/experimental/simd/tests/operators.cc ! 160d07bf1ee6da9456801d39c593e684 libstdc++-v3/testsuite/experimental/simd/tests/reductions.cc 0341be10ab6e8b1246b259c04a1afa0c libstdc++-v3/testsuite/experimental/simd/tests/remqo.cc ba101bb407815a6b8b49859dbaaa00bb libstdc++-v3/testsuite/experimental/simd/tests/simd.cc 6b6dbb3d4d3b7a56bf3570ed20eb16c8 libstdc++-v3/testsuite/experimental/simd/tests/sincos.cc 61a90382bc83c25a753e1480a048aaaa libstdc++-v3/testsuite/experimental/simd/tests/split_concat.cc a6db162d1694878802870f025bf0ec8d libstdc++-v3/testsuite/experimental/simd/tests/splits.cc 72907251a60264f03456e984af6e7bf7 libstdc++-v3/testsuite/experimental/simd/tests/trigonometric.cc ! 6392d6a8168aef55c57c640c052f9fd6 libstdc++-v3/testsuite/experimental/simd/tests/trunc_ceil_floor.cc d438fe157e89bb1710a4139d869d3465 libstdc++-v3/testsuite/experimental/simd/tests/where.cc 86d9256ca573b52ba687b1af3bbce55b libstdc++-v3/testsuite/experimental/source_location/1.cc 4088567100341bbbfcb9418037f955d4 libstdc++-v3/testsuite/experimental/string/erasure.cc *************** d058f63a57471b1bac13c7472d829dfb libstd *** 107272,107278 **** efab101dad1dc6fc3744ad9169ad0d87 libstdc++-v3/testsuite/ext/rope/6.cc 542a3aa925925ee8b4f95674533b93d7 libstdc++-v3/testsuite/ext/rope/61946.cc a90a14bfbb1a36e332973061db685f1b libstdc++-v3/testsuite/ext/rope/7.cc ! 0f434048b4adfa472afa6584c50d9d32 libstdc++-v3/testsuite/ext/rope/pthread7-rope.cc 96c8b73b78b6f9b0e8b6a4f3e7861ac4 libstdc++-v3/testsuite/ext/shared_ptr/1.cc 854c4ad33c0c5b4ab1bd2daf3d63eb21 libstdc++-v3/testsuite/ext/slist/23781_neg.cc d08fb1c934171313d8d5caa0a16f501b libstdc++-v3/testsuite/ext/slist/check_construct_destroy.cc --- 107628,107634 ---- efab101dad1dc6fc3744ad9169ad0d87 libstdc++-v3/testsuite/ext/rope/6.cc 542a3aa925925ee8b4f95674533b93d7 libstdc++-v3/testsuite/ext/rope/61946.cc a90a14bfbb1a36e332973061db685f1b libstdc++-v3/testsuite/ext/rope/7.cc ! 63e6f9233e942be7f9c5efd65a265e93 libstdc++-v3/testsuite/ext/rope/pthread7-rope.cc 96c8b73b78b6f9b0e8b6a4f3e7861ac4 libstdc++-v3/testsuite/ext/shared_ptr/1.cc 854c4ad33c0c5b4ab1bd2daf3d63eb21 libstdc++-v3/testsuite/ext/slist/23781_neg.cc d08fb1c934171313d8d5caa0a16f501b libstdc++-v3/testsuite/ext/slist/check_construct_destroy.cc *************** d0c11fe8cb799b7e38c3d765c7786345 libstd *** 107377,107385 **** be2c942175f821c48748bb874e440b9b libstdc++-v3/testsuite/libstdc++-prettyprinters/80276.cc 61687718a5859d72e3d508a3cff4951a libstdc++-v3/testsuite/libstdc++-prettyprinters/91997.cc 3681a82bbc6871b4ee9416dc9f079e9c libstdc++-v3/testsuite/libstdc++-prettyprinters/compat.cc ! ebf226930e3a3280ab96a29d5aadbc4c libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc 575c04012b89f3517818052495fa754b libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc ! de4863975b6ff3936ee27e239a50c3fc libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx20.cc 9db277893db6463f4a286e2e86d3ba23 libstdc++-v3/testsuite/libstdc++-prettyprinters/debug.cc 6ee25bfa5657675a8107bc8df6359203 libstdc++-v3/testsuite/libstdc++-prettyprinters/debug_cxx11.cc 89bc588d761a075ad9da5943c19c1174 libstdc++-v3/testsuite/libstdc++-prettyprinters/filesystem-ts.cc --- 107733,107741 ---- be2c942175f821c48748bb874e440b9b libstdc++-v3/testsuite/libstdc++-prettyprinters/80276.cc 61687718a5859d72e3d508a3cff4951a libstdc++-v3/testsuite/libstdc++-prettyprinters/91997.cc 3681a82bbc6871b4ee9416dc9f079e9c libstdc++-v3/testsuite/libstdc++-prettyprinters/compat.cc ! 10d4c0ec6e4917ece23ae4daec95cb2f libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx11.cc 575c04012b89f3517818052495fa754b libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx17.cc ! 8d423a63a9ee34cdffe3ab631d8d4e17 libstdc++-v3/testsuite/libstdc++-prettyprinters/cxx20.cc 9db277893db6463f4a286e2e86d3ba23 libstdc++-v3/testsuite/libstdc++-prettyprinters/debug.cc 6ee25bfa5657675a8107bc8df6359203 libstdc++-v3/testsuite/libstdc++-prettyprinters/debug_cxx11.cc 89bc588d761a075ad9da5943c19c1174 libstdc++-v3/testsuite/libstdc++-prettyprinters/filesystem-ts.cc *************** cc762851bcdba119feec0f3235e4468c libstd *** 107396,107402 **** 2f1ee0a52144900994e38822ec0e06b5 libstdc++-v3/testsuite/libstdc++-xmethods/deque.cc 5727258a9a678c86a4dbb0202c47f702 libstdc++-v3/testsuite/libstdc++-xmethods/forwardlist.cc 00c6eeeddd7a873ee1bda17c477bcf4e libstdc++-v3/testsuite/libstdc++-xmethods/list.cc ! 7783f7544a07c1bd618c4ea0a6defb19 libstdc++-v3/testsuite/libstdc++-xmethods/shared_ptr.cc 26407ff2a7db6873b71a3eb2107b6a56 libstdc++-v3/testsuite/libstdc++-xmethods/unique_ptr.cc 4e56f23a14a974605e4004e744b706d0 libstdc++-v3/testsuite/libstdc++-xmethods/vector.cc 98dc8dabc6d5bbb2cb89d6ed0664a043 libstdc++-v3/testsuite/libstdc++-xmethods/xmethods.exp --- 107752,107758 ---- 2f1ee0a52144900994e38822ec0e06b5 libstdc++-v3/testsuite/libstdc++-xmethods/deque.cc 5727258a9a678c86a4dbb0202c47f702 libstdc++-v3/testsuite/libstdc++-xmethods/forwardlist.cc 00c6eeeddd7a873ee1bda17c477bcf4e libstdc++-v3/testsuite/libstdc++-xmethods/list.cc ! 76e82eb8e0ac2670a5572d04cda59df8 libstdc++-v3/testsuite/libstdc++-xmethods/shared_ptr.cc 26407ff2a7db6873b71a3eb2107b6a56 libstdc++-v3/testsuite/libstdc++-xmethods/unique_ptr.cc 4e56f23a14a974605e4004e744b706d0 libstdc++-v3/testsuite/libstdc++-xmethods/vector.cc 98dc8dabc6d5bbb2cb89d6ed0664a043 libstdc++-v3/testsuite/libstdc++-xmethods/xmethods.exp *************** fb23642a6893aed264528184e8b1e89a libstd *** 107630,107642 **** 56280017abf58c62b9c687eb8bc28689 libstdc++-v3/testsuite/std/ranges/access/crbegin.cc a6ad3007f5ce9824e90cfe812d1af68f libstdc++-v3/testsuite/std/ranges/access/crend.cc e9101b23fdc293b8cfcd821e07082fff libstdc++-v3/testsuite/std/ranges/access/data.cc ! f1da35bc31260221876bbf143ed35426 libstdc++-v3/testsuite/std/ranges/access/empty.cc e3d33360513687ab0dd3751b8de5a5a1 libstdc++-v3/testsuite/std/ranges/access/end.cc 135bbc0eb03e557ab88875ace9ee0980 libstdc++-v3/testsuite/std/ranges/access/end_neg.cc 53ebbeefa5ac21f1e668c4e6393441bb libstdc++-v3/testsuite/std/ranges/access/lwg3467.cc 28d776d0c6464cb2f9bdea975133ab66 libstdc++-v3/testsuite/std/ranges/access/rbegin.cc b3cf9d2edb6c3e710065fa8dad5b03b7 libstdc++-v3/testsuite/std/ranges/access/rend.cc ! 8479881de6f7fe9c937c6d609beed49a libstdc++-v3/testsuite/std/ranges/access/size.cc e4e886ed5e6b5c520951928e09843313 libstdc++-v3/testsuite/std/ranges/access/size_neg.cc e2ce9743a296b32f07cb1e8c4b8e2662 libstdc++-v3/testsuite/std/ranges/access/ssize.cc d6da6812cb88b3c7b35954344aa5d86d libstdc++-v3/testsuite/std/ranges/adaptors/100479.cc --- 107986,107998 ---- 56280017abf58c62b9c687eb8bc28689 libstdc++-v3/testsuite/std/ranges/access/crbegin.cc a6ad3007f5ce9824e90cfe812d1af68f libstdc++-v3/testsuite/std/ranges/access/crend.cc e9101b23fdc293b8cfcd821e07082fff libstdc++-v3/testsuite/std/ranges/access/data.cc ! d394de9151b4b398b188cedc52d75e7a libstdc++-v3/testsuite/std/ranges/access/empty.cc e3d33360513687ab0dd3751b8de5a5a1 libstdc++-v3/testsuite/std/ranges/access/end.cc 135bbc0eb03e557ab88875ace9ee0980 libstdc++-v3/testsuite/std/ranges/access/end_neg.cc 53ebbeefa5ac21f1e668c4e6393441bb libstdc++-v3/testsuite/std/ranges/access/lwg3467.cc 28d776d0c6464cb2f9bdea975133ab66 libstdc++-v3/testsuite/std/ranges/access/rbegin.cc b3cf9d2edb6c3e710065fa8dad5b03b7 libstdc++-v3/testsuite/std/ranges/access/rend.cc ! 35283b71844a94ee16ee9e42a8be8eed libstdc++-v3/testsuite/std/ranges/access/size.cc e4e886ed5e6b5c520951928e09843313 libstdc++-v3/testsuite/std/ranges/access/size_neg.cc e2ce9743a296b32f07cb1e8c4b8e2662 libstdc++-v3/testsuite/std/ranges/access/ssize.cc d6da6812cb88b3c7b35954344aa5d86d libstdc++-v3/testsuite/std/ranges/adaptors/100479.cc *************** f08026c124e2c6f228702d2ddd1bb3bb libstd *** 107653,107659 **** 93a1ae3dea7b82345420d2bdaa1de02a libstdc++-v3/testsuite/std/ranges/adaptors/drop_while.cc e6598408c942e63592533b0a8e862d95 libstdc++-v3/testsuite/std/ranges/adaptors/elements.cc 34c74de0566311054836144ea4703423 libstdc++-v3/testsuite/std/ranges/adaptors/filter.cc ! 17aefaa1bae2e9814e2d4ed6d63d3301 libstdc++-v3/testsuite/std/ranges/adaptors/join.cc e3185f7254676a8043d2594eb1e4500f libstdc++-v3/testsuite/std/ranges/adaptors/lwg3286.cc b6253cd90778666795033228ba19116e libstdc++-v3/testsuite/std/ranges/adaptors/lwg3313_neg.cc 2045ce6f1792467ba47ef569ef1c18e2 libstdc++-v3/testsuite/std/ranges/adaptors/lwg3325_neg.cc --- 108009,108015 ---- 93a1ae3dea7b82345420d2bdaa1de02a libstdc++-v3/testsuite/std/ranges/adaptors/drop_while.cc e6598408c942e63592533b0a8e862d95 libstdc++-v3/testsuite/std/ranges/adaptors/elements.cc 34c74de0566311054836144ea4703423 libstdc++-v3/testsuite/std/ranges/adaptors/filter.cc ! a9dcefdea5e9215117d1860eea6b3b05 libstdc++-v3/testsuite/std/ranges/adaptors/join.cc e3185f7254676a8043d2594eb1e4500f libstdc++-v3/testsuite/std/ranges/adaptors/lwg3286.cc b6253cd90778666795033228ba19116e libstdc++-v3/testsuite/std/ranges/adaptors/lwg3313_neg.cc 2045ce6f1792467ba47ef569ef1c18e2 libstdc++-v3/testsuite/std/ranges/adaptors/lwg3325_neg.cc *************** ccdc4ae1b41638162b9e60936a7f2e0e libstd *** 107674,107684 **** 0819563613d6bc5f307077f94daf19a2 libstdc++-v3/testsuite/std/ranges/iota/iota_view.cc e75edf80cec13e421cd663c039d2ca93 libstdc++-v3/testsuite/std/ranges/iota/iterator.cc bd95f0058da01ae7c3f9a944b0cb2fba libstdc++-v3/testsuite/std/ranges/iota/lwg3292_neg.cc ! f6414f7f1cce883d75748248ec104110 libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc cfd013ee643ff8cc3c5e2e2b102bd24b libstdc++-v3/testsuite/std/ranges/iota/size.cc a0d27a4084ead9098b776f82295f0a03 libstdc++-v3/testsuite/std/ranges/istream_view.cc 39a74ff1ef561d51b687d686060239c1 libstdc++-v3/testsuite/std/ranges/p2259.cc ! 1b1e5fd6e20b73c40efa996686a5be0c libstdc++-v3/testsuite/std/ranges/p2325.cc 1a4f67e2431ce8671bfe15a68aa14003 libstdc++-v3/testsuite/std/ranges/p2367.cc e5d7757712fcb6070d35fb61bb9686ec libstdc++-v3/testsuite/std/ranges/range.cc 64b49ff9679c02a817d8b8e1c304a977 libstdc++-v3/testsuite/std/ranges/refinements.cc --- 108030,108040 ---- 0819563613d6bc5f307077f94daf19a2 libstdc++-v3/testsuite/std/ranges/iota/iota_view.cc e75edf80cec13e421cd663c039d2ca93 libstdc++-v3/testsuite/std/ranges/iota/iterator.cc bd95f0058da01ae7c3f9a944b0cb2fba libstdc++-v3/testsuite/std/ranges/iota/lwg3292_neg.cc ! 4d153fc833d7814a7137073f61e9a90a libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc cfd013ee643ff8cc3c5e2e2b102bd24b libstdc++-v3/testsuite/std/ranges/iota/size.cc a0d27a4084ead9098b776f82295f0a03 libstdc++-v3/testsuite/std/ranges/istream_view.cc 39a74ff1ef561d51b687d686060239c1 libstdc++-v3/testsuite/std/ranges/p2259.cc ! 1841f9d6569460990fc078e2fab471b7 libstdc++-v3/testsuite/std/ranges/p2325.cc 1a4f67e2431ce8671bfe15a68aa14003 libstdc++-v3/testsuite/std/ranges/p2367.cc e5d7757712fcb6070d35fb61bb9686ec libstdc++-v3/testsuite/std/ranges/range.cc 64b49ff9679c02a817d8b8e1c304a977 libstdc++-v3/testsuite/std/ranges/refinements.cc *************** e289d02d97c864fdb013f2ae524cb77e libstd *** 107699,107705 **** ad173933fa56d91facb69d926ba4ed5b libstdc++-v3/testsuite/std/time/clock/file/members.cc 582848e36bfa4eb0511742a823ef559b libstdc++-v3/testsuite/std/time/clock/file/overview.cc 226feb67cc460aea99599c9f43c14726 libstdc++-v3/testsuite/std/time/day/1.cc ! 70a8581910f4aec7b4a69838e7e9b1fa libstdc++-v3/testsuite/std/time/hh_mm_ss/1.cc fe183257d7a31933cdc3fb8c8bb5c957 libstdc++-v3/testsuite/std/time/is_am/1.cc 780a27d714b7130cce61c069e0c89cd4 libstdc++-v3/testsuite/std/time/is_pm/1.cc 9428d1f5fa2a4b0191dbbfce2d115137 libstdc++-v3/testsuite/std/time/make12/1.cc --- 108055,108061 ---- ad173933fa56d91facb69d926ba4ed5b libstdc++-v3/testsuite/std/time/clock/file/members.cc 582848e36bfa4eb0511742a823ef559b libstdc++-v3/testsuite/std/time/clock/file/overview.cc 226feb67cc460aea99599c9f43c14726 libstdc++-v3/testsuite/std/time/day/1.cc ! 2789b0fc844a761186fc67fec3342dc6 libstdc++-v3/testsuite/std/time/hh_mm_ss/1.cc fe183257d7a31933cdc3fb8c8bb5c957 libstdc++-v3/testsuite/std/time/is_am/1.cc 780a27d714b7130cce61c069e0c89cd4 libstdc++-v3/testsuite/std/time/is_pm/1.cc 9428d1f5fa2a4b0191dbbfce2d115137 libstdc++-v3/testsuite/std/time/make12/1.cc *************** a1640714fc4e3657cefdedd4db899838 libstd *** 108450,108456 **** d7927f85e40de3823114f01b93b3bf21 libstdc++-v3/testsuite/util/thread/all.h b950d655469c477755252b1e18009596 libtool-ldflags 1936a81f2a04a996ff99c7ebdebc5003 libtool.m4 ! c42c43e38ace4356dd51127ac1bcb083 libvtv/ChangeLog 7ad6a0c753c219e31237f212c5854dd8 libvtv/Makefile.am b1170aae9472f26fdc8326737dc22aba libvtv/Makefile.in 3b765c4f4a0a0f606db1472bce2b8d29 libvtv/acinclude.m4 --- 108806,108812 ---- d7927f85e40de3823114f01b93b3bf21 libstdc++-v3/testsuite/util/thread/all.h b950d655469c477755252b1e18009596 libtool-ldflags 1936a81f2a04a996ff99c7ebdebc5003 libtool.m4 ! 663d66880c3bef6ed093f78c6b49bf38 libvtv/ChangeLog 7ad6a0c753c219e31237f212c5854dd8 libvtv/Makefile.am b1170aae9472f26fdc8326737dc22aba libvtv/Makefile.in 3b765c4f4a0a0f606db1472bce2b8d29 libvtv/acinclude.m4 *************** fd301005dc07375a9b1b26c1df04e576 libvtv *** 108533,108539 **** 4a2d91c71136af55b12e42fa84195778 libvtv/vtv_utils.h 247597a3fcc5b5aa8bd923351c59d853 ltgcc.m4 06c2854f9cfe5864b2885e0d0e9c512f ltmain.sh ! 6629ad5e60bca469141a23bf6213c635 lto-plugin/ChangeLog b4172d0962c2ec3a954d98e768b4995e lto-plugin/Makefile.am 93fe746c6f1d54ade83e13d65096fe9f lto-plugin/Makefile.in 75fc65b35d0a47ac098f7a278d37060b lto-plugin/aclocal.m4 --- 108889,108895 ---- 4a2d91c71136af55b12e42fa84195778 libvtv/vtv_utils.h 247597a3fcc5b5aa8bd923351c59d853 ltgcc.m4 06c2854f9cfe5864b2885e0d0e9c512f ltmain.sh ! 1ecc1fad87f5dddb20f963f6c973a29b lto-plugin/ChangeLog b4172d0962c2ec3a954d98e768b4995e lto-plugin/Makefile.am 93fe746c6f1d54ade83e13d65096fe9f lto-plugin/Makefile.in 75fc65b35d0a47ac098f7a278d37060b lto-plugin/aclocal.m4 *************** dee72a6a60e99528b0d17bf3ff9a1e15 ltopti *** 108545,108551 **** bc2f6032c98896249eadb56177c7d357 ltsugar.m4 c30cd33c496505f13d9fbdb6970c7c33 ltversion.m4 293853a13b7e218e3a4342cf85fbbf25 lt~obsolete.m4 ! 12c098389400306ad713eee79dfba903 maintainer-scripts/ChangeLog 33c7bc2d2c55956dfac85a05d8a80eff maintainer-scripts/README 507e832af5f2d63b8a78eef217c807a7 maintainer-scripts/branch_changer.py c819510f0d438149c1518bda7b165ac4 maintainer-scripts/bugzilla-close-candidate.py --- 108901,108907 ---- bc2f6032c98896249eadb56177c7d357 ltsugar.m4 c30cd33c496505f13d9fbdb6970c7c33 ltversion.m4 293853a13b7e218e3a4342cf85fbbf25 lt~obsolete.m4 ! 770a3727060a46b5ae3cd6e3b7add008 maintainer-scripts/ChangeLog 33c7bc2d2c55956dfac85a05d8a80eff maintainer-scripts/README 507e832af5f2d63b8a78eef217c807a7 maintainer-scripts/branch_changer.py c819510f0d438149c1518bda7b165ac4 maintainer-scripts/bugzilla-close-candidate.py *************** cf2baa0854f564a7785307e79f155efc symlin *** 108566,108572 **** 40bb1f4ce4a60a36d1ec50d66aeed4d1 test-driver cb06c1be6a41d68b0a65e0c1a91752bc ylwrap 03bf3ba8089f4bf475ef4035cf316a47 zlib/CMakeLists.txt ! d05ebeb2d657084004f404597a7bcef4 zlib/ChangeLog f10e5e9394787b288e91fed29533720a zlib/ChangeLog.gcj 0e9a37be8e3b85cc0ccf60504064c297 zlib/ChangeLog.jit b7a1991f01daea3efe108a215c5514a5 zlib/FAQ --- 108922,108928 ---- 40bb1f4ce4a60a36d1ec50d66aeed4d1 test-driver cb06c1be6a41d68b0a65e0c1a91752bc ylwrap 03bf3ba8089f4bf475ef4035cf316a47 zlib/CMakeLists.txt ! c96392742d15ae3ed38e49bb25e21b2e zlib/ChangeLog f10e5e9394787b288e91fed29533720a zlib/ChangeLog.gcj 0e9a37be8e3b85cc0ccf60504064c297 zlib/ChangeLog.jit b7a1991f01daea3efe108a215c5514a5 zlib/FAQ diff -Nrcpad gcc-11.3.0/NEWS gcc-11.4.0/NEWS *** gcc-11.3.0/NEWS Thu Apr 21 07:59:58 2022 --- gcc-11.4.0/NEWS Mon May 29 08:50:07 2023 *************** see ONEWS. *** 6,31 **** ====================================================================== http://gcc.gnu.org/gcc-11/index.html - GCC 11 Release Series ! April 21, 2022 ! The GCC developers are pleased to announce the release of GCC 11.3. This release is a bug-fix release, containing fixes for regressions in ! GCC 11.2 relative to previous releases of GCC. Release History GCC 11.3 ! April 21, 2022 ([1]changes, [2]documentation) GCC 11.2 ! July 28, 2021 ([3]changes, [4]documentation) GCC 11.1 ! April 27, 2021 ([5]changes, [6]documentation) References and Acknowledgements --- 6,33 ---- ====================================================================== http://gcc.gnu.org/gcc-11/index.html GCC 11 Release Series ! May 29, 2023 ! The GCC developers are pleased to announce the release of GCC 11.4. This release is a bug-fix release, containing fixes for regressions in ! GCC 11.3 relative to previous releases of GCC. Release History + GCC 11.4 + May 29, 2023 ([1]changes, [2]documentation) + GCC 11.3 ! April 21, 2022 ([3]changes, [4]documentation) GCC 11.2 ! July 28, 2021 ([5]changes, [6]documentation) GCC 11.1 ! April 27, 2021 ([7]changes, [8]documentation) References and Acknowledgements *************** References and Acknowledgements *** 33,91 **** supports several other languages aside from C, it now stands for the GNU Compiler Collection. ! A list of [7]successful builds is updated as new information becomes available. The GCC developers would like to thank the numerous people that have contributed new features, improvements, bug fixes, and other changes as ! well as test results to GCC. This [8]amazing group of volunteers is what makes GCC successful. ! For additional information about GCC please refer to the [9]GCC project ! web site or contact the [10]GCC development mailing list. ! To obtain GCC please use [11]our mirror sites or [12]our version control system. For questions related to the use of GCC, please consult these web ! pages and the [13]GCC manuals. If that fails, the ! [14]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 [15]gcc@gcc.gnu.org. All of [16]our lists have public archives. ! Copyright (C) [17]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 [18]maintained by the GCC team. Last modified ! 2022-04-21[19]. References 1. http://gcc.gnu.org/gcc-11/changes.html ! 2. http://gcc.gnu.org/onlinedocs/11.3.0/ 3. http://gcc.gnu.org/gcc-11/changes.html ! 4. http://gcc.gnu.org/onlinedocs/11.2.0/ 5. http://gcc.gnu.org/gcc-11/changes.html ! 6. http://gcc.gnu.org/onlinedocs/11.1.0/ ! 7. http://gcc.gnu.org/gcc-11/buildstat.html ! 8. http://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Contributors.html ! 9. http://gcc.gnu.org/index.html ! 10. mailto:gcc@gcc.gnu.org ! 11. http://gcc.gnu.org/mirrors.html ! 12. http://gcc.gnu.org/git.html ! 13. https://gcc.gnu.org/onlinedocs/ ! 14. mailto:gcc-help@gcc.gnu.org ! 15. mailto:gcc@gcc.gnu.org ! 16. https://gcc.gnu.org/lists.html ! 17. https://www.fsf.org/ ! 18. https://gcc.gnu.org/about.html ! 19. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-11/changes.html - GCC 11 Release Series Changes, New Features, and Fixes --- 35,93 ---- supports several other languages aside from C, it now stands for the GNU Compiler Collection. ! A list of [9]successful builds is updated as new information becomes available. The GCC developers would like to thank the numerous people that have contributed new features, improvements, bug fixes, and other changes as ! well as test results to GCC. This [10]amazing group of volunteers is what makes GCC successful. ! For additional information about GCC please refer to the [11]GCC ! project web site or contact the [12]GCC development mailing list. ! To obtain GCC please use [13]our mirror sites or [14]our version control system. For questions related to the use of GCC, please consult these web ! pages and the [15]GCC manuals. If that fails, the ! [16]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 [17]gcc@gcc.gnu.org. All of [18]our lists have public archives. ! Copyright (C) [19]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 [20]maintained by the GCC team. Last modified ! 2023-05-29. References 1. http://gcc.gnu.org/gcc-11/changes.html ! 2. http://gcc.gnu.org/onlinedocs/11.4.0/ 3. http://gcc.gnu.org/gcc-11/changes.html ! 4. http://gcc.gnu.org/onlinedocs/11.3.0/ 5. http://gcc.gnu.org/gcc-11/changes.html ! 6. http://gcc.gnu.org/onlinedocs/11.2.0/ ! 7. http://gcc.gnu.org/gcc-11/changes.html ! 8. http://gcc.gnu.org/onlinedocs/11.1.0/ ! 9. http://gcc.gnu.org/gcc-11/buildstat.html ! 10. http://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Contributors.html ! 11. http://gcc.gnu.org/index.html ! 12. mailto:gcc@gcc.gnu.org ! 13. http://gcc.gnu.org/mirrors.html ! 14. http://gcc.gnu.org/git.html ! 15. https://gcc.gnu.org/onlinedocs/ ! 16. mailto:gcc-help@gcc.gnu.org ! 17. mailto:gcc@gcc.gnu.org ! 18. https://gcc.gnu.org/lists.html ! 19. https://www.fsf.org/ ! 20. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-11/changes.html GCC 11 Release Series Changes, New Features, and Fixes *************** General Improvements *** 138,147 **** 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 🙂 ("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 [7]-fdiagnostics-column-unit=byte. --- 140,149 ---- 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 [7]-fdiagnostics-column-unit=byte. *************** GCC 11.3 *** 784,789 **** --- 786,798 ---- not be complete (that is, it is possible that some PRs that have been fixed are not listed here). + GCC 11.4 + + This is the [70]list of problem reports (PRs) from GCC's bug tracking + system that are known to be fixed in the 11.4 release. This list might + not be complete (that is, it is possible that some PRs that have been + fixed are not listed here). + Target Specific Changes x86-64 *************** GCC 11.3 *** 800,817 **** For questions related to the use of GCC, please consult these web ! pages and the [70]GCC manuals. If that fails, the ! [71]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [72]gcc@gcc.gnu.org. All of [73]our lists have public archives. ! Copyright (C) [74]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [75]maintained by the GCC team. Last modified ! 2022-04-21[76]. References --- 809,826 ---- 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 ! 2023-05-29. References *************** References *** 835,841 **** 18. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Optimize-Options.html#index-fprofile-values 19. https://www.openmp.org/specifications/ 20. https://www.openacc.org/ ! 21. https://gcc.gnu.org/wiki/OpenACC/Implementation%20Status#status-11 22. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/libgomp/Enabling-OpenACC.html 23. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Common-Function-Attributes.html#index-no_005fstack_005fprotector-function-attribute 24. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Common-Function-Attributes.html#index-malloc-function-attribute --- 844,850 ---- 18. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Optimize-Options.html#index-fprofile-values 19. https://www.openmp.org/specifications/ 20. https://www.openacc.org/ ! 21. https://gcc.gnu.org/wiki/OpenACC/Implementation Status#status-11 22. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/libgomp/Enabling-OpenACC.html 23. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Common-Function-Attributes.html#index-no_005fstack_005fprotector-function-attribute 24. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Common-Function-Attributes.html#index-malloc-function-attribute *************** References *** 867,873 **** 50. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/jit/topics/compatibility.html 51. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/jit/topics/expressions.html#c.gcc_jit_global_set_initializer 52. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/jit/topics/asm.html ! 53. https://developer.arm.com/support/arm-security-updates/speculative-processor-vulnerability/downloads/straight-line-speculation 54. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Static-Analyzer-Options.html 55. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Static-Analyzer-Options.html 56. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Common-Function-Attributes.html#index-malloc-function-attribute --- 876,882 ---- 50. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/jit/topics/compatibility.html 51. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/jit/topics/expressions.html#c.gcc_jit_global_set_initializer 52. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/jit/topics/asm.html ! 53. https://developer.arm.com/documentation/102587/0102/Straight-line-speculation-frequently-asked-questions 54. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Static-Analyzer-Options.html 55. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Static-Analyzer-Options.html 56. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Common-Function-Attributes.html#index-malloc-function-attribute *************** References *** 884,919 **** 67. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.0 68. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.2 69. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.3 ! 70. https://gcc.gnu.org/onlinedocs/ ! 71. mailto:gcc-help@gcc.gnu.org ! 72. mailto:gcc@gcc.gnu.org ! 73. https://gcc.gnu.org/lists.html ! 74. https://www.fsf.org/ ! 75. https://gcc.gnu.org/about.html ! 76. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-10/index.html - GCC 10 Release Series ! April 8, 2021 The [1]GNU project and the GCC developers are pleased to announce the ! release of GCC 10.3. This release is a bug-fix release, containing fixes for regressions in ! GCC 10.2 relative to previous releases of GCC. Release History GCC 10.3 ! April 8, 2021 ([2]changes, [3]documentation) GCC 10.2 ! July 23, 2020 ([4]changes, [5]documentation) GCC 10.1 ! May 7, 2020 ([6]changes, [7]documentation) References and Acknowledgements --- 893,930 ---- 67. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.0 68. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.2 69. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.3 ! 70. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.4 ! 71. https://gcc.gnu.org/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-10/index.html GCC 10 Release Series ! June 28, 2022 The [1]GNU project and the GCC developers are pleased to announce the ! release of GCC 10.4. This release is a bug-fix release, containing fixes for regressions in ! GCC 10.3 relative to previous releases of GCC. Release History + GCC 10.4 + June 28, 2022 ([2]changes, [3]documentation) + GCC 10.3 ! April 8, 2021 ([4]changes, [5]documentation) GCC 10.2 ! July 23, 2020 ([6]changes, [7]documentation) GCC 10.1 ! May 7, 2020 ([8]changes, [9]documentation) References and Acknowledgements *************** References and Acknowledgements *** 921,980 **** supports several other languages aside from C, it now stands for the GNU Compiler Collection. ! A list of [8]successful builds is updated as new information becomes available. The GCC developers would like to thank the numerous people that have contributed new features, improvements, bug fixes, and other changes as ! well as test results to GCC. This [9]amazing group of volunteers is what makes GCC successful. ! For additional information about GCC please refer to the [10]GCC ! project web site or contact the [11]GCC development mailing list. ! To obtain GCC please use [12]our mirror sites or [13]our version control system. For questions related to the use of GCC, please consult these web ! pages and the [14]GCC manuals. If that fails, the ! [15]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 [16]gcc@gcc.gnu.org. All of [17]our lists have public archives. ! Copyright (C) [18]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 [19]maintained by the GCC team. Last modified ! 2021-07-28[20]. References 1. http://www.gnu.org/ 2. http://gcc.gnu.org/gcc-10/changes.html ! 3. http://gcc.gnu.org/onlinedocs/10.3.0/ 4. http://gcc.gnu.org/gcc-10/changes.html ! 5. http://gcc.gnu.org/onlinedocs/10.2.0/ 6. http://gcc.gnu.org/gcc-10/changes.html ! 7. http://gcc.gnu.org/onlinedocs/10.1.0/ ! 8. http://gcc.gnu.org/gcc-10/buildstat.html ! 9. http://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Contributors.html ! 10. http://gcc.gnu.org/index.html ! 11. mailto:gcc@gcc.gnu.org ! 12. http://gcc.gnu.org/mirrors.html ! 13. http://gcc.gnu.org/git.html ! 14. https://gcc.gnu.org/onlinedocs/ ! 15. mailto:gcc-help@gcc.gnu.org ! 16. mailto:gcc@gcc.gnu.org ! 17. https://gcc.gnu.org/lists.html ! 18. https://www.fsf.org/ ! 19. https://gcc.gnu.org/about.html ! 20. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-10/changes.html - GCC 10 Release Series Changes, New Features, and Fixes --- 932,991 ---- supports several other languages aside from C, it now stands for the GNU Compiler Collection. ! A list of [10]successful builds is updated as new information becomes available. The GCC developers would like to thank the numerous people that have contributed new features, improvements, bug fixes, and other changes as ! well as test results to GCC. This [11]amazing group of volunteers is what makes GCC successful. ! For additional information about GCC please refer to the [12]GCC ! project web site or contact the [13]GCC development mailing list. ! To obtain GCC please use [14]our mirror sites or [15]our version control system. For questions related to the use of GCC, please consult these web ! pages and the [16]GCC manuals. If that fails, the ! [17]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [18]gcc@gcc.gnu.org. All of [19]our lists have public archives. ! Copyright (C) [20]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [21]maintained by the GCC team. Last modified ! 2022-10-26. References 1. http://www.gnu.org/ 2. http://gcc.gnu.org/gcc-10/changes.html ! 3. http://gcc.gnu.org/onlinedocs/10.4.0/ 4. http://gcc.gnu.org/gcc-10/changes.html ! 5. http://gcc.gnu.org/onlinedocs/10.3.0/ 6. http://gcc.gnu.org/gcc-10/changes.html ! 7. http://gcc.gnu.org/onlinedocs/10.2.0/ ! 8. http://gcc.gnu.org/gcc-10/changes.html ! 9. http://gcc.gnu.org/onlinedocs/10.1.0/ ! 10. http://gcc.gnu.org/gcc-10/buildstat.html ! 11. http://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Contributors.html ! 12. http://gcc.gnu.org/index.html ! 13. mailto:gcc@gcc.gnu.org ! 14. http://gcc.gnu.org/mirrors.html ! 15. http://gcc.gnu.org/git.html ! 16. https://gcc.gnu.org/onlinedocs/ ! 17. mailto:gcc-help@gcc.gnu.org ! 18. mailto:gcc@gcc.gnu.org ! 19. https://gcc.gnu.org/lists.html ! 20. https://www.fsf.org/ ! 21. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-10/changes.html GCC 10 Release Series Changes, New Features, and Fixes *************** General Improvements *** 1079,1094 **** New Languages and Language-Specific Improvements ! * Version 2.6 of the [17]OpenACC specification is now supported in the C, C++ and Fortran compilers. See the [18]implementation status section on the OpenACC wiki page and the [19]run-time library documentation for further information. * GCC 10 adds a number of newly implemented [20]OpenMP 5.0 features ! on top of the GCC 9 release such as conditional lastprivate clause, ! scan and loop directives, order(concurrent) and use_device_addr ! clauses support, if clause on simd construct or partial support for ! the declare variant directive, getting closer to full support of ! the OpenMP 5.0 standard. * OpenMP and OpenACC now support [21]offloading to AMD Radeon (GCN) GPUs; supported are the third-generation Fiji (fiji) and the fifth-generation VEGA 10/VEGA 20 (gfx900 or gfx906). --- 1090,1105 ---- New Languages and Language-Specific Improvements ! * Version 2.6 of the [17]OpenACC specification is now supported by the C, C++ and Fortran compilers. See the [18]implementation status section on the OpenACC wiki page and the [19]run-time library documentation for further information. * GCC 10 adds a number of newly implemented [20]OpenMP 5.0 features ! such as conditional lastprivate clause, scan and loop directives, ! order(concurrent) and use_device_addr clauses support, if clause on ! simd construct, and partial support for the declare variant ! directive, getting closer to full support of the OpenMP 5.0 ! standard. * OpenMP and OpenACC now support [21]offloading to AMD Radeon (GCN) GPUs; supported are the third-generation Fiji (fiji) and the fifth-generation VEGA 10/VEGA 20 (gfx900 or gfx906). *************** New Languages and Language-Specific Impr *** 1142,1150 **** 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; } C --- 1153,1161 ---- 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 Ï€; } C *************** typedef svbool_t pred512 __attribute__(( *** 1424,1430 **** 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 --- 1435,1441 ---- 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 *************** typedef svbool_t pred512 __attribute__(( *** 1529,1536 **** AMD Radeon (GCN) ! * The code generation and in particular the vectorization support has ! been much improved. ARC --- 1540,1547 ---- AMD Radeon (GCN) ! * Code generation and in particular vectorization support have been ! much improved. ARC *************** GCC 10.3 *** 1699,1704 **** --- 1710,1720 ---- GCC 10.4 + This is the [60]list of problem reports (PRs) from GCC's bug tracking + system that are known to be fixed in the 10.4 release. This list might + not be complete (that is, it is possible that some PRs that have been + fixed are not listed here). + Target Specific Changes x86-64 *************** GCC 10.4 *** 1710,1727 **** For questions related to the use of GCC, please consult these web ! pages and the [60]GCC manuals. If that fails, the ! [61]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [62]gcc@gcc.gnu.org. All of [63]our lists have public archives. ! Copyright (C) [64]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [65]maintained by the GCC team. Last modified ! 2021-11-12[66]. References --- 1726,1743 ---- For questions related to the use of GCC, please consult these web ! pages and the [61]GCC manuals. If that fails, the ! [62]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 [63]gcc@gcc.gnu.org. All of [64]our lists have public archives. ! Copyright (C) [65]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 [66]maintained by the GCC team. Last modified ! 2023-03-11. References *************** References *** 1742,1748 **** 15. https://facebook.github.io/zstd/ 16. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Optimize-Options.html#index-fprofile-values 17. https://www.openacc.org/ ! 18. https://gcc.gnu.org/wiki/OpenACC/Implementation%20Status#status-10 19. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/libgomp/#toc-Enabling-OpenACC-1 20. https://www.openmp.org/specifications/ 21. https://gcc.gnu.org/wiki/Offloading --- 1758,1764 ---- 15. https://facebook.github.io/zstd/ 16. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Optimize-Options.html#index-fprofile-values 17. https://www.openacc.org/ ! 18. https://gcc.gnu.org/wiki/OpenACC/Implementation Status#status-10 19. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/libgomp/#toc-Enabling-OpenACC-1 20. https://www.openmp.org/specifications/ 21. https://gcc.gnu.org/wiki/Offloading *************** References *** 1768,1775 **** 41. https://gcc.gnu.org/onlinedocs/jit/topics/compatibility.html#c.gcc_jit_version_patchlevel 42. https://gcc.gnu.org/onlinedocs/jit/topics/types.html#c.gcc_jit_context_new_bitfield 43. https://developer.arm.com/documentation/101028/0009/Data-processing-intrinsics ! 44. https://developer.arm.com/architectures/cpu-architecture/m-profile ! 45. https://developer.arm.com/architectures/instruction-sets/simd-isas/helium/helium-intrinsics 46. https://developer.arm.com/documentation/101028/0010/Custom-Datapath-Extension 47. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/AVR-Options.html#index-nodevicespecs 48. https://gcc.gnu.org/install/configure.html#avr --- 1784,1791 ---- 41. https://gcc.gnu.org/onlinedocs/jit/topics/compatibility.html#c.gcc_jit_version_patchlevel 42. https://gcc.gnu.org/onlinedocs/jit/topics/types.html#c.gcc_jit_context_new_bitfield 43. https://developer.arm.com/documentation/101028/0009/Data-processing-intrinsics ! 44. https://developer.arm.com/Architectures/M-Profile Architecture ! 45. https://developer.arm.com/architectures/instruction-sets/intrinsics/ 46. https://developer.arm.com/documentation/101028/0010/Custom-Datapath-Extension 47. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/AVR-Options.html#index-nodevicespecs 48. https://gcc.gnu.org/install/configure.html#avr *************** References *** 1784,1822 **** 57. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.0 58. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.2 59. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.3 ! 60. https://gcc.gnu.org/onlinedocs/ ! 61. mailto:gcc-help@gcc.gnu.org ! 62. mailto:gcc@gcc.gnu.org ! 63. https://gcc.gnu.org/lists.html ! 64. https://www.fsf.org/ ! 65. https://gcc.gnu.org/about.html ! 66. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-9/index.html - GCC 9 Release Series ! June 1, 2021 The [1]GNU project and the GCC developers are pleased to announce the ! release of GCC 9.4. This release is a bug-fix release, containing fixes for regressions in ! GCC 9.3 relative to previous releases of GCC. Release History GCC 9.4 ! June 1, 2021 ([2]changes, [3]documentation) GCC 9.3 ! Mar 12, 2020 ([4]changes, [5]documentation) GCC 9.2 ! Aug 12, 2019 ([6]changes, [7]documentation) GCC 9.1 ! May 3, 2019 ([8]changes, [9]documentation) References and Acknowledgements --- 1800,1842 ---- 57. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.0 58. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.2 59. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.3 ! 60. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.4 ! 61. https://gcc.gnu.org/onlinedocs/ ! 62. mailto:gcc-help@gcc.gnu.org ! 63. mailto:gcc@gcc.gnu.org ! 64. https://gcc.gnu.org/lists.html ! 65. https://www.fsf.org/ ! 66. 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.) ! ! May 27, 2022 The [1]GNU project and the GCC developers are pleased to announce the ! release of GCC 9.5. This release is a bug-fix release, containing fixes for regressions in ! GCC 9.4 relative to previous releases of GCC. Release History + GCC 9.5 + May 27, 2022 ([2]changes, [3]documentation) + GCC 9.4 ! June 1, 2021 ([4]changes, [5]documentation) GCC 9.3 ! Mar 12, 2020 ([6]changes, [7]documentation) GCC 9.2 ! Aug 12, 2019 ([8]changes, [9]documentation) GCC 9.1 ! May 3, 2019 ([10]changes, [11]documentation) References and Acknowledgements *************** References and Acknowledgements *** 1824,1885 **** supports several other languages aside from C, it now stands for the GNU Compiler Collection. ! A list of [10]successful builds is updated as new information becomes available. The GCC developers would like to thank the numerous people that have contributed new features, improvements, bug fixes, and other changes as ! well as test results to GCC. This [11]amazing group of volunteers is what makes GCC successful. ! For additional information about GCC please refer to the [12]GCC ! project web site or contact the [13]GCC development mailing list. ! To obtain GCC please use [14]our mirror sites or [15]our version control system. For questions related to the use of GCC, please consult these web ! pages and the [16]GCC manuals. If that fails, the ! [17]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [18]gcc@gcc.gnu.org. All of [19]our lists have public archives. ! Copyright (C) [20]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [21]maintained by the GCC team. Last modified ! 2021-07-28[22]. References 1. http://www.gnu.org/ 2. http://gcc.gnu.org/gcc-9/changes.html ! 3. http://gcc.gnu.org/onlinedocs/9.4.0/ 4. http://gcc.gnu.org/gcc-9/changes.html ! 5. http://gcc.gnu.org/onlinedocs/9.3.0/ 6. http://gcc.gnu.org/gcc-9/changes.html ! 7. http://gcc.gnu.org/onlinedocs/9.2.0/ 8. http://gcc.gnu.org/gcc-9/changes.html ! 9. http://gcc.gnu.org/onlinedocs/9.1.0/ ! 10. http://gcc.gnu.org/gcc-9/buildstat.html ! 11. http://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Contributors.html ! 12. http://gcc.gnu.org/index.html ! 13. mailto:gcc@gcc.gnu.org ! 14. http://gcc.gnu.org/mirrors.html ! 15. http://gcc.gnu.org/git.html ! 16. https://gcc.gnu.org/onlinedocs/ ! 17. mailto:gcc-help@gcc.gnu.org ! 18. mailto:gcc@gcc.gnu.org ! 19. https://gcc.gnu.org/lists.html ! 20. https://www.fsf.org/ ! 21. https://gcc.gnu.org/about.html ! 22. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-9/changes.html - GCC 9 Release Series Changes, New Features, and Fixes --- 1844,1905 ---- supports several other languages aside from C, it now stands for the GNU Compiler Collection. ! A list of [12]successful builds is updated as new information becomes available. The GCC developers would like to thank the numerous people that have contributed new features, improvements, bug fixes, and other changes as ! well as test results to GCC. This [13]amazing group of volunteers is what makes GCC successful. ! For additional information about GCC please refer to the [14]GCC ! project web site or contact the [15]GCC development mailing list. ! To obtain GCC please use [16]our mirror sites or [17]our version control system. For questions related to the use of GCC, please consult these web ! pages and the [18]GCC manuals. If that fails, the ! [19]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [20]gcc@gcc.gnu.org. All of [21]our lists have public archives. ! Copyright (C) [22]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [23]maintained by the GCC team. Last modified ! 2022-10-26. References 1. http://www.gnu.org/ 2. http://gcc.gnu.org/gcc-9/changes.html ! 3. http://gcc.gnu.org/onlinedocs/9.5.0/ 4. http://gcc.gnu.org/gcc-9/changes.html ! 5. http://gcc.gnu.org/onlinedocs/9.4.0/ 6. http://gcc.gnu.org/gcc-9/changes.html ! 7. http://gcc.gnu.org/onlinedocs/9.3.0/ 8. http://gcc.gnu.org/gcc-9/changes.html ! 9. http://gcc.gnu.org/onlinedocs/9.2.0/ ! 10. http://gcc.gnu.org/gcc-9/changes.html ! 11. http://gcc.gnu.org/onlinedocs/9.1.0/ ! 12. http://gcc.gnu.org/gcc-9/buildstat.html ! 13. http://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Contributors.html ! 14. http://gcc.gnu.org/index.html ! 15. mailto:gcc@gcc.gnu.org ! 16. http://gcc.gnu.org/mirrors.html ! 17. http://gcc.gnu.org/git.html ! 18. https://gcc.gnu.org/onlinedocs/ ! 19. mailto:gcc-help@gcc.gnu.org ! 20. mailto:gcc@gcc.gnu.org ! 21. https://gcc.gnu.org/lists.html ! 22. https://www.fsf.org/ ! 23. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-9/changes.html GCC 9 Release Series Changes, New Features, and Fixes *************** General Improvements *** 1933,1944 **** 64-bit integers as well as standard SI and IEC suffixes such as kb and KiB, MB and MiB, or GB and GiB denoting the corresponding multiples of bytes. See [9]Invoking GCC for more. ! * A new option, ! [10]-flive-patching=[inline-only-static|inline-clone], has been ! introduced to provide a safe compilation for live-patching. At the ! same time, provides multiple-level control on the enabled IPA ! optimizations. See the user guide for more details about the ! option. * A new option, --completion, has been added to provide more fine option completion in a shell. It is intended to be used by Bash-completion. --- 1953,1962 ---- 64-bit integers as well as standard SI and IEC suffixes such as kb and KiB, MB and MiB, or GB and GiB denoting the corresponding multiples of bytes. See [9]Invoking GCC for more. ! * A new option [10]-flive-patching=[inline-only-static|inline-clone] ! generates code suitable for live patching. At the same time it ! provides multiple-level control over IPA optimizations. See the ! user guide for more details. * A new option, --completion, has been added to provide more fine option completion in a shell. It is intended to be used by Bash-completion. *************** New Targets and Target Specific Improvem *** 2516,2521 **** --- 2534,2563 ---- following ISA extensions: AVX512F, AVX512VL, AVX512CD, AVX512BW, AVX512DQ, AVX512VNNI. + MIPS + + * The Loongson loongson-mmi and loongson-ext extensions have been + split from loongson3a: + + loongson-mmi contains the Loongson MMI (MultiMedia extensions + Instructions). + + loongson-ext contains the Loongson EXT (EXTensions + instructions). + * The Loongson EXT2 (EXTensions R2 instructions) are now supported. + + loongson-ext2 contains the Loongson EXT2 instructions. + Command-line options-m[no-]loongson-mmi, -m[no-]loongson-ext, and + -m[no-]loongson-ext2 enable or disable those extensions. + * Support has been added for the following processors (GCC + identifiers in parentheses): + + Loongson 3A1000 (gs464) which enables loongson-mmi, + loongson-ext by default. + + Loongson 3A2000/3A3000 (gs464e) which enables loongson-mmi, + loongson-ext, loongson-ext2 by default. + + Loongson 2K1000 (gs264e) which enables loongson-ext, + loongson-ext2, msa by default. + The GCC identifiers can be used as arguments to the -mcpu and + -mtune options (as in -mcpu=gs464 or -mtune=gs464e) or as arguments + to the equivalent target attributes and pragmas. + OpenRISC * A new back end targeting OpenRISC processors has been contributed *************** GCC 9.4 *** 2637,2656 **** for all SVE implementations. Adding -msve-vector-bits=512 makes the code specific to 512-bit SVE. For questions related to the use of GCC, please consult these web ! pages and the [69]GCC manuals. If that fails, the ! [70]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [71]gcc@gcc.gnu.org. All of [72]our lists have public archives. ! Copyright (C) [73]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [74]maintained by the GCC team. Last modified ! 2021-07-28[75]. References --- 2679,2705 ---- for all SVE implementations. Adding -msve-vector-bits=512 makes the code specific to 512-bit SVE. + GCC 9.5 + + This is the [69]list of problem reports (PRs) from GCC's bug tracking + system that are known to be fixed in the 9.5 release. This list might + not be complete (that is, it is possible that some PRs that have been + fixed are not listed here). + For questions related to the use of GCC, please consult these web ! pages and the [70]GCC manuals. If that fails, the ! [71]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [72]gcc@gcc.gnu.org. All of [73]our lists have public archives. ! Copyright (C) [74]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [75]maintained by the GCC team. Last modified ! 2023-02-22. References *************** References *** 2689,2695 **** 33. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Optimize-Options.html#index-ftree-loop-distribution 34. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Invoking-Gcov.html#Invoking-Gcov 35. https://www.openacc.org/ ! 36. https://gcc.gnu.org/wiki/OpenACC/Implementation%20Status#status-9 37. https://www.openmp.org/specifications/ 38. https://gcc.gnu.org/ml/gcc-patches/2018-11/msg00628.html 39. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Vector-Extensions.html#index-_005f_005fbuiltin_005fconvertvector --- 2738,2744 ---- 33. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Optimize-Options.html#index-ftree-loop-distribution 34. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Invoking-Gcov.html#Invoking-Gcov 35. https://www.openacc.org/ ! 36. https://gcc.gnu.org/wiki/OpenACC/Implementation Status#status-9 37. https://www.openmp.org/specifications/ 38. https://gcc.gnu.org/ml/gcc-patches/2018-11/msg00628.html 39. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Vector-Extensions.html#index-_005f_005fbuiltin_005fconvertvector *************** References *** 2722,2739 **** 66. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.2 67. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.3 68. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.4 ! 69. https://gcc.gnu.org/onlinedocs/ ! 70. mailto:gcc-help@gcc.gnu.org ! 71. mailto:gcc@gcc.gnu.org ! 72. https://gcc.gnu.org/lists.html ! 73. https://www.fsf.org/ ! 74. https://gcc.gnu.org/about.html ! 75. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-8/index.html - GCC 8 Release Series May 14, 2021 The [1]GNU project and the GCC developers are pleased to announce the --- 2771,2789 ---- 66. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.2 67. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.3 68. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.4 ! 69. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=9.5 ! 70. https://gcc.gnu.org/onlinedocs/ ! 71. mailto:gcc-help@gcc.gnu.org ! 72. mailto:gcc@gcc.gnu.org ! 73. https://gcc.gnu.org/lists.html ! 74. https://www.fsf.org/ ! 75. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-8/index.html GCC 8 Release Series + (This release series is no longer supported.) + May 14, 2021 The [1]GNU project and the GCC developers are pleased to announce the *************** References and Acknowledgements *** 2792,2798 **** provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2021-07-28[24]. References --- 2842,2848 ---- provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 2819,2828 **** 21. https://gcc.gnu.org/lists.html 22. https://www.fsf.org/ 23. https://gcc.gnu.org/about.html - 24. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-8/changes.html - GCC 8 Release Series Changes, New Features, and Fixes --- 2869,2876 ---- *************** void copy (const char *s) *** 3107,3113 **** { char buf[80]; strncpy (buf, s, sizeof buf); ! ... } warning: 'strncpy' specified bound 80 equals destination size [-Wstringop-trunca tion] --- 3155,3161 ---- { char buf[80]; strncpy (buf, s, sizeof buf); ! … } warning: 'strncpy' specified bound 80 equals destination size [-Wstringop-trunca tion] *************** void f (void) *** 3180,3186 **** { char a[] = "abcd1234"; strcpy (a, a + 4); ! ... } warning: 'strcpy' accessing 5 bytes at offsets 0 and 4 overlaps 1 byte at offset 4 [-Wrestrict] --- 3228,3234 ---- { char a[] = "abcd1234"; strcpy (a, a + 4); ! … } warning: 'strcpy' accessing 5 bytes at offsets 0 and 4 overlaps 1 byte at offset 4 [-Wrestrict] *************** New Targets and Target Specific Improvem *** 3603,3615 **** + Secure functions via sjli instruction. * New exception handling implementation. * Revamped trampoline implementation. ! * Refactored small data feature implementation, controlled via -G ! command line option. * New support for reduced register set ARC architecture ! configurations, controlled via -mrf16 command line option. * Refurbished and improved support for zero overhead loops. ! Introduced -mlpc-width command line option to control the width of ! lp_count register. ARM --- 3651,3663 ---- + Secure functions via sjli instruction. * New exception handling implementation. * Revamped trampoline implementation. ! * Refactored small data feature implementation, controlled via the -G ! command-line option. * New support for reduced register set ARC architecture ! configurations, controlled via the -mrf16 command-line option. * Refurbished and improved support for zero overhead loops. ! Introduced -mlpc-width command-line option to control the width of ! the lp_count register. ARM *************** GCC 8.5 *** 3902,3908 **** provided this notice is preserved. These pages are [44]maintained by the GCC team. Last modified ! 2021-10-01[45]. References --- 3950,3956 ---- provided this notice is preserved. These pages are [44]maintained by the GCC team. Last modified ! 2023-01-11. References *************** References *** 3950,3961 **** 42. https://gcc.gnu.org/lists.html 43. https://www.fsf.org/ 44. https://gcc.gnu.org/about.html - 45. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-7/index.html - GCC 7 Release Series Nov 14, 2019 The [1]GNU project and the GCC developers are pleased to announce the --- 3998,4009 ---- 42. https://gcc.gnu.org/lists.html 43. https://www.fsf.org/ 44. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-7/index.html GCC 7 Release Series + (This release series is no longer supported.) + Nov 14, 2019 The [1]GNU project and the GCC developers are pleased to announce the *************** References and Acknowledgements *** 4014,4020 **** provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2021-07-28[24]. References --- 4062,4068 ---- provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 4041,4050 **** 21. https://gcc.gnu.org/lists.html 22. https://www.fsf.org/ 23. https://gcc.gnu.org/about.html - 24. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-7/changes.html - GCC 7 Release Series Changes, New Features, and Fixes --- 4089,4096 ---- *************** void f (int n) *** 4413,4419 **** d = alloca (n); else d = malloc (n); ! ... } warning: argument to 'alloca may be too large due to conversion from 'int' to 'l --- 4459,4465 ---- 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= *** 4426,4432 **** void f (size_t n) { char *d = alloca (n); ! ... } warning: unbounded use of 'alloca' [-Walloca-larger-than=] --- 4472,4478 ---- void f (size_t n) { char *d = alloca (n); ! … } warning: unbounded use of 'alloca' [-Walloca-larger-than=] *************** void f (unsigned x) *** 4474,4480 **** { char d[4]; snprintf (d, sizeof d, "%#02x", x & 0xff); ! ... } warning: 'snprintf' output may be truncated before the last format character [-W --- 4520,4526 ---- { 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) *** 4502,4508 **** 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 --- 4548,4554 ---- 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 *** 4640,4649 **** + 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. Fortran --- 4686,4695 ---- + 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. Fortran *************** const int* get_address (unsigned idx) *** 4813,4819 **** } * 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 [17]built-in function that inserts n --- 4859,4865 ---- } * 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 [17]built-in function that inserts n *************** GCC 7.5 *** 5112,5118 **** provided this notice is preserved. These pages are [33]maintained by the GCC team. Last modified ! 2021-10-17[34]. References --- 5158,5164 ---- provided this notice is preserved. These pages are [33]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 5149,5158 **** 31. https://gcc.gnu.org/lists.html 32. https://www.fsf.org/ 33. https://gcc.gnu.org/about.html - 34. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-6/index.html - GCC 6 Release Series (This release series is no longer supported.) --- 5195,5202 ---- *************** References and Acknowledgements *** 5215,5221 **** provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2021-07-28[24]. References --- 5259,5265 ---- provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 5242,5251 **** 21. https://gcc.gnu.org/lists.html 22. https://www.fsf.org/ 23. https://gcc.gnu.org/about.html - 24. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-6/changes.html - GCC 6 Release Series Changes, New Features, and Fixes --- 5286,5293 ---- *************** New Targets and Target Specific Improvem *** 5664,5670 **** added. This includes new intrinsic and built-in support. It is enabled through option -mmwaitx. The instructions monitorx and mwaitx implement the same functionality as the old monitor and ! mwait instructions. In addition mwaitx adds a configurable timer. The timer value is received as third argument and stored in register %ebx. * x86-64 targets now allow stack realignment from a word-aligned --- 5706,5712 ---- added. This includes new intrinsic and built-in support. It is enabled through option -mmwaitx. The instructions monitorx and mwaitx implement the same functionality as the old monitor and ! mwait instructions. In addition, mwaitx adds a configurable timer. The timer value is received as third argument and stored in register %ebx. * x86-64 targets now allow stack realignment from a word-aligned *************** Operating Systems *** 5851,5862 **** RTEMS * The RTEMS thread model implementation changed. Mutexes now use ! self-contained objects defined in Newlib instead of Classic API semaphores. The keys for thread specific data and the once function are directly defined via . Self-contained ! condition variables are provided via Newlib . The RTEMS thread model also supports C++11 threads. ! * OpenMP support now uses self-contained objects provided by Newlib and offers a significantly better performance compared to the POSIX configuration of libgomp. It is possible to configure thread pools for each scheduler instance via the environment --- 5893,5904 ---- RTEMS * The RTEMS thread model implementation changed. Mutexes now use ! self-contained objects defined in newlib instead of Classic API semaphores. The keys for thread specific data and the once function are directly defined via . Self-contained ! condition variables are provided via newlib . The RTEMS thread model also supports C++11 threads. ! * OpenMP support now uses self-contained objects provided by newlib and offers a significantly better performance compared to the POSIX configuration of libgomp. It is possible to configure thread pools for each scheduler instance via the environment *************** Operating Systems *** 5954,5960 **** provided this notice is preserved. These pages are [32]maintained by the GCC team. Last modified ! 2021-10-31[33]. References --- 5996,6002 ---- provided this notice is preserved. These pages are [32]maintained by the GCC team. Last modified ! 2023-02-20. References *************** References *** 5968,5974 **** 8. https://gcc.gnu.org/wiki/Offloading 9. https://www.openmp.org/specifications/ 10. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-1266 ! 11. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4377.pdf 12. https://gcc.gnu.org/projects/cxx-status.html#cxx1z 13. https://gcc.gnu.org/onlinedocs/gcc-6.1.0/jit/topics/performance.html 14. https://gcc.gnu.org/onlinedocs/gcc-6.1.0/jit/topics/functions.html#gcc_jit_block_end_with_switch --- 6010,6016 ---- 8. https://gcc.gnu.org/wiki/Offloading 9. https://www.openmp.org/specifications/ 10. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-1266 ! 11. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4377.pdf 12. https://gcc.gnu.org/projects/cxx-status.html#cxx1z 13. https://gcc.gnu.org/onlinedocs/gcc-6.1.0/jit/topics/performance.html 14. https://gcc.gnu.org/onlinedocs/gcc-6.1.0/jit/topics/functions.html#gcc_jit_block_end_with_switch *************** References *** 5990,5999 **** 30. https://gcc.gnu.org/lists.html 31. https://www.fsf.org/ 32. https://gcc.gnu.org/about.html - 33. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-5/index.html - GCC 5 Release Series (This release series is no longer supported.) --- 6032,6039 ---- *************** References and Acknowledgements *** 6056,6062 **** provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2021-07-28[24]. References --- 6096,6102 ---- provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 6083,6092 **** 21. https://gcc.gnu.org/lists.html 22. https://www.fsf.org/ 23. https://gcc.gnu.org/about.html - 24. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-5/changes.html - GCC 5 Release Series Changes, New Features, and Fixes --- 6123,6130 ---- *************** Target Specific Changes *** 6884,6890 **** added. This includes new intrinsic and built-in support. It is enabled through option -mmwaitx. The instructions monitorx and mwaitx implement the same functionality as the old monitor and ! mwait instructions. In addition mwaitx adds a configurable timer. The timer value is received as third argument and stored in register %ebx. --- 6922,6928 ---- added. This includes new intrinsic and built-in support. It is enabled through option -mmwaitx. The instructions monitorx and mwaitx implement the same functionality as the old monitor and ! mwait instructions. In addition, mwaitx adds a configurable timer. The timer value is received as third argument and stored in register %ebx. *************** Target Specific Changes *** 6966,6979 **** provided this notice is preserved. These pages are [49]maintained by the GCC team. Last modified ! 2022-03-11[50]. References 1. http://gcc.gnu.org/gcc-5/changes.html#libstdcxx 2. https://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html 3. https://savannah.nongnu.org/bugs/?44574 ! 4. https://gcc.gnu.org/wiki/Intel%20MPX%20support%20in%20the%20GCC%20compiler 5. https://www.openmp.org/wp-content/uploads/OpenMP4.0.0.pdf 6. https://www.openmp.org/wp-content/uploads/OpenMP4.0.0.Examples.pdf 7. https://gcc.gnu.org/wiki/OpenACC --- 7004,7017 ---- provided this notice is preserved. These pages are [49]maintained by the GCC team. Last modified ! 2023-02-20. References 1. http://gcc.gnu.org/gcc-5/changes.html#libstdcxx 2. https://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html 3. https://savannah.nongnu.org/bugs/?44574 ! 4. https://gcc.gnu.org/wiki/Intel MPX support in the GCC compiler 5. https://www.openmp.org/wp-content/uploads/OpenMP4.0.0.pdf 6. https://www.openmp.org/wp-content/uploads/OpenMP4.0.0.Examples.pdf 7. https://gcc.gnu.org/wiki/OpenACC *************** References *** 6984,6995 **** 12. http://gcc.gnu.org/projects/cxx1y.html 13. http://gcc.gnu.org/projects/cxx1y.html 14. http://gcc.gnu.org/projects/cxx1y.html ! 15. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3639.html 16. http://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html 17. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/libstdc++/manual/manual/status.html#status.iso.2011 18. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/libstdc++/manual/manual/status.html#status.iso.2014 19. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/libstdc++/manual/manual/status.html#status.iso.2014 ! 20. https://sourceware.org/gdb/current/onlinedocs/gdb/Xmethods-In-Python.html 21. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gfortran/Error-and-Warning-Options.html 22. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gcc/Language-Independent-Options.html 23. https://gcc.gnu.org/install/configure.html --- 7022,7033 ---- 12. http://gcc.gnu.org/projects/cxx1y.html 13. http://gcc.gnu.org/projects/cxx1y.html 14. http://gcc.gnu.org/projects/cxx1y.html ! 15. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3639.html 16. http://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html 17. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/libstdc++/manual/manual/status.html#status.iso.2011 18. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/libstdc++/manual/manual/status.html#status.iso.2014 19. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/libstdc++/manual/manual/status.html#status.iso.2014 ! 20. https://sourceware.org/gdb/current/onlinedocs/gdb#Xmethods-In-Python 21. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gfortran/Error-and-Warning-Options.html 22. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/gcc/Language-Independent-Options.html 23. https://gcc.gnu.org/install/configure.html *************** References *** 7019,7028 **** 47. https://gcc.gnu.org/lists.html 48. https://www.fsf.org/ 49. https://gcc.gnu.org/about.html - 50. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.9/index.html - GCC 4.9 Release Series (This release series is no longer supported.) --- 7057,7064 ---- *************** References and Acknowledgements *** 7085,7091 **** provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2021-07-28[24]. References --- 7121,7127 ---- provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 7112,7121 **** 21. https://gcc.gnu.org/lists.html 22. https://www.fsf.org/ 23. https://gcc.gnu.org/about.html - 24. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.9/changes.html - GCC 4.9 Release Series Changes, New Features, and Fixes --- 7148,7155 ---- *************** New Languages and Language specific impr *** 7229,7249 **** -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 struct X { static const int value = X::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 [7]#pragma GCC ivdep, the user can assert that there are no loop-carried dependencies which would prevent concurrent --- 7263,7283 ---- -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 struct X { static const int value = X::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 [7]#pragma GCC ivdep, the user can assert that there are no loop-carried dependencies which would prevent concurrent *************** auto incr = [](auto x) { return x++; }; *** 7348,7355 **** // a functional object that will add two like-type objects auto add = [] (T a, T b) { return a + b; }; ! * G++ supports unconstrained generic functions as specified by §4.1.2 ! and §5.1.1 of [15]N3889: Concepts Lite Specification. Briefly, auto may be used as a type-specifier in a parameter declaration of any function declarator in order to introduce an implicit function template parameter, akin to generic lambdas. --- 7382,7389 ---- // a functional object that will add two like-type objects auto add = [] (T a, T b) { return a + b; }; ! * G++ supports unconstrained generic functions as specified by §4.1.2 ! and §5.1.1 of [15]N3889: Concepts Lite Specification. Briefly, auto may be used as a type-specifier in a parameter declaration of any function declarator in order to introduce an implicit function template parameter, akin to generic lambdas. *************** auto incr(T x) { return x++; } *** 7442,7448 **** 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 --- 7476,7482 ---- 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 *************** GCC 4.9.4 *** 7725,7731 **** provided this notice is preserved. These pages are [33]maintained by the GCC team. Last modified ! 2021-07-28[34]. References --- 7759,7765 ---- provided this notice is preserved. These pages are [33]maintained by the GCC team. Last modified ! 2023-01-19. References *************** References *** 7737,7749 **** 6. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Language-Independent-Options.html#index-fdiagnostics-color-252 7. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Loop-Specific-Pragmas.html 8. http://gcc.gnu.org/projects/cxx1y.html ! 9. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3638.html 10. http://gcc.gnu.org/projects/cxx1y.html 11. http://gcc.gnu.org/projects/cxx1y.html 12. http://gcc.gnu.org/projects/cxx1y.html 13. http://gcc.gnu.org/projects/cxx1y.html 14. http://gcc.gnu.org/projects/cxx1y.html ! 15. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3889.pdf 16. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/libstdc++/manual/manual/status.html#status.iso.2011 17. https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2014 18. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gfortran/Argument-passing-conventions.html --- 7771,7783 ---- 6. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Language-Independent-Options.html#index-fdiagnostics-color-252 7. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Loop-Specific-Pragmas.html 8. http://gcc.gnu.org/projects/cxx1y.html ! 9. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3638.html 10. http://gcc.gnu.org/projects/cxx1y.html 11. http://gcc.gnu.org/projects/cxx1y.html 12. http://gcc.gnu.org/projects/cxx1y.html 13. http://gcc.gnu.org/projects/cxx1y.html 14. http://gcc.gnu.org/projects/cxx1y.html ! 15. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3889.pdf 16. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/libstdc++/manual/manual/status.html#status.iso.2011 17. https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2014 18. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gfortran/Argument-passing-conventions.html *************** References *** 7762,7771 **** 31. https://gcc.gnu.org/lists.html 32. https://www.fsf.org/ 33. https://gcc.gnu.org/about.html - 34. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.8/index.html - GCC 4.8 Release Series (This release series is no longer supported.) --- 7796,7803 ---- *************** References and Acknowledgements *** 7831,7837 **** provided this notice is preserved. These pages are [25]maintained by the GCC team. Last modified ! 2021-07-28[26]. References --- 7863,7869 ---- provided this notice is preserved. These pages are [25]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 7860,7869 **** 23. https://gcc.gnu.org/lists.html 24. https://www.fsf.org/ 25. https://gcc.gnu.org/about.html - 26. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.8/changes.html - GCC 4.8 Release Series Changes, New Features, and Fixes --- 7892,7899 ---- *************** New Languages and Language specific impr *** 7992,7999 **** 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; }) --- 8022,8029 ---- 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 *** 8117,8124 **** 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 --- 8147,8154 ---- 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 *** 8145,8151 **** * 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 --- 8175,8181 ---- * 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 *** 8157,8163 **** 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 --- 8187,8193 ---- 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 *************** New Targets and Target Specific Improvem *** 8252,8259 **** } 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; --- 8282,8289 ---- } 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; *************** GCC 4.8.5 *** 8587,8593 **** provided this notice is preserved. These pages are [43]maintained by the GCC team. Last modified ! 2021-07-28[44]. References --- 8617,8623 ---- provided this notice is preserved. These pages are [43]maintained by the GCC team. Last modified ! 2022-11-05. References *************** References *** 8602,8610 **** 9. http://gcc.gnu.org/gcc-4.8/cxx0x_status.html 10. http://gcc.gnu.org/gcc-4.8/cxx0x_status.html 11. http://gcc.gnu.org/gcc-4.8/cxx0x_status.html ! 12. http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf 13. http://gcc.gnu.org/gcc-4.8/cxx0x_status.html ! 14. http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2012/n3386.html 15. http://gcc.gnu.org/projects/cxx1y.html 16. https://gcc.gnu.org/onlinedocs/gcc-4.8.4/libstdc++/manual/manual/status.html#status.iso.2011 17. https://gcc.gnu.org/onlinedocs/gfortran/BACKTRACE.html --- 8632,8640 ---- 9. http://gcc.gnu.org/gcc-4.8/cxx0x_status.html 10. http://gcc.gnu.org/gcc-4.8/cxx0x_status.html 11. http://gcc.gnu.org/gcc-4.8/cxx0x_status.html ! 12. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf 13. http://gcc.gnu.org/gcc-4.8/cxx0x_status.html ! 14. https://www.open-std.org/JTC1/SC22/WG21/docs/papers/2012/n3386.html 15. http://gcc.gnu.org/projects/cxx1y.html 16. https://gcc.gnu.org/onlinedocs/gcc-4.8.4/libstdc++/manual/manual/status.html#status.iso.2011 17. https://gcc.gnu.org/onlinedocs/gfortran/BACKTRACE.html *************** References *** 8617,8623 **** 24. https://gcc.gnu.org/wiki/Fortran2003Status 25. https://gcc.gnu.org/wiki/TS29113Status 26. https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libgfortran/libgfortran.h ! 27. http://chasm-interop.sourceforge.net/ 28. https://gcc.gnu.org/wiki/avr-gcc#Fixed-Point_Support 29. https://gcc.gnu.org/onlinedocs/gcc/Fixed-Point.html 30. https://gcc.gnu.org/onlinedocs/gcc/x86-Built-in-Functions.html --- 8647,8653 ---- 24. https://gcc.gnu.org/wiki/Fortran2003Status 25. https://gcc.gnu.org/wiki/TS29113Status 26. https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=libgfortran/libgfortran.h ! 27. https://chasm-interop.sourceforge.net/ 28. https://gcc.gnu.org/wiki/avr-gcc#Fixed-Point_Support 29. https://gcc.gnu.org/onlinedocs/gcc/Fixed-Point.html 30. https://gcc.gnu.org/onlinedocs/gcc/x86-Built-in-Functions.html *************** References *** 8634,8643 **** 41. https://gcc.gnu.org/lists.html 42. https://www.fsf.org/ 43. https://gcc.gnu.org/about.html - 44. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.7/index.html - GCC 4.7 Release Series (This release series is no longer supported.) --- 8664,8671 ---- *************** References and Acknowledgements *** 8700,8706 **** provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2021-07-28[24]. References --- 8728,8734 ---- provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 8727,8736 **** 21. https://gcc.gnu.org/lists.html 22. https://www.fsf.org/ 23. https://gcc.gnu.org/about.html - 24. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.7/changes.html - GCC 4.7 Release Series Changes, New Features, and Fixes --- 8755,8762 ---- *************** long double pi = 180.0_degrees; *** 9061,9067 **** template using Ptr = T*; Ptr ip; // decltype(ip) is int* ! * Thanks to Ville Voutilainen and Pedro Lamarão, G++ now implements [12]C++11 delegating constructors. struct A { --- 9087,9093 ---- template using Ptr = T*; Ptr ip; // decltype(ip) is int* ! * Thanks to Ville Voutilainen and Pedro Lamarão, G++ now implements [12]C++11 delegating constructors. struct A { *************** New Targets and Target Specific Improvem *** 9255,9261 **** * GCC now supports the XMEGA architecture. This requires GNU binutils 2.22 or later. ! * Support for the [35]named address spaces __flash, __flash1, ..., __flash5 and __memx has been added. These address spaces locate read-only data in flash memory and allow reading from flash memory by means of ordinary C code, i.e. without the need of (inline) --- 9281,9287 ---- * GCC now supports the XMEGA architecture. This requires GNU binutils 2.22 or later. ! * Support for the [35]named address spaces __flash, __flash1, …, __flash5 and __memx has been added. These address spaces locate read-only data in flash memory and allow reading from flash memory by means of ordinary C code, i.e. without the need of (inline) *************** void set_portb (uint8_t value) *** 9299,9305 **** 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 --- 9325,9331 ---- 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) *** 9311,9317 **** + 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. --- 9337,9343 ---- + 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. *************** GCC 4.7.4 *** 9522,9528 **** provided this notice is preserved. These pages are [54]maintained by the GCC team. Last modified ! 2022-02-10[55]. References --- 9548,9554 ---- provided this notice is preserved. These pages are [54]maintained by the GCC team. Last modified ! 2023-03-29. References *************** References *** 9550,9556 **** 22. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfaggressive-function-elimination_007d-270 23. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Error-and-Warning-Options.html#index-g_t_0040code_007bWreal-q-constant_007d-149 24. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/SELECTED_005fREAL_005fKIND.html ! 25. https://docs.microsoft.com/en-us/windows/win32/wer/collecting-user-mode-dumps 26. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Debugging-Options.html#index-g_t_0040code_007bfno-backtrace_007d-183 27. https://gcc.gnu.org/wiki/Fortran2003Status 28. https://gcc.gnu.org/wiki/OOP --- 9576,9582 ---- 22. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfaggressive-function-elimination_007d-270 23. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Error-and-Warning-Options.html#index-g_t_0040code_007bWreal-q-constant_007d-149 24. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/SELECTED_005fREAL_005fKIND.html ! 25. https://learn.microsoft.com/en-us/windows/win32/wer/collecting-user-mode-dumps 26. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gfortran/Debugging-Options.html#index-g_t_0040code_007bfno-backtrace_007d-183 27. https://gcc.gnu.org/wiki/Fortran2003Status 28. https://gcc.gnu.org/wiki/OOP *************** References *** 9563,9574 **** 35. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Named-Address-Spaces.html 36. http://www.nongnu.org/avr-libc/ 37. https://gcc.gnu.org/PR54461 ! 38. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/AVR-Built%5f002din-Functions.html 39. https://sites.google.com/site/x32abi/ ! 40. https://www.dwarfstd.org/ShowIssue.php?issue=100909.1 ! 41. https://www.dwarfstd.org/ShowIssue.php?issue=100909.2 ! 42. https://www.dwarfstd.org/ShowIssue.php?issue=140425.1 ! 43. https://www.dwarfstd.org/ShowIssue.php?issue=110722.1 44. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.1 45. https://go.dev/doc/go1 46. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.2 --- 9589,9600 ---- 35. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/Named-Address-Spaces.html 36. http://www.nongnu.org/avr-libc/ 37. https://gcc.gnu.org/PR54461 ! 38. https://gcc.gnu.org/onlinedocs/gcc-4.7.1/gcc/AVR-Built_002din-Functions.html 39. https://sites.google.com/site/x32abi/ ! 40. https://dwarfstd.org/issues/100909.1.html ! 41. https://dwarfstd.org/issues/100909.2.html ! 42. https://dwarfstd.org/issues/140425.1.html ! 43. https://dwarfstd.org/issues/110722.1.html 44. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.1 45. https://go.dev/doc/go1 46. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.7.2 *************** References *** 9580,9589 **** 52. https://gcc.gnu.org/lists.html 53. https://www.fsf.org/ 54. https://gcc.gnu.org/about.html - 55. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.6/index.html - GCC 4.6 Release Series (This release series is no longer supported.) --- 9606,9613 ---- *************** References and Acknowledgements *** 9646,9652 **** provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2021-07-28[24]. References --- 9670,9676 ---- provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 9673,9682 **** 21. https://gcc.gnu.org/lists.html 22. https://www.fsf.org/ 23. https://gcc.gnu.org/about.html - 24. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.6/changes.html - GCC 4.6 Release Series Changes, New Features, and Fixes --- 9697,9704 ---- *************** New Languages and Language specific impr *** 10016,10022 **** * [12]Improved experimental support for the upcoming ISO C++ standard, C++0x, including using constexpr and nullptr. ! * Performance improvements to the [13]Debug Mode, thanks to François Dumont. * Atomic operations used for reference-counting are annotated so that they can be understood by race detectors such as Helgrind, see --- 10038,10044 ---- * [12]Improved experimental support for the upcoming ISO C++ standard, C++0x, including using constexpr and nullptr. ! * Performance improvements to the [13]Debug Mode, thanks to François Dumont. * Atomic operations used for reference-counting are annotated so that they can be understood by race detectors such as Helgrind, see *************** New Languages and Language specific impr *** 10071,10077 **** 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. --- 10093,10099 ---- 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 *** 10126,10132 **** 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. --- 10148,10154 ---- 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. *************** GCC 4.6.4 *** 10571,10577 **** provided this notice is preserved. These pages are [28]maintained by the GCC team. Last modified ! 2021-12-05[29]. References --- 10593,10599 ---- provided this notice is preserved. These pages are [28]maintained by the GCC team. Last modified ! 2023-01-18. References *************** References *** 10585,10591 **** 8. https://gcc.gnu.org/PR43145 9. https://gcc.gnu.org/PR43680 10. https://gcc.gnu.org/PR33558 ! 11. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#253 12. https://gcc.gnu.org/onlinedocs/gcc-4.6.4/libstdc++/manual/manual/status.html#status.iso.200x 13. https://gcc.gnu.org/onlinedocs/libstdc++/manual/debug_mode.html 14. https://gcc.gnu.org/onlinedocs/libstdc++/manual/debug.html#debug.races --- 10607,10613 ---- 8. https://gcc.gnu.org/PR43145 9. https://gcc.gnu.org/PR43680 10. https://gcc.gnu.org/PR33558 ! 11. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#253 12. https://gcc.gnu.org/onlinedocs/gcc-4.6.4/libstdc++/manual/manual/status.html#status.iso.200x 13. https://gcc.gnu.org/onlinedocs/libstdc++/manual/debug_mode.html 14. https://gcc.gnu.org/onlinedocs/libstdc++/manual/debug.html#debug.races *************** References *** 10603,10612 **** 26. https://gcc.gnu.org/lists.html 27. https://www.fsf.org/ 28. https://gcc.gnu.org/about.html - 29. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.5/index.html - GCC 4.5 Release Series (This release series is no longer supported.) --- 10625,10632 ---- *************** References and Acknowledgements *** 10669,10675 **** provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2021-07-28[19]. References --- 10689,10695 ---- provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 10691,10700 **** 16. https://gcc.gnu.org/lists.html 17. https://www.fsf.org/ 18. https://gcc.gnu.org/about.html - 19. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.5/changes.html - GCC 4.5 Release Series Changes, New Features, and Fixes --- 10711,10718 ---- *************** New Languages and Language specific impr *** 10931,10937 **** defined ([12]DR 757). * Labels may now have attributes, as has been permitted for a while in C. This is only permitted when the label definition and the ! attribute specifier is followed by a semicolon--i.e., the label applies to an empty statement. The only useful attribute for a label is unused. * G++ now implements [13]DR 176. Previously G++ did not support using --- 10949,10955 ---- defined ([12]DR 757). * Labels may now have attributes, as has been permitted for a while in C. This is only permitted when the label definition and the ! attribute specifier is followed by a semicolon—i.e., the label applies to an empty statement. The only useful attribute for a label is unused. * G++ now implements [13]DR 176. Previously G++ did not support using *************** vector-size: improvement = 3: call stack *** 11013,11019 **** 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 --- 11031,11037 ---- 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 *************** GCC 4.5.4 *** 11342,11348 **** provided this notice is preserved. These pages are [32]maintained by the GCC team. Last modified ! 2022-02-02[33]. References --- 11360,11366 ---- provided this notice is preserved. These pages are [32]maintained by the GCC team. Last modified ! 2023-01-15. References *************** References *** 11357,11364 **** 9. https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-fwhole-program-800 10. https://gcc.gnu.org/onlinedocs/gcc/Restricted-Pointers.html 11. http://gcc.gnu.org/gcc-4.5/cxx0x_status.html ! 12. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#757 ! 13. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#176 14. https://gcc.gnu.org/onlinedocs/libstdc++/manual/profile_mode.html 15. https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.tr24733 16. https://sourceware.org/gdb/wiki/STLSupport --- 11375,11382 ---- 9. https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-fwhole-program-800 10. https://gcc.gnu.org/onlinedocs/gcc/Restricted-Pointers.html 11. http://gcc.gnu.org/gcc-4.5/cxx0x_status.html ! 12. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#757 ! 13. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#176 14. https://gcc.gnu.org/onlinedocs/libstdc++/manual/profile_mode.html 15. https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.tr24733 16. https://sourceware.org/gdb/wiki/STLSupport *************** References *** 11378,11387 **** 30. https://gcc.gnu.org/lists.html 31. https://www.fsf.org/ 32. https://gcc.gnu.org/about.html - 33. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.4/index.html - GCC 4.4 Release Series This release series is no longer maintained. --- 11396,11403 ---- *************** References and Acknowledgements *** 11453,11459 **** provided this notice is preserved. These pages are [21]maintained by the GCC team. Last modified ! 2021-07-28[22]. References --- 11469,11475 ---- provided this notice is preserved. These pages are [21]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 11478,11487 **** 19. https://gcc.gnu.org/lists.html 20. https://www.fsf.org/ 21. https://gcc.gnu.org/about.html - 22. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.4/changes.html - GCC 4.4 Release Series Changes, New Features, and Fixes --- 11494,11501 ---- *************** GCC 4.4.7 *** 12084,12090 **** provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2021-07-28[24]. References --- 12098,12104 ---- provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2022-11-01. References *************** References *** 12092,12098 **** 2. http://gcc.gnu.org/gcc-4.3/changes.html#obsoleted 3. http://gcc.gnu.org/gcc-4.4/porting_to.html 4. https://gcc.gnu.org/wiki/Graphite ! 5. http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1040.pdf 6. http://gcc.gnu.org/gcc-4.4/cxx0x_status.html 7. https://gcc.gnu.org/onlinedocs/gfortran/Preprocessing-Options.html 8. https://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html#index-g_t_0040code_007bWarray-temporaries_007d-125 --- 12106,12112 ---- 2. http://gcc.gnu.org/gcc-4.3/changes.html#obsoleted 3. http://gcc.gnu.org/gcc-4.4/porting_to.html 4. https://gcc.gnu.org/wiki/Graphite ! 5. https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1040.pdf 6. http://gcc.gnu.org/gcc-4.4/cxx0x_status.html 7. https://gcc.gnu.org/onlinedocs/gfortran/Preprocessing-Options.html 8. https://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html#index-g_t_0040code_007bWarray-temporaries_007d-125 *************** References *** 12111,12120 **** 21. https://gcc.gnu.org/lists.html 22. https://www.fsf.org/ 23. https://gcc.gnu.org/about.html - 24. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.3/index.html - GCC 4.3 Release Series (This release series is no longer supported.) --- 12125,12132 ---- *************** References and Acknowledgements *** 12183,12189 **** provided this notice is preserved. These pages are [20]maintained by the GCC team. Last modified ! 2021-07-28[21]. References --- 12195,12201 ---- provided this notice is preserved. These pages are [20]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 12207,12216 **** 18. https://gcc.gnu.org/lists.html 19. https://www.fsf.org/ 20. https://gcc.gnu.org/about.html - 21. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.3/changes.html - GCC 4.3 Release Series Changes, New Features, and Fixes --- 12219,12226 ---- *************** GCC 4.3.6 *** 12989,12995 **** provided this notice is preserved. These pages are [30]maintained by the GCC team. Last modified ! 2021-07-28[31]. References --- 12999,13005 ---- provided this notice is preserved. These pages are [30]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 13023,13032 **** 28. https://gcc.gnu.org/lists.html 29. https://www.fsf.org/ 30. https://gcc.gnu.org/about.html - 31. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.2/index.html - GCC 4.2 Release Series (This release series is no longer supported.) --- 13033,13040 ---- *************** References and Acknowledgements *** 13089,13095 **** provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2021-07-28[19]. References --- 13097,13103 ---- provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 13111,13120 **** 16. https://gcc.gnu.org/lists.html 17. https://www.fsf.org/ 18. https://gcc.gnu.org/about.html - 19. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.2/changes.html - GCC 4.2 Release Series Changes, New Features, and Fixes --- 13119,13126 ---- *************** Other significant improvements *** 13418,13424 **** provided this notice is preserved. These pages are [11]maintained by the GCC team. Last modified ! 2021-07-28[12]. References --- 13424,13430 ---- provided this notice is preserved. These pages are [11]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 13433,13442 **** 9. https://gcc.gnu.org/lists.html 10. https://www.fsf.org/ 11. https://gcc.gnu.org/about.html - 12. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.1/index.html - GCC 4.1 Release Series (This release series is no longer supported.) --- 13439,13446 ---- *************** References and Acknowledgements *** 13493,13499 **** provided this notice is preserved. These pages are [16]maintained by the GCC team. Last modified ! 2021-07-28[17]. References --- 13497,13503 ---- provided this notice is preserved. These pages are [16]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 13513,13522 **** 14. https://gcc.gnu.org/lists.html 15. https://www.fsf.org/ 16. https://gcc.gnu.org/about.html - 17. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.1/changes.html - GCC 4.1 Release Series Changes, New Features, and Fixes --- 13517,13524 ---- *************** GCC 4.1.2 *** 14053,14059 **** provided this notice is preserved. These pages are [11]maintained by the GCC team. Last modified ! 2021-10-18[12]. References --- 14055,14061 ---- provided this notice is preserved. These pages are [11]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 14068,14077 **** 9. https://gcc.gnu.org/lists.html 10. https://www.fsf.org/ 11. https://gcc.gnu.org/about.html - 12. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.0/index.html - GCC 4.0 Release Series (This release series is no longer supported.) --- 14070,14077 ---- *************** References and Acknowledgements *** 14134,14140 **** provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2021-07-28[19]. References --- 14134,14140 ---- provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 14156,14165 **** 16. https://gcc.gnu.org/lists.html 17. https://www.fsf.org/ 18. https://gcc.gnu.org/about.html - 19. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-4.0/changes.html - GCC 4.0 Release Series Changes, New Features, and Fixes --- 14156,14163 ---- *************** GCC 4.0.4 *** 14661,14667 **** provided this notice is preserved. These pages are [21]maintained by the GCC team. Last modified ! 2021-07-28[22]. References --- 14659,14665 ---- provided this notice is preserved. These pages are [21]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 14686,14695 **** 19. https://gcc.gnu.org/lists.html 20. https://www.fsf.org/ 21. https://gcc.gnu.org/about.html - 22. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.4/index.html - GCC 3.4 Release Series (This release series is no longer supported.) --- 14684,14691 ---- *************** References and Acknowledgements *** 14763,14769 **** provided this notice is preserved. These pages are [22]maintained by the GCC team. Last modified ! 2021-07-28[23]. References --- 14759,14765 ---- provided this notice is preserved. These pages are [22]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 14789,14798 **** 20. https://gcc.gnu.org/lists.html 21. https://www.fsf.org/ 22. https://gcc.gnu.org/about.html - 23. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.4/changes.html - GCC 3.4 Release Series Changes, New Features, and Fixes --- 14785,14792 ---- *************** GCC 3.4.6 *** 16552,16558 **** provided this notice is preserved. These pages are [416]maintained by the GCC team. Last modified ! 2021-07-28[417]. References --- 16546,16552 ---- provided this notice is preserved. These pages are [416]maintained by the GCC team. Last modified ! 2023-01-27. References *************** References *** 16565,16578 **** 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. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#209 12. http://gcc.gnu.org/bugs/#cxx_rvalbind 13. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html 14. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html 15. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html 16. http://www.gnu.org/software/classpath/ ! 17. http://www.eclipse.org/ 18. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/g77/News.html 19. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Alpha-Built-in-Functions.html 20. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html --- 16559,16572 ---- 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://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#209 12. http://gcc.gnu.org/bugs/#cxx_rvalbind 13. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html 14. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html 15. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html 16. http://www.gnu.org/software/classpath/ ! 17. https://www.eclipse.org/ 18. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/g77/News.html 19. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Alpha-Built-in-Functions.html 20. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html *************** References *** 16581,16587 **** 23. http://gcc.gnu.org/gcc-3.4/mips-abi.html 24. http://gcc.gnu.org/gcc-3.4/powerpc-abi.html 25. http://gcc.gnu.org/gcc-3.4/sparc-abi.html ! 26. 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 27. https://gcc.gnu.org/PR10129 28. https://gcc.gnu.org/PR14576 29. https://gcc.gnu.org/PR14760 --- 16575,16581 ---- 23. http://gcc.gnu.org/gcc-3.4/mips-abi.html 24. http://gcc.gnu.org/gcc-3.4/powerpc-abi.html 25. http://gcc.gnu.org/gcc-3.4/sparc-abi.html ! 26. https://gcc.gnu.org/bugzilla/buglist.cgi?short_desc_type=notregexp&short_desc=\[3\.4.*[Rr]egression&target_milestone=3.4.0&bug_status=RESOLVED&resolution=FIXED 27. https://gcc.gnu.org/PR10129 28. https://gcc.gnu.org/PR14576 29. https://gcc.gnu.org/PR14760 *************** References *** 16972,16981 **** 414. https://gcc.gnu.org/lists.html 415. https://www.fsf.org/ 416. https://gcc.gnu.org/about.html - 417. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.3/index.html - GCC 3.3 Release Series (This release series is no longer supported.) --- 16966,16973 ---- *************** References and Acknowledgements *** 17049,17055 **** provided this notice is preserved. These pages are [21]maintained by the GCC team. Last modified ! 2021-07-28[22]. References --- 17041,17047 ---- provided this notice is preserved. These pages are [21]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 17074,17083 **** 19. https://gcc.gnu.org/lists.html 20. https://www.fsf.org/ 21. https://gcc.gnu.org/about.html - 22. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.3/changes.html - GCC 3.3 Release Series Changes, New Features, and Fixes --- 17066,17073 ---- *************** GCC 3.3.6 *** 18425,18431 **** provided this notice is preserved. These pages are [556]maintained by the GCC team. Last modified ! 2021-07-28[557]. References --- 18415,18421 ---- provided this notice is preserved. These pages are [556]maintained by the GCC team. Last modified ! 2023-01-19. References *************** References *** 18542,18548 **** 111. https://gcc.gnu.org/PR9439 112. https://gcc.gnu.org/PR9474 113. https://gcc.gnu.org/PR9548 ! 114. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#231 115. https://gcc.gnu.org/PR9555 116. https://gcc.gnu.org/PR9561 117. https://gcc.gnu.org/PR9563 --- 18532,18538 ---- 111. https://gcc.gnu.org/PR9439 112. https://gcc.gnu.org/PR9474 113. https://gcc.gnu.org/PR9548 ! 114. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#231 115. https://gcc.gnu.org/PR9555 116. https://gcc.gnu.org/PR9561 117. https://gcc.gnu.org/PR9563 *************** References *** 18886,18892 **** 455. https://gcc.gnu.org/PR9546 456. https://gcc.gnu.org/PR10081 457. https://gcc.gnu.org/PR10093 ! 458. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#61 459. https://gcc.gnu.org/PR10095 460. https://gcc.gnu.org/PR11554 461. https://gcc.gnu.org/PR12297 --- 18876,18882 ---- 455. https://gcc.gnu.org/PR9546 456. https://gcc.gnu.org/PR10081 457. https://gcc.gnu.org/PR10093 ! 458. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#61 459. https://gcc.gnu.org/PR10095 460. https://gcc.gnu.org/PR11554 461. https://gcc.gnu.org/PR12297 *************** References *** 18894,18911 **** 463. https://gcc.gnu.org/PR12438 464. https://gcc.gnu.org/PR12540 465. https://gcc.gnu.org/PR12594 ! 466. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#60 ! 467. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#63 468. https://gcc.gnu.org/PR12657 ! 469. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#292 470. https://gcc.gnu.org/PR12696 471. https://gcc.gnu.org/PR12815 472. https://gcc.gnu.org/PR12862 473. https://gcc.gnu.org/PR12926 474. https://gcc.gnu.org/PR12967 ! 475. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html 476. https://gcc.gnu.org/PR12971 ! 477. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#328 478. https://gcc.gnu.org/PR13007 479. https://gcc.gnu.org/PR13009 480. https://gcc.gnu.org/PR13057 --- 18884,18901 ---- 463. https://gcc.gnu.org/PR12438 464. https://gcc.gnu.org/PR12540 465. https://gcc.gnu.org/PR12594 ! 466. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#60 ! 467. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#63 468. https://gcc.gnu.org/PR12657 ! 469. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#292 470. https://gcc.gnu.org/PR12696 471. https://gcc.gnu.org/PR12815 472. https://gcc.gnu.org/PR12862 473. https://gcc.gnu.org/PR12926 474. https://gcc.gnu.org/PR12967 ! 475. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html 476. https://gcc.gnu.org/PR12971 ! 477. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#328 478. https://gcc.gnu.org/PR13007 479. https://gcc.gnu.org/PR13009 480. https://gcc.gnu.org/PR13057 *************** References *** 18985,18994 **** 554. https://gcc.gnu.org/lists.html 555. https://www.fsf.org/ 556. https://gcc.gnu.org/about.html - 557. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.2/index.html - GCC 3.2 Release Series (This release series is no longer supported.) --- 18975,18982 ---- *************** References and Acknowledgements *** 19056,19062 **** provided this notice is preserved. These pages are [17]maintained by the GCC team. Last modified ! 2021-07-28[18]. References --- 19044,19050 ---- provided this notice is preserved. These pages are [17]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 19077,19086 **** 15. https://gcc.gnu.org/lists.html 16. https://www.fsf.org/ 17. https://gcc.gnu.org/about.html - 18. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.2/changes.html - GCC 3.2 Release Series Changes, New Features, and Fixes --- 19065,19072 ---- *************** GCC 3.2 *** 19680,19686 **** provided this notice is preserved. These pages are [251]maintained by the GCC team. Last modified ! 2021-07-28[252]. References --- 19666,19672 ---- provided this notice is preserved. These pages are [251]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 19935,19944 **** 249. https://gcc.gnu.org/lists.html 250. https://www.fsf.org/ 251. https://gcc.gnu.org/about.html - 252. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.1/index.html - GCC 3.1 (This release series is no longer supported.) --- 19921,19928 ---- *************** http://gcc.gnu.org/gcc-3.1/index.html *** 19986,19992 **** provided this notice is preserved. These pages are [14]maintained by the GCC team. Last modified ! 2021-07-28[15]. References --- 19970,19976 ---- provided this notice is preserved. These pages are [14]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 20004,20013 **** 12. https://gcc.gnu.org/lists.html 13. https://www.fsf.org/ 14. https://gcc.gnu.org/about.html - 15. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.1/changes.html - GCC 3.1 Release Series Changes, New Features, and Fixes --- 19988,19995 ---- *************** New Targets and Target Specific Improvem *** 20225,20231 **** + 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, --- 20207,20213 ---- + 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, *************** Documentation improvements *** 20341,20347 **** provided this notice is preserved. These pages are [13]maintained by the GCC team. Last modified ! 2021-07-28[14]. References --- 20323,20329 ---- provided this notice is preserved. These pages are [13]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 20358,20367 **** 11. https://gcc.gnu.org/lists.html 12. https://www.fsf.org/ 13. https://gcc.gnu.org/about.html - 14. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.0/index.html - GCC 3.0.4 (This release series is no longer supported.) --- 20340,20347 ---- *************** Previous 3.0.x Releases *** 20416,20422 **** provided this notice is preserved. These pages are [14]maintained by the GCC team. Last modified ! 2021-07-28[15]. References --- 20396,20402 ---- provided this notice is preserved. These pages are [14]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 20434,20443 **** 12. https://gcc.gnu.org/lists.html 13. https://www.fsf.org/ 14. https://gcc.gnu.org/about.html - 15. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.0/features.html - GCC 3.0 New Features Additional changes in GCC 3.0.4 --- 20414,20421 ---- *************** Other significant improvements *** 20608,20614 **** provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2021-07-28[19]. References --- 20586,20592 ---- provided this notice is preserved. These pages are [18]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 20630,20639 **** 16. https://gcc.gnu.org/lists.html 17. https://www.fsf.org/ 18. https://gcc.gnu.org/about.html - 19. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-3.0/caveats.html - GCC 3.0 Caveats * -fstrict-aliasing is now part of -O2 and higher optimization --- 20608,20615 ---- *************** http://gcc.gnu.org/gcc-3.0/caveats.html *** 20680,20686 **** provided this notice is preserved. These pages are [7]maintained by the GCC team. Last modified ! 2021-07-28[8]. References --- 20656,20662 ---- provided this notice is preserved. These pages are [7]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 20691,20700 **** 5. https://gcc.gnu.org/lists.html 6. https://www.fsf.org/ 7. https://gcc.gnu.org/about.html - 8. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-2.95/index.html - GCC 2.95 (This release series is no longer supported.) --- 20667,20674 ---- *************** References and Acknowledgements *** 20763,20769 **** provided this notice is preserved. These pages are [15]maintained by the GCC team. Last modified ! 2021-07-28[16]. References --- 20737,20743 ---- provided this notice is preserved. These pages are [15]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 20782,20791 **** 13. https://gcc.gnu.org/lists.html 14. https://www.fsf.org/ 15. https://gcc.gnu.org/about.html - 16. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/gcc-2.95/features.html - GCC 2.95 New Features * General Optimizer Improvements: --- 20756,20763 ---- *************** Additional Changes in GCC 2.95.3 *** 21029,21035 **** provided this notice is preserved. These pages are [22]maintained by the GCC team. Last modified ! 2021-07-28[23]. References --- 21001,21007 ---- provided this notice is preserved. These pages are [22]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 21055,21064 **** 20. https://gcc.gnu.org/lists.html 21. https://www.fsf.org/ 22. https://gcc.gnu.org/about.html - 23. http://validator.w3.org/check/referer ====================================================================== 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 --- 21027,21034 ---- *************** http://gcc.gnu.org/gcc-2.95/caveats.html *** 21113,21119 **** provided this notice is preserved. These pages are [7]maintained by the GCC team. Last modified ! 2021-07-28[8]. References --- 21083,21089 ---- provided this notice is preserved. These pages are [7]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 21124,21133 **** 5. https://gcc.gnu.org/lists.html 6. https://www.fsf.org/ 7. https://gcc.gnu.org/about.html - 8. http://validator.w3.org/check/referer ====================================================================== 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. --- 21094,21101 ---- *************** http://gcc.gnu.org/egcs-1.1/index.html *** 21335,21341 **** provided this notice is preserved. These pages are [15]maintained by the GCC team. Last modified ! 2021-07-28[16]. References --- 21303,21309 ---- provided this notice is preserved. These pages are [15]maintained by the GCC team. Last modified ! 2023-01-21. References *************** References *** 21354,21363 **** 13. https://gcc.gnu.org/lists.html 14. https://www.fsf.org/ 15. https://gcc.gnu.org/about.html - 16. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/egcs-1.1/features.html - EGCS 1.1 new features * Integrated GNU Fortran (g77) compiler and runtime library with --- 21322,21329 ---- *************** http://gcc.gnu.org/egcs-1.1/features.htm *** 21435,21441 **** provided this notice is preserved. These pages are [10]maintained by the GCC team. Last modified ! 2021-07-28[11]. References --- 21401,21407 ---- provided this notice is preserved. These pages are [10]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 21449,21458 **** 8. https://gcc.gnu.org/lists.html 9. https://www.fsf.org/ 10. https://gcc.gnu.org/about.html - 11. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/egcs-1.1/caveats.html - EGCS 1.1 Caveats * EGCS has an integrated libstdc++, but does not have an integrated --- 21415,21422 ---- *************** http://gcc.gnu.org/egcs-1.1/caveats.html *** 21490,21496 **** provided this notice is preserved. These pages are [6]maintained by the GCC team. Last modified ! 2021-07-28[7]. References --- 21454,21460 ---- provided this notice is preserved. These pages are [6]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 21500,21509 **** 4. https://gcc.gnu.org/lists.html 5. https://www.fsf.org/ 6. https://gcc.gnu.org/about.html - 7. http://validator.w3.org/check/referer ====================================================================== 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. --- 21464,21471 ---- *************** http://gcc.gnu.org/egcs-1.0/index.html *** 21687,21693 **** provided this notice is preserved. These pages are [10]maintained by the GCC team. Last modified ! 2021-07-28[11]. References --- 21649,21655 ---- provided this notice is preserved. These pages are [10]maintained by the GCC team. Last modified ! 2023-01-21. References *************** References *** 21701,21710 **** 8. https://gcc.gnu.org/lists.html 9. https://www.fsf.org/ 10. https://gcc.gnu.org/about.html - 11. http://validator.w3.org/check/referer ====================================================================== 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, --- 21663,21670 ---- *************** http://gcc.gnu.org/egcs-1.0/features.htm *** 21754,21760 **** provided this notice is preserved. These pages are [8]maintained by the GCC team. Last modified ! 2021-07-28[9]. References --- 21714,21720 ---- provided this notice is preserved. These pages are [8]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 21766,21775 **** 6. https://gcc.gnu.org/lists.html 7. https://www.fsf.org/ 8. https://gcc.gnu.org/about.html - 9. http://validator.w3.org/check/referer ====================================================================== http://gcc.gnu.org/egcs-1.0/caveats.html - EGCS 1.0 Caveats * EGCS has an integrated libstdc++, but does not have an integrated --- 21726,21733 ---- *************** http://gcc.gnu.org/egcs-1.0/caveats.html *** 21808,21814 **** provided this notice is preserved. These pages are [6]maintained by the GCC team. Last modified ! 2021-07-28[7]. References --- 21766,21772 ---- provided this notice is preserved. These pages are [6]maintained by the GCC team. Last modified ! 2022-10-26. References *************** References *** 21818,21822 **** 4. https://gcc.gnu.org/lists.html 5. https://www.fsf.org/ 6. https://gcc.gnu.org/about.html - 7. http://validator.w3.org/check/referer ====================================================================== --- 21776,21779 ---- diff -Nrcpad gcc-11.3.0/c++tools/ChangeLog gcc-11.4.0/c++tools/ChangeLog *** gcc-11.3.0/c++tools/ChangeLog Thu Apr 21 07:59:16 2022 --- gcc-11.4.0/c++tools/ChangeLog Mon May 29 08:46:50 2023 *************** *** 1,3 **** --- 1,24 ---- + 2023-05-29 Release Manager + + * GCC 11.4.0 released. + + 2023-05-18 Iain Sandoe + + Backported from master: + 2021-07-21 Iain Sandoe + Jakub Jelinek + + PR c++/98821 + * config.h.in: Regenerate. + * configure: Regenerate. + * configure.ac: Configure using C++. Pull logic to + detect enabled checking modes; default to release + checking. + * server.cc (AI_NUMERICSERV): Define a fallback value. + (gcc_assert): New. + (gcc_unreachable): New. + (fancy_abort): Only build when checking is enabled. + 2022-04-21 Release Manager * GCC 11.3.0 released. diff -Nrcpad gcc-11.3.0/c++tools/config.h.in gcc-11.4.0/c++tools/config.h.in *** gcc-11.3.0/c++tools/config.h.in Thu Apr 21 07:59:35 2022 --- gcc-11.4.0/c++tools/config.h.in Mon May 29 08:49:47 2023 *************** *** 1,5 **** --- 1,8 ---- /* config.h.in. Generated from configure.ac by autoheader. */ + /* Define if you want assertions enabled. This is a cheap check. */ + #undef ENABLE_ASSERT_CHECKING + /* Define if accept4 provided. */ #undef HAVE_ACCEPT4 diff -Nrcpad gcc-11.3.0/c++tools/configure gcc-11.4.0/c++tools/configure *** gcc-11.3.0/c++tools/configure Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/c++tools/configure Mon May 29 08:46:28 2023 *************** NETLIBS *** 626,635 **** get_gcc_base_ver EGREP GREP ! CPP ! ac_ct_CC ! CFLAGS ! CC PIEFLAG MAINTAINER CXX_AUX_TOOLS --- 626,632 ---- get_gcc_base_ver EGREP GREP ! CXXCPP PIEFLAG MAINTAINER CXX_AUX_TOOLS *************** ac_user_opts=' *** 701,706 **** --- 698,704 ---- enable_option_checking enable_c___tools enable_maintainer_mode + enable_checking enable_default_pie with_gcc_major_version_only ' *************** LDFLAGS *** 713,721 **** LIBS CPPFLAGS CCC ! CC ! CFLAGS ! CPP' # Initialize some variables set by options. --- 711,717 ---- LIBS CPPFLAGS CCC ! CXXCPP' # Initialize some variables set by options. *************** Optional Features: *** 1332,1337 **** --- 1328,1337 ---- --enable-maintainer-mode enable maintainer mode. Add rules to rebuild configurey bits + --enable-checking[=LIST] + 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 Optional Packages: *************** Some influential environment variables: *** 1348,1356 **** LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory ! CC C compiler command ! CFLAGS C compiler flags ! CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. --- 1348,1354 ---- LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory ! CXXCPP C++ preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. *************** fi *** 1470,1517 **** } # ac_fn_cxx_try_compile ! # ac_fn_c_try_compile LINENO ! # -------------------------- ! # Try to compile conftest.$ac_ext, and return whether this succeeded. ! ac_fn_c_try_compile () ! { ! as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack ! rm -f conftest.$ac_objext ! if { { ac_try="$ac_compile" ! 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_compile") 2>conftest.err ! ac_status=$? ! if test -s conftest.err; then ! grep -v '^ *+' conftest.err >conftest.er1 ! cat conftest.er1 >&5 ! mv -f conftest.er1 conftest.err ! fi ! $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ! test $ac_status = 0; } && { ! test -z "$ac_c_werror_flag" || ! test ! -s conftest.err ! } && test -s conftest.$ac_objext; 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_compile ! ! # ac_fn_c_try_cpp LINENO ! # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ! ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" --- 1468,1477 ---- } # ac_fn_cxx_try_compile ! # ac_fn_cxx_try_cpp LINENO ! # ------------------------ # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ! ac_fn_cxx_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" *************** $as_echo "$ac_try_echo"; } >&5 *** 1530,1536 **** 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 --- 1490,1496 ---- fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { ! test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 *************** fi *** 1543,1556 **** eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval ! } # ac_fn_c_try_cpp ! # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES ! # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ! ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : --- 1503,1516 ---- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval ! } # ac_fn_cxx_try_cpp ! # ac_fn_cxx_check_header_mongrel LINENO HEADER VAR INCLUDES ! # --------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ! ac_fn_cxx_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : *************** cat confdefs.h - <<_ACEOF >conftest.$ac_ *** 1571,1577 **** $4 #include <$2> _ACEOF ! if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no --- 1531,1537 ---- $4 #include <$2> _ACEOF ! if ac_fn_cxx_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no *************** cat confdefs.h - <<_ACEOF >conftest.$ac_ *** 1587,1593 **** /* end confdefs.h. */ #include <$2> _ACEOF ! if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no --- 1547,1553 ---- /* end confdefs.h. */ #include <$2> _ACEOF ! if ac_fn_cxx_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no *************** rm -f conftest.err conftest.i conftest.$ *** 1597,1603 **** $as_echo "$ac_header_preproc" >&6; } # So? What about this header? ! case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} --- 1557,1563 ---- $as_echo "$ac_header_preproc" >&6; } # So? What about this header? ! case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} *************** $as_echo "$ac_res" >&6; } *** 1630,1642 **** fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno ! } # ac_fn_c_check_header_mongrel ! # ac_fn_c_try_run LINENO ! # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ! ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" --- 1590,1602 ---- fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno ! } # ac_fn_cxx_check_header_mongrel ! # ac_fn_cxx_try_run LINENO ! # ------------------------ # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ! ac_fn_cxx_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" *************** fi *** 1672,1684 **** eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval ! } # ac_fn_c_try_run ! # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES ! # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ! ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 --- 1632,1644 ---- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval ! } # ac_fn_cxx_try_run ! # ac_fn_cxx_check_header_compile LINENO HEADER VAR INCLUDES ! # --------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ! ac_fn_cxx_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 *************** else *** 1691,1697 **** $4 #include <$2> _ACEOF ! if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" --- 1651,1657 ---- $4 #include <$2> _ACEOF ! if ac_fn_cxx_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" *************** eval ac_res=\$$3 *** 1703,1714 **** $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno ! } # ac_fn_c_check_header_compile ! # ac_fn_c_try_link LINENO ! # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ! ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext --- 1663,1674 ---- $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno ! } # ac_fn_cxx_check_header_compile ! # ac_fn_cxx_try_link LINENO ! # ------------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ! ac_fn_cxx_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext *************** $as_echo "$ac_try_echo"; } >&5 *** 1728,1734 **** fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ! test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || --- 1688,1694 ---- fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ! test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || *************** fi *** 1749,1755 **** eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval ! } # ac_fn_c_try_link cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. --- 1709,1715 ---- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval ! } # ac_fn_cxx_try_link cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. *************** done *** 2955,2960 **** --- 2915,2927 ---- test -n "$AUTOHEADER" || AUTOHEADER="$MISSING autoheader" + ac_ext=cpp + ac_cpp='$CXXCPP $CPPFLAGS' + ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' + ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' + ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build C++ tools" >&5 $as_echo_n "checking whether to build C++ tools... " >&6; } # Check whether --enable-c++-tools was given. *************** $as_echo "$maintainer_mode" >&6; } *** 2989,3544 **** test "$maintainer_mode" = yes && MAINTAINER=yes ! # 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; PIEFLAG=-fPIE ! else ! PIEFLAG= ! fi ! ! ! ! # Check if O_CLOEXEC is defined by fcntl ! ac_ext=c ! ac_cpp='$CPP $CPPFLAGS' ! ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ! ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ! ac_compiler_gnu=$ac_cv_c_compiler_gnu ! if test -n "$ac_tool_prefix"; then ! # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. ! set dummy ${ac_tool_prefix}gcc; 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_CC+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! if test -n "$CC"; then ! ac_cv_prog_CC="$CC" # 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_CC="${ac_tool_prefix}gcc" ! $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 ! CC=$ac_cv_prog_CC ! if test -n "$CC"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 ! $as_echo "$CC" >&6; } ! else ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ! $as_echo "no" >&6; } ! fi ! ! ! fi ! if test -z "$ac_cv_prog_CC"; then ! ac_ct_CC=$CC ! # Extract the first word of "gcc", so it can be a program name with args. ! set dummy gcc; 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_CC+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! if test -n "$ac_ct_CC"; then ! ac_cv_prog_ac_ct_CC="$ac_ct_CC" # 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_CC="gcc" ! $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_CC=$ac_cv_prog_ac_ct_CC ! if test -n "$ac_ct_CC"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 ! $as_echo "$ac_ct_CC" >&6; } ! else ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ! $as_echo "no" >&6; } ! fi ! ! if test "x$ac_ct_CC" = x; then ! CC="" ! 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 ! CC=$ac_ct_CC ! fi ! else ! CC="$ac_cv_prog_CC" ! fi ! ! if test -z "$CC"; then ! if test -n "$ac_tool_prefix"; then ! # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. ! set dummy ${ac_tool_prefix}cc; 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_CC+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! if test -n "$CC"; then ! ac_cv_prog_CC="$CC" # 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_CC="${ac_tool_prefix}cc" ! $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 ! CC=$ac_cv_prog_CC ! if test -n "$CC"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 ! $as_echo "$CC" >&6; } ! else ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ! $as_echo "no" >&6; } ! fi ! ! ! fi ! fi ! if test -z "$CC"; then ! # Extract the first word of "cc", so it can be a program name with args. ! set dummy cc; 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_CC+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! if test -n "$CC"; then ! ac_cv_prog_CC="$CC" # Let the user override the test. ! else ! ac_prog_rejected=no ! 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 ! if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ! ac_prog_rejected=yes ! continue ! fi ! ac_cv_prog_CC="cc" ! $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 ! if test $ac_prog_rejected = yes; then ! # We found a bogon in the path, so make sure we never use it. ! set dummy $ac_cv_prog_CC ! shift ! if test $# != 0; then ! # We chose a different compiler from the bogus one. ! # However, it has the same basename, so the bogon will be chosen ! # first if we set CC to just the basename; use the full file name. ! shift ! ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" ! fi ! fi ! fi ! fi ! CC=$ac_cv_prog_CC ! if test -n "$CC"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 ! $as_echo "$CC" >&6; } else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 - $as_echo "no" >&6; } - fi - ! fi ! if test -z "$CC"; then ! if test -n "$ac_tool_prefix"; then ! for ac_prog in cl.exe ! do ! # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. ! set dummy $ac_tool_prefix$ac_prog; 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_CC+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! if test -n "$CC"; then ! ac_cv_prog_CC="$CC" # 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_CC="$ac_tool_prefix$ac_prog" ! $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 - CC=$ac_cv_prog_CC - if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 - $as_echo "$CC" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 - $as_echo "no" >&6; } - fi ! ! test -n "$CC" && break ! done ! fi ! if test -z "$CC"; then ! ac_ct_CC=$CC ! for ac_prog in cl.exe ! do ! # Extract the first word of "$ac_prog", so it can be a program name with args. ! set dummy $ac_prog; 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_CC+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! if test -n "$ac_ct_CC"; then ! ac_cv_prog_ac_ct_CC="$ac_ct_CC" # 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_CC="$ac_prog" ! $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_CC=$ac_cv_prog_ac_ct_CC ! if test -n "$ac_ct_CC"; then ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 ! $as_echo "$ac_ct_CC" >&6; } ! else ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ! $as_echo "no" >&6; } ! fi ! ! ! test -n "$ac_ct_CC" && break ! done ! ! if test "x$ac_ct_CC" = x; then ! CC="" ! 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 ! CC=$ac_ct_CC ! fi ! fi ! ! fi ! ! ! test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ! $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ! as_fn_error $? "no acceptable C compiler found in \$PATH ! See \`config.log' for more details" "$LINENO" 5; } ! ! # Provide some information about the compiler. ! $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 ! set X $ac_compile ! ac_compiler=$2 ! for ac_option in --version -v -V -qversion; do ! { { ac_try="$ac_compiler $ac_option >&5" ! 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_compiler $ac_option >&5") 2>conftest.err ! ac_status=$? ! if test -s conftest.err; then ! sed '10a\ ! ... rest of stderr output deleted ... ! 10q' conftest.err >conftest.er1 ! cat conftest.er1 >&5 ! fi ! rm -f conftest.er1 conftest.err ! $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 ! test $ac_status = 0; } done ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 ! $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } ! if ${ac_cv_c_compiler_gnu+:} false; then : ! $as_echo_n "(cached) " >&6 ! else ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! int ! main () ! { ! #ifndef __GNUC__ ! choke me ! #endif ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_compile "$LINENO"; then : ! ac_compiler_gnu=yes ! else ! ac_compiler_gnu=no ! fi ! rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ! ac_cv_c_compiler_gnu=$ac_compiler_gnu fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 - $as_echo "$ac_cv_c_compiler_gnu" >&6; } - if test $ac_compiler_gnu = yes; then - GCC=yes - else - GCC= - fi - ac_test_CFLAGS=${CFLAGS+set} - ac_save_CFLAGS=$CFLAGS - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 - $as_echo_n "checking whether $CC accepts -g... " >&6; } - if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 - else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - - int - main () - { ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_compile "$LINENO"; then : ! ac_cv_prog_cc_g=yes ! else ! CFLAGS="" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! int ! main () ! { ! ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_compile "$LINENO"; then : ! ! else ! ac_c_werror_flag=$ac_save_c_werror_flag ! CFLAGS="-g" ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! ! int ! main () ! { ! ! ; ! return 0; ! } ! _ACEOF ! if ac_fn_c_try_compile "$LINENO"; then : ! ac_cv_prog_cc_g=yes ! fi ! rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ! fi ! rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ! fi ! rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ! ac_c_werror_flag=$ac_save_c_werror_flag ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 ! $as_echo "$ac_cv_prog_cc_g" >&6; } ! if test "$ac_test_CFLAGS" = set; then ! CFLAGS=$ac_save_CFLAGS ! elif test $ac_cv_prog_cc_g = yes; then ! if test "$GCC" = yes; then ! CFLAGS="-g -O2" ! else ! CFLAGS="-g" ! fi ! else ! if test "$GCC" = yes; then ! CFLAGS="-O2" ! else ! CFLAGS= ! fi ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 ! $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } ! if ${ac_cv_prog_cc_c89+:} false; then : ! $as_echo_n "(cached) " >&6 else ! ac_cv_prog_cc_c89=no ! ac_save_CC=$CC ! cat confdefs.h - <<_ACEOF >conftest.$ac_ext ! /* end confdefs.h. */ ! #include ! #include ! struct stat; ! /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ ! struct buf { int x; }; ! FILE * (*rcsopen) (struct buf *, struct stat *, int); ! static char *e (p, i) ! char **p; ! int i; ! { ! return p[i]; ! } ! static char *f (char * (*g) (char **, int), char **p, ...) ! { ! char *s; ! va_list v; ! va_start (v,p); ! s = g (p, va_arg (v,int)); ! va_end (v); ! return s; ! } ! ! /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has ! function prototypes and stuff, but not '\xHH' hex character constants. ! These don't provoke an error unfortunately, instead are silently treated ! as 'x'. The following induces an error, until -std is added to get ! proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an ! array size at least. It's necessary to write '\x00'==0 to get something ! that's true only with -std. */ ! int osf4_cc_array ['\x00' == 0 ? 1 : -1]; ! ! /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters ! inside strings and character constants. */ ! #define FOO(x) 'x' ! int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; ! ! int test (int i, double x); ! struct s1 {int (*f) (int a);}; ! struct s2 {int (*f) (double a);}; ! int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); ! int argc; ! char **argv; ! int ! main () ! { ! return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ! ; ! return 0; ! } ! _ACEOF ! for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ ! -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" ! do ! CC="$ac_save_CC $ac_arg" ! if ac_fn_c_try_compile "$LINENO"; then : ! ac_cv_prog_cc_c89=$ac_arg ! fi ! rm -f core conftest.err conftest.$ac_objext ! test "x$ac_cv_prog_cc_c89" != "xno" && break ! done ! rm -f conftest.$ac_ext ! CC=$ac_save_CC ! fi - # AC_CACHE_VAL - case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 - $as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 - $as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 - $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; - esac - if test "x$ac_cv_prog_cc_c89" != xno; then : - 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 O_CLOEXEC" >&5 $as_echo_n "checking for O_CLOEXEC... " >&6; } --- 2956,3003 ---- test "$maintainer_mode" = yes && MAINTAINER=yes ! # Handle configuration of checking; for the tools in this directory we ! # default to release checking and stricter checks do not change this. ! # Check whether --enable-checking was given. ! if test "${enable_checking+set}" = set; then : ! enableval=$enable_checking; ac_checking_flags="${enableval}" else ! # Default to checking. ! ac_checking_flags=yes fi ! IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="$IFS," ! for check in release $ac_checking_flags do ! case $check in ! # these set all the flags to specific states ! yes|all|release|assert) ac_assert_checking=1 ; ;; ! no|none) ac_assert_checking= ; ;; ! *) ;; ! esac done + IFS="$ac_save_IFS" ! if test x$ac_assert_checking != x ; then ! $as_echo "#define ENABLE_ASSERT_CHECKING 1" >>confdefs.h 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; PIEFLAG=-fPIE else ! PIEFLAG= fi + # Check if O_CLOEXEC is defined by fcntl { $as_echo "$as_me:${as_lineno-$LINENO}: checking for O_CLOEXEC" >&5 $as_echo_n "checking for O_CLOEXEC... " >&6; } *************** return open ("/dev/null", O_RDONLY | O_C *** 3559,3565 **** return 0; } _ACEOF ! if ac_fn_c_try_compile "$LINENO"; then : ac_cv_o_cloexec=yes else ac_cv_o_cloexec=no --- 3018,3024 ---- return 0; } _ACEOF ! if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_o_cloexec=yes else ac_cv_o_cloexec=no *************** $as_echo "#define HOST_HAS_O_CLOEXEC 1" *** 3574,3599 **** 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 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. --- 3033,3054 ---- fi ! ac_ext=cpp ! ac_cpp='$CXXCPP $CPPFLAGS' ! ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ! ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ! ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ! { $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; } ! if test -z "$CXXCPP"; then ! if ${ac_cv_prog_CXXCPP+:} false; then : $as_echo_n "(cached) " >&6 else ! # Double quotes because CXXCPP needs to be expanded ! for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false ! for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. *************** do *** 3610,3616 **** #endif Syntax error _ACEOF ! if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. --- 3065,3071 ---- #endif Syntax error _ACEOF ! if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. *************** rm -f conftest.err conftest.i conftest.$ *** 3624,3630 **** /* end confdefs.h. */ #include _ACEOF ! if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else --- 3079,3085 ---- /* end confdefs.h. */ #include _ACEOF ! if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else *************** if $ac_preproc_ok; then : *** 3642,3658 **** 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. --- 3097,3113 ---- fi done ! ac_cv_prog_CXXCPP=$CXXCPP fi ! CXXCPP=$ac_cv_prog_CXXCPP else ! ac_cv_prog_CXXCPP=$CXXCPP fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 ! $as_echo "$CXXCPP" >&6; } ac_preproc_ok=false ! for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. *************** do *** 3669,3675 **** #endif Syntax error _ACEOF ! if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. --- 3124,3130 ---- #endif Syntax error _ACEOF ! if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. *************** rm -f conftest.err conftest.i conftest.$ *** 3683,3689 **** /* end confdefs.h. */ #include _ACEOF ! if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else --- 3138,3144 ---- /* end confdefs.h. */ #include _ACEOF ! if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else *************** if $ac_preproc_ok; then : *** 3701,3715 **** 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 --- 3156,3170 ---- 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 \"$CXXCPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ! ac_ext=cpp ! ac_cpp='$CXXCPP $CPPFLAGS' ! ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ! ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ! ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 *************** main () *** 3862,3868 **** return 0; } _ACEOF ! if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no --- 3317,3323 ---- return 0; } _ACEOF ! if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no *************** main () *** 3935,3941 **** return 0; } _ACEOF ! if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no --- 3390,3396 ---- return 0; } _ACEOF ! if ac_fn_cxx_try_run "$LINENO"; then : else ac_cv_header_stdc=no *************** for ac_header in sys/types.h sys/stat.h *** 3959,3965 **** inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ! ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF --- 3414,3420 ---- inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ! ac_fn_cxx_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF *************** done *** 3973,3979 **** for ac_header in sys/mman.h do : ! ac_fn_c_check_header_mongrel "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default" if test "x$ac_cv_header_sys_mman_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_MMAN_H 1 --- 3428,3434 ---- for ac_header in sys/mman.h do : ! ac_fn_cxx_check_header_mongrel "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default" if test "x$ac_cv_header_sys_mman_h" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE_SYS_MMAN_H 1 *************** connect (fd, (sockaddr *)&un, sizeof (un *** 4016,4022 **** return 0; } _ACEOF ! if ac_fn_c_try_compile "$LINENO"; then : ac_cv_af_unix=yes else ac_cv_af_unix=no --- 3471,3477 ---- return 0; } _ACEOF ! if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_af_unix=yes else ac_cv_af_unix=no *************** connect (fd, (sockaddr *)&in6, sizeof (i *** 4070,4076 **** return 0; } _ACEOF ! if ac_fn_c_try_compile "$LINENO"; then : ac_cv_af_inet6=yes else ac_cv_af_inet6=no --- 3525,3531 ---- return 0; } _ACEOF ! if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_af_inet6=yes else ac_cv_af_inet6=no *************** epoll_pwait (fd, 0, 0, -1, 0); *** 4111,4117 **** return 0; } _ACEOF ! if ac_fn_c_try_compile "$LINENO"; then : ac_cv_epoll=yes else ac_cv_epoll=no --- 3566,3572 ---- return 0; } _ACEOF ! if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_epoll=yes else ac_cv_epoll=no *************** pselect (0, 0, 0, 0, 0, 0); *** 4147,4153 **** return 0; } _ACEOF ! if ac_fn_c_try_compile "$LINENO"; then : ac_cv_pselect=yes else ac_cv_pselect=no --- 3602,3608 ---- return 0; } _ACEOF ! if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_pselect=yes else ac_cv_pselect=no *************** select (0, 0, 0, 0, 0); *** 4184,4190 **** return 0; } _ACEOF ! if ac_fn_c_try_compile "$LINENO"; then : ac_cv_select=yes else ac_cv_select=no --- 3639,3645 ---- return 0; } _ACEOF ! if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_select=yes else ac_cv_select=no *************** int err = accept4 (1, 0, 0, SOCK_NONBLOC *** 4220,4226 **** return 0; } _ACEOF ! if ac_fn_c_try_compile "$LINENO"; then : ac_cv_accept4=yes else ac_cv_accept4=no --- 3675,3681 ---- return 0; } _ACEOF ! if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_accept4=yes else ac_cv_accept4=no *************** const char *str = inet_ntop (AF_INET6, & *** 4259,4265 **** return 0; } _ACEOF ! if ac_fn_c_try_compile "$LINENO"; then : ac_cv_inet_ntop=yes else ac_cv_inet_ntop=no --- 3714,3720 ---- return 0; } _ACEOF ! if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_inet_ntop=yes else ac_cv_inet_ntop=no *************** for ac_lib in '' nsl; do *** 4325,4331 **** ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi ! if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_gethostbyname=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ --- 3780,3786 ---- ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi ! if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_search_gethostbyname=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ *************** for ac_lib in '' socket; do *** 4381,4387 **** ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi ! if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_socket=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ --- 3836,3842 ---- ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi ! if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_search_socket=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ *************** return socket (); *** 4431,4437 **** return 0; } _ACEOF ! if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_socket_socket=yes else ac_cv_lib_socket_socket=no --- 3886,3892 ---- return 0; } _ACEOF ! if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_lib_socket_socket=yes else ac_cv_lib_socket_socket=no diff -Nrcpad gcc-11.3.0/c++tools/configure.ac gcc-11.4.0/c++tools/configure.ac *** gcc-11.3.0/c++tools/configure.ac Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/c++tools/configure.ac Mon May 29 08:46:28 2023 *************** MISSING=`cd $ac_aux_dir && ${PWDCMD-pwd} *** 41,46 **** --- 41,48 ---- AC_CHECK_PROGS([AUTOCONF], [autoconf], [$MISSING autoconf]) AC_CHECK_PROGS([AUTOHEADER], [autoheader], [$MISSING autoheader]) + AC_LANG(C++) + dnl Enabled by default AC_MSG_CHECKING([whether to build C++ tools]) AC_ARG_ENABLE(c++-tools, *************** AC_MSG_RESULT([$maintainer_mode]) *** 67,72 **** --- 69,103 ---- test "$maintainer_mode" = yes && MAINTAINER=yes AC_SUBST(MAINTAINER) + # Handle configuration of checking; for the tools in this directory we + # default to release checking and stricter checks do not change this. + + AC_ARG_ENABLE(checking, + [AS_HELP_STRING([[--enable-checking[=LIST]]], + [enable expensive run-time checks. With LIST, + enable only specific categories of checks. + Categories are: yes,no,all,none,release.])], + [ac_checking_flags="${enableval}"],[ + # Default to checking. + ac_checking_flags=yes + ]) + IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS="$IFS," + for check in release $ac_checking_flags + do + case $check in + # these set all the flags to specific states + yes|all|release|assert) ac_assert_checking=1 ; ;; + no|none) ac_assert_checking= ; ;; + *) ;; + esac + done + IFS="$ac_save_IFS" + + if test x$ac_assert_checking != x ; then + AC_DEFINE(ENABLE_ASSERT_CHECKING, 1, + [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], diff -Nrcpad gcc-11.3.0/c++tools/server.cc gcc-11.4.0/c++tools/server.cc *** gcc-11.3.0/c++tools/server.cc Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/c++tools/server.cc Mon May 29 08:46:28 2023 *************** along with GCC; see the file COPYING3. *** 61,66 **** --- 61,70 ---- # define gai_strerror(X) "" #endif + #ifndef AI_NUMERICSERV + #define AI_NUMERICSERV 0 + #endif + #include // Select or epoll *************** along with GCC; see the file COPYING3. *** 92,97 **** --- 96,123 ---- #define DIR_SEPARATOR '/' #endif + /* Imported from libcpp/system.h + Use gcc_assert(EXPR) to test invariants. */ + #if ENABLE_ASSERT_CHECKING + #define gcc_assert(EXPR) \ + ((void)(!(EXPR) ? fancy_abort (__FILE__, __LINE__, __FUNCTION__), 0 : 0)) + #elif (GCC_VERSION >= 4005) + #define gcc_assert(EXPR) \ + ((void)(__builtin_expect (!(EXPR), 0) ? __builtin_unreachable (), 0 : 0)) + #else + /* Include EXPR, so that unused variable warnings do not occur. */ + #define gcc_assert(EXPR) ((void)(0 && (EXPR))) + #endif + + /* Use gcc_unreachable() to mark unreachable locations (like an + unreachable default case of a switch. Do not use gcc_assert(0). */ + #if (GCC_VERSION >= 4005) && !ENABLE_ASSERT_CHECKING + #define gcc_unreachable() __builtin_unreachable () + #else + #define gcc_unreachable() (fancy_abort (__FILE__, __LINE__, __FUNCTION__)) + #endif + + #if NETWORKING struct netmask { in6_addr addr; *************** internal_error (const char *fmt, ...) *** 202,212 **** --- 228,240 ---- /* Hooked to from gcc_assert & gcc_unreachable. */ + #if ENABLE_ASSERT_CHECKING void ATTRIBUTE_NORETURN ATTRIBUTE_COLD fancy_abort (const char *file, int line, const char *func) { internal_error ("in %s, at %s:%d", func, trim_src_file (file), line); } + #endif /* Exploded on a signal. */ diff -Nrcpad gcc-11.3.0/config/ChangeLog gcc-11.4.0/config/ChangeLog *** gcc-11.3.0/config/ChangeLog Thu Apr 21 07:59:16 2022 --- gcc-11.4.0/config/ChangeLog Mon May 29 08:46:50 2023 *************** *** 1,3 **** --- 1,7 ---- + 2023-05-29 Release Manager + + * GCC 11.4.0 released. + 2022-04-21 Release Manager * GCC 11.3.0 released. diff -Nrcpad gcc-11.3.0/configure gcc-11.4.0/configure *** gcc-11.3.0/configure Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/configure Mon May 29 08:49:47 2023 *************** fi *** 8277,8283 **** # Check whether --enable-host-shared was given. if test "${enable_host_shared+set}" = set; then : enableval=$enable_host_shared; host_shared=$enableval ! case $target in x86_64-*-darwin* | aarch64-*-darwin*) if test x$host_shared != xyes ; then # PIC is the default, and actually cannot be switched off. --- 8277,8283 ---- # Check whether --enable-host-shared was given. if test "${enable_host_shared+set}" = set; then : enableval=$enable_host_shared; host_shared=$enableval ! case $host in x86_64-*-darwin* | aarch64-*-darwin*) if test x$host_shared != xyes ; then # PIC is the default, and actually cannot be switched off. *************** if test "${enable_host_shared+set}" = se *** 8287,8293 **** *) ;; esac else ! case $target in x86_64-*-darwin* | aarch64-*-darwin*) host_shared=yes ;; *) host_shared=no ;; esac --- 8287,8293 ---- *) ;; esac else ! case $host in x86_64-*-darwin* | aarch64-*-darwin*) host_shared=yes ;; *) host_shared=no ;; esac diff -Nrcpad gcc-11.3.0/configure.ac gcc-11.4.0/configure.ac *** gcc-11.3.0/configure.ac Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/configure.ac Mon May 29 08:46:28 2023 *************** AC_ARG_ENABLE(host-shared, *** 1872,1878 **** [AS_HELP_STRING([--enable-host-shared], [build host code as shared libraries])], [host_shared=$enableval ! case $target in x86_64-*-darwin* | aarch64-*-darwin*) if test x$host_shared != xyes ; then # PIC is the default, and actually cannot be switched off. --- 1872,1878 ---- [AS_HELP_STRING([--enable-host-shared], [build host code as shared libraries])], [host_shared=$enableval ! case $host in x86_64-*-darwin* | aarch64-*-darwin*) if test x$host_shared != xyes ; then # PIC is the default, and actually cannot be switched off. *************** AC_ARG_ENABLE(host-shared, *** 1881,1887 **** fi ;; *) ;; esac], ! [case $target in x86_64-*-darwin* | aarch64-*-darwin*) host_shared=yes ;; *) host_shared=no ;; esac]) --- 1881,1887 ---- fi ;; *) ;; esac], ! [case $host in x86_64-*-darwin* | aarch64-*-darwin*) host_shared=yes ;; *) host_shared=no ;; esac]) diff -Nrcpad gcc-11.3.0/contrib/ChangeLog gcc-11.4.0/contrib/ChangeLog *** gcc-11.3.0/contrib/ChangeLog Thu Apr 21 07:59:16 2022 --- gcc-11.4.0/contrib/ChangeLog Mon May 29 08:46:50 2023 *************** *** 1,3 **** --- 1,7 ---- + 2023-05-29 Release Manager + + * GCC 11.4.0 released. + 2022-04-21 Release Manager * GCC 11.3.0 released. diff -Nrcpad gcc-11.3.0/contrib/header-tools/ChangeLog gcc-11.4.0/contrib/header-tools/ChangeLog *** gcc-11.3.0/contrib/header-tools/ChangeLog Thu Apr 21 07:59:16 2022 --- gcc-11.4.0/contrib/header-tools/ChangeLog Mon May 29 08:46:50 2023 *************** *** 1,3 **** --- 1,7 ---- + 2023-05-29 Release Manager + + * GCC 11.4.0 released. + 2022-04-21 Release Manager * GCC 11.3.0 released. diff -Nrcpad gcc-11.3.0/contrib/reghunt/ChangeLog gcc-11.4.0/contrib/reghunt/ChangeLog *** gcc-11.3.0/contrib/reghunt/ChangeLog Thu Apr 21 07:59:16 2022 --- gcc-11.4.0/contrib/reghunt/ChangeLog Mon May 29 08:46:50 2023 *************** *** 1,3 **** --- 1,7 ---- + 2023-05-29 Release Manager + + * GCC 11.4.0 released. + 2022-04-21 Release Manager * GCC 11.3.0 released. diff -Nrcpad gcc-11.3.0/contrib/regression/ChangeLog gcc-11.4.0/contrib/regression/ChangeLog *** gcc-11.3.0/contrib/regression/ChangeLog Thu Apr 21 07:59:16 2022 --- gcc-11.4.0/contrib/regression/ChangeLog Mon May 29 08:46:50 2023 *************** *** 1,3 **** --- 1,7 ---- + 2023-05-29 Release Manager + + * GCC 11.4.0 released. + 2022-04-21 Release Manager * GCC 11.3.0 released. diff -Nrcpad gcc-11.3.0/fixincludes/ChangeLog gcc-11.4.0/fixincludes/ChangeLog *** gcc-11.3.0/fixincludes/ChangeLog Thu Apr 21 07:59:16 2022 --- gcc-11.4.0/fixincludes/ChangeLog Mon May 29 08:46:50 2023 *************** *** 1,3 **** --- 1,27 ---- + 2023-05-29 Release Manager + + * GCC 11.4.0 released. + + 2023-05-16 Iain Sandoe + + Backported from master: + 2023-01-21 Iain Sandoe + + * fixincl.x: Regenerate. + * inclhack.def (darwin_objc_runtime_1): New hack. + * tests/base/objc/runtime.h: New file. + + 2023-05-16 Iain Sandoe + + Backported from master: + 2023-01-21 Iain Sandoe + + PR target/107568 + * fixincl.x: Regenerate. + * inclhack.def: Add a fix for MacOS13 SDK function deprecations + in stdio.h. + * tests/base/stdio.h (__deprecated_msg): New test. + 2022-04-21 Release Manager * GCC 11.3.0 released. diff -Nrcpad gcc-11.3.0/fixincludes/fixincl.x gcc-11.4.0/fixincludes/fixincl.x *** gcc-11.3.0/fixincludes/fixincl.x Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/fixincludes/fixincl.x Mon May 29 08:46:28 2023 *************** *** 2,12 **** * * DO NOT EDIT THIS FILE (fixincl.x) * ! * It has been AutoGen-ed July 1, 2021 at 03:44:46 PM by AutoGen 5.18.7 * From the definitions inclhack.def * and the template file fixincl */ ! /* DO NOT SVN-MERGE THIS FILE, EITHER Thu Jul 1 15:44:46 CEST 2021 * * You must regenerate it. Use the ./genfixes script. * --- 2,12 ---- * * DO NOT EDIT THIS FILE (fixincl.x) * ! * It has been AutoGen-ed May 15, 2023 at 11:55:05 PM by AutoGen 5.18.7 * From the definitions inclhack.def * and the template file fixincl */ ! /* DO NOT SVN-MERGE THIS FILE, EITHER Mon May 15 23:55:05 BST 2023 * * 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 260 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 262 fixup descriptions. * * See README for more information. * *************** int vfscanf(FILE *, const char *, __buil *** 2610,2615 **** --- 2610,2655 ---- /* * * * * * * * * * * * * * * * * * * * * * * * * * * + * Description of Apple_Local_Stdio_Fn_Deprecation fix + */ + tSCC zApple_Local_Stdio_Fn_DeprecationName[] = + "apple_local_stdio_fn_deprecation"; + + /* + * File name selection pattern + */ + tSCC zApple_Local_Stdio_Fn_DeprecationList[] = + "stdio.h\0"; + /* + * Machine/OS name selection pattern + */ + tSCC* apzApple_Local_Stdio_Fn_DeprecationMachs[] = { + "*-*-*darwin2*", + (const char*)NULL }; + + /* + * content selection pattern - do fix if pattern found + */ + tSCC zApple_Local_Stdio_Fn_DeprecationSelect0[] = + "__deprecated_msg([^\n\ + ]*)$"; + + #define APPLE_LOCAL_STDIO_FN_DEPRECATION_TEST_CT 1 + static tTestDesc aApple_Local_Stdio_Fn_DeprecationTests[] = { + { TT_EGREP, zApple_Local_Stdio_Fn_DeprecationSelect0, (regex_t*)NULL }, }; + + /* + * Fix Command Arguments for Apple_Local_Stdio_Fn_Deprecation + */ + static const char* apzApple_Local_Stdio_Fn_DeprecationPatch[] = { + "format", + "#if defined(__APPLE_LOCAL_DEPRECATIONS)\n\ + %0\n\ + #endif", + (char*)NULL }; + + /* * * * * * * * * * * * * * * * * * * * * * * * * * + * * Description of Ctrl_Quotes_Def fix */ tSCC zCtrl_Quotes_DefName[] = *************** static const char* apzDarwin_Os_Trace_2P *** 3046,3051 **** --- 3086,3138 ---- /* * * * * * * * * * * * * * * * * * * * * * * * * * * + * Description of Darwin_Objc_Runtime_1 fix + */ + tSCC zDarwin_Objc_Runtime_1Name[] = + "darwin_objc_runtime_1"; + + /* + * File name selection pattern + */ + tSCC zDarwin_Objc_Runtime_1List[] = + "objc/runtime.h\0"; + /* + * Machine/OS name selection pattern + */ + tSCC* apzDarwin_Objc_Runtime_1Machs[] = { + "*-*-darwin2*", + (const char*)NULL }; + + /* + * content selection pattern - do fix if pattern found + */ + tSCC zDarwin_Objc_Runtime_1Select0[] = + "OBJC_EXPORT void.*\n\ + objc_enumerateClasses.*\n\ + .*\n\ + .*\n\ + .*\n\ + .*void \\(\\^ _Nonnull block.*\n\ + .*\n\ + .*\n\ + .*OBJC_REFINED_FOR_SWIFT.*"; + + #define DARWIN_OBJC_RUNTIME_1_TEST_CT 1 + static tTestDesc aDarwin_Objc_Runtime_1Tests[] = { + { TT_EGREP, zDarwin_Objc_Runtime_1Select0, (regex_t*)NULL }, }; + + /* + * Fix Command Arguments for Darwin_Objc_Runtime_1 + */ + static const char* apzDarwin_Objc_Runtime_1Patch[] = { + "format", + "#if __BLOCKS__\n\ + %0\n\ + #endif", + (char*)NULL }; + + /* * * * * * * * * * * * * * * * * * * * * * * * * * + * * Description of Darwin_Os_Trace_3 fix */ tSCC zDarwin_Os_Trace_3Name[] = *************** static const char* apzX11_SprintfPatch[] *** 10560,10568 **** * * List of all fixes */ ! #define REGEX_COUNT 298 #define MACH_LIST_SIZE_LIMIT 187 ! #define FIX_COUNT 260 /* * Enumerate the fixes --- 10647,10655 ---- * * List of all fixes */ ! #define REGEX_COUNT 300 #define MACH_LIST_SIZE_LIMIT 187 ! #define FIX_COUNT 262 /* * Enumerate the fixes *************** typedef enum { *** 10629,10634 **** --- 10716,10722 ---- BROKEN_CABS_FIXIDX, BROKEN_NAN_FIXIDX, BSD_STDIO_ATTRS_CONFLICT_FIXIDX, + APPLE_LOCAL_STDIO_FN_DEPRECATION_FIXIDX, CTRL_QUOTES_DEF_FIXIDX, CTRL_QUOTES_USE_FIXIDX, CXX_UNREADY_FIXIDX, *************** typedef enum { *** 10640,10645 **** --- 10728,10734 ---- DARWIN_LONGJMP_NORETURN_FIXIDX, DARWIN_OS_TRACE_1_FIXIDX, DARWIN_OS_TRACE_2_FIXIDX, + DARWIN_OBJC_RUNTIME_1_FIXIDX, DARWIN_OS_TRACE_3_FIXIDX, DARWIN_OS_BASE_1_FIXIDX, DARWIN_DISPATCH_OBJECT_1_FIXIDX, *************** tFixDesc fixDescList[ FIX_COUNT ] = { *** 11136,11141 **** --- 11225,11235 ---- BSD_STDIO_ATTRS_CONFLICT_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aBsd_Stdio_Attrs_ConflictTests, apzBsd_Stdio_Attrs_ConflictPatch, 0 }, + { zApple_Local_Stdio_Fn_DeprecationName, zApple_Local_Stdio_Fn_DeprecationList, + apzApple_Local_Stdio_Fn_DeprecationMachs, + APPLE_LOCAL_STDIO_FN_DEPRECATION_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aApple_Local_Stdio_Fn_DeprecationTests, apzApple_Local_Stdio_Fn_DeprecationPatch, 0 }, + { zCtrl_Quotes_DefName, zCtrl_Quotes_DefList, apzCtrl_Quotes_DefMachs, CTRL_QUOTES_DEF_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, *************** tFixDesc fixDescList[ FIX_COUNT ] = { *** 11191,11196 **** --- 11285,11295 ---- DARWIN_OS_TRACE_2_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aDarwin_Os_Trace_2Tests, apzDarwin_Os_Trace_2Patch, 0 }, + { zDarwin_Objc_Runtime_1Name, zDarwin_Objc_Runtime_1List, + apzDarwin_Objc_Runtime_1Machs, + DARWIN_OBJC_RUNTIME_1_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aDarwin_Objc_Runtime_1Tests, apzDarwin_Objc_Runtime_1Patch, 0 }, + { zDarwin_Os_Trace_3Name, zDarwin_Os_Trace_3List, apzDarwin_Os_Trace_3Machs, DARWIN_OS_TRACE_3_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, diff -Nrcpad gcc-11.3.0/fixincludes/inclhack.def gcc-11.4.0/fixincludes/inclhack.def *** gcc-11.3.0/fixincludes/inclhack.def Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/fixincludes/inclhack.def Mon May 29 08:46:28 2023 *************** fix = { *** 1269,1274 **** --- 1269,1286 ---- test_text = '#define vfscanf __svfscanf'; }; + fix = { + hackname = apple_local_stdio_fn_deprecation; + mach = "*-*-*darwin2*"; + files = stdio.h; + select = "__deprecated_msg([^\n]*)$"; + c_fix = format; + c_fix_arg = "#if defined(__APPLE_LOCAL_DEPRECATIONS)\n" + "%0\n" + "#endif"; + test_text = '__deprecated_msg("This function is provided for compat...")'; + }; + /* * Fix various macros used to define ioctl numbers. * The traditional syntax was: *************** fix = { *** 1480,1485 **** --- 1492,1532 ---- }; /* + * macOSX 13.0 SDK objc/runtime.h uses Apple Blocks extension without a guard. + */ + + fix = { + hackname = darwin_objc_runtime_1; + mach = "*-*-darwin2*"; + files = objc/runtime.h; + select = <<- _EOSelect_ + OBJC_EXPORT void.* + objc_enumerateClasses.* + .* + .* + .* + .*void \(\^ _Nonnull block.* + .* + .* + .*OBJC_REFINED_FOR_SWIFT.* + _EOSelect_; + c_fix = format; + c_fix_arg = "#if __BLOCKS__\n%0\n#endif"; + test_text = <<- _OBJC_RUNTIME_1 + OBJC_EXPORT void + objc_enumerateClasses(const void * _Nullable image, + const char * _Nullable namePrefix, + Protocol * _Nullable conformingTo, + Class _Nullable subclassing, + void (^ _Nonnull block)(Class _Nonnull aClass, BOOL * _Nonnull stop) + OBJC_NOESCAPE) + OBJC_AVAILABLE(13.0, 16.0, 16.0, 9.0, 7.0) + OBJC_REFINED_FOR_SWIFT; + _OBJC_RUNTIME_1; + }; + + + /* * In Mac OS X 10.1[012] , need to guard users of * os_trace_payload_t typedef, too. */ diff -Nrcpad gcc-11.3.0/fixincludes/tests/base/objc/runtime.h gcc-11.4.0/fixincludes/tests/base/objc/runtime.h *** gcc-11.3.0/fixincludes/tests/base/objc/runtime.h Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/fixincludes/tests/base/objc/runtime.h Mon May 29 08:46:28 2023 *************** *** 0 **** --- 1,24 ---- + /* DO NOT EDIT THIS FILE. + + It has been auto-edited by fixincludes from: + + "fixinc/tests/inc/objc/runtime.h" + + This had to be done to correct non-standard usages in the + original, manufacturer supplied header file. */ + + + + #if defined( DARWIN_OBJC_RUNTIME_1_CHECK ) + #if __BLOCKS__ + OBJC_EXPORT void + objc_enumerateClasses(const void * _Nullable image, + const char * _Nullable namePrefix, + Protocol * _Nullable conformingTo, + Class _Nullable subclassing, + void (^ _Nonnull block)(Class _Nonnull aClass, BOOL * _Nonnull stop) + OBJC_NOESCAPE) + OBJC_AVAILABLE(13.0, 16.0, 16.0, 9.0, 7.0) + OBJC_REFINED_FOR_SWIFT; + #endif + #endif /* DARWIN_OBJC_RUNTIME_1_CHECK */ diff -Nrcpad gcc-11.3.0/fixincludes/tests/base/stdio.h gcc-11.4.0/fixincludes/tests/base/stdio.h *** gcc-11.3.0/fixincludes/tests/base/stdio.h Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/fixincludes/tests/base/stdio.h Mon May 29 08:46:28 2023 *************** int vfscanf(FILE *, const char *, __buil *** 41,46 **** --- 41,53 ---- #endif /* BSD_STDIO_ATTRS_CONFLICT_CHECK */ + #if defined( APPLE_LOCAL_STDIO_FN_DEPRECATION_CHECK ) + #if defined(__APPLE_LOCAL_DEPRECATIONS) + __deprecated_msg("This function is provided for compat...") + #endif + #endif /* APPLE_LOCAL_STDIO_FN_DEPRECATION_CHECK */ + + #if defined( HPUX10_STDIO_DECLARATIONS_CHECK ) # define _iob __iob diff -Nrcpad gcc-11.3.0/gcc/BASE-VER gcc-11.4.0/gcc/BASE-VER *** gcc-11.3.0/gcc/BASE-VER Thu Apr 21 07:59:17 2022 --- gcc-11.4.0/gcc/BASE-VER Mon May 29 08:46:50 2023 *************** *** 1 **** ! 11.3.0 --- 1 ---- ! 11.4.0 diff -Nrcpad gcc-11.3.0/gcc/ChangeLog gcc-11.4.0/gcc/ChangeLog *** gcc-11.3.0/gcc/ChangeLog Thu Apr 21 07:59:16 2022 --- gcc-11.4.0/gcc/ChangeLog Mon May 29 08:46:50 2023 *************** *** 1,3 **** --- 1,2032 ---- + 2023-05-29 Release Manager + + * GCC 11.4.0 released. + + 2023-05-22 Michael Meissner + + PR target/70243 + * config/rs6000/vsx.md (vsx_fmav4sf4): Do not generate vmaddfp. Back + port from master 04/10/2023. + (vsx_nfmsv4sf4): Do not generate vnmsubfp. + + 2023-05-16 Simon Wright + + Backported from master: + 2022-06-12 Simon Wright + + PR target/104871 + * config/darwin-driver.c (darwin_find_version_from_kernel): If the OS + version is darwin20 (macOS 11) or greater, truncate the version to the + major number. + + 2023-05-16 Mark Mentovai + + Backported from master: + 2022-06-12 Mark Mentovai + + * config/darwin-c.c: Make -mmacosx-version-min more future-proof. + + 2023-05-16 Iain Sandoe + + Backported from master: + 2022-05-29 Iain Sandoe + + PR target/105599 + * config/darwin.h: Move versions-specific handling of multiply_defined + from SUBTARGET_DRIVER_SELF_SPECS to LINK_SPEC. + + 2023-05-16 Iain Sandoe + + Backported from master: + 2021-12-24 Iain Sandoe + + * config.gcc: Emit L2_MAX_OFILE_ALIGNMENT with suitable + values for the host. + * config/darwin.c (darwin_emit_common): Error for alignment + values > 32768. + * config/darwin.h (MAX_OFILE_ALIGNMENT): Rework to use the + configured L2_MAX_OFILE_ALIGNMENT. + + 2023-05-16 François-Xavier Coudert + + Backported from master: + 2021-12-18 François-Xavier Coudert + + * config/darwin-driver.c: Make version code more future-proof. + * config.gcc: Homogeneize darwin versions. + * configure.ac: Homogeneize darwin versions. + * configure: Regenerate. + + 2023-05-15 Iain Sandoe + + * config/i386/darwin.h (ENDFILE_SPEC): Fix trailing '\'. + + 2023-05-15 liuhongt + + * config/i386/cygwin.h (ENDFILE_SPEC): Link crtfastmath.o + whenever -mdaz-ftz is specified. Don't link crtfastmath.o + when -mno-daz-ftz is specified. + * config/i386/darwin.h (ENDFILE_SPEC): Ditto. + * config/i386/gnu-user-common.h + (GNU_USER_TARGET_MATHFILE_SPEC): Ditto. + * config/i386/mingw32.h (ENDFILE_SPEC): Ditto. + * config/i386/i386.opt (mdaz-ftz): New option. + * doc/invoke.texi (x86 options): Document mftz-daz. + + 2023-05-09 Jakub Jelinek + + Backported from master: + 2023-05-09 Jakub Jelinek + + PR tree-optimization/109778 + * wide-int.h (wi::lrotate, wi::rrotate): Call wi::lrshift on + wi::zext (x, width) rather than x if width != precision, rather + than using wi::zext (right, width) after the shift. + * tree-ssa-ccp.c (bit_value_binop): Call wi::ext on the results + of wi::lrotate or wi::rrotate. + + 2023-05-09 Richard Biener + + Backported from master: + 2023-03-01 Richard Biener + + PR tree-optimization/108950 + * tree-vect-patterns.c (vect_recog_widen_sum_pattern): + Check oprnd0 is defined in the loop. + * tree-vect-loop.c (vectorizable_reduction): Record all + operands vector types, compute that of invariants and + properly update their SLP nodes. + + 2023-05-05 Richard Biener + + Backported from master: + 2022-11-29 Richard Biener + + PR tree-optimization/107898 + * gimple-ssa-warn-alloca.c (alloca_call_type): Check + the type of the alloca argument is compatible with size_t + before querying ranges. + + 2023-05-03 Arsen Arsenović + + * doc/extend.texi: Replace @itemx not being preceded by @item. + + 2023-05-03 Anthony Sharp + + Backported from master: + 2021-08-27 Anthony Sharp + + * symbol-summary.h: Added missing template keyword. + + 2023-05-03 Richard Biener + + PR tree-optimization/109473 + * tree-vect-loop.c (get_initial_def_for_reduction): + Convert the scalar values to the vector component type + before using it to build the vector for the initial value. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-04-12 Jakub Jelinek + + PR tree-optimization/109410 + * tree-ssa-reassoc.c (build_and_add_sum): Split edge from entry + block if first statement of the function is a call to returns_twice + function. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-03-28 Jakub Jelinek + + PR middle-end/106190 + * sanopt.c (pass_sanopt::execute): Return TODO_cleanup_cfg if any + of the IFN_{UB,HWA,A}SAN_* internal fns are lowered. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-03-28 Jakub Jelinek + + PR target/109276 + * config/i386/i386.c (assign_386_stack_local): For DImode + with SLOT_FLOATxFDI_387 and -m32 -mpreferred-stack-boundary=2 pass + align 32 rather than 0 to assign_stack_local. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-03-26 Jakub Jelinek + + PR ipa/105685 + * predict.c (compute_function_frequency): Don't call + warn_function_cold if function already has cold attribute. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-03-23 Jakub Jelinek + + PR tree-optimization/109176 + * tree-vect-generic.c (expand_vector_condition): If a has + vector boolean type and is a comparison, also check if both + the comparison and VEC_COND_EXPR could be successfully expanded + individually. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-03-17 Jakub Jelinek + + PR target/105554 + * function.h (push_struct_function): Add ABSTRACT_P argument defaulted + to false. + * function.c (push_struct_function): Add ABSTRACT_P argument, pass it + to allocate_struct_function instead of false. + * tree-inline.c (initialize_cfun): Don't copy DECL_ARGUMENTS + nor DECL_RESULT here. Pass true as ABSTRACT_P to + push_struct_function. Call targetm.target_option.relayout_function + after it. + (tree_function_versioning): Formatting fix. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-03-17 Jakub Jelinek + + PR middle-end/108685 + * omp-expand.c (expand_omp_for_ordered_loops): Add L0_BB argument, + use its loop_father rather than BODY_BB's loop_father. + (expand_omp_for_generic): Adjust expand_omp_for_ordered_loops caller. + If broken_loop with ordered > collapse and at least one of those + extra loops aren't guaranteed to have at least one iteration, change + l0_bb's loop_father to entry_bb's loop_father. Set cont_bb's + loop_father to l0_bb's loop_father rather than l1_bb's. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-03-04 Jakub Jelinek + + PR testsuite/108973 + * selftest-diagnostic.c + (test_diagnostic_context::test_diagnostic_context): Set + caret_max_width to 80. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-03-01 Jakub Jelinek + + PR debug/108967 + * cfgexpand.c (expand_debug_expr): Handle WIDEN_{PLUS,MINUS}_EXPR + and VEC_WIDEN_{PLUS,MINUS}_{HI,LO}_EXPR. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-02-24 Jakub Jelinek + + PR middle-end/108854 + * cgraphclones.c (duplicate_thunk_for_node): If no parameter + changes are needed, copy at least DECL_ARGUMENTS PARM_DECL + nodes and adjust their DECL_CONTEXT. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-02-24 Jakub Jelinek + + PR target/108881 + * config/i386/i386-builtin.def (__builtin_ia32_cvtne2ps2bf16_v16hi, + __builtin_ia32_cvtne2ps2bf16_v16hi_mask, + __builtin_ia32_cvtne2ps2bf16_v16hi_maskz, + __builtin_ia32_cvtne2ps2bf16_v8hi, + __builtin_ia32_cvtne2ps2bf16_v8hi_mask, + __builtin_ia32_cvtne2ps2bf16_v8hi_maskz, + __builtin_ia32_cvtneps2bf16_v8sf_mask, + __builtin_ia32_cvtneps2bf16_v8sf_maskz, + __builtin_ia32_cvtneps2bf16_v4sf_mask, + __builtin_ia32_cvtneps2bf16_v4sf_maskz, + __builtin_ia32_dpbf16ps_v8sf, __builtin_ia32_dpbf16ps_v8sf_mask, + __builtin_ia32_dpbf16ps_v8sf_maskz, __builtin_ia32_dpbf16ps_v4sf, + __builtin_ia32_dpbf16ps_v4sf_mask, + __builtin_ia32_dpbf16ps_v4sf_maskz): Require also + OPTION_MASK_ISA_AVX512VL. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-02-09 Jakub Jelinek + + PR target/100758 + * common/config/i386/cpuinfo.h (cpu_indicator_init): Call + get_available_features for all CPUs with max_level >= 1, rather + than just Intel or AMD. + + 2023-05-02 Andrew Pinski + + Backported from master: + 2023-02-09 Andrew Pinski + + PR tree-optimization/108688 + * match.pd (bit_field_ref [bit_insert]): Avoid generating + BIT_FIELD_REFs of non-mode-precision integral operands. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-02-08 Jakub Jelinek + + PR tree-optimization/108692 + * tree-vect-patterns.c (vect_widened_op_tree): If rhs_code is + widened_code which is different from code, don't call + vect_look_through_possible_promotion but instead just check op is + SSA_NAME with integral type for which vect_is_simple_use is true + and call set_op on this_unprom. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-02-02 Jakub Jelinek + + PR middle-end/108435 + * tree-nested.c (convert_nonlocal_omp_clauses) + : If info->new_local_var_chain and *seq + is not a GIMPLE_BIND, wrap the sequence into a new GIMPLE_BIND + before calling declare_vars. + (convert_nonlocal_omp_clauses) : Merge + with the OMP_CLAUSE_LASTPRIVATE handling except for whether + seq is initialized to &OMP_CLAUSE_LASTPRIVATE_GIMPLE_SEQ (clause) + or &OMP_CLAUSE_LINEAR_GIMPLE_SEQ (clause). + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-02-01 Jakub Jelinek + + PR debug/108573 + * ree.c (combine_reaching_defs): Don't return false for paradoxical + subregs in DEBUG_INSNs. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-01-31 Jakub Jelinek + + PR rtl-optimization/108596 + * bb-reorder.c (fix_up_fall_thru_edges): Handle the case where cur_bb + ends with asm goto and has a crossing fallthrough edge to the same bb + that contains at least one of its labels by restoring EDGE_CROSSING + flag even on possible edge from cur_bb to new_bb successor. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-01-27 Jakub Jelinek + + PR other/108560 + * doc/extend.texi: Fix up return type of __builtin_va_arg_pack_len + from size_t to int. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-01-25 Jakub Jelinek + + PR tree-optimization/108498 + * gimple-ssa-store-merging.c (class store_operand_info): + End coment with full stop rather than comma. + (split_group): Likewise. + (merged_store_group::apply_stores): Clear string_concatenation if + start or end aren't on a byte boundary. + + 2023-05-02 Eric Biggers + + Backported from master: + 2023-01-24 Eric Biggers + + PR bootstrap/90543 + * optc-save-gen.awk: Fix copy-and-paste error. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-01-19 Jakub Jelinek + + PR middle-end/108459 + * omp-expand.c (expand_omp_for_init_counts): Use fold_build1 rather + than fold_unary for NEGATE_EXPR. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-01-04 Jakub Jelinek + + PR middle-end/108237 + * generic-match-head.c: Include tree-pass.h. + (canonicalize_math_p, optimize_vectors_before_lowering_p): Define + to false if cfun and cfun->curr_properties has PROP_gimple_opt_math + resp. PROP_gimple_lvec property set. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-01-03 Jakub Jelinek + + PR middle-end/108264 + * expr.c (store_expr): For stores into SUBREG_PROMOTED_* targets + from source which doesn't have scalar integral mode first convert + it to outer_mode. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2022-12-23 Jakub Jelinek + + PR tree-optimization/108068 + * tree.h (real_maybe_zerop): Declare. + * tree.c (real_maybe_zerop): Define. + * tree-ssa-dom.c (record_edge_info): Use it instead of + real_zerop or TREE_CODE (op1) == SSA_NAME || real_zerop. Always set + can_infer_simple_equiv to false for decimal floating point types. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2022-12-22 Jakub Jelinek + + PR rtl-optimization/108193 + * cse.c (compute_const_anchors): Change n type to + unsigned HOST_WIDE_INT, adjust comparison against it to avoid + warnings. Formatting fix. + (insert_const_anchor): Use gen_int_mode instead of GEN_INT. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2022-12-16 Jakub Jelinek + + PR rtl-optimization/106751 + * loop-invariant.c (move_invariant_reg): If preheader bb ends + with a JUMP_INSN, split the preheader edge and emit invariants + into the new preheader basic block. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2022-12-15 Jakub Jelinek + + PR tree-optimization/108095 + * tree-into-ssa.c (maybe_register_def): Insert debug stmt + on all non-EH edges from asm goto if they have a single + predecessor rather than asserting there is at most one such edge. + Test whether there are no PHI nodes next to the single predecessor + test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2022-12-10 Jakub Jelinek + + PR tree-optimization/107997 + * tree-ssa-loop-ivopts.c: Include cfganal.h. + (create_new_iv) : If ip_end_pos bb is non-empty and ends + with a stmt which ends bb, instead of adding iv update after it split + the latch edge and insert iterator into the new latch bb. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2022-12-08 Jakub Jelinek + + PR debug/106719 + * cfgbuild.c (find_bb_boundaries): If there are NOTEs in between + debug_insn (seen after flow_transfer_insn) and insn, move NOTEs + before all the DEBUG_INSNs and split after NOTEs. If there are + other insns like jump table data, clear debug_insn. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2022-11-28 Jakub Jelinek + + PR target/106875 + * config/i386/i386.opt (x_ix86_abi): Remove TargetSave. + (ix86_abi): Replace it with TargetVariable. + * config/i386/i386-options.c (ix86_function_specific_save, + ix86_function_specific_restore): Don't save and restore x_ix86_abi. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2022-11-24 Jakub Jelinek + + PR middle-end/107317 + * asan.c: Include diagnostic-core.h. + (asan_emit_stack_protection): Return NULL early if seen_error (). + + 2023-05-02 Richard Biener + + Backported from master: + 2023-02-17 Richard Biener + + PR tree-optimization/108821 + * tree-ssa-loop-im.c (sm_seq_valid_bb): We can also not + move volatile accesses. + + 2023-05-02 Richard Biener + + Backported from master: + 2023-03-27 Richard Biener + + PR lto/109263 + * lto-wrapper.c (run_gcc): Parse alternate debug options + as well, they always enable debug. + + 2023-05-02 Richard Biener + + Backported from master: + 2023-04-21 Richard Biener + + PR tree-optimization/109573 + * tree-vect-loop.c (vectorizable_live_operation): Allow + unhandled SSA copy as well. Demote assert to checking only. + + 2023-05-02 Richard Biener + + Backported from master: + 2023-04-25 Richard Biener + + PR rtl-optimization/109585 + * tree-ssa-alias.c (aliasing_component_refs_p): Fix typo. + + 2023-05-02 Richard Biener + + Backported from master: + 2023-04-14 Richard Biener + + PR tree-optimization/109502 + * tree-vect-stmts.c (vectorizable_assignment): Fix + check for conversion between mask and non-mask types. + + 2023-05-02 Richard Biener + + Backported from master: + 2023-04-12 Richard Biener + + PR tree-optimization/109473 + * tree-vect-loop.c (vect_create_epilog_for_reduction): + Convert scalar result to the computation type before performing + the reduction adjustment. + + 2023-05-02 Richard Biener + + Backported from master: + 2023-02-02 Richard Biener + + PR middle-end/108625 + * genmatch.c (expr::gen_transform): Also disallow resimplification + from pushing to lseq with force_leaf. + (dt_simplify::gen_1): Likewise. + + 2023-05-02 Richard Biener + + Backported from master: + 2022-12-13 Richard Biener + + PR tree-optimization/108076 + * tree-if-conv.c (if_convertible_loop_p_1): Reject blocks + with non-local or forced labels that we later remove + labels from. + + 2023-05-02 Richard Biener + + Backported from master: + 2022-12-22 Richard Biener + + PR tree-optimization/107451 + * tree-vect-stmts.c (vectorizable_load): Avoid loading + SLP group members from group numbers in excess of the + vectorization factor. + + 2023-05-02 Richard Biener + + Backported from master: + 2023-03-29 Richard Biener + + PR ipa/106124 + * dwarf2out.c (lookup_type_die): Reset TREE_ASM_WRITTEN + so we can re-create the DIE for the type if required. + + 2023-04-24 Haochen Gui + + PR target/108812 + * config/rs6000/vsx.md (vsx_sign_extend_qi_): Rename to... + (vsx_sign_extend_v16qi_): ... this. + (vsx_sign_extend_hi_): Rename to... + (vsx_sign_extend_v8hi_): ... this. + (vsx_sign_extend_si_v2di): Rename to... + (vsx_sign_extend_v4si_v2di): ... this. + (vsignextend_qi_): Remove. + (vsignextend_hi_): Remove. + (vsignextend_si_v2di): Remove. + (vsignextend_v2di_v1ti): Remove. + (*xxspltib__split): Replace gen_vsx_sign_extend_qi_v2di with + gen_vsx_sign_extend_v16qi_v2di and gen_vsx_sign_extend_qi_v4si + with gen_vsx_sign_extend_v16qi_v4si. + * config/rs6000/rs6000.md (split for DI constant generation): + Replace gen_vsx_sign_extend_qi_si with gen_vsx_sign_extend_v16qi_si. + (split for HSDI constant generation): Replace gen_vsx_sign_extend_qi_di + with gen_vsx_sign_extend_v16qi_di and gen_vsx_sign_extend_qi_si + with gen_vsx_sign_extend_v16qi_si. + * config/rs6000/rs6000-builtin.def (__builtin_altivec_vsignextsb2d): + Set ICODE to vsx_sign_extend_v16qi_v2di. + (__builtin_altivec_vsignextsb2w): Set ICODE to + vsx_sign_extend_v16qi_v4si. + (__builtin_altivec_visgnextsh2d): Set ICODE to + vsx_sign_extend_v8hi_v2di. + (__builtin_altivec_vsignextsh2w): Set ICODE to + vsx_sign_extend_v8hi_v4si. + (__builtin_altivec_vsignextsw2d): Set ICDE to + vsx_sign_extend_si_v2di. + (__builtin_altivec_vsignext): Set ICODE to vsx_sign_extend_v2di_v1ti. + + 2023-04-18 Philipp Tomsich + + Backported from master: + 2023-01-31 Philipp Tomsich + + PR target/108589 + * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Check + REG_P on SET_DEST. + + 2023-04-17 Philipp Tomsich + + Backported from master: + 2023-04-17 Philipp Tomsich + Di Zhao + + * config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNING_OPTION): + Add AARCH64_EXTRA_TUNE_NO_LDP_COMBINE. + * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): + Check for the above tuning option when processing loads. + + 2023-04-17 Richard Biener + + Backported from master: + 2022-05-05 Richard Biener + + PR tree-optimization/105484 + * gimple-isel.cc (gimple_expand_vec_set_expr): Clean EH, return + whether the CFG changed. + (gimple_expand_vec_exprs): When the CFG changed, clean it up. + + 2023-04-17 Richard Biener + + Backported from master: + 2022-02-09 Richard Biener + + PR middle-end/104464 + * gimple-isel.cc (gimple_expand_vec_cond_expr): Postpone + throwing check to after unproblematic replacement. + + 2023-04-17 Richard Biener + + Backported from master: + 2022-02-09 Richard Biener + + PR middle-end/104450 + * gimple-isel.cc: Pass cfun around. + (+gimple_expand_vec_cond_expr): Do not combine a throwing + comparison with the select. + + 2023-04-17 Richard Biener + + Backported from master: + 2023-04-13 Richard Biener + + PR tree-optimization/109491 + * tree-ssa-sccvn.c (expressions_equal_p): Restore the + NULL operands test. + + 2023-04-17 Kewen Lin + + Backported from master: + 2023-04-04 Kewen Lin + + PR target/108699 + * config/rs6000/altivec.md (*p9v_parity2): Rename to ... + (rs6000_vprtyb2): ... this. + * config/rs6000/rs6000-builtin.def (VPRTYBD): Replace parityv2di2 with + rs6000_vprtybv2di2. + (VPRTYBW): Replace parityv4si2 with rs6000_vprtybv4si2. + (VPRTYBQ): Replace parityv1ti2 with rs6000_vprtybv1ti2. + * config/rs6000/vector.md (parity2 with VEC_IP): Expand with + popcountv16qi2 and the corresponding rs6000_vprtyb2. + + 2023-04-17 Kewen Lin + + Backported from master: + 2023-04-04 Kewen Lin + + PR target/108807 + * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9): Fix gen + function for permutation control vector by considering big endianness. + + 2023-04-13 Philipp Tomsich + + Backported from master: + 2023-03-27 Philipp Tomsich + Jiangning Liu + Manolis Tsamis + + * config/aarch64/aarch64.c: Update vector costs for ampere1. + + 2023-04-11 Michael Meissner + + PR target/109067 + * config/rs6000/rs6000.c (create_complex_muldiv): Delete. + (init_float128_ieee): Delete code to switch complex multiply and divide + for long double. Backport from master, 3/20/2023. + (complex_multiply_builtin_code): New helper function. + (complex_divide_builtin_code): Likewise. + (rs6000_mangle_decl_assembler_name): Add support for mangling the name + of complex 128-bit multiply and divide built-in functions. + + 2023-03-28 Eric Botcazou + + PR target/109140 + * config/sparc/sparc.c (sparc_expand_vcond): Call signed_condition + on operand #3 to get the final condition code. Use std::swap. + * config/sparc/sparc.md (vcondv8qiv8qi): New VIS 4 expander. + (fucmp8_vis): Move around. + (fpcmpu_vis): Likewise. + (vcondu): New VIS 4 expander. + + 2023-03-09 Tobias Burnus + + Backported from master: + 2023-03-01 Tobias Burnus + + PR middle-end/108546 + * omp-low.c (lower_omp_target): Remove optional handling + on the receiver side, i.e. inside target (data), for + use_device_ptr. + + 2023-02-24 Sebastian Huber + + Backported from master: + 2023-02-24 Sebastian Huber + + * config/riscv/t-rtems: Keep only -mcmodel=medany 64-bit multilibs. + Add non-compact 32-bit multilibs. + + 2023-02-20 Alex Coplan + + Backported from master: + 2023-02-06 Alex Coplan + + PR target/104921 + * config/aarch64/aarch64-simd.md (aarch64_bfmlal_lanev4sf): + Use correct constraint for operand 3. + + 2023-02-15 Eric Botcazou + + PR target/90458 + * config/i386/i386.c (ix86_compute_frame_layout): Disable the + effects of -fstack-clash-protection for TARGET_STACK_PROBE. + (ix86_expand_prologue): Likewise. + + 2023-02-13 Kewen Lin + + Backported from master: + 2023-01-18 Kewen Lin + + PR target/108348 + * config/rs6000/rs6000.c (rs6000_opaque_type_invalid_use_p): Add the + support for invalid uses of MMA opaque type in function arguments. + + 2023-02-13 Kewen Lin + + Backported from master: + 2023-01-16 Kewen Lin + + PR target/108272 + * config/rs6000/rs6000.c (rs6000_opaque_type_invalid_use_p): Add the + support for invalid uses in inline asm, factor out the checking and + erroring to lambda function check_and_error_invalid_use. + + 2023-02-07 Richard Biener + + Backported from master: + 2022-09-02 Richard Biener + + PR tree-optimization/106809 + * tree-ssa-sccvn.c (dominaged_by_p_w_unex): Check we have + more than one successor before doing extra work. + + 2023-02-02 Martin Jambor + + Backported from master: + 2023-01-18 Martin Jambor + + PR ipa/107944 + * cgraph.c (cgraph_node::remove): Check whether nodes up the + lcone_of chain also do not need the body. + + 2023-01-26 Dimitar Dimitrov + + Backported from master: + 2023-01-22 Dimitar Dimitrov + + * config/pru/pru.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix value for QI + and HI input modes. + * config/pru/pru.md (clz): Fix generated code for QI and HI + input modes. + + 2023-01-25 Christophe Lyon + + Backported from master: + 2023-01-12 Christophe Lyon + Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Fix + comment. + (aarch64_layout_arg): Factorize warning conditions. + (aarch64_function_arg_boundary): Fix typo. + * function.c (currently_expanding_function_start): New variable. + (expand_function_start): Handle + currently_expanding_function_start. + * function.h (currently_expanding_function_start): Declare. + + 2023-01-24 Richard Biener + + Backported from master: + 2022-11-11 Richard Biener + Nikita Voronov + + PR tree-optimization/107554 + * tree-ssa-strlen.c (strlen_pass::count_nonzero_bytes): + Use unsigned HOST_WIDE_INT type for the strlen. + + 2023-01-24 Richard Biener + + Backported from master: + 2022-10-21 Richard Biener + + PR tree-optimization/107323 + * tree-loop-distribution.c (pg_unmark_merged_alias_ddrs): + New function. + (loop_distribution::break_alias_scc_partitions): Revert + postorder save/restore from the PR94125 fix. Instead + make sure to not ignore edges from SCCs we are going to + merge. + + 2023-01-24 Richard Biener + + Backported from master: + 2022-10-14 Richard Biener + + PR tree-optimization/107254 + * tree-vect-slp.c (vect_slp_analyze_node_operations_1): + For permutes also analyze live lanes. + (vect_schedule_slp_node): For permutes also code generate + live lane extracts. + + 2023-01-24 Richard Biener + + Backported from master: + 2022-10-11 Richard Biener + + PR tree-optimization/107212 + * tree-vect-loop.c (vectorizable_reduction): Make sure to + set STMT_VINFO_REDUC_DEF for all live lanes in a SLP + reduction. + (vectorizable_live_operation): Do not pun to the SLP + node representative for reduction epilogue generation. + + 2023-01-24 Sergei Trofimovich + + Backported from master: + 2022-08-16 Sergei Trofimovich + + PR driver/106624 + * gcc.c (driver::detect_jobserver): Allocate storage xputenv() + argument using xstrdup(). + + 2023-01-16 Alex Coplan + + Backported from master: + 2022-12-01 Alex Coplan + + * varasm.c (assemble_variable): Fix type confusion bug when + checking for ".vtable_map_vars" section. + + 2023-01-11 Eric Botcazou + + PR tree-optimization/108199 + * tree-sra.c (sra_modify_expr): Deal with reverse storage order + for bit-field references. + + 2023-01-10 Stam Markianos-Wright + + Backported from master: + 2022-12-30 Stam Markianos-Wright + + PR target/107714 + * config/arm/arm-protos.h (mve_struct_mem_operand): New protoype. + * config/arm/arm.c (mve_struct_mem_operand): New function. + * config/arm/constraints.md (Ug): New constraint. + * config/arm/mve.md (mve_vst4q): Change constraint. + (mve_vst2q): Likewise. + (mve_vld4q): Likewise. + (mve_vld2q): Likewise. + * config/arm/predicates.md (mve_struct_operand): New predicate. + + 2023-01-05 Kewen Lin + + PR target/106736 + * config/rs6000/mma.md (define_expand movoo): Call function + rs6000_opaque_type_invalid_use_p to check and emit error message for + the invalid use of opaque type. + (define_expand movxo): Likewise. + * config/rs6000/rs6000-protos.h + (rs6000_opaque_type_invalid_use_p): New function declaration. + (currently_expanding_gimple_stmt): New extern declaration. + * config/rs6000/rs6000.c (rs6000_opaque_type_invalid_use_p): New + function. + + 2022-12-22 Martin Liska + + Backported from master: + 2022-08-10 Martin Liska + + * opts-jobserver.h: Add one member. + * opts-common.c (jobserver_info::jobserver_info): Parse FIFO + format of --jobserver-auth. + + 2022-12-22 Martin Liska + + Backported from master: + 2022-08-10 Martin Liska + + * gcc.c (driver::detect_jobserver): Remove and move to + jobserver.h. + * lto-wrapper.c (jobserver_active_p): Likewise. + (run_gcc): Likewise. + * opts-jobserver.h: New file. + * opts-common.c (jobserver_info::jobserver_info): New function. + + 2022-12-15 Sebastian Pop + + PR target/98776 + * config/aarch64/aarch64-protos.h (aarch64_output_patchable_area): + Declared. + * config/aarch64/aarch64.c (aarch64_print_patchable_function_entry): + Emit an UNSPECV_PATCHABLE_AREA pseudo instruction. + (aarch64_output_patchable_area): New. + * config/aarch64/aarch64.md (UNSPECV_PATCHABLE_AREA): New. + (patchable_area): Define. + + 2022-12-12 Richard Biener + + Backported from master: + 2022-10-06 Richard Biener + + PR tree-optimization/107107 + * tree-ssa-sccvn.c (visit_reference_op_store): Do not + affect value-numbering when doing the tail merging + MODIFY_EXPR lookup. + + 2022-12-01 liuhongt + + PR target/107863 + * config/i386/i386-expand.c (ix86_expand_vec_set_builtin): + Convert op1 to target mode whenever mode mismatch. + + 2022-11-30 John David Anglin + + * config/pa/pa.md (addvdi3): Force operand 2 to a register. + Remove "addi,tsv,*" instruction from unamed pattern. + (subvdi3): Force operand 1 to a register. + Remove "subi,tsv" instruction from from unamed pattern. + + 2022-11-29 Max Filippov + + Backported from master: + 2022-11-08 Max Filippov + + PR rtl-optimization/107482 + * ira-color.c (assign_hard_reg): Only call + update_costs_from_copies when retry_p is false. + + 2022-11-25 Eric Botcazou + + * range-op.cc (operator_bitwise_xor::op1_range): Fix thinko. + + 2022-11-25 Eric Botcazou + + * tree-loop-distribution.c (loop_distribution::classify_builtin_ldst): + Bail out if source and destination do not have the same storage order. + + 2022-11-21 Jakub Jelinek + + Backported from master: + 2022-11-21 Jakub Jelinek + + PR target/107748 + * config/i386/smmintrin.h (_mm_extract_ps): Uglify names of local + variables and union members. + + 2022-11-21 Jakub Jelinek + + Backported from master: + 2022-11-20 Jakub Jelinek + + PR target/107183 + * reg-stack.c (next_flags_user): Add DEBUG_SEEN argument. + If >= 0 and a DEBUG_INSN would be otherwise returned, set + DEBUG_SEEN to 1 and ignore it. + (swap_rtx_condition): Add DEBUG_SEEN argument. In >= 0 + mode only set DEBUG_SEEN to 1 if problematic DEBUG_ISNSs + were seen and revert all changes on success in that case. + Don't try to recog_memoized DEBUG_INSNs. + (compare_for_stack_reg): Adjust swap_rtx_condition caller. + If it returns true and debug_seen is 1, call swap_rtx_condition + again with debug_seen -1. + + 2022-11-19 Thomas Schwinge + + Backported from master: + 2022-11-19 Thomas Schwinge + + * config/nvptx/nvptx.h (STARTFILE_SPEC): Fix 'crt0.o' for + '-mmainkernel'. + + 2022-11-16 Philipp Tomsich + + Backported from master: + 2022-11-14 Philipp Tomsich + + * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add ampere1a. + * config/aarch64/aarch64-cost-tables.h: Add ampere1a_extra_costs. + * config/aarch64/aarch64-fusion-pairs.def (AARCH64_FUSION_PAIR): + Define a new fusion pair for A+B+1/A-B-1 (i.e., add/subtract two + registers and then +1/-1). + * config/aarch64/aarch64-tune.md: Regenerate. + * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Implement + idiom-matcher for the new fusion pair. + * doc/invoke.texi: Add ampere1a. + + 2022-11-08 H.J. Lu + + Backported from master: + 2022-10-25 H.J. Lu + + PR target/107304 + * expr.c (get_inner_reference): Always use TYPE_MODE for vector + field with vector raw mode. + + 2022-11-05 Jonathan Wakely + + Backported from master: + 2022-11-05 Jonathan Wakely + + PR c/41041 + * doc/cppopts.texi: Document -fwide-exec-charset defaults + correctly. + + 2022-11-04 Eric Botcazou + + * fold-const.c (operand_compare::operand_equal_p) : + Do not take into account operand 2. + (operand_compare::hash_operand) : Likewise. + + 2022-11-04 Jakub Jelinek + + Backported from master: + 2022-09-24 Jakub Jelinek + + PR c/107001 + * omp-low.c (lower_omp_taskgroup): Don't add GOMP_RETURN statement + at the end. + * omp-expand.c (build_omp_regions_1): Clarify GF_OMP_TARGET_KIND_DATA + is not stand-alone directive. For GIMPLE_OMP_TASKGROUP, also don't + update parent. + (omp_make_gimple_edges) : Reset + cur_region back after new_omp_region. + + 2022-11-04 Jakub Jelinek + + Backported from master: + 2022-08-24 Jakub Jelinek + + PR target/106721 + * config/i386/sse.md + (avx512er_vmrcp28): Fix typo, + mask_opernad3 -> mask_operand3. + + 2022-11-04 Jakub Jelinek + + Backported from master: + 2022-07-27 Jakub Jelinek + + PR debug/106261 + * cgraphunit.c (cgraph_node::assemble_thunks_and_aliases): Don't + output asm thunks for -dx. + + 2022-11-04 Jakub Jelinek + + Backported from master: + 2022-07-01 Jakub Jelinek + + PR middle-end/106144 + * wide-int.cc (wi::shifted_mask): If end >= prec, return right after + emitting element for shift or if shift is 0 first element after start. + (wide_int_cc_tests): Add tests for equivalency of wi::mask and + wi::shifted_mask with 0 start. + + 2022-11-04 Jakub Jelinek + + Backported from master: + 2022-06-21 Jakub Jelinek + + PR rtl-optimization/106032 + * ifcvt.c (noce_try_sign_mask): Punt if !t_unconditional, and + t may_trap_or_fault_p, even if it is cheap. + + 2022-11-04 Jakub Jelinek + + Backported from master: + 2022-06-21 Jakub Jelinek + + PR middle-end/106030 + * expr.c (expand_cond_expr_using_cmove): Pass NULL_RTX instead of + temp to expand_operands if mode has been promoted. + + 2022-10-27 Torbjörn SVENSSON + + Backported from master: + 2022-10-27 Torbjörn SVENSSON + Yvan ROUX + + * ira.c: Resize array after reg number increased. + + 2022-10-26 Philipp Tomsich + + Backported from master: + 2022-10-06 Philipp Tomsich + + * config/aarch64/aarch64-cores.def (AARCH64_CORE): Update + Ampere-1 core entry. + + 2022-10-26 Philipp Tomsich + + Backported from master: + 2022-10-06 Philipp Tomsich + + * config/aarch64/driver-aarch64.c (readline): Fix off-by-one. + + 2022-10-25 Stefan Schulze Frielinghaus + + Backported from master: + 2022-10-19 Stefan Schulze Frielinghaus + + PR target/106355 + * config/s390/s390.c (s390_call_saved_register_used): For a + parameter with BLKmode fix determining number of consecutive + registers. + + 2022-10-25 Martin Liska + + Backported from master: + 2022-10-25 Martin Liska + + PR target/107364 + * common/config/i386/i386-cpuinfo.h (enum processor_vendor): + Fix pedantic warning. + + 2022-10-25 Martin Liska + + Backported from master: + 2022-10-24 Martin Liska + + PR target/107364 + * common/config/i386/i386-cpuinfo.h (enum processor_vendor): + Reorder enum values as BUILTIN_VENDOR_MAX should not point + in the middle of the valid enum values. + + 2022-10-20 Richard Sandiford + + Backported from master: + 2022-10-20 Richard Sandiford + + * config/aarch64/aarch64-sve.md (*aarch64_brk_cc): Remove + merging alternative. + (*aarch64_brk_ptest): Likewise. + + 2022-10-20 Richard Sandiford + + Backported from master: + 2022-10-20 Richard Sandiford + + * config/aarch64/iterators.md (SVE_BRKP): New iterator. + * config/aarch64/aarch64-sve.md (*aarch64_brkn_cc): New pattern. + (*aarch64_brkn_ptest): Likewise. + (*aarch64_brk_cc): Restrict to SVE_BRKP. + (*aarch64_brk_ptest): Likewise. + + 2022-10-20 Richard Sandiford + + * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_3): Add + AARCH64_FL_RCPC. + (AARCH64_ISA_RCPC): New macro. + * config/aarch64/aarch64-cores.def (thunderx3t110, zeus, neoverse-v1) + (neoverse-512tvb, saphira): Remove RCPC from these Armv8.3-A+ cores. + * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define + __ARM_FEATURE_RCPC when appropriate. + + 2022-10-19 Kewen Lin + + Backported from master: + 2022-09-26 Kewen Lin + + PR target/96072 + * config/rs6000/rs6000-logue.c (rs6000_emit_epilogue): Update the + condition for adding REG_CFA_DEF_CFA reg note with + frame_pointer_needed_indeed. + + 2022-10-17 Pat Haugen + + PR target/99685 + * config/rs6000/rs6000-call.c (rs6000_function_arg_advance_1): Bump + register count when not splitting IEEE 128-bit Complex. + + 2022-10-17 Richard Biener + + Backported from master: + 2022-09-14 Richard Biener + + PR tree-optimization/106934 + * tree-ssa.c (non_rewritable_mem_ref_base): Avoid BIT_FIELD_REFs + of bitfields. + (maybe_rewrite_mem_ref_base): Likewise. + + 2022-10-17 Richard Biener + + Backported from master: + 2022-09-09 Richard Biener + + PR tree-optimization/106892 + * tree-predcom.c (ref_at_iteration): Do not associate the + constant part of the offset into the MEM_REF offset + operand, across a non-zero offset. + + 2022-10-17 Richard Biener + + Backported from master: + 2022-07-26 Richard Biener + + PR tree-optimization/106189 + * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): + Divide using offset_ints. + + 2022-10-14 Andre Vieira + + Backported from master: + 2022-07-25 Andre Vieira + + * config/aarch64/aarch64.md (rbit2): Rename this ... + (@aarch64_rbit): ... to this and change it in... + (ffs2,ctz2): ... here. + (@aarch64_rev16): New. + * config/aarch64/aarch64-builtins.c: (aarch64_builtins): + Define the following enum AARCH64_REV16, AARCH64_REV16L, + AARCH64_REV16LL, AARCH64_RBIT, AARCH64_RBITL, AARCH64_RBITLL. + (aarch64_init_data_intrinsics): New. + (aarch64_general_init_builtins): Add call to + aarch64_init_data_intrinsics. + (aarch64_expand_builtin_data_intrinsic): New. + (aarch64_general_expand_builtin): Add call to + aarch64_expand_builtin_data_intrinsic. + * config/aarch64/arm_acle.h (__clz, __clzl, __clzll, __cls, __clsl, + __clsll, __rbit, __rbitl, __rbitll, __rev, __revl, __revll, __rev16, + __rev16l, __rev16ll, __ror, __rorl, __rorll, __revsh): New. + + 2022-10-14 Eric Botcazou + + PR target/107248 + * config/sparc/sparc.c (sparc_expand_prologue): Emit a frame + blockage for leaf functions. + (sparc_flat_expand_prologue): Emit frame instead of full blockage. + (sparc_expand_epilogue): Emit a frame blockage for leaf functions. + (sparc_flat_expand_epilogue): Emit frame instead of full blockage. + + 2022-10-11 Richard Biener + + Backported from master: + 2022-08-10 Richard Biener + + PR lto/106540 + PR lto/106334 + * lto-streamer-in.c (lto_read_tree_1): Use lto_input_tree_1 + to input DECL_INITIAL, avoiding to commit drefs. + + 2022-10-11 Richard Biener + + Backported from master: + 2022-08-10 Richard Biener + + PR tree-optimization/106513 + * gimple-ssa-store-merging.c (do_shift_rotate): Use uint64_t + for head_marker. + + 2022-10-11 Richard Biener + + Backported from master: + 2022-07-19 Richard Biener + + PR middle-end/106331 + * builtins.c (get_memory_rtx): Compute alignment from + the original address and set MEM_OFFSET to unknown when + we create a MEM_EXPR from the base object of the address. + + 2022-10-11 Richard Biener + + Backported from master: + 2022-07-01 Richard Biener + + PR tree-optimization/106131 + * tree-ssa-sccvn.c (vn_reference_lookup_3): Force alias-set + zero when offsetting the read looking through an aggregate + copy. + + 2022-10-11 Richard Biener + + Backported from master: + 2022-06-29 Richard Biener + + PR tree-optimization/106112 + * tree-ssa-sccvn.c (valueized_wider_op): Properly extend + a constant operand according to its type. + + 2022-10-11 Richard Biener + + Backported from master: + 2022-06-20 Richard Biener + + PR middle-end/106027 + * fold-const.c (fold_to_nonsharp_ineq_using_bound): Use the + type of the prevailing comparison for the new comparison type. + (fold_binary_loc): Use proper types for the A < X && A + 1 > Y + to A < X && A >= Y folding. + + 2022-10-03 Sergei Trofimovich + + Backported from master: + 2022-10-03 Sergei Trofimovich + + PR target/107064 + * config/i386/t-i386: Add build-time dependencies against + i386-builtin-types.inc to i386-builtins.o, i386-expand.o, + i386-features.o. + + 2022-09-29 H.J. Lu + + Backported from master: + 2022-09-28 H.J. Lu + + PR target/107061 + * config/i386/predicates.md (encodekey128_operation): Check + XMM4-XMM6 as clobbered. + (encodekey256_operation): Likewise. + * config/i386/sse.md (encodekey128u32): Clobber XMM4-XMM6. + (encodekey256u32): Likewise. + + 2022-09-28 Kyrylo Tkachov + + * config/aarch64/aarch64-cores.def (neoverse-v2): New entry. + * config/aarch64/aarch64-tune.md: Regenerate. + * doc/invoke.texi (AArch64 Options): Document neoverse-v2. + + 2022-09-21 Richard Sandiford + + Backported from master: + 2022-09-20 Richard Sandiford + + PR target/106491 + * config/aarch64/aarch64-sve-builtins.cc (scalar_types) + (acle_vector_types, acle_svpattern, acle_svprfop): Add GTY + markup to (new) extern declarations instead of to the main + definition. + + 2022-09-14 Tom de Vries + + Backported from master: + 2022-02-01 Tom de Vries + + * config/nvptx/nvptx.c (nvptx_single): Use nvptx_uniform_warp_check. + * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add + UNSPECV_UNIFORM_WARP_CHECK. + (define_insn "nvptx_uniform_warp_check"): New define_insn. + + 2022-09-14 Tom de Vries + + Backported from master: + 2022-02-01 Tom de Vries + + * config/nvptx/nvptx.c (nvptx_single): Use nvptx_warpsync. + * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add + UNSPECV_WARPSYNC. + (define_insn "nvptx_warpsync"): New define_insn. + + 2022-09-14 Thomas Schwinge + + * config/nvptx/nvptx.h (TARGET_PTX_6_0): '#define' to 'false'. + + 2022-09-12 Peter Bergner + + Backported from master: + 2022-09-01 Peter Bergner + + PR target/101322 + * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): + Enforce the use of a valid MMA pointer type. + + 2022-09-08 Sebastian Huber + + * config/rs6000/rtems.h (CPP_OS_DEFAULT_SPEC): Define __PPC_VRSAVE__ if + -mvrsave is present. + * config/rs6000/t-rtems: Add -mvrsave multilib variants for + -mcpu=e6500. + + 2022-09-02 Richard Earnshaw + + Backported from master: + 2022-08-03 Richard Earnshaw + + PR rtl-optimization/106187 + * alias.h (mems_same_for_tbaa_p): Declare. + * alias.c (mems_same_for_tbaa_p): New function. + * dse.c (record_store): Use it instead of open-coding + alias check. + * cselib.h (cselib_redundant_set_p): Declare. + * cselib.c: Include alias.h + (cselib_redundant_set_p): New function. + * cfgcleanup.c: (mark_effect): Use cselib_redundant_set_p instead + of rtx_equal_for_cselib_p. + * postreload.c (reload_cse_simplify): Use cselib_redundant_set_p. + (reload_cse_noop_set_p): Delete. + + 2022-09-02 Richard Earnshaw + + Backported from master: + 2022-05-13 Richard Earnshaw + + PR target/105463 + * config/arm/mve.md (*movmisalign_mve_store): Use + mve_memory_operand. + (*movmisalign_mve_load): Likewise. + * config/arm/vec-common.md (movmisalign): Convert to generator + form... + (@movmisalign): ... thus. Use generic predicates and then + rework operands if they are not valid. For MVE rework to a + narrower element size if the alignment is not high enough. + + 2022-08-30 Peter Bergner + + Backported from master: + 2022-08-28 Peter Bergner + + PR target/106017 + * config/rs6000/rs6000.c (rs6000_invalid_conversion): Remove handling + of MMA pointer conversions. + + 2022-08-24 Kewen.Lin + + Backported from master: + 2022-08-16 Kewen.Lin + + PR target/103353 + * config/rs6000/mma.md (define_expand movoo): Move TARGET_MMA condition + check to preparation statements and add handlings for !TARGET_MMA. + (define_expand movxo): Likewise. + + 2022-08-17 Tobias Burnus + + Backported from master: + 2022-08-09 Tobias Burnus + + PR middle-end/106492 + * omp-low.c (lower_rec_input_clauses): Add missing folding + to data type of linear-clause list item. + + 2022-08-16 Segher Boessenkool + + Backported from master: + 2022-04-21 Segher Boessenkool + + PR target/103197 + PR target/102146 + * config/rs6000/rs6000.md (zero_extendqi2 for EXTQI): Disparage + the "Z" alternatives in {l,st}{f,xs}iwzx. + (zero_extendhi2 for EXTHI): Ditto. + (zero_extendsi2 for EXTSI): Ditto. + (*movsi_internal1): Ditto. + (*mov_internal1 for QHI): Ditto. + (movsd_hardfloat): Ditto. + + 2022-08-12 Peter Bergner + + Backported from master: + 2022-07-26 Peter Bergner + + PR c/106016 + * expr.c (count_type_elements): Handle OPAQUE_TYPE. + + 2022-08-08 Michael Meissner + + * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove code + setting -mblock-ops-vector-pair. Patch back ported from trunk, August + 3rd, 2022. + + 2022-08-02 Peter Bergner + + Backported from master: + 2022-07-25 Peter Bergner + Kewen Lin + + PR testsuite/106345 + * config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Adjust -mdejagnu-cpu + to filter out all -mtune options. + + 2022-08-02 Kewen Lin + + Backported from master: + 2022-07-26 Kewen Lin + + PR target/106091 + * config/rs6000/rs6000-p8swap.c (replace_swapped_aligned_store): Copy + REG_EH_REGION when replacing one store insn having it. + (replace_swapped_aligned_load): Likewise. + + 2022-07-27 Maciej W. Rozycki + + Backported from master: + 2022-07-27 Maciej W. Rozycki + + * config/riscv/riscv.md (stack_protect_set_): Remove + duplicate backslashes. + + 2022-07-25 Sebastian Huber + + Backported from master: + 2022-07-25 Sebastian Huber + + * config/rs6000/rtems.h (CPLUSPLUS_CPP_SPEC): Undef. + + 2022-07-22 Richard Biener + + Backported from master: + 2022-05-17 Richard Biener + + PR tree-optimization/105618 + * tree-ssa-sink.c (statement_sink_location): For virtual + PHI uses ignore those defining the used virtual operand. + + 2022-07-22 Richard Biener + + Backported from master: + 2021-11-24 Richard Biener + + PR middle-end/103193 + * match.pd: Avoid canonicalizing (le/ge @0 @0) to (eq @0 @0) + with NaNs and -ftrapping-math. + + 2022-07-22 Richard Biener + + Backported from master: + 2022-05-04 Richard Biener + + PR tree-optimization/103116 + * tree-vect-stmts.c (get_group_load_store_type): Handle the + case we need peeling for gaps even though GROUP_GAP is zero. + + 2022-07-21 Surya Kumari Jangala + + Backported from master: + 2022-06-14 Surya Kumari Jangala + + PR rtl-optimization/105041 + * regrename.c (check_new_reg_p): Use nregs value from du chain. + + 2022-07-14 Michael Meissner + + * config/rs6000/rs6000.c (rs6000_option_override_internal): Do + not generate block copies with vector pair instructions if we are + tuning for power10. Back port from master branch. + + 2022-07-12 Martin Jambor + + Backported from master: + 2022-07-04 Martin Jambor + + PR tree-optimization/105860 + * tree-sra.c (build_reconstructed_reference): Start expr + traversal only just below the outermost union. + + 2022-07-04 Richard Sandiford + + Backported from master: + 2022-03-21 Richard Sandiford + + PR middle-end/104869 + * rtl-ssa/accesses.h (clobber_group::prev_clobber): Declare. + (clobber_group::next_clobber): Likewise. + (def_lookup::prev_def): Rename to... + (def_lookup::last_def_of_prev_group): ...this. + (def_lookup::next_def): Rename to... + (def_lookup::first_def_of_next_group): ...this. + (def_lookup::matching_or_prev_def): Rename to... + (def_lookup::matching_set_or_last_def_of_prev_group): ...this. + (def_lookup::matching_or_next_def): Rename to... + (def_lookup::matching_set_or_first_def_of_next_group): ...this. + (def_lookup::prev_def): New function, taking the lookup insn as + argument. + (def_lookup::next_def): Likewise. + * rtl-ssa/member-fns.inl (def_lookup::prev_def): Rename to... + (def_lookup::last_def_of_prev_group): ...this. + (def_lookup::next_def): Rename to... + (def_lookup::first_def_of_next_group): ...this. + (def_lookup::matching_or_prev_def): Rename to... + (def_lookup::matching_set_or_last_def_of_prev_group): ...this. + (def_lookup::matching_or_next_def): Rename to... + (def_lookup::matching_set_or_first_def_of_next_group): ...this. + * rtl-ssa/movement.h (restrict_movement_for_dead_range): Update after + above renaming. + * rtl-ssa/accesses.cc (clobber_group::prev_clobber): New function. + (clobber_group::next_clobber): Likewise. + (def_lookup::prev_def): Likewise. + (def_lookup::next_def): Likewise. + (function_info::make_use_available): Pass the lookup insn to + def_lookup::prev_def and def_lookup::next_def. + + 2022-06-24 Iain Buclaw + + Backported from master: + 2022-06-24 Iain Buclaw + + * config/tilepro/gen-mul-tables.cc (tilegx_emit): Adjust loop + condition to avoid overflow. + + 2022-06-23 Martin Liska + + Backported from master: + 2022-06-23 Martin Liska + + PR ipa/105600 + * ipa-icf.c (sem_item_optimizer::filter_removed_items): + Skip variables with body_removed. + + 2022-06-20 Uros Bizjak + + Backported from master: + 2022-06-17 UroÅ¡ Bizjak + + PR target/105209 + * config/alpha/alpha-protos.h (alpha_store_data_bypass_p): New. + * config/alpha/alpha.c (alpha_store_data_bypass_p): New function. + (alpha_store_data_bypass_p_1): Ditto. + * config/alpha/ev4.md: Use alpha_store_data_bypass_p instead + of generic store_data_bypass_p. + (ev4_ist_c): Remove insn reservation. + + 2022-06-20 Segher Boessenkool + + Backported from master: + 2022-03-12 Segher Boessenkool + + PR target/104829 + * config/rs6000/rs6000.c (rs6000_machine_from_flags): Don't output + "ppc" and "ppc64" based on rs6000_cpu. + + 2022-06-20 Segher Boessenkool + + Backported from master: + 2022-03-04 Segher Boessenkool + + * config/rs6000/rs6000.c (rs6000_machine_from_flags): Restructure a + bit. Handle most older CPUs. + + 2022-06-20 Uros Bizjak + + Backported from master: + 2022-06-17 UroÅ¡ Bizjak + + PR target/105970 + * config/i386/i386.c (ix86_function_arg): Assert that + the mode of pointer argumet is equal to ptr_mode, not Pmode. + + 2022-06-20 Jakub Jelinek + + Backported from master: + 2022-06-18 Jakub Jelinek + + PR middle-end/105998 + * varasm.c (narrowing_initializer_constant_valid_p): Check + SCALAR_INT_MODE_P instead of INTEGRAL_MODE_P, also break on + ! INTEGRAL_TYPE_P and do the same check also on op{0,1}'s type. + + 2022-06-20 Jan Hubicka + + Backported from master: + 2022-06-14 Jan Hubicka + + PR ipa/105739 + * ipa-prop.c (ipa_load_from_parm_agg): Punt on volatile loads. + + 2022-06-20 Jakub Jelinek + + Backported from master: + 2022-05-27 Jakub Jelinek + + PR sanitizer/105729 + * fold-const.c (fold_unary_loc): Don't optimize (X &) ((Y *) z + w) + to (X &) z + w if -fsanitize=null during GENERIC folding. + + 2022-06-16 Richard Earnshaw + + Backported from master: + 2022-06-15 Richard Earnshaw + + PR target/105981 + * config/arm/arm.c (gen_cpymem_ldrd_strd): Rename low_reg and hi_reg + to first_reg and second_reg respectively. Initialize them correctly + when generating big-endian code. + + 2022-06-15 Iain Buclaw + + Backported from master: + 2021-12-01 Iain Buclaw + + * common.opt (static-libphobos): Add option. + * config/darwin.h (LINK_SPEC): Substitute -lgphobos with libgphobos.a + when linking statically. + * gcc.c (driver_handle_option): Set -static-libphobos as always valid. + + 2022-06-15 Richard Biener + + Backported from master: + 2022-05-27 Richard Biener + + PR tree-optimization/105726 + * gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset): + Constrain array-of-flexarray case more. + + 2022-06-14 Vladimir N. Makarov + + PR rtl-optimization/104637 + * lra-assigns.c (lra_split_hard_reg_for): Split hard regs as many + as possible on one subpass. + + 2022-06-14 H.J. Lu + + Backported from master: + 2022-06-13 H.J. Lu + + * common/config/i386/cpuinfo.h (get_available_features): Require + AVX for F16C and VAES. + + 2022-06-08 Max Filippov + + Backported from master: + 2022-06-08 Max Filippov + + PR target/105879 + * config/xtensa/xtensa.md (movdi): Rename 'first' and 'second' + to 'lowpart' and 'highpart' so that they match 'gen_lowpart' and + 'gen_highpart' bitwise semantics and fix order of highpart and + lowpart depending on target endianness. + + 2022-06-08 liuhongt + + PR target/105854 + * config/i386/sse.md (ssse3_palignrdi): Change alternative 2 + from Yv to Yw. + + 2022-06-02 Richard Biener + + Backported from master: + 2022-05-02 Richard Biener + + PR tree-optimization/105437 + * tree-vect-slp.c (vect_schedule_slp_node): Handle the + case where last_stmt alters control flow. + + 2022-05-26 Simon Cook + + Backported from master: + 2022-05-25 Simon Cook + + * config/riscv/arch-canonicalize: Only add mafd extension if + base was rv32/rv64g. + + 2022-05-26 Kito Cheng + + Backported from master: + 2022-05-09 Kito Cheng + + * config/riscv/arch-canonicalize: Handle g correctly. + + 2022-05-24 Qing Zhao + + Backported from master: + 2022-05-09 Qing Zhao + + PR target/101891 + * config/i386/i386.c (zero_call_used_regno_mode): use V2SImode + as a generic MMX mode instead of V4HImode. + (zero_all_mm_registers): Use SET to zero instead of MOV for + zeroing scratch registers. + (ix86_zero_call_used_regs): Likewise. + + 2022-05-23 Paul A. Clarke + + PR target/104257 + * config/rs6000/bmi2intrin.h: Uglify local variables. + * config/rs6000/emmintrin.h: Likewise. + * config/rs6000/mm_malloc.h: Likewise. + * config/rs6000/mmintrin.h: Likewise. + * config/rs6000/pmmintrin.h: Likewise. + * config/rs6000/smmintrin.h: Likewise. + * config/rs6000/tmmintrin.h: Likewise. + * config/rs6000/xmmintrin.h: Likewise. + + 2022-05-19 Michael Meissner + + Backported from master: + 2022-05-06 Michael Meissner + Segher Boessenkool + + PR target/102059 + * config/rs6000/rs6000.c (rs6000_can_inline_p): Ignore -mpower8-fusion + and -mpower10-fusion options for inlining purposes. + + 2022-05-19 Richard Biener + + Backported from master: + 2022-05-11 Richard Biener + + PR rtl-optimization/105559 + * cfgrtl.c (delete_insn_and_edges): Only perform search to BB_END + for non-debug insns. + + 2022-05-19 Richard Biener + + Backported from master: + 2022-04-29 Richard Biener + + PR tree-optimization/105431 + * tree-ssa-math-opts.c (powi_as_mults_1): Make n unsigned. + (powi_as_mults): Use absu_hwi. + (gimple_expand_builtin_powi): Remove now pointless n != -n + check. + + 2022-05-19 Richard Biener + + Backported from master: + 2022-04-25 Richard Biener + + PR tree-optimization/105368 + * tree-ssa-math-opts.c (powi_cost): Use absu_hwi. + + 2022-05-19 Richard Biener + + Backported from master: + 2022-04-20 Richard Biener + + PR tree-optimization/105312 + * gimple-isel.cc (gimple_expand_vec_cond_expr): Query both + VCOND and VCONDU for EQ and NE. + + 2022-05-19 Richard Biener + + Backported from master: + 2022-04-13 Richard Biener + + PR tree-optimization/105263 + * tree-ssa-reassoc.c (try_special_add_to_ops): Do not consume + negates in multiplication chains with DFP. + + 2022-05-19 Richard Biener + + Backported from master: + 2022-04-06 Richard Biener + + PR tree-optimization/105173 + * tree-ssa-reassoc.c (find_insert_point): Get extra + insert_before output argument and compute it. + (insert_stmt_before_use): Adjust. + (rewrite_expr_tree): Likewise. + + 2022-05-19 Richard Biener + + Backported from master: + 2022-04-06 Richard Biener + + PR tree-optimization/105163 + * tree-ssa-reassoc.c (repropagate_negates): Avoid propagating + negated abnormals. + + 2022-05-19 Richard Biener + + Backported from master: + 2022-04-06 Richard Biener + + PR tree-optimization/105148 + * tree-ssa-loop-ivopts.c (idx_record_use): Walk raw operands + 2 and 3 of ARRAY_REFs. + + 2022-05-19 Richard Biener + + Backported from master: + 2022-04-13 Richard Biener + + PR tree-optimization/105250 + * fold-const.c (fold_convertible_p): Revert + r12-7979-geaaf77dd85c333, instead check for size equality + of the vector types involved. + + 2022-05-19 Richard Biener + + Backported from master: + 2022-04-04 Richard Biener + + PR middle-end/105140 + * fold-const.c (fold_convertible_p): Allow a TYPE_P arg. + + 2022-05-19 Martin Jambor + + Backported from master: + 2022-04-29 Martin Jambor + + PR ipa/100413 + * cgraph.c (cgraph_node::remove): Release body of the node this + is clone_of if appropriate. + + 2022-05-16 Sebastian Pop + + PR target/105162 + * config/aarch64/aarch64-protos.h (atomic_ool_names): Increase dimension + of str array. + * config/aarch64/aarch64.c (aarch64_atomic_ool_func): Call + memmodel_from_int and handle MEMMODEL_SYNC_*. + (DEF0): Add __aarch64_*_sync functions. + + 2022-05-16 Jan Hubicka + + Backported from master: + 2021-11-10 Jan Hubicka + + * ipa-modref-tree.h (modref_tree::remap_params): Fix off-by-one error. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-05-10 Jakub Jelinek + + PR tree-optimization/105528 + * gimple-isel.cc (gimple_expand_vec_set_expr): After gsi_remove + set *gsi to gsi_for_stmt (ass_stmt). Fix up function comment. + + 2022-05-10 Eric Botcazou + + PR target/105292 + * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Return + true only for 8-byte vector modes. + + 2022-05-06 Jakub Jelinek + + Backported from master: + 2022-04-28 Jakub Jelinek + + PR target/105331 + * config/i386/i386.c (ix86_gimplify_va_arg): Mark va_arg_tmp + temporary TREE_ADDRESSABLE before trying to gimplify ADDR_EXPR + of it. + + 2022-05-06 Jakub Jelinek + + Backported from master: + 2022-04-27 Jakub Jelinek + + PR sanitizer/105396 + * asan.c (asan_redzone_buffer::emit_redzone_byte): Handle the case + where offset is bigger than off but smaller than m_prev_offset + 32 + bits by pushing one or more 0 bytes. Sink the + m_shadow_bytes.safe_push (value); flush_if_full (); statements from + all cases to the end of the function. + + 2022-05-06 Jakub Jelinek + + Backported from master: + 2022-04-22 Jakub Jelinek + + PR rtl-optimization/105333 + * rtlanal.c (replace_rtx): Use simplify_subreg or + simplify_unary_operation if CONST_SCALAR_INT_P rather than just + CONST_INT_P. + + 2022-04-27 Hongyu Wang + + Backported from master: + 2022-04-25 Hongyu Wang + + PR target/105339 + * config/i386/avx512fintrin.h (_mm512_scalef_round_pd): + Add parentheses for parameters and djust format. + (_mm512_mask_scalef_round_pd): Ditto. + (_mm512_maskz_scalef_round_pd): Ditto. + (_mm512_scalef_round_ps): Ditto. + (_mm512_mask_scalef_round_ps): Ditto. + (_mm512_maskz_scalef_round_ps): Ditto. + (_mm_scalef_round_sd): Use _mm_undefined_pd. + (_mm_scalef_round_ss): Use _mm_undefined_ps. + (_mm_mask_scalef_round_sd): New macro. + (_mm_mask_scalef_round_ss): Ditto. + (_mm_maskz_scalef_round_sd): Ditto. + (_mm_maskz_scalef_round_ss): Ditto. + + 2022-04-21 Jakub Jelinek + + Backported from master: + 2022-04-19 Jakub Jelinek + + PR target/105257 + * config/sparc/sparc.c (epilogue_renumber): If ORIGINAL_REGNO, + use gen_raw_REG instead of gen_rtx_REG and copy over also + ORIGINAL_REGNO. Use return 0; instead of /* fallthrough */. + + 2022-04-21 Jakub Jelinek + + Backported from master: + 2022-04-21 Jakub Jelinek + + PR debug/105203 + * emit-rtl.c (emit_copy_of_insn_after): Don't call mark_jump_label + on DEBUG_INSNs. + + 2022-04-21 Sergei Trofimovich + + Backported from master: + 2022-04-19 Sergei Trofimovich + + PR gcov-profile/105282 + * value-prof.c (stream_out_histogram_value): Allow negative counts + on HIST_TYPE_INDIR_CALL. + 2022-04-21 Release Manager * GCC 11.3.0 released. diff -Nrcpad gcc-11.3.0/gcc/DATESTAMP gcc-11.4.0/gcc/DATESTAMP *** gcc-11.3.0/gcc/DATESTAMP Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/DATESTAMP Mon May 29 08:46:28 2023 *************** *** 1 **** ! 20220421 --- 1 ---- ! 20230528 diff -Nrcpad gcc-11.3.0/gcc/ada/ChangeLog gcc-11.4.0/gcc/ada/ChangeLog *** gcc-11.3.0/gcc/ada/ChangeLog Thu Apr 21 07:59:16 2022 --- gcc-11.4.0/gcc/ada/ChangeLog Mon May 29 08:46:50 2023 *************** *** 1,3 **** --- 1,7 ---- + 2023-05-29 Release Manager + + * GCC 11.4.0 released. + 2022-04-21 Release Manager * GCC 11.3.0 released. diff -Nrcpad gcc-11.3.0/gcc/alias.c gcc-11.4.0/gcc/alias.c *** gcc-11.3.0/gcc/alias.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/alias.c Mon May 29 08:46:29 2023 *************** refs_same_for_tbaa_p (tree earlier, tree *** 389,394 **** --- 389,408 ---- || alias_set_subset_of (later_base_set, earlier_base_set)); } + /* Similar to refs_same_for_tbaa_p() but for use on MEM rtxs. */ + bool + mems_same_for_tbaa_p (rtx earlier, rtx later) + { + gcc_assert (MEM_P (earlier)); + gcc_assert (MEM_P (later)); + + return ((MEM_ALIAS_SET (earlier) == MEM_ALIAS_SET (later) + || alias_set_subset_of (MEM_ALIAS_SET (later), + MEM_ALIAS_SET (earlier))) + && (!MEM_EXPR (earlier) + || refs_same_for_tbaa_p (MEM_EXPR (earlier), MEM_EXPR (later)))); + } + /* Returns a pointer to the alias set entry for ALIAS_SET, if there is such an entry, or NULL otherwise. */ diff -Nrcpad gcc-11.3.0/gcc/alias.h gcc-11.4.0/gcc/alias.h *** gcc-11.3.0/gcc/alias.h Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/alias.h Mon May 29 08:46:29 2023 *************** tree reference_alias_ptr_type_1 (tree *) *** 40,45 **** --- 40,46 ---- bool alias_ptr_types_compatible_p (tree, tree); int compare_base_decls (tree, tree); bool refs_same_for_tbaa_p (tree, tree); + bool mems_same_for_tbaa_p (rtx, rtx); /* This alias set can be used to force a memory to conflict with all other memories, creating a barrier across which no memory reference diff -Nrcpad gcc-11.3.0/gcc/analyzer/ChangeLog gcc-11.4.0/gcc/analyzer/ChangeLog *** gcc-11.3.0/gcc/analyzer/ChangeLog Thu Apr 21 07:59:16 2022 --- gcc-11.4.0/gcc/analyzer/ChangeLog Mon May 29 08:46:50 2023 *************** *** 1,3 **** --- 1,24 ---- + 2023-05-29 Release Manager + + * GCC 11.4.0 released. + + 2022-04-28 David Malcolm + + PR analyzer/105365 + PR analyzer/105366 + * svalue.cc + (cmp_cst): Rename to... + (cmp_csts_same_type): ...this. Convert all recursive calls to + calls to... + (cmp_csts_and_types): ....this new function. + (svalue::cmp_ptr): Update for renaming of cmp_cst + + 2022-04-28 David Malcolm + + PR analyzer/105252 + * svalue.cc (cmp_cst): When comparing VECTOR_CSTs, compare the + types of the encoded elements before calling cmp_cst on them. + 2022-04-21 Release Manager * GCC 11.3.0 released. diff -Nrcpad gcc-11.3.0/gcc/analyzer/svalue.cc gcc-11.4.0/gcc/analyzer/svalue.cc *** gcc-11.3.0/gcc/analyzer/svalue.cc Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/analyzer/svalue.cc Mon May 29 08:46:29 2023 *************** along with GCC; see the file COPYING3. *** 59,64 **** --- 59,66 ---- namespace ana { + static int cmp_csts_and_types (const_tree cst1, const_tree cst2); + /* class svalue and its various subclasses. */ /* class svalue. */ *************** svalue::implicitly_live_p (const svalue_ *** 276,282 **** of the same type. */ static int ! cmp_cst (const_tree cst1, const_tree cst2) { gcc_assert (TREE_TYPE (cst1) == TREE_TYPE (cst2)); gcc_assert (TREE_CODE (cst1) == TREE_CODE (cst2)); --- 278,284 ---- of the same type. */ static int ! cmp_csts_same_type (const_tree cst1, const_tree cst2) { gcc_assert (TREE_TYPE (cst1) == TREE_TYPE (cst2)); gcc_assert (TREE_CODE (cst1) == TREE_CODE (cst2)); *************** cmp_cst (const_tree cst1, const_tree cst *** 295,303 **** TREE_REAL_CST_PTR (cst2), sizeof (real_value)); case COMPLEX_CST: ! if (int cmp_real = cmp_cst (TREE_REALPART (cst1), TREE_REALPART (cst2))) return cmp_real; ! return cmp_cst (TREE_IMAGPART (cst1), TREE_IMAGPART (cst2)); case VECTOR_CST: if (int cmp_log2_npatterns = ((int)VECTOR_CST_LOG2_NPATTERNS (cst1) --- 297,306 ---- TREE_REAL_CST_PTR (cst2), sizeof (real_value)); case COMPLEX_CST: ! if (int cmp_real = cmp_csts_and_types (TREE_REALPART (cst1), ! TREE_REALPART (cst2))) return cmp_real; ! return cmp_csts_and_types (TREE_IMAGPART (cst1), TREE_IMAGPART (cst2)); case VECTOR_CST: if (int cmp_log2_npatterns = ((int)VECTOR_CST_LOG2_NPATTERNS (cst1) *************** cmp_cst (const_tree cst1, const_tree cst *** 309,321 **** return cmp_nelts_per_pattern; unsigned encoded_nelts = vector_cst_encoded_nelts (cst1); for (unsigned i = 0; i < encoded_nelts; i++) ! if (int el_cmp = cmp_cst (VECTOR_CST_ENCODED_ELT (cst1, i), ! VECTOR_CST_ENCODED_ELT (cst2, i))) ! return el_cmp; return 0; } } /* Comparator for imposing a deterministic order on svalues. */ int --- 312,340 ---- return cmp_nelts_per_pattern; unsigned encoded_nelts = vector_cst_encoded_nelts (cst1); for (unsigned i = 0; i < encoded_nelts; i++) ! { ! const_tree elt1 = VECTOR_CST_ENCODED_ELT (cst1, i); ! const_tree elt2 = VECTOR_CST_ENCODED_ELT (cst2, i); ! if (int el_cmp = cmp_csts_and_types (elt1, elt2)) ! return el_cmp; ! } return 0; } } + /* Comparator for imposing a deterministic order on constants that might + not be of the same type. */ + + static int + cmp_csts_and_types (const_tree cst1, const_tree cst2) + { + int t1 = TYPE_UID (TREE_TYPE (cst1)); + int t2 = TYPE_UID (TREE_TYPE (cst2)); + if (int cmp_type = t1 - t2) + return cmp_type; + return cmp_csts_same_type (cst1, cst2); + } + /* Comparator for imposing a deterministic order on svalues. */ int *************** svalue::cmp_ptr (const svalue *sval1, co *** 347,353 **** const constant_svalue *constant_sval2 = (const constant_svalue *)sval2; const_tree cst1 = constant_sval1->get_constant (); const_tree cst2 = constant_sval2->get_constant (); ! return cmp_cst (cst1, cst2); } break; case SK_UNKNOWN: --- 366,372 ---- const constant_svalue *constant_sval2 = (const constant_svalue *)sval2; const_tree cst1 = constant_sval1->get_constant (); const_tree cst2 = constant_sval2->get_constant (); ! return cmp_csts_same_type (cst1, cst2); } break; case SK_UNKNOWN: diff -Nrcpad gcc-11.3.0/gcc/asan.c gcc-11.4.0/gcc/asan.c *** gcc-11.3.0/gcc/asan.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/asan.c Mon May 29 08:46:29 2023 *************** along with GCC; see the file COPYING3. *** 64,69 **** --- 64,70 ---- #include "tree-inline.h" #include "tree-ssa.h" #include "tree-eh.h" + #include "diagnostic-core.h" /* AddressSanitizer finds out-of-bounds and use-after-free bugs with <2x slowdown on average. *************** asan_redzone_buffer::emit_redzone_byte ( *** 1497,1506 **** HOST_WIDE_INT off = m_prev_offset + ASAN_SHADOW_GRANULARITY * m_shadow_bytes.length (); if (off == offset) { ! /* Consecutive shadow memory byte. */ ! m_shadow_bytes.safe_push (value); ! flush_if_full (); } else { --- 1498,1511 ---- HOST_WIDE_INT off = m_prev_offset + ASAN_SHADOW_GRANULARITY * m_shadow_bytes.length (); if (off == offset) + /* Consecutive shadow memory byte. */; + else if (offset < m_prev_offset + (HOST_WIDE_INT) (ASAN_SHADOW_GRANULARITY + * RZ_BUFFER_SIZE) + && !m_shadow_bytes.is_empty ()) { ! /* Shadow memory byte with a small gap. */ ! for (; off < offset; off += ASAN_SHADOW_GRANULARITY) ! m_shadow_bytes.safe_push (0); } else { *************** asan_redzone_buffer::emit_redzone_byte ( *** 1521,1529 **** m_shadow_mem = adjust_address (m_shadow_mem, VOIDmode, diff >> ASAN_SHADOW_SHIFT); m_prev_offset = offset; - m_shadow_bytes.safe_push (value); - flush_if_full (); } } /* Emit RTX emission of the content of the buffer. */ --- 1526,1534 ---- m_shadow_mem = adjust_address (m_shadow_mem, VOIDmode, diff >> ASAN_SHADOW_SHIFT); m_prev_offset = offset; } + m_shadow_bytes.safe_push (value); + flush_if_full (); } /* Emit RTX emission of the content of the buffer. */ *************** asan_emit_stack_protection (rtx base, rt *** 1801,1806 **** --- 1806,1816 ---- tree str_cst, decl, id; int use_after_return_class = -1; + /* Don't emit anything when doing error recovery, the assertions + might fail e.g. if a function had a frame offset overflow. */ + if (seen_error ()) + return NULL; + if (shadow_ptr_types[0] == NULL_TREE) asan_init_shadow_ptr_types (); diff -Nrcpad gcc-11.3.0/gcc/bb-reorder.c gcc-11.4.0/gcc/bb-reorder.c *** gcc-11.3.0/gcc/bb-reorder.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/bb-reorder.c Mon May 29 08:46:29 2023 *************** fix_up_fall_thru_edges (void) *** 1998,2003 **** --- 1998,2004 ---- becomes EDGE_CROSSING. */ fall_thru->flags &= ~EDGE_CROSSING; + unsigned old_count = EDGE_COUNT (cur_bb->succs); basic_block new_bb = force_nonfallthru (fall_thru); if (new_bb) *************** fix_up_fall_thru_edges (void) *** 2009,2015 **** gcc_assert (BB_PARTITION (new_bb) == BB_PARTITION (cur_bb)); ! single_succ_edge (new_bb)->flags |= EDGE_CROSSING; } else { --- 2010,2034 ---- gcc_assert (BB_PARTITION (new_bb) == BB_PARTITION (cur_bb)); ! edge e = single_succ_edge (new_bb); ! e->flags |= EDGE_CROSSING; ! if (EDGE_COUNT (cur_bb->succs) > old_count) ! { ! /* If asm goto has a crossing fallthrough edge ! and at least one of the labels to the same bb, ! force_nonfallthru can result in the fallthrough ! edge being redirected and a new edge added for the ! label or more labels to e->dest. As we've ! temporarily cleared EDGE_CROSSING flag on the ! fallthrough edge, we need to restore it again. ! See PR108596. */ ! rtx_insn *j = BB_END (cur_bb); ! gcc_checking_assert (JUMP_P (j) ! && asm_noperands (PATTERN (j))); ! edge e2 = find_edge (cur_bb, e->dest); ! if (e2) ! e2->flags |= EDGE_CROSSING; ! } } else { diff -Nrcpad gcc-11.3.0/gcc/brig/ChangeLog gcc-11.4.0/gcc/brig/ChangeLog *** gcc-11.3.0/gcc/brig/ChangeLog Thu Apr 21 07:59:16 2022 --- gcc-11.4.0/gcc/brig/ChangeLog Mon May 29 08:46:50 2023 *************** *** 1,3 **** --- 1,7 ---- + 2023-05-29 Release Manager + + * GCC 11.4.0 released. + 2022-04-21 Release Manager * GCC 11.3.0 released. diff -Nrcpad gcc-11.3.0/gcc/builtins.c gcc-11.4.0/gcc/builtins.c *** gcc-11.3.0/gcc/builtins.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/builtins.c Mon May 29 08:46:29 2023 *************** expand_builtin_prefetch (tree exp) *** 2110,2116 **** static rtx get_memory_rtx (tree exp, tree len) { ! tree orig_exp = exp; rtx addr, mem; /* When EXP is not resolved SAVE_EXPR, MEM_ATTRS can be still derived --- 2110,2116 ---- static rtx get_memory_rtx (tree exp, tree len) { ! tree orig_exp = exp, base; rtx addr, mem; /* When EXP is not resolved SAVE_EXPR, MEM_ATTRS can be still derived *************** get_memory_rtx (tree exp, tree len) *** 2141,2150 **** if (is_gimple_mem_ref_addr (TREE_OPERAND (exp, 0))) set_mem_attributes (mem, exp, 0); else if (TREE_CODE (TREE_OPERAND (exp, 0)) == ADDR_EXPR ! && (exp = get_base_address (TREE_OPERAND (TREE_OPERAND (exp, 0), ! 0)))) { ! exp = build_fold_addr_expr (exp); exp = fold_build2 (MEM_REF, build_array_type (char_type_node, build_range_type (sizetype, --- 2141,2151 ---- if (is_gimple_mem_ref_addr (TREE_OPERAND (exp, 0))) set_mem_attributes (mem, exp, 0); else if (TREE_CODE (TREE_OPERAND (exp, 0)) == ADDR_EXPR ! && (base = get_base_address (TREE_OPERAND (TREE_OPERAND (exp, 0), ! 0)))) { ! unsigned int align = get_pointer_alignment (TREE_OPERAND (exp, 0)); ! exp = build_fold_addr_expr (base); exp = fold_build2 (MEM_REF, build_array_type (char_type_node, build_range_type (sizetype, *************** get_memory_rtx (tree exp, tree len) *** 2152,2157 **** --- 2153,2162 ---- NULL)), exp, build_int_cst (ptr_type_node, 0)); set_mem_attributes (mem, exp, 0); + /* Since we stripped parts make sure the offset is unknown and the + alignment is computed from the original address. */ + clear_mem_offset (mem); + set_mem_align (mem, align); } set_mem_alias_set (mem, 0); return mem; diff -Nrcpad gcc-11.3.0/gcc/c/ChangeLog gcc-11.4.0/gcc/c/ChangeLog *** gcc-11.3.0/gcc/c/ChangeLog Thu Apr 21 07:59:16 2022 --- gcc-11.4.0/gcc/c/ChangeLog Mon May 29 08:46:50 2023 *************** *** 1,3 **** --- 1,35 ---- + 2023-05-29 Release Manager + + * GCC 11.4.0 released. + + 2022-11-04 Jakub Jelinek + + Backported from master: + 2022-10-24 Jakub Jelinek + + PR c++/107358 + * c-typeck.c (build_binary_op): Pass operands before excess precision + promotions to scalar_to_vector call. + + 2022-11-04 Jakub Jelinek + + Backported from master: + 2022-09-24 Jakub Jelinek + + PR c/106981 + * c-typeck.c (c_tree_equal): Only strip NON_LVALUE_EXPRs at the + start. For CONSTANT_CLASS_P or CASE_CONVERT: return false if t1 and + t2 have different types. + + 2022-08-02 Lewis Hyatt + + Backported from master: + 2022-07-10 Lewis Hyatt + + PR preprocessor/97498 + * c-parser.c (c_parser_pragma): Set input_location to the + location of the pragma, rather than the start of the line. + 2022-04-21 Release Manager * GCC 11.3.0 released. diff -Nrcpad gcc-11.3.0/gcc/c/c-parser.c gcc-11.4.0/gcc/c/c-parser.c *** gcc-11.3.0/gcc/c/c-parser.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/c/c-parser.c Mon May 29 08:46:29 2023 *************** c_parser_pragma (c_parser *parser, enum *** 12289,12294 **** --- 12289,12295 ---- unsigned int id; const char *construct = NULL; + input_location = c_parser_peek_token (parser)->location; id = c_parser_peek_token (parser)->pragma_kind; gcc_assert (id != PRAGMA_NONE); diff -Nrcpad gcc-11.3.0/gcc/c/c-typeck.c gcc-11.4.0/gcc/c/c-typeck.c *** gcc-11.3.0/gcc/c/c-typeck.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/c/c-typeck.c Mon May 29 08:46:29 2023 *************** build_binary_op (location_t location, en *** 11764,11771 **** if ((gnu_vector_type_p (type0) && code1 != VECTOR_TYPE) || (gnu_vector_type_p (type1) && code0 != VECTOR_TYPE)) { ! enum stv_conv convert_flag = scalar_to_vector (location, code, op0, op1, ! true); switch (convert_flag) { --- 11764,11771 ---- if ((gnu_vector_type_p (type0) && code1 != VECTOR_TYPE) || (gnu_vector_type_p (type1) && code0 != VECTOR_TYPE)) { ! enum stv_conv convert_flag = scalar_to_vector (location, code, orig_op0, ! orig_op1, true); switch (convert_flag) { *************** c_tree_equal (tree t1, tree t2) *** 15562,15575 **** if (!t1 || !t2) return false; ! for (code1 = TREE_CODE (t1); ! CONVERT_EXPR_CODE_P (code1) ! || code1 == NON_LVALUE_EXPR; code1 = TREE_CODE (t1)) t1 = TREE_OPERAND (t1, 0); ! for (code2 = TREE_CODE (t2); ! CONVERT_EXPR_CODE_P (code2) ! || code2 == NON_LVALUE_EXPR; code2 = TREE_CODE (t2)) t2 = TREE_OPERAND (t2, 0); --- 15562,15571 ---- if (!t1 || !t2) return false; ! for (code1 = TREE_CODE (t1); code1 == NON_LVALUE_EXPR; code1 = TREE_CODE (t1)) t1 = TREE_OPERAND (t1, 0); ! for (code2 = TREE_CODE (t2); code2 == NON_LVALUE_EXPR; code2 = TREE_CODE (t2)) t2 = TREE_OPERAND (t2, 0); *************** c_tree_equal (tree t1, tree t2) *** 15580,15585 **** --- 15576,15584 ---- if (code1 != code2) return false; + if (CONSTANT_CLASS_P (t1) && !comptypes (TREE_TYPE (t1), TREE_TYPE (t2))) + return false; + switch (code1) { case INTEGER_CST: *************** c_tree_equal (tree t1, tree t2) *** 15699,15704 **** --- 15698,15708 ---- return true; } + CASE_CONVERT: + if (!comptypes (TREE_TYPE (t1), TREE_TYPE (t2))) + return false; + break; + default: break; } diff -Nrcpad gcc-11.3.0/gcc/c-family/ChangeLog gcc-11.4.0/gcc/c-family/ChangeLog *** gcc-11.3.0/gcc/c-family/ChangeLog Thu Apr 21 07:59:16 2022 --- gcc-11.4.0/gcc/c-family/ChangeLog Mon May 29 08:46:50 2023 *************** *** 1,3 **** --- 1,65 ---- + 2023-05-29 Release Manager + + * GCC 11.4.0 released. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-03-17 Jakub Jelinek + + PR c/109151 + * c-ubsan.c (ubsan_instrument_division): Handle all scalar integral + types rather than just INTEGER_TYPE. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-03-04 Jakub Jelinek + + PR c/107465 + * c-warn.c (warn_for_sign_compare): Don't warn for unset bits + above innermost zero extension of BIT_NOT_EXPR result. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-03-04 Jakub Jelinek + + PR c/107465 + * c-warn.c (warn_for_sign_compare): If c_common_get_narrower + doesn't return a narrower result, use TYPE_UNSIGNED to set unsignedp0 + and unsignedp1. For the one BIT_NOT_EXPR case vs. one without, + only check for constant in the non-BIT_NOT_EXPR operand, use std::swap + to simplify the code, only warn if BIT_NOT_EXPR operand is extended + from narrower unsigned, fix up computation of mask for the constant + cases and for unsigned other operand case handle differently + BIT_NOT_EXPR result being sign vs. zero extended. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2022-11-23 Andrew Pinski + Jakub Jelinek + + PR c/107127 + * c-gimplify.c (c_genericize): Use walk_tree_without_duplicates + instead of walk_tree for c_genericize_control_r. + + 2023-04-22 Jason Merrill + + PR c++/107163 + * c-common.c (verify_tree): Don't use sequenced handling + for COMPONENT_REF. + + 2022-04-28 Patrick Palka + + Backported from master: + 2022-04-26 Patrick Palka + + PR c++/105304 + * c-common.c (verify_tree) [restart]: Move up to before the + NULL test. + 2022-04-21 Release Manager * GCC 11.3.0 released. diff -Nrcpad gcc-11.3.0/gcc/c-family/c-common.c gcc-11.4.0/gcc/c-family/c-common.c *** gcc-11.3.0/gcc/c-family/c-common.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/c-family/c-common.c Mon May 29 08:46:29 2023 *************** verify_tree (tree x, struct tlist **pbef *** 1854,1865 **** enum tree_code code; enum tree_code_class cl; /* X may be NULL if it is the operand of an empty statement expression ({ }). */ if (x == NULL) return; - restart: code = TREE_CODE (x); cl = TREE_CODE_CLASS (code); --- 1854,1865 ---- enum tree_code code; enum tree_code_class cl; + restart: /* X may be NULL if it is the operand of an empty statement expression ({ }). */ if (x == NULL) return; code = TREE_CODE (x); cl = TREE_CODE_CLASS (code); *************** verify_tree (tree x, struct tlist **pbef *** 2023,2034 **** case LSHIFT_EXPR: case RSHIFT_EXPR: - case COMPONENT_REF: case ARRAY_REF: if (cxx_dialect >= cxx17) goto sequenced_binary; goto do_default; default: do_default: /* For other expressions, simply recurse on their operands. --- 2023,2039 ---- case LSHIFT_EXPR: case RSHIFT_EXPR: case ARRAY_REF: if (cxx_dialect >= cxx17) goto sequenced_binary; goto do_default; + case COMPONENT_REF: + /* Treat as unary, the other operands aren't evaluated. */ + x = TREE_OPERAND (x, 0); + writer = 0; + goto restart; + default: do_default: /* For other expressions, simply recurse on their operands. diff -Nrcpad gcc-11.3.0/gcc/c-family/c-gimplify.c gcc-11.4.0/gcc/c-family/c-gimplify.c *** gcc-11.3.0/gcc/c-family/c-gimplify.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/c-family/c-gimplify.c Mon May 29 08:46:29 2023 *************** c_genericize (tree fndecl) *** 570,577 **** bc_state_t save_state; push_cfun (DECL_STRUCT_FUNCTION (fndecl)); save_bc_state (&save_state); ! walk_tree (&DECL_SAVED_TREE (fndecl), c_genericize_control_r, ! NULL, NULL); restore_bc_state (&save_state); pop_cfun (); } --- 570,577 ---- bc_state_t save_state; push_cfun (DECL_STRUCT_FUNCTION (fndecl)); save_bc_state (&save_state); ! walk_tree_without_duplicates (&DECL_SAVED_TREE (fndecl), ! c_genericize_control_r, NULL); restore_bc_state (&save_state); pop_cfun (); } diff -Nrcpad gcc-11.3.0/gcc/c-family/c-ubsan.c gcc-11.4.0/gcc/c-family/c-ubsan.c *** gcc-11.3.0/gcc/c-family/c-ubsan.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/c-family/c-ubsan.c Mon May 29 08:46:29 2023 *************** ubsan_instrument_division (location_t lo *** 53,59 **** op0 = unshare_expr (op0); op1 = unshare_expr (op1); ! if (TREE_CODE (type) == INTEGER_TYPE && sanitize_flags_p (SANITIZE_DIVIDE)) t = fold_build2 (EQ_EXPR, boolean_type_node, op1, build_int_cst (type, 0)); --- 53,59 ---- op0 = unshare_expr (op0); op1 = unshare_expr (op1); ! if (INTEGRAL_TYPE_P (type) && sanitize_flags_p (SANITIZE_DIVIDE)) t = fold_build2 (EQ_EXPR, boolean_type_node, op1, build_int_cst (type, 0)); *************** ubsan_instrument_division (location_t lo *** 68,74 **** return NULL_TREE; /* We check INT_MIN / -1 only for signed types. */ ! if (TREE_CODE (type) == INTEGER_TYPE && sanitize_flags_p (SANITIZE_DIVIDE) && !TYPE_UNSIGNED (type)) { --- 68,74 ---- return NULL_TREE; /* We check INT_MIN / -1 only for signed types. */ ! if (INTEGRAL_TYPE_P (type) && sanitize_flags_p (SANITIZE_DIVIDE) && !TYPE_UNSIGNED (type)) { diff -Nrcpad gcc-11.3.0/gcc/c-family/c-warn.c gcc-11.4.0/gcc/c-family/c-warn.c *** gcc-11.3.0/gcc/c-family/c-warn.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/c-family/c-warn.c Mon May 29 08:46:29 2023 *************** warn_for_sign_compare (location_t locati *** 2330,2371 **** have all bits set that are set in the ~ operand when it is extended. */ ! op0 = c_common_get_narrower (op0, &unsignedp0); ! op1 = c_common_get_narrower (op1, &unsignedp1); if ((TREE_CODE (op0) == BIT_NOT_EXPR) ^ (TREE_CODE (op1) == BIT_NOT_EXPR)) { - if (TREE_CODE (op0) == BIT_NOT_EXPR) - op0 = c_common_get_narrower (TREE_OPERAND (op0, 0), &unsignedp0); if (TREE_CODE (op1) == BIT_NOT_EXPR) - op1 = c_common_get_narrower (TREE_OPERAND (op1, 0), &unsignedp1); - - if (tree_fits_shwi_p (op0) || tree_fits_shwi_p (op1)) { ! tree primop; ! HOST_WIDE_INT constant, mask; ! int unsignedp; ! unsigned int bits; ! if (tree_fits_shwi_p (op0)) ! { ! primop = op1; ! unsignedp = unsignedp1; ! constant = tree_to_shwi (op0); ! } ! else ! { ! primop = op0; ! unsignedp = unsignedp0; ! constant = tree_to_shwi (op1); ! } ! bits = TYPE_PRECISION (TREE_TYPE (primop)); ! if (bits < TYPE_PRECISION (result_type) ! && bits < HOST_BITS_PER_LONG && unsignedp) { ! mask = HOST_WIDE_INT_M1U << bits; if ((mask & constant) != mask) { if (constant == 0) --- 2330,2392 ---- have all bits set that are set in the ~ operand when it is extended. */ ! /* bits0 is the bit index of op0 extended to result_type, which will ! be always 0 and so all bits above it. If there is a BIT_NOT_EXPR ! in that operand possibly sign or zero extended to op0 and then ! possibly further sign or zero extended to result_type, bits0 will ! be the precision of result type if all the extensions involved ! if any are sign extensions, and will be the place of the innermost ! zero extension otherwise. We warn only if BIT_NOT_EXPR's operand is ! zero extended from some even smaller precision, in that case after ! BIT_NOT_EXPR some bits below bits0 will be guaranteed to be set. ! Similarly for bits1. */ ! int bits0 = TYPE_PRECISION (result_type); ! if (TYPE_UNSIGNED (TREE_TYPE (op0))) ! bits0 = TYPE_PRECISION (TREE_TYPE (op0)); ! tree arg0 = c_common_get_narrower (op0, &unsignedp0); ! if (TYPE_PRECISION (TREE_TYPE (arg0)) == TYPE_PRECISION (TREE_TYPE (op0))) ! unsignedp0 = TYPE_UNSIGNED (TREE_TYPE (op0)); ! else if (unsignedp0) ! bits0 = TYPE_PRECISION (TREE_TYPE (arg0)); ! op0 = arg0; ! int bits1 = TYPE_PRECISION (result_type); ! if (TYPE_UNSIGNED (TREE_TYPE (op1))) ! bits1 = TYPE_PRECISION (TREE_TYPE (op1)); ! tree arg1 = c_common_get_narrower (op1, &unsignedp1); ! if (TYPE_PRECISION (TREE_TYPE (arg1)) == TYPE_PRECISION (TREE_TYPE (op1))) ! unsignedp1 = TYPE_UNSIGNED (TREE_TYPE (op1)); ! else if (unsignedp1) ! bits1 = TYPE_PRECISION (TREE_TYPE (arg1)); ! op1 = arg1; if ((TREE_CODE (op0) == BIT_NOT_EXPR) ^ (TREE_CODE (op1) == BIT_NOT_EXPR)) { if (TREE_CODE (op1) == BIT_NOT_EXPR) { ! std::swap (op0, op1); ! std::swap (unsignedp0, unsignedp1); ! std::swap (bits0, bits1); ! } ! int unsignedp; ! arg0 = c_common_get_narrower (TREE_OPERAND (op0, 0), &unsignedp); ! /* For these warnings, we need BIT_NOT_EXPR operand to be ! zero extended from narrower type to BIT_NOT_EXPR's type. ! In that case, all those bits above the narrower's type ! are after BIT_NOT_EXPR set to 1. */ ! if (tree_fits_shwi_p (op1)) ! { ! HOST_WIDE_INT constant = tree_to_shwi (op1); ! unsigned int bits = TYPE_PRECISION (TREE_TYPE (arg0)); ! if (unsignedp ! && bits < TYPE_PRECISION (TREE_TYPE (op0)) ! && bits < HOST_BITS_PER_WIDE_INT) { ! HOST_WIDE_INT mask = HOST_WIDE_INT_M1U << bits; ! if (bits0 < HOST_BITS_PER_WIDE_INT) ! mask &= ~(HOST_WIDE_INT_M1U << bits0); if ((mask & constant) != mask) { if (constant == 0) *************** warn_for_sign_compare (location_t locati *** 2379,2389 **** } } } ! else if (unsignedp0 && unsignedp1 ! && (TYPE_PRECISION (TREE_TYPE (op0)) ! < TYPE_PRECISION (result_type)) ! && (TYPE_PRECISION (TREE_TYPE (op1)) ! < TYPE_PRECISION (result_type))) warning_at (location, OPT_Wsign_compare, "comparison of promoted bitwise complement " "of an unsigned value with unsigned"); --- 2400,2410 ---- } } } ! else if ((TYPE_PRECISION (TREE_TYPE (arg0)) ! < TYPE_PRECISION (TREE_TYPE (op0))) ! && unsignedp ! && unsignedp1 ! && TYPE_PRECISION (TREE_TYPE (op1)) < bits0) warning_at (location, OPT_Wsign_compare, "comparison of promoted bitwise complement " "of an unsigned value with unsigned"); diff -Nrcpad gcc-11.3.0/gcc/cfgbuild.c gcc-11.4.0/gcc/cfgbuild.c *** gcc-11.3.0/gcc/cfgbuild.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/cfgbuild.c Mon May 29 08:46:29 2023 *************** find_bb_boundaries (basic_block bb) *** 445,450 **** --- 445,451 ---- rtx_insn *debug_insn = NULL; edge fallthru = NULL; bool skip_purge; + bool seen_note_after_debug = false; if (insn == end) return; *************** find_bb_boundaries (basic_block bb) *** 492,498 **** if (code == DEBUG_INSN) { if (flow_transfer_insn && !debug_insn) ! debug_insn = insn; } /* In case we've previously seen an insn that effects a control flow transfer, split the block. */ --- 493,502 ---- if (code == DEBUG_INSN) { if (flow_transfer_insn && !debug_insn) ! { ! debug_insn = insn; ! seen_note_after_debug = false; ! } } /* In case we've previously seen an insn that effects a control flow transfer, split the block. */ *************** find_bb_boundaries (basic_block bb) *** 506,512 **** insn instead of before the non-debug insn, so that the debug insns are not lost. */ if (debug_insn && code != CODE_LABEL && code != BARRIER) ! prev = PREV_INSN (debug_insn); fallthru = split_block (bb, prev); if (flow_transfer_insn) { --- 510,549 ---- insn instead of before the non-debug insn, so that the debug insns are not lost. */ if (debug_insn && code != CODE_LABEL && code != BARRIER) ! { ! prev = PREV_INSN (debug_insn); ! if (seen_note_after_debug) ! { ! /* Though, if there are NOTEs intermixed with DEBUG_INSNs, ! move the NOTEs before the DEBUG_INSNs and split after ! the last NOTE. */ ! rtx_insn *first = NULL, *last = NULL; ! for (x = debug_insn; x != insn; x = NEXT_INSN (x)) ! { ! if (NOTE_P (x)) ! { ! if (first == NULL) ! first = x; ! last = x; ! } ! else ! { ! gcc_assert (DEBUG_INSN_P (x)); ! if (first) ! { ! reorder_insns_nobb (first, last, prev); ! prev = last; ! first = last = NULL; ! } ! } ! } ! if (first) ! { ! reorder_insns_nobb (first, last, prev); ! prev = last; ! } ! } ! } fallthru = split_block (bb, prev); if (flow_transfer_insn) { *************** find_bb_boundaries (basic_block bb) *** 547,552 **** --- 584,597 ---- flow_transfer_insn = prev_nonnote_nondebug_insn_bb (insn); debug_insn = NULL; } + else if (debug_insn) + { + if (code == NOTE) + seen_note_after_debug = true; + else + /* Jump tables. */ + debug_insn = NULL; + } if (control_flow_insn_p (insn)) flow_transfer_insn = insn; diff -Nrcpad gcc-11.3.0/gcc/cfgcleanup.c gcc-11.4.0/gcc/cfgcleanup.c *** gcc-11.3.0/gcc/cfgcleanup.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/cfgcleanup.c Mon May 29 08:46:29 2023 *************** mark_effect (rtx exp, regset nonequal) *** 208,214 **** return false; case SET: ! if (rtx_equal_for_cselib_p (SET_DEST (exp), SET_SRC (exp))) return false; dest = SET_DEST (exp); if (dest == pc_rtx) --- 208,214 ---- return false; case SET: ! if (cselib_redundant_set_p (exp)) return false; dest = SET_DEST (exp); if (dest == pc_rtx) diff -Nrcpad gcc-11.3.0/gcc/cfgexpand.c gcc-11.4.0/gcc/cfgexpand.c *** gcc-11.3.0/gcc/cfgexpand.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/cfgexpand.c Mon May 29 08:46:29 2023 *************** expand_debug_expr (tree exp) *** 5356,5361 **** --- 5356,5365 ---- case VEC_WIDEN_MULT_ODD_EXPR: case VEC_WIDEN_LSHIFT_HI_EXPR: case VEC_WIDEN_LSHIFT_LO_EXPR: + case VEC_WIDEN_PLUS_HI_EXPR: + case VEC_WIDEN_PLUS_LO_EXPR: + case VEC_WIDEN_MINUS_HI_EXPR: + case VEC_WIDEN_MINUS_LO_EXPR: case VEC_PERM_EXPR: case VEC_DUPLICATE_EXPR: case VEC_SERIES_EXPR: *************** expand_debug_expr (tree exp) *** 5392,5397 **** --- 5396,5403 ---- case WIDEN_MULT_EXPR: case WIDEN_MULT_PLUS_EXPR: case WIDEN_MULT_MINUS_EXPR: + case WIDEN_PLUS_EXPR: + case WIDEN_MINUS_EXPR: if (SCALAR_INT_MODE_P (GET_MODE (op0)) && SCALAR_INT_MODE_P (mode)) { *************** expand_debug_expr (tree exp) *** 5404,5409 **** --- 5410,5419 ---- op1 = simplify_gen_unary (ZERO_EXTEND, mode, op1, inner_mode); else op1 = simplify_gen_unary (SIGN_EXTEND, mode, op1, inner_mode); + if (TREE_CODE (exp) == WIDEN_PLUS_EXPR) + return simplify_gen_binary (PLUS, mode, op0, op1); + else if (TREE_CODE (exp) == WIDEN_MINUS_EXPR) + return simplify_gen_binary (MINUS, mode, op0, op1); op0 = simplify_gen_binary (MULT, mode, op0, op1); if (TREE_CODE (exp) == WIDEN_MULT_EXPR) return op0; diff -Nrcpad gcc-11.3.0/gcc/cfgrtl.c gcc-11.4.0/gcc/cfgrtl.c *** gcc-11.3.0/gcc/cfgrtl.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/cfgrtl.c Mon May 29 08:46:29 2023 *************** delete_insn_and_edges (rtx_insn *insn) *** 233,239 **** { bool purge = false; ! if (INSN_P (insn) && BLOCK_FOR_INSN (insn)) { basic_block bb = BLOCK_FOR_INSN (insn); if (BB_END (bb) == insn) --- 233,239 ---- { bool purge = false; ! if (NONDEBUG_INSN_P (insn) && BLOCK_FOR_INSN (insn)) { basic_block bb = BLOCK_FOR_INSN (insn); if (BB_END (bb) == insn) diff -Nrcpad gcc-11.3.0/gcc/cgraph.c gcc-11.4.0/gcc/cgraph.c *** gcc-11.3.0/gcc/cgraph.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/cgraph.c Mon May 29 08:46:29 2023 *************** cgraph_node::remove (void) *** 1906,1912 **** if (prev_sibling_clone) prev_sibling_clone->next_sibling_clone = next_sibling_clone; else if (clone_of) ! clone_of->clones = next_sibling_clone; if (next_sibling_clone) next_sibling_clone->prev_sibling_clone = prev_sibling_clone; if (clones) --- 1906,1926 ---- if (prev_sibling_clone) prev_sibling_clone->next_sibling_clone = next_sibling_clone; else if (clone_of) ! { ! clone_of->clones = next_sibling_clone; ! if (!clones) ! { ! bool need_body = false; ! for (cgraph_node *n = clone_of; n; n = n->clone_of) ! if (n->analyzed || n->clones) ! { ! need_body = true; ! break; ! } ! if (!need_body) ! clone_of->release_body (); ! } ! } if (next_sibling_clone) next_sibling_clone->prev_sibling_clone = prev_sibling_clone; if (clones) diff -Nrcpad gcc-11.3.0/gcc/cgraphclones.c gcc-11.4.0/gcc/cgraphclones.c *** gcc-11.3.0/gcc/cgraphclones.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/cgraphclones.c Mon May 29 08:46:29 2023 *************** duplicate_thunk_for_node (cgraph_node *t *** 217,223 **** body_adj.modify_formal_parameters (); } else ! new_decl = copy_node (thunk->decl); gcc_checking_assert (!DECL_STRUCT_FUNCTION (new_decl)); gcc_checking_assert (!DECL_INITIAL (new_decl)); --- 217,233 ---- body_adj.modify_formal_parameters (); } else ! { ! new_decl = copy_node (thunk->decl); ! for (tree *arg = &DECL_ARGUMENTS (new_decl); ! *arg; arg = &DECL_CHAIN (*arg)) ! { ! tree next = DECL_CHAIN (*arg); ! *arg = copy_node (*arg); ! DECL_CONTEXT (*arg) = new_decl; ! DECL_CHAIN (*arg) = next; ! } ! } gcc_checking_assert (!DECL_STRUCT_FUNCTION (new_decl)); gcc_checking_assert (!DECL_INITIAL (new_decl)); diff -Nrcpad gcc-11.3.0/gcc/cgraphunit.c gcc-11.4.0/gcc/cgraphunit.c *** gcc-11.3.0/gcc/cgraphunit.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/cgraphunit.c Mon May 29 08:46:29 2023 *************** cgraph_node::assemble_thunks_and_aliases *** 1749,1755 **** cgraph_node *thunk = e->caller; e = e->next_caller; ! expand_thunk (thunk, true, false); thunk->assemble_thunks_and_aliases (); } else --- 1749,1755 ---- cgraph_node *thunk = e->caller; e = e->next_caller; ! expand_thunk (thunk, !rtl_dump_and_exit, false); thunk->assemble_thunks_and_aliases (); } else diff -Nrcpad gcc-11.3.0/gcc/common/config/i386/cpuinfo.h gcc-11.4.0/gcc/common/config/i386/cpuinfo.h *** gcc-11.3.0/gcc/common/config/i386/cpuinfo.h Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/common/config/i386/cpuinfo.h Mon May 29 08:46:29 2023 *************** get_available_features (struct __process *** 606,613 **** set_feature (FEATURE_MOVBE); if (ecx & bit_AES) set_feature (FEATURE_AES); - if (ecx & bit_F16C) - set_feature (FEATURE_F16C); if (ecx & bit_RDRND) set_feature (FEATURE_RDRND); if (ecx & bit_XSAVE) --- 606,611 ---- *************** get_available_features (struct __process *** 618,623 **** --- 616,623 ---- set_feature (FEATURE_AVX); if (ecx & bit_FMA) set_feature (FEATURE_FMA); + if (ecx & bit_F16C) + set_feature (FEATURE_F16C); } /* Get Advanced Features at level 7 (eax = 7, ecx = 0/1). */ *************** get_available_features (struct __process *** 638,643 **** --- 638,645 ---- set_feature (FEATURE_AVX2); if (ecx & bit_VPCLMULQDQ) set_feature (FEATURE_VPCLMULQDQ); + if (ecx & bit_VAES) + set_feature (FEATURE_VAES); } if (ebx & bit_BMI2) set_feature (FEATURE_BMI2); *************** get_available_features (struct __process *** 660,667 **** set_feature (FEATURE_PKU); if (ecx & bit_RDPID) set_feature (FEATURE_RDPID); - if (ecx & bit_VAES) - set_feature (FEATURE_VAES); if (ecx & bit_GFNI) set_feature (FEATURE_GFNI); if (ecx & bit_MOVDIRI) --- 662,667 ---- *************** cpu_indicator_init (struct __processor_m *** 882,887 **** --- 882,891 ---- extended_model = (eax >> 12) & 0xf0; extended_family = (eax >> 20) & 0xff; + /* Find available features. */ + get_available_features (cpu_model, cpu_model2, cpu_features2, + ecx, edx); + if (vendor == signature_INTEL_ebx) { /* Adjust model and family for Intel CPUS. */ *************** cpu_indicator_init (struct __processor_m *** 896,904 **** cpu_model2->__cpu_family = family; cpu_model2->__cpu_model = model; - /* Find available features. */ - get_available_features (cpu_model, cpu_model2, cpu_features2, - ecx, edx); /* Get CPU type. */ get_intel_cpu (cpu_model, cpu_model2, cpu_features2); cpu_model->__cpu_vendor = VENDOR_INTEL; --- 900,905 ---- *************** cpu_indicator_init (struct __processor_m *** 915,923 **** cpu_model2->__cpu_family = family; cpu_model2->__cpu_model = model; - /* Find available features. */ - get_available_features (cpu_model, cpu_model2, cpu_features2, - ecx, edx); /* Get CPU type. */ get_amd_cpu (cpu_model, cpu_model2, cpu_features2); cpu_model->__cpu_vendor = VENDOR_AMD; --- 916,921 ---- diff -Nrcpad gcc-11.3.0/gcc/common/config/i386/i386-cpuinfo.h gcc-11.4.0/gcc/common/config/i386/i386-cpuinfo.h *** gcc-11.3.0/gcc/common/config/i386/i386-cpuinfo.h Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/common/config/i386/i386-cpuinfo.h Mon May 29 08:46:29 2023 *************** enum processor_vendor *** 33,40 **** VENDOR_CENTAUR, VENDOR_CYRIX, VENDOR_NSC, ! BUILTIN_VENDOR_MAX = VENDOR_OTHER, ! VENDOR_MAX }; /* Any new types or subtypes have to be inserted at the end. */ --- 33,42 ---- VENDOR_CENTAUR, VENDOR_CYRIX, VENDOR_NSC, ! ! /* Maximum values must be at the end of this enum. */ ! VENDOR_MAX, ! BUILTIN_VENDOR_MAX = VENDOR_OTHER }; /* Any new types or subtypes have to be inserted at the end. */ diff -Nrcpad gcc-11.3.0/gcc/common.opt gcc-11.4.0/gcc/common.opt *** gcc-11.3.0/gcc/common.opt Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/common.opt Mon May 29 08:46:29 2023 *************** static-libgfortran *** 3446,3451 **** --- 3446,3455 ---- Driver ; Documented for Fortran, but always accepted by driver. + static-libphobos + Driver + ; Documented for D, but always accepted by driver. + static-libstdc++ Driver diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/aarch64-builtins.c gcc-11.4.0/gcc/config/aarch64/aarch64-builtins.c *** gcc-11.3.0/gcc/config/aarch64/aarch64-builtins.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/aarch64/aarch64-builtins.c Mon May 29 08:46:29 2023 *************** enum aarch64_builtins *** 523,528 **** --- 523,534 ---- AARCH64_MEMTAG_BUILTIN_SET_TAG, AARCH64_MEMTAG_BUILTIN_GET_TAG, AARCH64_MEMTAG_BUILTIN_END, + AARCH64_REV16, + AARCH64_REV16L, + AARCH64_REV16LL, + AARCH64_RBIT, + AARCH64_RBITL, + AARCH64_RBITLL, AARCH64_BUILTIN_MAX }; *************** aarch64_init_fpsr_fpcr_builtins (void) *** 1421,1426 **** --- 1427,1463 ---- AARCH64_BUILTIN_SET_FPSR64); } + static void + aarch64_init_data_intrinsics (void) + { + tree uint32_fntype = build_function_type_list (uint32_type_node, + uint32_type_node, NULL_TREE); + tree ulong_fntype = build_function_type_list (long_unsigned_type_node, + long_unsigned_type_node, + NULL_TREE); + tree uint64_fntype = build_function_type_list (uint64_type_node, + uint64_type_node, NULL_TREE); + aarch64_builtin_decls[AARCH64_REV16] + = aarch64_general_add_builtin ("__builtin_aarch64_rev16", uint32_fntype, + AARCH64_REV16); + aarch64_builtin_decls[AARCH64_REV16L] + = aarch64_general_add_builtin ("__builtin_aarch64_rev16l", ulong_fntype, + AARCH64_REV16L); + aarch64_builtin_decls[AARCH64_REV16LL] + = aarch64_general_add_builtin ("__builtin_aarch64_rev16ll", uint64_fntype, + AARCH64_REV16LL); + aarch64_builtin_decls[AARCH64_RBIT] + = aarch64_general_add_builtin ("__builtin_aarch64_rbit", uint32_fntype, + AARCH64_RBIT); + aarch64_builtin_decls[AARCH64_RBITL] + = aarch64_general_add_builtin ("__builtin_aarch64_rbitl", ulong_fntype, + AARCH64_RBITL); + aarch64_builtin_decls[AARCH64_RBITLL] + = aarch64_general_add_builtin ("__builtin_aarch64_rbitll", uint64_fntype, + AARCH64_RBITLL); + } + + /* Initialize all builtins in the AARCH64_BUILTIN_GENERAL group. */ void *************** aarch64_general_init_builtins (void) *** 1438,1443 **** --- 1475,1481 ---- aarch64_init_crc32_builtins (); aarch64_init_builtin_rsqrt (); aarch64_init_rng_builtins (); + aarch64_init_data_intrinsics (); tree ftype_jcvt = build_function_type_list (intSI_type_node, double_type_node, NULL); *************** aarch64_expand_builtin_memtag (int fcode *** 2032,2037 **** --- 2070,2107 ---- return target; } + /* Function to expand an expression EXP which calls one of the ACLE Data + Intrinsic builtins FCODE with the result going to TARGET. */ + static rtx + aarch64_expand_builtin_data_intrinsic (unsigned int fcode, tree exp, rtx target) + { + expand_operand ops[2]; + machine_mode mode = GET_MODE (target); + create_output_operand (&ops[0], target, mode); + create_input_operand (&ops[1], expand_normal (CALL_EXPR_ARG (exp, 0)), mode); + enum insn_code icode; + + switch (fcode) + { + case AARCH64_REV16: + case AARCH64_REV16L: + case AARCH64_REV16LL: + icode = code_for_aarch64_rev16 (mode); + break; + case AARCH64_RBIT: + case AARCH64_RBITL: + case AARCH64_RBITLL: + icode = code_for_aarch64_rbit (mode); + break; + default: + gcc_unreachable (); + } + + expand_insn (icode, 2, ops); + return ops[0].value; + } + + /* Expand an expression EXP as fpsr or fpcr setter (depending on UNSPEC) using MODE. */ static void *************** aarch64_general_expand_builtin (unsigned *** 2184,2189 **** --- 2254,2263 ---- && fcode <= AARCH64_MEMTAG_BUILTIN_END) return aarch64_expand_builtin_memtag (fcode, exp, target); + if (fcode >= AARCH64_REV16 + && fcode <= AARCH64_RBITLL) + return aarch64_expand_builtin_data_intrinsic (fcode, exp, target); + gcc_unreachable (); } diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/aarch64-c.c gcc-11.4.0/gcc/config/aarch64/aarch64-c.c *** gcc-11.3.0/gcc/config/aarch64/aarch64-c.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/aarch64/aarch64-c.c Mon May 29 08:46:29 2023 *************** aarch64_update_cpp_builtins (cpp_reader *** 200,205 **** --- 200,206 ---- "__ARM_FEATURE_BF16_VECTOR_ARITHMETIC", pfile); aarch64_def_or_undef (TARGET_BF16_FP, "__ARM_FEATURE_BF16_SCALAR_ARITHMETIC", pfile); + aarch64_def_or_undef (AARCH64_ISA_RCPC, "__ARM_FEATURE_RCPC", pfile); /* Not for ACLE, but required to keep "float.h" correct if we switch target between implementations that do or do not support ARMv8.2-A diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/aarch64-cores.def gcc-11.4.0/gcc/config/aarch64/aarch64-cores.def *** gcc-11.3.0/gcc/config/aarch64/aarch64-cores.def Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/aarch64/aarch64-cores.def Mon May 29 08:46:29 2023 *************** AARCH64_CORE("thunderxt81", thunderxt8 *** 69,75 **** AARCH64_CORE("thunderxt83", thunderxt83, thunderx, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, thunderx, 0x43, 0x0a3, -1) /* Ampere Computing ('\xC0') cores. */ ! AARCH64_CORE("ampere1", ampere1, cortexa57, 8_6A, AARCH64_FL_FOR_ARCH8_6, ampere1, 0xC0, 0xac3, -1) /* Do not swap around "emag" and "xgene1", this order is required to handle variant correctly. */ AARCH64_CORE("emag", emag, xgene1, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, emag, 0x50, 0x000, 3) --- 69,76 ---- AARCH64_CORE("thunderxt83", thunderxt83, thunderx, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, thunderx, 0x43, 0x0a3, -1) /* Ampere Computing ('\xC0') cores. */ ! AARCH64_CORE("ampere1", ampere1, cortexa57, 8_6A, AARCH64_FL_FOR_ARCH8_6 | AARCH64_FL_CRYPTO | AARCH64_FL_F16 | AARCH64_FL_RNG | AARCH64_FL_SHA3, ampere1, 0xC0, 0xac3, -1) ! AARCH64_CORE("ampere1a", ampere1a, cortexa57, 8_6A, AARCH64_FL_FOR_ARCH8_6 | AARCH64_FL_CRYPTO | AARCH64_FL_F16 | AARCH64_FL_RNG | AARCH64_FL_SHA3 | AARCH64_FL_MEMTAG, ampere1a, 0xC0, 0xac4, -1) /* Do not swap around "emag" and "xgene1", this order is required to handle variant correctly. */ AARCH64_CORE("emag", emag, xgene1, 8A, AARCH64_FL_FOR_ARCH8 | AARCH64_FL_CRC | AARCH64_FL_CRYPTO, emag, 0x50, 0x000, 3) *************** AARCH64_CORE("tsv110", tsv110, tsv110, *** 133,152 **** /* ARMv8.3-A Architecture Processors. */ /* Marvell cores (TX3). */ ! AARCH64_CORE("thunderx3t110", thunderx3t110, thunderx3t110, 8_3A, AARCH64_FL_FOR_ARCH8_3 | AARCH64_FL_CRYPTO | AARCH64_FL_RCPC | AARCH64_FL_SM4 | AARCH64_FL_SHA3 | AARCH64_FL_F16FML | AARCH64_FL_RCPC8_4, thunderx3t110, 0x43, 0x0b8, 0x0a) /* ARMv8.4-A Architecture Processors. */ /* Arm ('A') cores. */ ! AARCH64_CORE("zeus", zeus, cortexa57, 8_4A, AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_SVE | AARCH64_FL_RCPC | AARCH64_FL_I8MM | AARCH64_FL_BF16 | AARCH64_FL_F16 | AARCH64_FL_PROFILE | AARCH64_FL_SSBS | AARCH64_FL_RNG, neoversev1, 0x41, 0xd40, -1) ! AARCH64_CORE("neoverse-v1", neoversev1, cortexa57, 8_4A, AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_SVE | AARCH64_FL_RCPC | AARCH64_FL_I8MM | AARCH64_FL_BF16 | AARCH64_FL_F16 | AARCH64_FL_PROFILE | AARCH64_FL_SSBS | AARCH64_FL_RNG, neoversev1, 0x41, 0xd40, -1) ! AARCH64_CORE("neoverse-512tvb", neoverse512tvb, cortexa57, 8_4A, AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_SVE | AARCH64_FL_RCPC | AARCH64_FL_I8MM | AARCH64_FL_BF16 | AARCH64_FL_F16 | AARCH64_FL_PROFILE | AARCH64_FL_SSBS | AARCH64_FL_RNG, neoverse512tvb, INVALID_IMP, INVALID_CORE, -1) /* Qualcomm ('Q') cores. */ ! AARCH64_CORE("saphira", saphira, saphira, 8_4A, AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_CRYPTO | AARCH64_FL_RCPC, saphira, 0x51, 0xC01, -1) /* Armv8.5-A Architecture Processors. */ AARCH64_CORE("neoverse-n2", neoversen2, cortexa57, 8_5A, AARCH64_FL_FOR_ARCH8_5 | AARCH64_FL_I8MM | AARCH64_FL_BF16 | AARCH64_FL_F16 | AARCH64_FL_SVE | AARCH64_FL_SVE2 | AARCH64_FL_SVE2_BITPERM | AARCH64_FL_RNG | AARCH64_FL_MEMTAG, neoversen2, 0x41, 0xd49, -1) /* ARMv8-A big.LITTLE implementations. */ --- 134,154 ---- /* ARMv8.3-A Architecture Processors. */ /* Marvell cores (TX3). */ ! AARCH64_CORE("thunderx3t110", thunderx3t110, thunderx3t110, 8_3A, AARCH64_FL_FOR_ARCH8_3 | AARCH64_FL_CRYPTO | AARCH64_FL_SM4 | AARCH64_FL_SHA3 | AARCH64_FL_F16FML | AARCH64_FL_RCPC8_4, thunderx3t110, 0x43, 0x0b8, 0x0a) /* ARMv8.4-A Architecture Processors. */ /* Arm ('A') cores. */ ! AARCH64_CORE("zeus", zeus, cortexa57, 8_4A, AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_SVE | AARCH64_FL_I8MM | AARCH64_FL_BF16 | AARCH64_FL_F16 | AARCH64_FL_PROFILE | AARCH64_FL_SSBS | AARCH64_FL_RNG, neoversev1, 0x41, 0xd40, -1) ! AARCH64_CORE("neoverse-v1", neoversev1, cortexa57, 8_4A, AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_SVE | AARCH64_FL_I8MM | AARCH64_FL_BF16 | AARCH64_FL_F16 | AARCH64_FL_PROFILE | AARCH64_FL_SSBS | AARCH64_FL_RNG, neoversev1, 0x41, 0xd40, -1) ! AARCH64_CORE("neoverse-512tvb", neoverse512tvb, cortexa57, 8_4A, AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_SVE | AARCH64_FL_I8MM | AARCH64_FL_BF16 | AARCH64_FL_F16 | AARCH64_FL_PROFILE | AARCH64_FL_SSBS | AARCH64_FL_RNG, neoverse512tvb, INVALID_IMP, INVALID_CORE, -1) /* Qualcomm ('Q') cores. */ ! AARCH64_CORE("saphira", saphira, saphira, 8_4A, AARCH64_FL_FOR_ARCH8_4 | AARCH64_FL_CRYPTO, saphira, 0x51, 0xC01, -1) /* Armv8.5-A Architecture Processors. */ AARCH64_CORE("neoverse-n2", neoversen2, cortexa57, 8_5A, AARCH64_FL_FOR_ARCH8_5 | AARCH64_FL_I8MM | AARCH64_FL_BF16 | AARCH64_FL_F16 | AARCH64_FL_SVE | AARCH64_FL_SVE2 | AARCH64_FL_SVE2_BITPERM | AARCH64_FL_RNG | AARCH64_FL_MEMTAG, neoversen2, 0x41, 0xd49, -1) + AARCH64_CORE("neoverse-v2", neoversev2, cortexa57, 8_5A, AARCH64_FL_FOR_ARCH8_5 | AARCH64_FL_I8MM | AARCH64_FL_BF16 | AARCH64_FL_F16 | AARCH64_FL_SVE | AARCH64_FL_SVE2 | AARCH64_FL_SVE2_BITPERM | AARCH64_FL_RNG | AARCH64_FL_MEMTAG, neoverse512tvb, 0x41, 0xd4f, -1) /* ARMv8-A big.LITTLE implementations. */ diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/aarch64-cost-tables.h gcc-11.4.0/gcc/config/aarch64/aarch64-cost-tables.h *** gcc-11.3.0/gcc/config/aarch64/aarch64-cost-tables.h Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/aarch64/aarch64-cost-tables.h Mon May 29 08:46:29 2023 *************** const struct cpu_cost_table ampere1_extr *** 754,757 **** --- 754,861 ---- } }; + const struct cpu_cost_table ampere1a_extra_costs = + { + /* ALU */ + { + 0, /* arith. */ + 0, /* logical. */ + 0, /* shift. */ + COSTS_N_INSNS (1), /* shift_reg. */ + 0, /* arith_shift. */ + COSTS_N_INSNS (1), /* arith_shift_reg. */ + 0, /* log_shift. */ + COSTS_N_INSNS (1), /* log_shift_reg. */ + 0, /* extend. */ + COSTS_N_INSNS (1), /* extend_arith. */ + 0, /* bfi. */ + 0, /* bfx. */ + 0, /* clz. */ + 0, /* rev. */ + 0, /* non_exec. */ + true /* non_exec_costs_exec. */ + }, + { + /* MULT SImode */ + { + COSTS_N_INSNS (3), /* simple. */ + COSTS_N_INSNS (3), /* flag_setting. */ + COSTS_N_INSNS (3), /* extend. */ + COSTS_N_INSNS (4), /* add. */ + COSTS_N_INSNS (4), /* extend_add. */ + COSTS_N_INSNS (19) /* idiv. */ + }, + /* MULT DImode */ + { + COSTS_N_INSNS (3), /* simple. */ + 0, /* flag_setting (N/A). */ + COSTS_N_INSNS (3), /* extend. */ + COSTS_N_INSNS (4), /* add. */ + COSTS_N_INSNS (4), /* extend_add. */ + COSTS_N_INSNS (35) /* idiv. */ + } + }, + /* LD/ST */ + { + COSTS_N_INSNS (4), /* load. */ + COSTS_N_INSNS (4), /* load_sign_extend. */ + 0, /* ldrd (n/a). */ + 0, /* ldm_1st. */ + 0, /* ldm_regs_per_insn_1st. */ + 0, /* ldm_regs_per_insn_subsequent. */ + COSTS_N_INSNS (5), /* loadf. */ + COSTS_N_INSNS (5), /* loadd. */ + COSTS_N_INSNS (5), /* load_unaligned. */ + 0, /* store. */ + 0, /* strd. */ + 0, /* stm_1st. */ + 0, /* stm_regs_per_insn_1st. */ + 0, /* stm_regs_per_insn_subsequent. */ + COSTS_N_INSNS (2), /* storef. */ + COSTS_N_INSNS (2), /* stored. */ + COSTS_N_INSNS (2), /* store_unaligned. */ + COSTS_N_INSNS (3), /* loadv. */ + COSTS_N_INSNS (3) /* storev. */ + }, + { + /* FP SFmode */ + { + COSTS_N_INSNS (25), /* div. */ + COSTS_N_INSNS (4), /* mult. */ + COSTS_N_INSNS (4), /* mult_addsub. */ + COSTS_N_INSNS (4), /* fma. */ + COSTS_N_INSNS (4), /* addsub. */ + COSTS_N_INSNS (2), /* fpconst. */ + COSTS_N_INSNS (4), /* neg. */ + COSTS_N_INSNS (4), /* compare. */ + COSTS_N_INSNS (4), /* widen. */ + COSTS_N_INSNS (4), /* narrow. */ + COSTS_N_INSNS (4), /* toint. */ + COSTS_N_INSNS (4), /* fromint. */ + COSTS_N_INSNS (4) /* roundint. */ + }, + /* FP DFmode */ + { + COSTS_N_INSNS (34), /* div. */ + COSTS_N_INSNS (5), /* mult. */ + COSTS_N_INSNS (5), /* mult_addsub. */ + COSTS_N_INSNS (5), /* fma. */ + COSTS_N_INSNS (5), /* addsub. */ + COSTS_N_INSNS (2), /* fpconst. */ + COSTS_N_INSNS (5), /* neg. */ + COSTS_N_INSNS (5), /* compare. */ + COSTS_N_INSNS (5), /* widen. */ + COSTS_N_INSNS (5), /* narrow. */ + COSTS_N_INSNS (6), /* toint. */ + COSTS_N_INSNS (6), /* fromint. */ + COSTS_N_INSNS (5) /* roundint. */ + } + }, + /* Vector */ + { + COSTS_N_INSNS (3), /* alu. */ + COSTS_N_INSNS (3) /* mult. */ + } + }; + #endif diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/aarch64-fusion-pairs.def gcc-11.4.0/gcc/config/aarch64/aarch64-fusion-pairs.def *** gcc-11.3.0/gcc/config/aarch64/aarch64-fusion-pairs.def Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/aarch64/aarch64-fusion-pairs.def Mon May 29 08:46:29 2023 *************** AARCH64_FUSION_PAIR ("cmp+branch", CMP_B *** 36,40 **** --- 36,41 ---- AARCH64_FUSION_PAIR ("aes+aesmc", AES_AESMC) AARCH64_FUSION_PAIR ("alu+branch", ALU_BRANCH) AARCH64_FUSION_PAIR ("alu+cbz", ALU_CBZ) + AARCH64_FUSION_PAIR ("addsub_2reg_const1", ADDSUB_2REG_CONST1) #undef AARCH64_FUSION_PAIR diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/aarch64-protos.h gcc-11.4.0/gcc/config/aarch64/aarch64-protos.h *** gcc-11.3.0/gcc/config/aarch64/aarch64-protos.h Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/aarch64/aarch64-protos.h Mon May 29 08:46:29 2023 *************** bool aarch64_high_bits_all_ones_p (HOST_ *** 1034,1040 **** struct atomic_ool_names { ! const char *str[5][4]; }; rtx aarch64_atomic_ool_func(machine_mode mode, rtx model_rtx, --- 1034,1040 ---- struct atomic_ool_names { ! const char *str[5][5]; }; rtx aarch64_atomic_ool_func(machine_mode mode, rtx model_rtx, *************** const char *aarch64_indirect_call_asm (r *** 1052,1055 **** --- 1052,1057 ---- extern bool aarch64_harden_sls_retbr_p (void); extern bool aarch64_harden_sls_blr_p (void); + extern void aarch64_output_patchable_area (unsigned int, bool); + #endif /* GCC_AARCH64_PROTOS_H */ diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/aarch64-simd.md gcc-11.4.0/gcc/config/aarch64/aarch64-simd.md *** gcc-11.3.0/gcc/config/aarch64/aarch64-simd.md Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/aarch64/aarch64-simd.md Mon May 29 08:46:29 2023 *************** *** 8290,8296 **** [(set (match_operand:V4SF 0 "register_operand" "=w") (plus: V4SF (match_operand:V4SF 1 "register_operand" "0") (unspec:V4SF [(match_operand:V8BF 2 "register_operand" "w") ! (match_operand:VBF 3 "register_operand" "w") (match_operand:SI 4 "const_int_operand" "n")] BF_MLA)))] "TARGET_BF16_SIMD" --- 8290,8296 ---- [(set (match_operand:V4SF 0 "register_operand" "=w") (plus: V4SF (match_operand:V4SF 1 "register_operand" "0") (unspec:V4SF [(match_operand:V8BF 2 "register_operand" "w") ! (match_operand:VBF 3 "register_operand" "x") (match_operand:SI 4 "const_int_operand" "n")] BF_MLA)))] "TARGET_BF16_SIMD" diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/aarch64-sve-builtins.cc gcc-11.4.0/gcc/config/aarch64/aarch64-sve-builtins.cc *** gcc-11.3.0/gcc/config/aarch64/aarch64-sve-builtins.cc Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/aarch64/aarch64-sve-builtins.cc Mon May 29 08:46:29 2023 *************** static CONSTEXPR const function_group_in *** 530,536 **** }; /* The scalar type associated with each vector type. */ ! GTY(()) tree scalar_types[NUM_VECTOR_TYPES]; /* The single-predicate and single-vector types, with their built-in "__SV..._t" name. Allow an index of NUM_VECTOR_TYPES, which always --- 530,537 ---- }; /* The scalar type associated with each vector type. */ ! extern GTY(()) tree scalar_types[NUM_VECTOR_TYPES]; ! tree scalar_types[NUM_VECTOR_TYPES]; /* The single-predicate and single-vector types, with their built-in "__SV..._t" name. Allow an index of NUM_VECTOR_TYPES, which always *************** GTY(()) tree scalar_types[NUM_VECTOR_TYP *** 538,550 **** static GTY(()) tree abi_vector_types[NUM_VECTOR_TYPES + 1]; /* Same, but with the arm_sve.h "sv..._t" name. */ ! GTY(()) tree acle_vector_types[MAX_TUPLE_SIZE][NUM_VECTOR_TYPES + 1]; /* The svpattern enum type. */ ! GTY(()) tree acle_svpattern; /* The svprfop enum type. */ ! GTY(()) tree acle_svprfop; /* The list of all registered function decls, indexed by code. */ static GTY(()) vec *registered_functions; --- 539,554 ---- static GTY(()) tree abi_vector_types[NUM_VECTOR_TYPES + 1]; /* Same, but with the arm_sve.h "sv..._t" name. */ ! extern GTY(()) tree acle_vector_types[MAX_TUPLE_SIZE][NUM_VECTOR_TYPES + 1]; ! tree acle_vector_types[MAX_TUPLE_SIZE][NUM_VECTOR_TYPES + 1]; /* The svpattern enum type. */ ! extern GTY(()) tree acle_svpattern; ! tree acle_svpattern; /* The svprfop enum type. */ ! extern GTY(()) tree acle_svprfop; ! tree acle_svprfop; /* The list of all registered function decls, indexed by code. */ static GTY(()) vec *registered_functions; diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/aarch64-sve.md gcc-11.4.0/gcc/config/aarch64/aarch64-sve.md *** gcc-11.3.0/gcc/config/aarch64/aarch64-sve.md Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/aarch64/aarch64-sve.md Mon May 29 08:46:29 2023 *************** *** 9430,9474 **** (define_insn "*aarch64_brk_cc" [(set (reg:CC_NZC CC_REGNUM) (unspec:CC_NZC ! [(match_operand:VNx16BI 1 "register_operand" "Upa, Upa") (match_dup 1) (match_operand:SI 4 "aarch64_sve_ptrue_flag") (unspec:VNx16BI [(match_dup 1) ! (match_operand:VNx16BI 2 "register_operand" "Upa, Upa") ! (match_operand:VNx16BI 3 "aarch64_simd_reg_or_zero" "Dz, 0")] SVE_BRK_UNARY)] UNSPEC_PTEST)) ! (set (match_operand:VNx16BI 0 "register_operand" "=Upa, Upa") (unspec:VNx16BI [(match_dup 1) (match_dup 2) (match_dup 3)] SVE_BRK_UNARY))] "TARGET_SVE" ! "@ ! brks\t%0.b, %1/z, %2.b ! brks\t%0.b, %1/m, %2.b" ) ;; Same, but with only the flags result being interesting. (define_insn "*aarch64_brk_ptest" [(set (reg:CC_NZC CC_REGNUM) (unspec:CC_NZC ! [(match_operand:VNx16BI 1 "register_operand" "Upa, Upa") (match_dup 1) (match_operand:SI 4 "aarch64_sve_ptrue_flag") (unspec:VNx16BI [(match_dup 1) ! (match_operand:VNx16BI 2 "register_operand" "Upa, Upa") ! (match_operand:VNx16BI 3 "aarch64_simd_reg_or_zero" "Dz, 0")] SVE_BRK_UNARY)] UNSPEC_PTEST)) ! (clobber (match_scratch:VNx16BI 0 "=Upa, Upa"))] "TARGET_SVE" ! "@ ! brks\t%0.b, %1/z, %2.b ! brks\t%0.b, %1/m, %2.b" ) ;; ------------------------------------------------------------------------- --- 9430,9470 ---- (define_insn "*aarch64_brk_cc" [(set (reg:CC_NZC CC_REGNUM) (unspec:CC_NZC ! [(match_operand:VNx16BI 1 "register_operand" "Upa") (match_dup 1) (match_operand:SI 4 "aarch64_sve_ptrue_flag") (unspec:VNx16BI [(match_dup 1) ! (match_operand:VNx16BI 2 "register_operand" "Upa") ! (match_operand:VNx16BI 3 "aarch64_simd_imm_zero")] SVE_BRK_UNARY)] UNSPEC_PTEST)) ! (set (match_operand:VNx16BI 0 "register_operand" "=Upa") (unspec:VNx16BI [(match_dup 1) (match_dup 2) (match_dup 3)] SVE_BRK_UNARY))] "TARGET_SVE" ! "brks\t%0.b, %1/z, %2.b" ) ;; Same, but with only the flags result being interesting. (define_insn "*aarch64_brk_ptest" [(set (reg:CC_NZC CC_REGNUM) (unspec:CC_NZC ! [(match_operand:VNx16BI 1 "register_operand" "Upa") (match_dup 1) (match_operand:SI 4 "aarch64_sve_ptrue_flag") (unspec:VNx16BI [(match_dup 1) ! (match_operand:VNx16BI 2 "register_operand" "Upa") ! (match_operand:VNx16BI 3 "aarch64_simd_imm_zero")] SVE_BRK_UNARY)] UNSPEC_PTEST)) ! (clobber (match_scratch:VNx16BI 0 "=Upa"))] "TARGET_SVE" ! "brks\t%0.b, %1/z, %2.b" ) ;; ------------------------------------------------------------------------- *************** *** 9495,9501 **** "brk\t%0.b, %1/z, %2.b, %.b" ) ! ;; Same, but also producing a flags result. (define_insn "*aarch64_brk_cc" [(set (reg:CC_NZC CC_REGNUM) (unspec:CC_NZC --- 9491,9551 ---- "brk\t%0.b, %1/z, %2.b, %.b" ) ! ;; BRKN, producing both a predicate and a flags result. Unlike other ! ;; flag-setting instructions, these flags are always set wrt a ptrue. ! (define_insn_and_rewrite "*aarch64_brkn_cc" ! [(set (reg:CC_NZC CC_REGNUM) ! (unspec:CC_NZC ! [(match_operand:VNx16BI 4) ! (match_operand:VNx16BI 5) ! (const_int SVE_KNOWN_PTRUE) ! (unspec:VNx16BI ! [(match_operand:VNx16BI 1 "register_operand" "Upa") ! (match_operand:VNx16BI 2 "register_operand" "Upa") ! (match_operand:VNx16BI 3 "register_operand" "0")] ! UNSPEC_BRKN)] ! UNSPEC_PTEST)) ! (set (match_operand:VNx16BI 0 "register_operand" "=Upa") ! (unspec:VNx16BI ! [(match_dup 1) ! (match_dup 2) ! (match_dup 3)] ! UNSPEC_BRKN))] ! "TARGET_SVE" ! "brkns\t%0.b, %1/z, %2.b, %0.b" ! "&& (operands[4] != CONST0_RTX (VNx16BImode) ! || operands[5] != CONST0_RTX (VNx16BImode))" ! { ! operands[4] = CONST0_RTX (VNx16BImode); ! operands[5] = CONST0_RTX (VNx16BImode); ! } ! ) ! ! ;; Same, but with only the flags result being interesting. ! (define_insn_and_rewrite "*aarch64_brkn_ptest" ! [(set (reg:CC_NZC CC_REGNUM) ! (unspec:CC_NZC ! [(match_operand:VNx16BI 4) ! (match_operand:VNx16BI 5) ! (const_int SVE_KNOWN_PTRUE) ! (unspec:VNx16BI ! [(match_operand:VNx16BI 1 "register_operand" "Upa") ! (match_operand:VNx16BI 2 "register_operand" "Upa") ! (match_operand:VNx16BI 3 "register_operand" "0")] ! UNSPEC_BRKN)] ! UNSPEC_PTEST)) ! (clobber (match_scratch:VNx16BI 0 "=Upa"))] ! "TARGET_SVE" ! "brkns\t%0.b, %1/z, %2.b, %0.b" ! "&& (operands[4] != CONST0_RTX (VNx16BImode) ! || operands[5] != CONST0_RTX (VNx16BImode))" ! { ! operands[4] = CONST0_RTX (VNx16BImode); ! operands[5] = CONST0_RTX (VNx16BImode); ! } ! ) ! ! ;; BRKPA and BRKPB, producing both a predicate and a flags result. (define_insn "*aarch64_brk_cc" [(set (reg:CC_NZC CC_REGNUM) (unspec:CC_NZC *************** *** 9505,9521 **** (unspec:VNx16BI [(match_dup 1) (match_operand:VNx16BI 2 "register_operand" "Upa") ! (match_operand:VNx16BI 3 "register_operand" "")] ! SVE_BRK_BINARY)] UNSPEC_PTEST)) (set (match_operand:VNx16BI 0 "register_operand" "=Upa") (unspec:VNx16BI [(match_dup 1) (match_dup 2) (match_dup 3)] ! SVE_BRK_BINARY))] "TARGET_SVE" ! "brks\t%0.b, %1/z, %2.b, %.b" ) ;; Same, but with only the flags result being interesting. --- 9555,9571 ---- (unspec:VNx16BI [(match_dup 1) (match_operand:VNx16BI 2 "register_operand" "Upa") ! (match_operand:VNx16BI 3 "register_operand" "Upa")] ! SVE_BRKP)] UNSPEC_PTEST)) (set (match_operand:VNx16BI 0 "register_operand" "=Upa") (unspec:VNx16BI [(match_dup 1) (match_dup 2) (match_dup 3)] ! SVE_BRKP))] "TARGET_SVE" ! "brks\t%0.b, %1/z, %2.b, %3.b" ) ;; Same, but with only the flags result being interesting. *************** *** 9528,9539 **** (unspec:VNx16BI [(match_dup 1) (match_operand:VNx16BI 2 "register_operand" "Upa") ! (match_operand:VNx16BI 3 "register_operand" "")] ! SVE_BRK_BINARY)] UNSPEC_PTEST)) (clobber (match_scratch:VNx16BI 0 "=Upa"))] "TARGET_SVE" ! "brks\t%0.b, %1/z, %2.b, %.b" ) ;; ------------------------------------------------------------------------- --- 9578,9589 ---- (unspec:VNx16BI [(match_dup 1) (match_operand:VNx16BI 2 "register_operand" "Upa") ! (match_operand:VNx16BI 3 "register_operand" "Upa")] ! SVE_BRKP)] UNSPEC_PTEST)) (clobber (match_scratch:VNx16BI 0 "=Upa"))] "TARGET_SVE" ! "brks\t%0.b, %1/z, %2.b, %3.b" ) ;; ------------------------------------------------------------------------- diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/aarch64-tune.md gcc-11.4.0/gcc/config/aarch64/aarch64-tune.md *** gcc-11.3.0/gcc/config/aarch64/aarch64-tune.md Thu Apr 21 07:59:35 2022 --- gcc-11.4.0/gcc/config/aarch64/aarch64-tune.md Mon May 29 08:49:47 2023 *************** *** 1,5 **** ;; -*- buffer-read-only: t -*- ;; Generated automatically by gentune.sh from aarch64-cores.def (define_attr "tune" ! "cortexa34,cortexa35,cortexa53,cortexa57,cortexa72,cortexa73,thunderx,thunderxt88p1,thunderxt88,octeontx,octeontxt81,octeontxt83,thunderxt81,thunderxt83,ampere1,emag,xgene1,falkor,qdf24xx,exynosm1,phecda,thunderx2t99p1,vulcan,thunderx2t99,cortexa55,cortexa75,cortexa76,cortexa76ae,cortexa77,cortexa78,cortexa78ae,cortexa78c,cortexa65,cortexa65ae,cortexx1,ares,neoversen1,neoversee1,octeontx2,octeontx2t98,octeontx2t96,octeontx2t93,octeontx2f95,octeontx2f95n,octeontx2f95mm,a64fx,tsv110,thunderx3t110,zeus,neoversev1,neoverse512tvb,saphira,neoversen2,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55,cortexa76cortexa55,cortexr82" (const (symbol_ref "((enum attr_tune) aarch64_tune)"))) --- 1,5 ---- ;; -*- buffer-read-only: t -*- ;; Generated automatically by gentune.sh from aarch64-cores.def (define_attr "tune" ! "cortexa34,cortexa35,cortexa53,cortexa57,cortexa72,cortexa73,thunderx,thunderxt88p1,thunderxt88,octeontx,octeontxt81,octeontxt83,thunderxt81,thunderxt83,ampere1,ampere1a,emag,xgene1,falkor,qdf24xx,exynosm1,phecda,thunderx2t99p1,vulcan,thunderx2t99,cortexa55,cortexa75,cortexa76,cortexa76ae,cortexa77,cortexa78,cortexa78ae,cortexa78c,cortexa65,cortexa65ae,cortexx1,ares,neoversen1,neoversee1,octeontx2,octeontx2t98,octeontx2t96,octeontx2t93,octeontx2f95,octeontx2f95n,octeontx2f95mm,a64fx,tsv110,thunderx3t110,zeus,neoversev1,neoverse512tvb,saphira,neoversen2,neoversev2,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55,cortexa76cortexa55,cortexr82" (const (symbol_ref "((enum attr_tune) aarch64_tune)"))) diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/aarch64-tuning-flags.def gcc-11.4.0/gcc/config/aarch64/aarch64-tuning-flags.def *** gcc-11.3.0/gcc/config/aarch64/aarch64-tuning-flags.def Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/aarch64/aarch64-tuning-flags.def Mon May 29 08:46:29 2023 *************** AARCH64_EXTRA_TUNING_OPTION ("cheap_shif *** 44,49 **** --- 44,52 ---- /* Disallow load/store pair instructions on Q-registers. */ AARCH64_EXTRA_TUNING_OPTION ("no_ldp_stp_qregs", NO_LDP_STP_QREGS) + /* Disallow load-pair instructions to be formed in combine/peephole. */ + AARCH64_EXTRA_TUNING_OPTION ("no_ldp_combine", NO_LDP_COMBINE) + AARCH64_EXTRA_TUNING_OPTION ("rename_load_regs", RENAME_LOAD_REGS) AARCH64_EXTRA_TUNING_OPTION ("cse_sve_vl_constants", CSE_SVE_VL_CONSTANTS) diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/aarch64.c gcc-11.4.0/gcc/config/aarch64/aarch64.c *** gcc-11.3.0/gcc/config/aarch64/aarch64.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/aarch64/aarch64.c Mon May 29 08:46:29 2023 *************** static const struct cpu_vector_cost thun *** 1070,1076 **** static const advsimd_vec_cost ampere1_advsimd_vector_cost = { ! 3, /* int_stmt_cost */ 3, /* fp_stmt_cost */ 0, /* ld2_st2_permute_cost */ 0, /* ld3_st3_permute_cost */ --- 1070,1076 ---- static const advsimd_vec_cost ampere1_advsimd_vector_cost = { ! 1, /* int_stmt_cost */ 3, /* fp_stmt_cost */ 0, /* ld2_st2_permute_cost */ 0, /* ld3_st3_permute_cost */ *************** static const advsimd_vec_cost ampere1_ad *** 1086,1102 **** 8, /* store_elt_extra_cost */ 6, /* vec_to_scalar_cost */ 7, /* scalar_to_vec_cost */ ! 5, /* align_load_cost */ ! 5, /* unalign_load_cost */ ! 2, /* unalign_store_cost */ ! 2 /* store_cost */ }; /* Ampere-1 costs for vector insn classes. */ static const struct cpu_vector_cost ampere1_vector_cost = { 1, /* scalar_int_stmt_cost */ ! 1, /* scalar_fp_stmt_cost */ 4, /* scalar_load_cost */ 1, /* scalar_store_cost */ 1, /* cond_taken_branch_cost */ --- 1086,1102 ---- 8, /* store_elt_extra_cost */ 6, /* vec_to_scalar_cost */ 7, /* scalar_to_vec_cost */ ! 4, /* align_load_cost */ ! 4, /* unalign_load_cost */ ! 1, /* unalign_store_cost */ ! 1 /* store_cost */ }; /* Ampere-1 costs for vector insn classes. */ static const struct cpu_vector_cost ampere1_vector_cost = { 1, /* scalar_int_stmt_cost */ ! 3, /* scalar_fp_stmt_cost */ 4, /* scalar_load_cost */ 1, /* scalar_store_cost */ 1, /* cond_taken_branch_cost */ *************** static const struct tune_params ampere1_ *** 1745,1751 **** 2, /* min_div_recip_mul_df. */ 0, /* max_case_values. */ tune_params::AUTOPREFETCHER_WEAK, /* autoprefetcher_model. */ ! (AARCH64_EXTRA_TUNE_NONE), /* tune_flags. */ &ere1_prefetch_tune }; --- 1745,1782 ---- 2, /* min_div_recip_mul_df. */ 0, /* max_case_values. */ tune_params::AUTOPREFETCHER_WEAK, /* autoprefetcher_model. */ ! (AARCH64_EXTRA_TUNE_NO_LDP_COMBINE), /* tune_flags. */ ! &ere1_prefetch_tune ! }; ! ! static const struct tune_params ampere1a_tunings = ! { ! &ere1a_extra_costs, ! &generic_addrcost_table, ! &generic_regmove_cost, ! &ere1_vector_cost, ! &generic_branch_cost, ! &generic_approx_modes, ! SVE_NOT_IMPLEMENTED, /* sve_width */ ! 4, /* memmov_cost */ ! 4, /* issue_rate */ ! (AARCH64_FUSE_ADRP_ADD | AARCH64_FUSE_AES_AESMC | ! AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_MOVK_MOVK | ! AARCH64_FUSE_ALU_BRANCH /* adds, ands, bics, ccmp, ccmn */ | ! AARCH64_FUSE_CMP_BRANCH | AARCH64_FUSE_ALU_CBZ | ! AARCH64_FUSE_ADDSUB_2REG_CONST1), ! /* fusible_ops */ ! "32", /* function_align. */ ! "4", /* jump_align. */ ! "32:16", /* loop_align. */ ! 2, /* int_reassoc_width. */ ! 4, /* fp_reassoc_width. */ ! 2, /* vec_reassoc_width. */ ! 2, /* min_div_recip_mul_sf. */ ! 2, /* min_div_recip_mul_df. */ ! 0, /* max_case_values. */ ! tune_params::AUTOPREFETCHER_WEAK, /* autoprefetcher_model. */ ! (AARCH64_EXTRA_TUNE_NO_LDP_COMBINE), /* tune_flags. */ &ere1_prefetch_tune }; *************** aarch64_vfp_is_call_candidate (cumulativ *** 6547,6555 **** /* Given MODE and TYPE of a function argument, return the alignment in bits. The idea is to suppress any stronger alignment requested by the user and opt for the natural alignment (specified in AAPCS64 \S ! 4.1). ABI_BREAK is set to true if the alignment was incorrectly ! calculated in versions of GCC prior to GCC-9. This is a helper ! function for local use only. */ static unsigned int aarch64_function_arg_alignment (machine_mode mode, const_tree type, --- 6578,6586 ---- /* Given MODE and TYPE of a function argument, return the alignment in bits. The idea is to suppress any stronger alignment requested by the user and opt for the natural alignment (specified in AAPCS64 \S ! 4.1). ABI_BREAK is set to the old alignment if the alignment was ! incorrectly calculated in versions of GCC prior to GCC-9. This is ! a helper function for local use only. */ static unsigned int aarch64_function_arg_alignment (machine_mode mode, const_tree type, *************** aarch64_layout_arg (cumulative_args_t pc *** 6625,6635 **** --- 6656,6679 ---- if (pcum->aapcs_arg_processed) return; + bool warn_pcs_change + = (warn_psabi + && !pcum->silent_p + && (currently_expanding_function_start + || currently_expanding_gimple_stmt)); + + unsigned int alignment + = aarch64_function_arg_alignment (mode, type, &abi_break); + gcc_assert (!alignment || abi_break < alignment); + pcum->aapcs_arg_processed = true; pure_scalable_type_info pst_info; if (type && pst_info.analyze_registers (type)) { + /* aarch64_function_arg_alignment has never had an effect on + this case. */ + /* The PCS says that it is invalid to pass an SVE value to an unprototyped function. There is no ABI-defined location we can return in this case, so we have no real choice but to raise *************** aarch64_layout_arg (cumulative_args_t pc *** 6700,6705 **** --- 6744,6751 ---- and homogenous short-vector aggregates (HVA). */ if (allocate_nvrn) { + /* aarch64_function_arg_alignment has never had an effect on + this case. */ if (!pcum->silent_p && !TARGET_FLOAT) aarch64_err_no_fpadvsimd (mode); *************** aarch64_layout_arg (cumulative_args_t pc *** 6758,6764 **** && (aarch64_function_arg_alignment (mode, type, &abi_break) == 16 * BITS_PER_UNIT)) { ! if (abi_break && warn_psabi && currently_expanding_gimple_stmt) inform (input_location, "parameter passing for argument of type " "%qT changed in GCC 9.1", type); ++ncrn; --- 6804,6810 ---- && (aarch64_function_arg_alignment (mode, type, &abi_break) == 16 * BITS_PER_UNIT)) { ! if (warn_pcs_change && abi_break) inform (input_location, "parameter passing for argument of type " "%qT changed in GCC 9.1", type); ++ncrn; *************** on_stack: *** 6821,6827 **** int new_size = ROUND_UP (pcum->aapcs_stack_size, 16 / UNITS_PER_WORD); if (pcum->aapcs_stack_size != new_size) { ! if (abi_break && warn_psabi && currently_expanding_gimple_stmt) inform (input_location, "parameter passing for argument of type " "%qT changed in GCC 9.1", type); pcum->aapcs_stack_size = new_size; --- 6867,6873 ---- int new_size = ROUND_UP (pcum->aapcs_stack_size, 16 / UNITS_PER_WORD); if (pcum->aapcs_stack_size != new_size) { ! if (warn_pcs_change && abi_break) inform (input_location, "parameter passing for argument of type " "%qT changed in GCC 9.1", type); pcum->aapcs_stack_size = new_size; *************** aarch64_function_arg_boundary (machine_m *** 6941,6954 **** unsigned int alignment = aarch64_function_arg_alignment (mode, type, &abi_break); alignment = MIN (MAX (alignment, PARM_BOUNDARY), STACK_BOUNDARY); ! if (abi_break & warn_psabi) { abi_break = MIN (MAX (abi_break, PARM_BOUNDARY), STACK_BOUNDARY); if (alignment != abi_break) inform (input_location, "parameter passing for argument of type " "%qT changed in GCC 9.1", type); } - return alignment; } --- 6987,6999 ---- unsigned int alignment = aarch64_function_arg_alignment (mode, type, &abi_break); alignment = MIN (MAX (alignment, PARM_BOUNDARY), STACK_BOUNDARY); ! if (abi_break && warn_psabi) { abi_break = MIN (MAX (abi_break, PARM_BOUNDARY), STACK_BOUNDARY); if (alignment != abi_break) inform (input_location, "parameter passing for argument of type " "%qT changed in GCC 9.1", type); } return alignment; } *************** aarch64_declare_function_name (FILE *str *** 21508,21537 **** cfun->machine->label_is_assembled = true; } ! /* Implement PRINT_PATCHABLE_FUNCTION_ENTRY. Check if the patch area is after ! the function label and emit a BTI if necessary. */ void aarch64_print_patchable_function_entry (FILE *file, unsigned HOST_WIDE_INT patch_area_size, bool record_p) { ! if (cfun->machine->label_is_assembled ! && aarch64_bti_enabled () ! && !cgraph_node::get (cfun->decl)->only_called_directly_p ()) { ! /* Remove the BTI that follows the patch area and insert a new BTI ! before the patch area right after the function label. */ ! rtx_insn *insn = next_real_nondebug_insn (get_insns ()); ! if (insn ! && INSN_P (insn) ! && GET_CODE (PATTERN (insn)) == UNSPEC_VOLATILE ! && XINT (PATTERN (insn), 1) == UNSPECV_BTI_C) ! delete_insn (insn); ! asm_fprintf (file, "\thint\t34 // bti c\n"); } ! default_print_patchable_function_entry (file, patch_area_size, record_p); } /* Implement ASM_OUTPUT_DEF_FROM_DECLS. Output .variant_pcs for aliases. */ --- 21553,21608 ---- cfun->machine->label_is_assembled = true; } ! /* Implement PRINT_PATCHABLE_FUNCTION_ENTRY. */ void aarch64_print_patchable_function_entry (FILE *file, unsigned HOST_WIDE_INT patch_area_size, bool record_p) { ! if (!cfun->machine->label_is_assembled) { ! /* Emit the patching area before the entry label, if any. */ ! default_print_patchable_function_entry (file, patch_area_size, ! record_p); ! return; } ! rtx pa = gen_patchable_area (GEN_INT (patch_area_size), ! GEN_INT (record_p)); ! basic_block bb = ENTRY_BLOCK_PTR_FOR_FN (cfun)->next_bb; ! ! if (!aarch64_bti_enabled () ! || cgraph_node::get (cfun->decl)->only_called_directly_p ()) ! { ! /* Emit the patchable_area at the beginning of the function. */ ! rtx_insn *insn = emit_insn_before (pa, BB_HEAD (bb)); ! INSN_ADDRESSES_NEW (insn, -1); ! return; ! } ! ! rtx_insn *insn = next_real_nondebug_insn (get_insns ()); ! if (!insn ! || !INSN_P (insn) ! || GET_CODE (PATTERN (insn)) != UNSPEC_VOLATILE ! || XINT (PATTERN (insn), 1) != UNSPECV_BTI_C) ! { ! /* Emit a BTI_C. */ ! insn = emit_insn_before (gen_bti_c (), BB_HEAD (bb)); ! } ! ! /* Emit the patchable_area after BTI_C. */ ! insn = emit_insn_after (pa, insn); ! INSN_ADDRESSES_NEW (insn, -1); ! } ! ! /* Output patchable area. */ ! ! void ! aarch64_output_patchable_area (unsigned int patch_area_size, bool record_p) ! { ! default_print_patchable_function_entry (asm_out_file, patch_area_size, ! record_p); } /* Implement ASM_OUTPUT_DEF_FROM_DECLS. Output .variant_pcs for aliases. */ *************** aarch64_emit_unlikely_jump (rtx insn) *** 21627,21640 **** add_reg_br_prob_note (jump, profile_probability::very_unlikely ()); } ! /* We store the names of the various atomic helpers in a 5x4 array. Return the libcall function given MODE, MODEL and NAMES. */ rtx aarch64_atomic_ool_func(machine_mode mode, rtx model_rtx, const atomic_ool_names *names) { ! memmodel model = memmodel_base (INTVAL (model_rtx)); int mode_idx, model_idx; switch (mode) --- 21698,21711 ---- add_reg_br_prob_note (jump, profile_probability::very_unlikely ()); } ! /* We store the names of the various atomic helpers in a 5x5 array. Return the libcall function given MODE, MODEL and NAMES. */ rtx aarch64_atomic_ool_func(machine_mode mode, rtx model_rtx, const atomic_ool_names *names) { ! memmodel model = memmodel_from_int (INTVAL (model_rtx)); int mode_idx, model_idx; switch (mode) *************** aarch64_atomic_ool_func(machine_mode mod *** 21674,21679 **** --- 21745,21755 ---- case MEMMODEL_SEQ_CST: model_idx = 3; break; + case MEMMODEL_SYNC_ACQUIRE: + case MEMMODEL_SYNC_RELEASE: + case MEMMODEL_SYNC_SEQ_CST: + model_idx = 4; + break; default: gcc_unreachable (); } *************** aarch64_atomic_ool_func(machine_mode mod *** 21686,21692 **** { "__aarch64_" #B #N "_relax", \ "__aarch64_" #B #N "_acq", \ "__aarch64_" #B #N "_rel", \ ! "__aarch64_" #B #N "_acq_rel" } #define DEF4(B) DEF0(B, 1), DEF0(B, 2), DEF0(B, 4), DEF0(B, 8), \ { NULL, NULL, NULL, NULL } --- 21762,21769 ---- { "__aarch64_" #B #N "_relax", \ "__aarch64_" #B #N "_acq", \ "__aarch64_" #B #N "_rel", \ ! "__aarch64_" #B #N "_acq_rel", \ ! "__aarch64_" #B #N "_sync" } #define DEF4(B) DEF0(B, 1), DEF0(B, 2), DEF0(B, 4), DEF0(B, 8), \ { NULL, NULL, NULL, NULL } *************** aarch_macro_fusion_pair_p (rtx_insn *pre *** 24282,24287 **** --- 24359,24392 ---- } } + /* Fuse A+B+1 and A-B-1 */ + if (simple_sets_p + && aarch64_fusion_enabled_p (AARCH64_FUSE_ADDSUB_2REG_CONST1)) + { + /* We're trying to match: + prev == (set (r0) (plus (r0) (r1))) + curr == (set (r0) (plus (r0) (const_int 1))) + or: + prev == (set (r0) (minus (r0) (r1))) + curr == (set (r0) (plus (r0) (const_int -1))) */ + + rtx prev_src = SET_SRC (prev_set); + rtx curr_src = SET_SRC (curr_set); + + int polarity = 1; + if (GET_CODE (prev_src) == MINUS) + polarity = -1; + + if (GET_CODE (curr_src) == PLUS + && (GET_CODE (prev_src) == PLUS || GET_CODE (prev_src) == MINUS) + && CONST_INT_P (XEXP (curr_src, 1)) + && INTVAL (XEXP (curr_src, 1)) == polarity + && REG_P (XEXP (curr_src, 0)) + && REG_P (SET_DEST (prev_set)) + && REGNO (SET_DEST (prev_set)) == REGNO (XEXP (curr_src, 0))) + return true; + } + return false; } *************** aarch64_operands_ok_for_ldpstp (rtx *ope *** 24469,24474 **** --- 24574,24585 ---- enum reg_class rclass_1, rclass_2; rtx mem_1, mem_2, reg_1, reg_2, base_1, base_2, offset_1, offset_2; + /* Allow the tuning structure to disable LDP instruction formation + from combining instructions (e.g., in peephole2). */ + if (load && (aarch64_tune_params.extra_tuning_flags + & AARCH64_EXTRA_TUNE_NO_LDP_COMBINE)) + return false; + if (load) { mem_1 = operands[1]; diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/aarch64.h gcc-11.4.0/gcc/config/aarch64/aarch64.h *** gcc-11.3.0/gcc/config/aarch64/aarch64.h Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/aarch64/aarch64.h Mon May 29 08:46:29 2023 *************** extern unsigned aarch64_architecture_ver *** 245,251 **** #define AARCH64_FL_FOR_ARCH8_2 \ (AARCH64_FL_FOR_ARCH8_1 | AARCH64_FL_V8_2) #define AARCH64_FL_FOR_ARCH8_3 \ ! (AARCH64_FL_FOR_ARCH8_2 | AARCH64_FL_V8_3 | AARCH64_FL_PAUTH) #define AARCH64_FL_FOR_ARCH8_4 \ (AARCH64_FL_FOR_ARCH8_3 | AARCH64_FL_V8_4 | AARCH64_FL_F16FML \ | AARCH64_FL_DOTPROD | AARCH64_FL_RCPC8_4 | AARCH64_FL_FLAGM) --- 245,252 ---- #define AARCH64_FL_FOR_ARCH8_2 \ (AARCH64_FL_FOR_ARCH8_1 | AARCH64_FL_V8_2) #define AARCH64_FL_FOR_ARCH8_3 \ ! (AARCH64_FL_FOR_ARCH8_2 | AARCH64_FL_V8_3 | AARCH64_FL_PAUTH \ ! | AARCH64_FL_RCPC) #define AARCH64_FL_FOR_ARCH8_4 \ (AARCH64_FL_FOR_ARCH8_3 | AARCH64_FL_V8_4 | AARCH64_FL_F16FML \ | AARCH64_FL_DOTPROD | AARCH64_FL_RCPC8_4 | AARCH64_FL_FLAGM) *************** extern unsigned aarch64_architecture_ver *** 282,287 **** --- 283,289 ---- #define AARCH64_ISA_SM4 (aarch64_isa_flags & AARCH64_FL_SM4) #define AARCH64_ISA_SHA3 (aarch64_isa_flags & AARCH64_FL_SHA3) #define AARCH64_ISA_F16FML (aarch64_isa_flags & AARCH64_FL_F16FML) + #define AARCH64_ISA_RCPC (aarch64_isa_flags & AARCH64_FL_RCPC) #define AARCH64_ISA_RCPC8_4 (aarch64_isa_flags & AARCH64_FL_RCPC8_4) #define AARCH64_ISA_RNG (aarch64_isa_flags & AARCH64_FL_RNG) #define AARCH64_ISA_V8_5 (aarch64_isa_flags & AARCH64_FL_V8_5) diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/aarch64.md gcc-11.4.0/gcc/config/aarch64/aarch64.md *** gcc-11.3.0/gcc/config/aarch64/aarch64.md Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/aarch64/aarch64.md Mon May 29 08:46:29 2023 *************** *** 294,299 **** --- 294,300 ---- UNSPEC_TAG_SPACE ; Translate address to MTE tag address space. UNSPEC_LD1RO UNSPEC_SALT_ADDR + UNSPECV_PATCHABLE_AREA ]) (define_c_enum "unspecv" [ *************** *** 4762,4768 **** rtx ccreg = aarch64_gen_compare_reg (EQ, operands[1], const0_rtx); rtx x = gen_rtx_NE (VOIDmode, ccreg, const0_rtx); ! emit_insn (gen_rbit2 (operands[0], operands[1])); emit_insn (gen_clz2 (operands[0], operands[0])); emit_insn (gen_csinc3_insn (operands[0], x, operands[0], const0_rtx)); DONE; --- 4763,4769 ---- rtx ccreg = aarch64_gen_compare_reg (EQ, operands[1], const0_rtx); rtx x = gen_rtx_NE (VOIDmode, ccreg, const0_rtx); ! emit_insn (gen_aarch64_rbit (mode, operands[0], operands[1])); emit_insn (gen_clz2 (operands[0], operands[0])); emit_insn (gen_csinc3_insn (operands[0], x, operands[0], const0_rtx)); DONE; *************** *** 4808,4814 **** [(set_attr "type" "clz")] ) ! (define_insn "rbit2" [(set (match_operand:GPI 0 "register_operand" "=r") (unspec:GPI [(match_operand:GPI 1 "register_operand" "r")] UNSPEC_RBIT))] "" --- 4809,4815 ---- [(set_attr "type" "clz")] ) ! (define_insn "@aarch64_rbit" [(set (match_operand:GPI 0 "register_operand" "=r") (unspec:GPI [(match_operand:GPI 1 "register_operand" "r")] UNSPEC_RBIT))] "" *************** *** 4829,4835 **** "reload_completed" [(const_int 0)] " ! emit_insn (gen_rbit2 (operands[0], operands[1])); emit_insn (gen_clz2 (operands[0], operands[0])); DONE; ") --- 4830,4836 ---- "reload_completed" [(const_int 0)] " ! emit_insn (gen_aarch64_rbit (mode, operands[0], operands[1])); emit_insn (gen_clz2 (operands[0], operands[0])); DONE; ") *************** *** 5819,5824 **** --- 5820,5832 ---- [(set_attr "type" "rev")] ) + (define_insn "@aarch64_rev16" + [(set (match_operand:GPI 0 "register_operand" "=r") + (unspec:GPI [(match_operand:GPI 1 "register_operand" "r")] UNSPEC_REV))] + "" + "rev16\\t%0, %1" + [(set_attr "type" "rev")]) + (define_insn "*aarch64_bfxil" [(set (match_operand:GPI 0 "register_operand" "=r,r") (ior:GPI (and:GPI (match_operand:GPI 1 "register_operand" "r,0") *************** *** 7515,7520 **** --- 7523,7541 ---- [(set_attr "type" "memtag")] ) + (define_insn "patchable_area" + [(unspec_volatile [(match_operand 0 "const_int_operand") + (match_operand 1 "const_int_operand")] + UNSPECV_PATCHABLE_AREA)] + "" + { + aarch64_output_patchable_area (INTVAL (operands[0]), + INTVAL (operands[1]) != 0); + return ""; + } + [(set (attr "length") (symbol_ref "INTVAL (operands[0])"))] + ) + ;; AdvSIMD Stuff (include "aarch64-simd.md") diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/arm_acle.h gcc-11.4.0/gcc/config/aarch64/arm_acle.h *** gcc-11.3.0/gcc/config/aarch64/arm_acle.h Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/aarch64/arm_acle.h Mon May 29 08:46:29 2023 *************** *** 28,38 **** --- 28,91 ---- #define _GCC_ARM_ACLE_H #include + #include #ifdef __cplusplus extern "C" { #endif + #define _GCC_ARM_ACLE_ROR_FN(NAME, TYPE) \ + __extension__ extern __inline TYPE \ + __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \ + NAME (TYPE __value, uint32_t __rotate) \ + { \ + size_t __size = sizeof (TYPE) * __CHAR_BIT__; \ + __rotate = __rotate % __size; \ + return __value >> __rotate | __value << ((__size - __rotate) % __size); \ + } + + _GCC_ARM_ACLE_ROR_FN (__ror, uint32_t) + _GCC_ARM_ACLE_ROR_FN (__rorl, unsigned long) + _GCC_ARM_ACLE_ROR_FN (__rorll, uint64_t) + + #undef _GCC_ARM_ACLE_ROR_FN + + #define _GCC_ARM_ACLE_DATA_FN(NAME, BUILTIN, ITYPE, RTYPE) \ + __extension__ extern __inline RTYPE \ + __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) \ + __##NAME (ITYPE __value) \ + { \ + return __builtin_##BUILTIN (__value); \ + } + + _GCC_ARM_ACLE_DATA_FN (clz, clz, uint32_t, unsigned int) + _GCC_ARM_ACLE_DATA_FN (clzl, clzl, unsigned long, unsigned int) + _GCC_ARM_ACLE_DATA_FN (clzll, clzll, uint64_t, unsigned int) + _GCC_ARM_ACLE_DATA_FN (cls, clrsb, uint32_t, unsigned int) + _GCC_ARM_ACLE_DATA_FN (clsl, clrsbl, unsigned long, unsigned int) + _GCC_ARM_ACLE_DATA_FN (clsll, clrsbll, uint64_t, unsigned int) + _GCC_ARM_ACLE_DATA_FN (rev16, aarch64_rev16, uint32_t, uint32_t) + _GCC_ARM_ACLE_DATA_FN (rev16l, aarch64_rev16l, unsigned long, unsigned long) + _GCC_ARM_ACLE_DATA_FN (rev16ll, aarch64_rev16ll, uint64_t, uint64_t) + _GCC_ARM_ACLE_DATA_FN (rbit, aarch64_rbit, uint32_t, uint32_t) + _GCC_ARM_ACLE_DATA_FN (rbitl, aarch64_rbitl, unsigned long, unsigned long) + _GCC_ARM_ACLE_DATA_FN (rbitll, aarch64_rbitll, uint64_t, uint64_t) + _GCC_ARM_ACLE_DATA_FN (revsh, bswap16, int16_t, int16_t) + _GCC_ARM_ACLE_DATA_FN (rev, bswap32, uint32_t, uint32_t) + _GCC_ARM_ACLE_DATA_FN (revll, bswap64, uint64_t, uint64_t) + + #undef _GCC_ARM_ACLE_DATA_FN + + __extension__ extern __inline unsigned long + __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) + __revl (unsigned long __value) + { + if (sizeof (unsigned long) == 8) + return __revll (__value); + else + return __rev (__value); + } + #pragma GCC push_options #pragma GCC target ("arch=armv8.3-a") __extension__ static __inline int32_t __attribute__ ((__always_inline__)) diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/driver-aarch64.c gcc-11.4.0/gcc/config/aarch64/driver-aarch64.c *** gcc-11.3.0/gcc/config/aarch64/driver-aarch64.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/aarch64/driver-aarch64.c Mon May 29 08:46:29 2023 *************** readline (FILE *f) *** 200,208 **** return std::string (); /* If we're not at the end of the line then override the \0 added by fgets. */ ! last = strnlen (buf, size) - 1; } ! while (!feof (f) && buf[last] != '\n'); std::string result (buf); free (buf); --- 200,208 ---- return std::string (); /* If we're not at the end of the line then override the \0 added by fgets. */ ! last = strnlen (buf, size); } ! while (!feof (f) && last > 0 && buf[last - 1] != '\n'); std::string result (buf); free (buf); diff -Nrcpad gcc-11.3.0/gcc/config/aarch64/iterators.md gcc-11.4.0/gcc/config/aarch64/iterators.md *** gcc-11.3.0/gcc/config/aarch64/iterators.md Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/aarch64/iterators.md Mon May 29 08:46:29 2023 *************** *** 2764,2769 **** --- 2764,2771 ---- (define_int_iterator SVE_BRK_UNARY [UNSPEC_BRKA UNSPEC_BRKB]) + (define_int_iterator SVE_BRKP [UNSPEC_BRKPA UNSPEC_BRKPB]) + (define_int_iterator SVE_BRK_BINARY [UNSPEC_BRKN UNSPEC_BRKPA UNSPEC_BRKPB]) (define_int_iterator SVE_PITER [UNSPEC_PFIRST UNSPEC_PNEXT]) diff -Nrcpad gcc-11.3.0/gcc/config/alpha/alpha-protos.h gcc-11.4.0/gcc/config/alpha/alpha-protos.h *** gcc-11.3.0/gcc/config/alpha/alpha-protos.h Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/alpha/alpha-protos.h Mon May 29 08:46:29 2023 *************** extern void alpha_end_function (FILE *, *** 73,78 **** --- 73,80 ---- extern bool alpha_find_lo_sum_using_gp (rtx); + extern int alpha_store_data_bypass_p (rtx_insn *, rtx_insn *); + #ifdef REAL_VALUE_TYPE extern int check_float_value (machine_mode, REAL_VALUE_TYPE *, int); #endif diff -Nrcpad gcc-11.3.0/gcc/config/alpha/alpha.c gcc-11.4.0/gcc/config/alpha/alpha.c *** gcc-11.3.0/gcc/config/alpha/alpha.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/alpha/alpha.c Mon May 29 08:46:29 2023 *************** alpha_does_function_need_gp (void) *** 7564,7569 **** --- 7564,7638 ---- return 0; } + /* Helper function for alpha_store_data_bypass_p, handle just a single SET + IN_SET. */ + + static bool + alpha_store_data_bypass_p_1 (rtx_insn *out_insn, rtx in_set) + { + if (!MEM_P (SET_DEST (in_set))) + return false; + + rtx out_set = single_set (out_insn); + if (out_set) + return !reg_mentioned_p (SET_DEST (out_set), SET_DEST (in_set)); + + rtx out_pat = PATTERN (out_insn); + if (GET_CODE (out_pat) != PARALLEL) + return false; + + for (int i = 0; i < XVECLEN (out_pat, 0); i++) + { + rtx out_exp = XVECEXP (out_pat, 0, i); + + if (GET_CODE (out_exp) == CLOBBER || GET_CODE (out_exp) == USE + || GET_CODE (out_exp) == TRAP_IF) + continue; + + gcc_assert (GET_CODE (out_exp) == SET); + + if (reg_mentioned_p (SET_DEST (out_exp), SET_DEST (in_set))) + return false; + } + + return true; + } + + /* True if the dependency between OUT_INSN and IN_INSN is on the store + data not the address operand(s) of the store. IN_INSN and OUT_INSN + must be either a single_set or a PARALLEL with SETs inside. + + This alpha-specific version of store_data_bypass_p ignores TRAP_IF + that would result in assertion failure (and internal compiler error) + in the generic store_data_bypass_p function. */ + + int + alpha_store_data_bypass_p (rtx_insn *out_insn, rtx_insn *in_insn) + { + rtx in_set = single_set (in_insn); + if (in_set) + return alpha_store_data_bypass_p_1 (out_insn, in_set); + + rtx in_pat = PATTERN (in_insn); + if (GET_CODE (in_pat) != PARALLEL) + return false; + + for (int i = 0; i < XVECLEN (in_pat, 0); i++) + { + rtx in_exp = XVECEXP (in_pat, 0, i); + + if (GET_CODE (in_exp) == CLOBBER || GET_CODE (in_exp) == USE + || GET_CODE (in_exp) == TRAP_IF) + continue; + + gcc_assert (GET_CODE (in_exp) == SET); + + if (!alpha_store_data_bypass_p_1 (out_insn, in_exp)) + return false; + } + + return true; + } /* Helper function to set RTX_FRAME_RELATED_P on instructions, including sequences. */ diff -Nrcpad gcc-11.3.0/gcc/config/alpha/ev4.md gcc-11.4.0/gcc/config/alpha/ev4.md *** gcc-11.3.0/gcc/config/alpha/ev4.md Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/alpha/ev4.md Mon May 29 08:46:29 2023 *************** *** 44,57 **** ; Stores can issue before the data (but not address) is ready. (define_insn_reservation "ev4_ist" 1 (and (eq_attr "tune" "ev4") ! (eq_attr "type" "ist")) ! "ev4_ib1+ev4_abox") ! ! ; ??? Separate from ev4_ist because store_data_bypass_p can't handle ! ; the patterns with multiple sets, like store-conditional. ! (define_insn_reservation "ev4_ist_c" 1 ! (and (eq_attr "tune" "ev4") ! (eq_attr "type" "st_c")) "ev4_ib1+ev4_abox") (define_insn_reservation "ev4_fst" 1 --- 44,50 ---- ; Stores can issue before the data (but not address) is ready. (define_insn_reservation "ev4_ist" 1 (and (eq_attr "tune" "ev4") ! (eq_attr "type" "ist,st_c")) "ev4_ib1+ev4_abox") (define_insn_reservation "ev4_fst" 1 *************** *** 110,116 **** (define_bypass 0 "ev4_iaddlog,ev4_shiftcm,ev4_icmp" "ev4_ist" ! "store_data_bypass_p") ; Multiplies use a non-pipelined imul unit. Also, "no [ebox] insn can ; be issued exactly three cycles before an integer multiply completes". --- 103,109 ---- (define_bypass 0 "ev4_iaddlog,ev4_shiftcm,ev4_icmp" "ev4_ist" ! "alpha_store_data_bypass_p") ; Multiplies use a non-pipelined imul unit. Also, "no [ebox] insn can ; be issued exactly three cycles before an integer multiply completes". *************** *** 121,127 **** (eq_attr "opsize" "si"))) "ev4_ib0+ev4_imul,ev4_imul*18,ev4_ebox") ! (define_bypass 20 "ev4_imulsi" "ev4_ist" "store_data_bypass_p") (define_insn_reservation "ev4_imuldi" 23 (and (eq_attr "tune" "ev4") --- 114,120 ---- (eq_attr "opsize" "si"))) "ev4_ib0+ev4_imul,ev4_imul*18,ev4_ebox") ! (define_bypass 20 "ev4_imulsi" "ev4_ist" "alpha_store_data_bypass_p") (define_insn_reservation "ev4_imuldi" 23 (and (eq_attr "tune" "ev4") *************** *** 129,135 **** (eq_attr "opsize" "!si"))) "ev4_ib0+ev4_imul,ev4_imul*20,ev4_ebox") ! (define_bypass 22 "ev4_imuldi" "ev4_ist" "store_data_bypass_p") ; Most FP insns have a 6 cycle latency, but with a 4 cycle bypass back in. (define_insn_reservation "ev4_fpop" 6 --- 122,128 ---- (eq_attr "opsize" "!si"))) "ev4_ib0+ev4_imul,ev4_imul*20,ev4_ebox") ! (define_bypass 22 "ev4_imuldi" "ev4_ist" "alpha_store_data_bypass_p") ; Most FP insns have a 6 cycle latency, but with a 4 cycle bypass back in. (define_insn_reservation "ev4_fpop" 6 diff -Nrcpad gcc-11.3.0/gcc/config/arm/arm-protos.h gcc-11.4.0/gcc/config/arm/arm-protos.h *** gcc-11.3.0/gcc/config/arm/arm-protos.h Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/arm/arm-protos.h Mon May 29 08:46:29 2023 *************** extern int arm_coproc_mem_operand_wb (rt *** 122,127 **** --- 122,128 ---- extern int neon_vector_mem_operand (rtx, int, bool); extern int mve_vector_mem_operand (machine_mode, rtx, bool); extern int neon_struct_mem_operand (rtx); + extern int mve_struct_mem_operand (rtx); extern rtx *neon_vcmla_lane_prepare_operands (rtx *); diff -Nrcpad gcc-11.3.0/gcc/config/arm/arm.c gcc-11.4.0/gcc/config/arm/arm.c *** gcc-11.3.0/gcc/config/arm/arm.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/arm/arm.c Mon May 29 08:46:29 2023 *************** neon_vector_mem_operand (rtx op, int typ *** 13532,13537 **** --- 13532,13555 ---- return FALSE; } + /* Return TRUE if OP is a mem suitable for loading/storing an MVE struct + type. */ + int + mve_struct_mem_operand (rtx op) + { + rtx ind = XEXP (op, 0); + + /* Match: (mem (reg)). */ + if (REG_P (ind)) + return arm_address_register_rtx_p (ind, 0); + + /* Allow only post-increment by the mode size. */ + if (GET_CODE (ind) == POST_INC) + return arm_address_register_rtx_p (XEXP (ind, 0), 0); + + return FALSE; + } + /* Return TRUE if OP is a mem suitable for loading/storing a Neon struct type. */ int *************** gen_cpymem_ldrd_strd (rtx *operands) *** 15546,15558 **** { len -= 8; reg0 = gen_reg_rtx (DImode); ! rtx low_reg = NULL_RTX; ! rtx hi_reg = NULL_RTX; if (!src_aligned || !dst_aligned) { ! low_reg = gen_lowpart (SImode, reg0); ! hi_reg = gen_highpart_mode (SImode, DImode, reg0); } if (MEM_ALIGN (src) >= 2 * BITS_PER_WORD) emit_move_insn (reg0, src); --- 15564,15584 ---- { len -= 8; reg0 = gen_reg_rtx (DImode); ! rtx first_reg = NULL_RTX; ! rtx second_reg = NULL_RTX; if (!src_aligned || !dst_aligned) { ! if (BYTES_BIG_ENDIAN) ! { ! second_reg = gen_lowpart (SImode, reg0); ! first_reg = gen_highpart_mode (SImode, DImode, reg0); ! } ! else ! { ! first_reg = gen_lowpart (SImode, reg0); ! second_reg = gen_highpart_mode (SImode, DImode, reg0); ! } } if (MEM_ALIGN (src) >= 2 * BITS_PER_WORD) emit_move_insn (reg0, src); *************** gen_cpymem_ldrd_strd (rtx *operands) *** 15560,15568 **** emit_insn (gen_unaligned_loaddi (reg0, src)); else { ! emit_insn (gen_unaligned_loadsi (low_reg, src)); src = next_consecutive_mem (src); ! emit_insn (gen_unaligned_loadsi (hi_reg, src)); } if (MEM_ALIGN (dst) >= 2 * BITS_PER_WORD) --- 15586,15594 ---- emit_insn (gen_unaligned_loaddi (reg0, src)); else { ! emit_insn (gen_unaligned_loadsi (first_reg, src)); src = next_consecutive_mem (src); ! emit_insn (gen_unaligned_loadsi (second_reg, src)); } if (MEM_ALIGN (dst) >= 2 * BITS_PER_WORD) *************** gen_cpymem_ldrd_strd (rtx *operands) *** 15571,15579 **** emit_insn (gen_unaligned_storedi (dst, reg0)); else { ! emit_insn (gen_unaligned_storesi (dst, low_reg)); dst = next_consecutive_mem (dst); ! emit_insn (gen_unaligned_storesi (dst, hi_reg)); } src = next_consecutive_mem (src); --- 15597,15605 ---- emit_insn (gen_unaligned_storedi (dst, reg0)); else { ! emit_insn (gen_unaligned_storesi (dst, first_reg)); dst = next_consecutive_mem (dst); ! emit_insn (gen_unaligned_storesi (dst, second_reg)); } src = next_consecutive_mem (src); diff -Nrcpad gcc-11.3.0/gcc/config/arm/constraints.md gcc-11.4.0/gcc/config/arm/constraints.md *** gcc-11.3.0/gcc/config/arm/constraints.md Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/arm/constraints.md Mon May 29 08:46:29 2023 *************** *** 460,465 **** --- 460,470 ---- (and (match_code "mem") (match_test "TARGET_32BIT && arm_coproc_mem_operand (op, FALSE)"))) + (define_memory_constraint "Ug" + "@internal + In Thumb-2 state a valid MVE struct load/store address." + (match_operand 0 "mve_struct_operand")) + (define_memory_constraint "Uj" "@internal In ARM/Thumb-2 state a VFP load/store address that supports writeback diff -Nrcpad gcc-11.3.0/gcc/config/arm/mve.md gcc-11.4.0/gcc/config/arm/mve.md *** gcc-11.3.0/gcc/config/arm/mve.md Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/arm/mve.md Mon May 29 08:46:29 2023 *************** *** 92,98 **** ;; [vst4q]) ;; (define_insn "mve_vst4q" ! [(set (match_operand:XI 0 "neon_struct_operand" "=Um") (unspec:XI [(match_operand:XI 1 "s_register_operand" "w") (unspec:MVE_VLD_ST [(const_int 0)] UNSPEC_VSTRUCTDUMMY)] VST4Q)) --- 92,98 ---- ;; [vst4q]) ;; (define_insn "mve_vst4q" ! [(set (match_operand:XI 0 "mve_struct_operand" "=Ug") (unspec:XI [(match_operand:XI 1 "s_register_operand" "w") (unspec:MVE_VLD_ST [(const_int 0)] UNSPEC_VSTRUCTDUMMY)] VST4Q)) *************** *** 10312,10318 **** ;; [vst2q]) ;; (define_insn "mve_vst2q" ! [(set (match_operand:OI 0 "neon_struct_operand" "=Um") (unspec:OI [(match_operand:OI 1 "s_register_operand" "w") (unspec:MVE_VLD_ST [(const_int 0)] UNSPEC_VSTRUCTDUMMY)] VST2Q)) --- 10312,10318 ---- ;; [vst2q]) ;; (define_insn "mve_vst2q" ! [(set (match_operand:OI 0 "mve_struct_operand" "=Ug") (unspec:OI [(match_operand:OI 1 "s_register_operand" "w") (unspec:MVE_VLD_ST [(const_int 0)] UNSPEC_VSTRUCTDUMMY)] VST2Q)) *************** *** 10341,10347 **** ;; (define_insn "mve_vld2q" [(set (match_operand:OI 0 "s_register_operand" "=w") ! (unspec:OI [(match_operand:OI 1 "neon_struct_operand" "Um") (unspec:MVE_VLD_ST [(const_int 0)] UNSPEC_VSTRUCTDUMMY)] VLD2Q)) ] --- 10341,10347 ---- ;; (define_insn "mve_vld2q" [(set (match_operand:OI 0 "s_register_operand" "=w") ! (unspec:OI [(match_operand:OI 1 "mve_struct_operand" "Ug") (unspec:MVE_VLD_ST [(const_int 0)] UNSPEC_VSTRUCTDUMMY)] VLD2Q)) ] *************** *** 10369,10375 **** ;; (define_insn "mve_vld4q" [(set (match_operand:XI 0 "s_register_operand" "=w") ! (unspec:XI [(match_operand:XI 1 "neon_struct_operand" "Um") (unspec:MVE_VLD_ST [(const_int 0)] UNSPEC_VSTRUCTDUMMY)] VLD4Q)) ] --- 10369,10375 ---- ;; (define_insn "mve_vld4q" [(set (match_operand:XI 0 "s_register_operand" "=w") ! (unspec:XI [(match_operand:XI 1 "mve_struct_operand" "Ug") (unspec:MVE_VLD_ST [(const_int 0)] UNSPEC_VSTRUCTDUMMY)] VLD4Q)) ] *************** *** 10822,10828 **** ) (define_insn "*movmisalign_mve_store" ! [(set (match_operand:MVE_VLD_ST 0 "neon_permissive_struct_operand" "=Ux") (unspec:MVE_VLD_ST [(match_operand:MVE_VLD_ST 1 "s_register_operand" " w")] UNSPEC_MISALIGNED_ACCESS))] "((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (mode)) --- 10822,10828 ---- ) (define_insn "*movmisalign_mve_store" ! [(set (match_operand:MVE_VLD_ST 0 "mve_memory_operand" "=Ux") (unspec:MVE_VLD_ST [(match_operand:MVE_VLD_ST 1 "s_register_operand" " w")] UNSPEC_MISALIGNED_ACCESS))] "((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (mode)) *************** *** 10835,10841 **** (define_insn "*movmisalign_mve_load" [(set (match_operand:MVE_VLD_ST 0 "s_register_operand" "=w") ! (unspec:MVE_VLD_ST [(match_operand:MVE_VLD_ST 1 "neon_permissive_struct_operand" " Ux")] UNSPEC_MISALIGNED_ACCESS))] "((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (mode)) || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (mode))) --- 10835,10841 ---- (define_insn "*movmisalign_mve_load" [(set (match_operand:MVE_VLD_ST 0 "s_register_operand" "=w") ! (unspec:MVE_VLD_ST [(match_operand:MVE_VLD_ST 1 "mve_memory_operand" " Ux")] UNSPEC_MISALIGNED_ACCESS))] "((TARGET_HAVE_MVE && VALID_MVE_SI_MODE (mode)) || (TARGET_HAVE_MVE_FLOAT && VALID_MVE_SF_MODE (mode))) diff -Nrcpad gcc-11.3.0/gcc/config/arm/predicates.md gcc-11.4.0/gcc/config/arm/predicates.md *** gcc-11.3.0/gcc/config/arm/predicates.md Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/arm/predicates.md Mon May 29 08:46:29 2023 *************** *** 872,877 **** --- 872,881 ---- (and (match_code "mem") (match_test "TARGET_32BIT && neon_vector_mem_operand (op, 2, true)"))) + (define_predicate "mve_struct_operand" + (and (match_code "mem") + (match_test "TARGET_HAVE_MVE && mve_struct_mem_operand (op)"))) + (define_predicate "neon_permissive_struct_operand" (and (match_code "mem") (match_test "TARGET_32BIT && neon_vector_mem_operand (op, 2, false)"))) diff -Nrcpad gcc-11.3.0/gcc/config/arm/vec-common.md gcc-11.4.0/gcc/config/arm/vec-common.md *** gcc-11.3.0/gcc/config/arm/vec-common.md Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/arm/vec-common.md Mon May 29 08:46:29 2023 *************** *** 280,308 **** DONE; }) ! (define_expand "movmisalign" ! [(set (match_operand:VDQX 0 "neon_perm_struct_or_reg_operand") ! (unspec:VDQX [(match_operand:VDQX 1 "neon_perm_struct_or_reg_operand")] UNSPEC_MISALIGNED_ACCESS))] "ARM_HAVE__LDST && !BYTES_BIG_ENDIAN && unaligned_access && !TARGET_REALLY_IWMMXT" { ! rtx adjust_mem; ! /* This pattern is not permitted to fail during expansion: if both arguments ! are non-registers (e.g. memory := constant, which can be created by the ! auto-vectorizer), force operand 1 into a register. */ ! if (!s_register_operand (operands[0], mode) ! && !s_register_operand (operands[1], mode)) ! operands[1] = force_reg (mode, operands[1]); ! if (s_register_operand (operands[0], mode)) ! adjust_mem = operands[1]; ! else ! adjust_mem = operands[0]; ! /* Legitimize address. */ ! if (!neon_vector_mem_operand (adjust_mem, 2, true)) ! XEXP (adjust_mem, 0) = force_reg (Pmode, XEXP (adjust_mem, 0)); }) (define_insn "mve_vshlq_" --- 280,360 ---- DONE; }) ! (define_expand "@movmisalign" ! [(set (match_operand:VDQX 0 "nonimmediate_operand") ! (unspec:VDQX [(match_operand:VDQX 1 "general_operand")] UNSPEC_MISALIGNED_ACCESS))] "ARM_HAVE__LDST && !BYTES_BIG_ENDIAN && unaligned_access && !TARGET_REALLY_IWMMXT" { ! rtx *memloc; ! bool for_store = false; ! /* This pattern is not permitted to fail during expansion: if both arguments ! are non-registers (e.g. memory := constant, which can be created by the ! auto-vectorizer), force operand 1 into a register. */ ! if (!s_register_operand (operands[0], mode) ! && !s_register_operand (operands[1], mode)) ! operands[1] = force_reg (mode, operands[1]); ! if (s_register_operand (operands[0], mode)) ! memloc = &operands[1]; ! else ! { ! memloc = &operands[0]; ! for_store = true; ! } ! /* For MVE, vector loads/stores must be aligned to the element size. If the ! alignment is less than that convert the load/store to a suitable mode. */ ! if (TARGET_HAVE_MVE ! && (MEM_ALIGN (*memloc) ! < GET_MODE_ALIGNMENT (GET_MODE_INNER (mode)))) ! { ! scalar_mode new_smode; ! switch (MEM_ALIGN (*memloc)) ! { ! case 64: ! case 32: ! new_smode = SImode; ! break; ! case 16: ! new_smode = HImode; ! break; ! default: ! new_smode = QImode; ! break; ! } ! machine_mode new_mode ! = mode_for_vector (new_smode, ! GET_MODE_SIZE (mode) ! / GET_MODE_SIZE (new_smode)).require (); ! rtx new_mem = adjust_address (*memloc, new_mode, 0); ! ! if (!for_store) ! { ! rtx reg = gen_reg_rtx (new_mode); ! emit_insn (gen_movmisalign (new_mode, reg, new_mem)); ! emit_move_insn (operands[0], gen_lowpart (mode, reg)); ! DONE; ! } ! emit_insn (gen_movmisalign (new_mode, new_mem, ! gen_lowpart (new_mode, operands[1]))); ! DONE; ! } ! ! /* Legitimize address. */ ! if ((TARGET_HAVE_MVE ! && !mve_vector_mem_operand (mode, XEXP (*memloc, 0), false)) ! || (!TARGET_HAVE_MVE ! && !neon_vector_mem_operand (*memloc, 2, false))) ! { ! rtx new_mem ! = replace_equiv_address (*memloc, ! force_reg (Pmode, XEXP (*memloc, 0)), ! false); ! gcc_assert (MEM_ALIGN (new_mem) == MEM_ALIGN (*memloc)); ! *memloc = new_mem; ! } }) (define_insn "mve_vshlq_" diff -Nrcpad gcc-11.3.0/gcc/config/darwin-c.c gcc-11.4.0/gcc/config/darwin-c.c *** gcc-11.3.0/gcc/config/darwin-c.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/darwin-c.c Mon May 29 08:46:29 2023 *************** macosx_version_as_macro (void) *** 691,697 **** if (!version_array) goto fail; ! if (version_array[MAJOR] < 10 || version_array[MAJOR] > 12) goto fail; if (version_array[MAJOR] == 10 && version_array[MINOR] < 10) --- 691,698 ---- if (!version_array) goto fail; ! /* System tools accept up to 99 as a major version. */ ! if (version_array[MAJOR] < 10 || version_array[MAJOR] > 99) goto fail; if (version_array[MAJOR] == 10 && version_array[MINOR] < 10) diff -Nrcpad gcc-11.3.0/gcc/config/darwin-driver.c gcc-11.4.0/gcc/config/darwin-driver.c *** gcc-11.3.0/gcc/config/darwin-driver.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/darwin-driver.c Mon May 29 08:46:29 2023 *************** validate_macosx_version_min (const char *** 64,70 **** major = strtoul (version_str, &end, 10); ! if (major < 10 || major > 12 ) /* macOS 10, 11, and 12 are known. */ return NULL; /* Skip a separating period, if there's one. */ --- 64,71 ---- major = strtoul (version_str, &end, 10); ! /* macOS 10, 11, and 12 are known. clang accepts up to 99. */ ! if (major < 10 || major > 99) return NULL; /* Skip a separating period, if there's one. */ *************** darwin_find_version_from_kernel (void) *** 159,178 **** goto parse_failed; /* Darwin20 sees a transition to macOS 11. In this, it seems that the ! mapping to macOS minor version is now shifted to the kernel minor ! version - 1 (at least for the initial releases). At this stage, we ! don't know what macOS version will correspond to Darwin21. */ if (major_vers >= 20) { ! int minor_vers = *version_p++ - '0'; ! if (ISDIGIT (*version_p)) ! minor_vers = minor_vers * 10 + (*version_p++ - '0'); ! if (*version_p++ != '.') ! goto parse_failed; ! if (minor_vers > 0) ! minor_vers -= 1; /* Kernel 20.3 => macOS 11.2. */ ! /* It's not yet clear whether patch level will be considered. */ ! asprintf (&new_flag, "%d.%02d.00", major_vers - 9, minor_vers); } else if (major_vers - 4 <= 4) /* On 10.4 and earlier, the old linker is used which does not --- 160,172 ---- goto parse_failed; /* Darwin20 sees a transition to macOS 11. In this, it seems that the ! mapping to macOS minor version and patch level is now always 0, 0 ! (at least for macOS 11 and 12). */ if (major_vers >= 20) { ! /* Apple clang doesn't include the minor version or the patch level ! in the object file, nor does it pass it to ld */ ! asprintf (&new_flag, "%d.00.00", major_vers - 9); } else if (major_vers - 4 <= 4) /* On 10.4 and earlier, the old linker is used which does not diff -Nrcpad gcc-11.3.0/gcc/config/darwin.c gcc-11.4.0/gcc/config/darwin.c *** gcc-11.3.0/gcc/config/darwin.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/darwin.c Mon May 29 08:46:29 2023 *************** darwin_emit_common (FILE *fp, const char *** 2556,2562 **** rounded = (size + (align-1)) & ~(align-1); l2align = floor_log2 (align); - gcc_assert (l2align <= L2_MAX_OFILE_ALIGNMENT); in_section = comm_section; /* We mustn't allow multiple public symbols to share an address when using --- 2556,2561 ---- *************** darwin_asm_output_aligned_decl_common (F *** 2707,2712 **** --- 2706,2715 ---- #ifdef DEBUG_DARWIN_MEM_ALLOCATORS fprintf (fp, "# adcom: %s (%d,%d) decl=0x0\n", name, (int)size, (int)align); #endif + /* Common variables are limited to a maximum alignment of 2^15. */ + if (align > 32768) + error_at (UNKNOWN_LOCATION, "common variables must have an alignment" + " of 32678 or less"); darwin_emit_common (fp, name, size, align); return; } *************** fprintf (fp, "# adcom: %s (%lld,%d) ro % *** 2734,2740 **** } /* We shouldn't be messing with this if the decl has a section name. */ ! gcc_assert (DECL_SECTION_NAME (decl) == NULL); /* We would rather not have to check this here - but it seems that we might be passed a decl that should be in coalesced space. */ --- 2737,2743 ---- } /* We shouldn't be messing with this if the decl has a section name. */ ! gcc_checking_assert (DECL_SECTION_NAME (decl) == NULL); /* We would rather not have to check this here - but it seems that we might be passed a decl that should be in coalesced space. */ *************** fprintf (fp, "# adcom: %s (%lld,%d) ro % *** 2763,2772 **** l2align = floor_log2 (align / BITS_PER_UNIT); /* Check we aren't asking for more aligment than the platform allows. */ ! gcc_assert (l2align <= L2_MAX_OFILE_ALIGNMENT); if (TREE_PUBLIC (decl) != 0) ! darwin_emit_common (fp, name, size, align); else darwin_emit_local_bss (fp, decl, name, size, l2align); } --- 2766,2781 ---- l2align = floor_log2 (align / BITS_PER_UNIT); /* Check we aren't asking for more aligment than the platform allows. */ ! gcc_checking_assert (l2align <= L2_MAX_OFILE_ALIGNMENT); if (TREE_PUBLIC (decl) != 0) ! { ! /* Common variables are limited to a maximum alignment of 2^15. */ ! if (l2align > 15) ! error_at (DECL_SOURCE_LOCATION (decl), "common variables must have" ! " an alignment of 32678 or less"); ! darwin_emit_common (fp, name, size, align); ! } else darwin_emit_local_bss (fp, decl, name, size, l2align); } diff -Nrcpad gcc-11.3.0/gcc/config/darwin.h gcc-11.4.0/gcc/config/darwin.h *** gcc-11.3.0/gcc/config/darwin.h Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/darwin.h Mon May 29 08:46:29 2023 *************** extern GTY(()) int darwin_ms_struct; *** 141,150 **** Right now there's no mechanism to split up the "variable portion" (%*) of the matched spec string, so where we have some driver specs that take 2 or 3 arguments, these cannot be processed here, but are deferred until the ! LINK_SPEC, where they are copied verbatim. ! We have a "safe" version of the MacOS version string, that's been sanity- ! checked and truncated to minor version. If the 'tiny' (3rd) portion of the ! value is not significant, it's better to use this in version-compare(). */ #undef SUBTARGET_DRIVER_SELF_SPECS #define SUBTARGET_DRIVER_SELF_SPECS \ --- 141,147 ---- Right now there's no mechanism to split up the "variable portion" (%*) of the matched spec string, so where we have some driver specs that take 2 or 3 arguments, these cannot be processed here, but are deferred until the ! LINK_SPEC, where they are copied verbatim. */ #undef SUBTARGET_DRIVER_SELF_SPECS #define SUBTARGET_DRIVER_SELF_SPECS \ *************** extern GTY(()) int darwin_ms_struct; *** 218,230 **** "%{image_base*:-Xlinker -image_base -Xlinker %*} %x_recip_mask_explicit = opts->x_recip_mask_explicit; ptr->x_ix86_arch_string = opts->x_ix86_arch_string; ptr->x_ix86_tune_string = opts->x_ix86_tune_string; - ptr->x_ix86_abi = opts->x_ix86_abi; ptr->x_ix86_asm_dialect = opts->x_ix86_asm_dialect; ptr->x_ix86_branch_cost = opts->x_ix86_branch_cost; ptr->x_ix86_dump_tunes = opts->x_ix86_dump_tunes; --- 656,661 ---- *************** ix86_function_specific_restore (struct g *** 787,793 **** opts->x_recip_mask_explicit = ptr->x_recip_mask_explicit; opts->x_ix86_arch_string = ptr->x_ix86_arch_string; opts->x_ix86_tune_string = ptr->x_ix86_tune_string; - opts->x_ix86_abi = ptr->x_ix86_abi; opts->x_ix86_asm_dialect = ptr->x_ix86_asm_dialect; opts->x_ix86_branch_cost = ptr->x_ix86_branch_cost; opts->x_ix86_dump_tunes = ptr->x_ix86_dump_tunes; --- 786,791 ---- diff -Nrcpad gcc-11.3.0/gcc/config/i386/i386.c gcc-11.4.0/gcc/config/i386/i386.c *** gcc-11.3.0/gcc/config/i386/i386.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/i386/i386.c Mon May 29 08:46:29 2023 *************** ix86_function_arg (cumulative_args_t cum *** 3249,3255 **** if (POINTER_TYPE_P (arg.type)) { /* This is the pointer argument. */ ! gcc_assert (TYPE_MODE (arg.type) == Pmode); /* It is at -WORD(AP) in the current frame in interrupt and exception handlers. */ reg = plus_constant (Pmode, arg_pointer_rtx, -UNITS_PER_WORD); --- 3249,3255 ---- if (POINTER_TYPE_P (arg.type)) { /* This is the pointer argument. */ ! gcc_assert (TYPE_MODE (arg.type) == ptr_mode); /* It is at -WORD(AP) in the current frame in interrupt and exception handlers. */ reg = plus_constant (Pmode, arg_pointer_rtx, -UNITS_PER_WORD); *************** zero_call_used_regno_mode (const unsigne *** 3607,3613 **** else if (MASK_REGNO_P (regno)) return HImode; else if (MMX_REGNO_P (regno)) ! return V4HImode; else gcc_unreachable (); } --- 3607,3613 ---- else if (MASK_REGNO_P (regno)) return HImode; else if (MMX_REGNO_P (regno)) ! return V2SImode; else gcc_unreachable (); } *************** zero_all_mm_registers (HARD_REG_SET need *** 3726,3744 **** if (!need_zero_all_mm) return false; ! rtx zero_mmx = NULL_RTX; ! machine_mode mode = V4HImode; for (unsigned int regno = FIRST_MMX_REG; regno <= LAST_MMX_REG; regno++) if (regno != ret_mmx_regno) { rtx reg = gen_rtx_REG (mode, regno); ! if (zero_mmx == NULL_RTX) ! { ! zero_mmx = reg; ! emit_insn (gen_rtx_SET (reg, CONST0_RTX (mode))); ! } ! else ! emit_move_insn (reg, zero_mmx); } return true; } --- 3726,3737 ---- if (!need_zero_all_mm) return false; ! machine_mode mode = V2SImode; for (unsigned int regno = FIRST_MMX_REG; regno <= LAST_MMX_REG; regno++) if (regno != ret_mmx_regno) { rtx reg = gen_rtx_REG (mode, regno); ! emit_insn (gen_rtx_SET (reg, CONST0_RTX (mode))); } return true; } *************** ix86_zero_call_used_regs (HARD_REG_SET n *** 3800,3810 **** /* Now, generate instructions to zero all the other registers. */ - rtx zero_gpr = NULL_RTX; - rtx zero_vector = NULL_RTX; - rtx zero_mask = NULL_RTX; - rtx zero_mmx = NULL_RTX; - for (unsigned int regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++) { if (!TEST_HARD_REG_BIT (need_zeroed_hardregs, regno)) --- 3793,3798 ---- *************** ix86_zero_call_used_regs (HARD_REG_SET n *** 3815,3873 **** SET_HARD_REG_BIT (zeroed_hardregs, regno); - rtx reg, tmp, zero_rtx; machine_mode mode = zero_call_used_regno_mode (regno); ! reg = gen_rtx_REG (mode, regno); ! zero_rtx = CONST0_RTX (mode); ! if (mode == SImode) ! if (zero_gpr == NULL_RTX) ! { ! zero_gpr = reg; ! tmp = gen_rtx_SET (reg, zero_rtx); ! if (!TARGET_USE_MOV0 || optimize_insn_for_size_p ()) ! { ! rtx clob = gen_rtx_CLOBBER (VOIDmode, ! gen_rtx_REG (CCmode, ! FLAGS_REG)); ! tmp = gen_rtx_PARALLEL (VOIDmode, gen_rtvec (2, ! tmp, ! clob)); ! } ! emit_insn (tmp); ! } ! else ! emit_move_insn (reg, zero_gpr); ! else if (mode == V4SFmode) ! if (zero_vector == NULL_RTX) ! { ! zero_vector = reg; ! tmp = gen_rtx_SET (reg, zero_rtx); ! emit_insn (tmp); ! } ! else ! emit_move_insn (reg, zero_vector); ! else if (mode == HImode) ! if (zero_mask == NULL_RTX) ! { ! zero_mask = reg; ! tmp = gen_rtx_SET (reg, zero_rtx); ! emit_insn (tmp); ! } ! else ! emit_move_insn (reg, zero_mask); ! else if (mode == V4HImode) ! if (zero_mmx == NULL_RTX) ! { ! zero_mmx = reg; ! tmp = gen_rtx_SET (reg, zero_rtx); ! emit_insn (tmp); ! } ! else ! emit_move_insn (reg, zero_mmx); ! else ! gcc_unreachable (); } return zeroed_hardregs; } --- 3803,3836 ---- SET_HARD_REG_BIT (zeroed_hardregs, regno); machine_mode mode = zero_call_used_regno_mode (regno); ! rtx reg = gen_rtx_REG (mode, regno); ! rtx tmp = gen_rtx_SET (reg, CONST0_RTX (mode)); ! switch (mode) ! { ! case E_SImode: ! if (!TARGET_USE_MOV0 || optimize_insn_for_size_p ()) ! { ! rtx clob = gen_rtx_CLOBBER (VOIDmode, ! gen_rtx_REG (CCmode, ! FLAGS_REG)); ! tmp = gen_rtx_PARALLEL (VOIDmode, gen_rtvec (2, ! tmp, ! clob)); ! } ! /* FALLTHRU. */ ! ! case E_V4SFmode: ! case E_HImode: ! case E_V2SImode: ! emit_insn (tmp); ! break; ! ! default: ! gcc_unreachable (); ! } } return zeroed_hardregs; } *************** ix86_gimplify_va_arg (tree valist, tree *** 4754,4759 **** --- 4717,4723 ---- { int i, prev_size = 0; tree temp = create_tmp_var (type, "va_arg_tmp"); + TREE_ADDRESSABLE (temp) = 1; /* addr = &temp; */ t = build1 (ADDR_EXPR, build_pointer_type (type), temp); *************** ix86_compute_frame_layout (void) *** 6653,6659 **** stack clash protections are enabled and the allocated frame is larger than the probe interval, then use pushes to save callee saved registers. */ ! || (flag_stack_clash_protection && to_allocate > get_probe_interval ())) frame->save_regs_using_mov = false; if (ix86_using_red_zone () --- 6617,6625 ---- stack clash protections are enabled and the allocated frame is larger than the probe interval, then use pushes to save callee saved registers. */ ! || (flag_stack_clash_protection ! && !ix86_target_stack_probe () ! && to_allocate > get_probe_interval ())) frame->save_regs_using_mov = false; if (ix86_using_red_zone () *************** ix86_expand_prologue (void) *** 8528,8535 **** sse_registers_saved = true; } ! /* If stack clash protection is requested, then probe the stack. */ ! if (allocate >= 0 && flag_stack_clash_protection) { ix86_adjust_stack_and_probe (allocate, int_registers_saved, false); allocate = 0; --- 8494,8504 ---- sse_registers_saved = true; } ! /* If stack clash protection is requested, then probe the stack, unless it ! is already probed on the target. */ ! if (allocate >= 0 ! && flag_stack_clash_protection ! && !ix86_target_stack_probe ()) { ix86_adjust_stack_and_probe (allocate, int_registers_saved, false); allocate = 0; *************** assign_386_stack_local (machine_mode mod *** 16248,16257 **** if (s->mode == mode && s->n == n) return validize_mem (copy_rtx (s->rtl)); s = ggc_alloc (); s->n = n; s->mode = mode; ! s->rtl = assign_stack_local (mode, GET_MODE_SIZE (mode), 0); s->next = ix86_stack_locals; ix86_stack_locals = s; --- 16217,16234 ---- if (s->mode == mode && s->n == n) return validize_mem (copy_rtx (s->rtl)); + int align = 0; + /* For DImode with SLOT_FLOATxFDI_387 use 32-bit + alignment with -m32 -mpreferred-stack-boundary=2. */ + if (mode == DImode + && !TARGET_64BIT + && n == SLOT_FLOATxFDI_387 + && ix86_preferred_stack_boundary < GET_MODE_ALIGNMENT (DImode)) + align = 32; s = ggc_alloc (); s->n = n; s->mode = mode; ! s->rtl = assign_stack_local (mode, GET_MODE_SIZE (mode), align); s->next = ix86_stack_locals; ix86_stack_locals = s; diff -Nrcpad gcc-11.3.0/gcc/config/i386/i386.opt gcc-11.4.0/gcc/config/i386/i386.opt *** gcc-11.3.0/gcc/config/i386/i386.opt Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/i386/i386.opt Mon May 29 08:46:29 2023 *************** TargetVariable *** 109,116 **** enum cmodel ix86_cmodel = CM_32 ;; -mabi= ! TargetSave ! enum calling_abi x_ix86_abi ;; -masm= TargetSave --- 109,116 ---- enum cmodel ix86_cmodel = CM_32 ;; -mabi= ! TargetVariable ! enum calling_abi ix86_abi = SYSV_ABI ;; -masm= TargetSave *************** mpc80 *** 416,421 **** --- 416,425 ---- Target RejectNegative Set 80387 floating-point precision to 80-bit. + mdaz-ftz + Target + Set the FTZ and DAZ Flags. + mpreferred-stack-boundary= Target RejectNegative Joined UInteger Var(ix86_preferred_stack_boundary_arg) Attempt to keep stack aligned to this power of 2. diff -Nrcpad gcc-11.3.0/gcc/config/i386/mingw32.h gcc-11.4.0/gcc/config/i386/mingw32.h *** gcc-11.3.0/gcc/config/i386/mingw32.h Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/i386/mingw32.h Mon May 29 08:46:29 2023 *************** along with GCC; see the file COPYING3. *** 197,203 **** #undef ENDFILE_SPEC #define ENDFILE_SPEC \ ! "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \ %{!shared:%:if-exists(default-manifest.o%s)}\ %{fvtable-verify=none:%s; \ fvtable-verify=preinit:vtv_end.o%s; \ --- 197,203 ---- #undef ENDFILE_SPEC #define ENDFILE_SPEC \ ! "%{mdaz-ftz:crtfastmath.o%s;Ofast|ffast-math|funsafe-math-optimizations:%{!mno-daz-ftz:crtfastmath.o%s}} \ %{!shared:%:if-exists(default-manifest.o%s)}\ %{fvtable-verify=none:%s; \ fvtable-verify=preinit:vtv_end.o%s; \ diff -Nrcpad gcc-11.3.0/gcc/config/i386/predicates.md gcc-11.4.0/gcc/config/i386/predicates.md *** gcc-11.3.0/gcc/config/i386/predicates.md Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/i386/predicates.md Mon May 29 08:46:29 2023 *************** *** 1851,1861 **** for(i = 4; i < 7; i++) { elt = XVECEXP (op, 0, i); ! if (GET_CODE (elt) != SET ! || GET_CODE (SET_DEST (elt)) != REG ! || GET_MODE (SET_DEST (elt)) != V2DImode ! || REGNO (SET_DEST (elt)) != GET_SSE_REGNO (i) ! || SET_SRC (elt) != CONST0_RTX (V2DImode)) return false; } --- 1851,1861 ---- for(i = 4; i < 7; i++) { elt = XVECEXP (op, 0, i); ! if (GET_CODE (elt) != CLOBBER ! || GET_MODE (elt) != VOIDmode ! || GET_CODE (XEXP (elt, 0)) != REG ! || GET_MODE (XEXP (elt, 0)) != V2DImode ! || REGNO (XEXP (elt, 0)) != GET_SSE_REGNO (i)) return false; } *************** *** 1901,1911 **** for(i = 4; i < 7; i++) { elt = XVECEXP (op, 0, i + 1); ! if (GET_CODE (elt) != SET ! || GET_CODE (SET_DEST (elt)) != REG ! || GET_MODE (SET_DEST (elt)) != V2DImode ! || REGNO (SET_DEST (elt)) != GET_SSE_REGNO (i) ! || SET_SRC (elt) != CONST0_RTX (V2DImode)) return false; } --- 1901,1911 ---- for(i = 4; i < 7; i++) { elt = XVECEXP (op, 0, i + 1); ! if (GET_CODE (elt) != CLOBBER ! || GET_MODE (elt) != VOIDmode ! || GET_CODE (XEXP (elt, 0)) != REG ! || GET_MODE (XEXP (elt, 0)) != V2DImode ! || REGNO (XEXP (elt, 0)) != GET_SSE_REGNO (i)) return false; } diff -Nrcpad gcc-11.3.0/gcc/config/i386/smmintrin.h gcc-11.4.0/gcc/config/i386/smmintrin.h *** gcc-11.3.0/gcc/config/i386/smmintrin.h Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/i386/smmintrin.h Mon May 29 08:46:29 2023 *************** _mm_insert_ps (__m128 __D, __m128 __S, c *** 365,381 **** extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_extract_ps (__m128 __X, const int __N) { ! union { int i; float f; } __tmp; ! __tmp.f = __builtin_ia32_vec_ext_v4sf ((__v4sf)__X, __N); ! return __tmp.i; } #else #define _mm_extract_ps(X, N) \ (__extension__ \ ({ \ ! union { int i; float f; } __tmp; \ ! __tmp.f = __builtin_ia32_vec_ext_v4sf ((__v4sf)(__m128)(X), (int)(N)); \ ! __tmp.i; \ })) #endif --- 365,382 ---- extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_extract_ps (__m128 __X, const int __N) { ! union { int __i; float __f; } __tmp; ! __tmp.__f = __builtin_ia32_vec_ext_v4sf ((__v4sf)__X, __N); ! return __tmp.__i; } #else #define _mm_extract_ps(X, N) \ (__extension__ \ ({ \ ! union { int __i; float __f; } __tmp; \ ! __tmp.__f = __builtin_ia32_vec_ext_v4sf ((__v4sf)(__m128)(X), \ ! (int)(N)); \ ! __tmp.__i; \ })) #endif diff -Nrcpad gcc-11.3.0/gcc/config/i386/sse.md gcc-11.4.0/gcc/config/i386/sse.md *** gcc-11.3.0/gcc/config/i386/sse.md Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/i386/sse.md Mon May 29 08:46:29 2023 *************** *** 17256,17264 **** (set_attr "mode" "")]) (define_insn_and_split "ssse3_palignrdi" ! [(set (match_operand:DI 0 "register_operand" "=y,x,Yv") ! (unspec:DI [(match_operand:DI 1 "register_operand" "0,0,Yv") ! (match_operand:DI 2 "register_mmxmem_operand" "ym,x,Yv") (match_operand:SI 3 "const_0_to_255_mul_8_operand" "n,n,n")] UNSPEC_PALIGNR))] "(TARGET_MMX || TARGET_MMX_WITH_SSE) && TARGET_SSSE3" --- 17256,17264 ---- (set_attr "mode" "")]) (define_insn_and_split "ssse3_palignrdi" ! [(set (match_operand:DI 0 "register_operand" "=y,x,Yw") ! (unspec:DI [(match_operand:DI 1 "register_operand" "0,0,Yw") ! (match_operand:DI 2 "register_mmxmem_operand" "ym,x,Yw") (match_operand:SI 3 "const_0_to_255_mul_8_operand" "n,n,n")] UNSPEC_PALIGNR))] "(TARGET_MMX || TARGET_MMX_WITH_SSE) && TARGET_SSSE3" *************** *** 19495,19501 **** (match_operand:VF_128 2 "register_operand" "v") (const_int 1)))] "TARGET_AVX512ER" ! "vrcp28\t{%1, %2, %0|%0, %2, %1}" [(set_attr "length_immediate" "1") (set_attr "prefix" "evex") (set_attr "type" "sse") --- 19495,19501 ---- (match_operand:VF_128 2 "register_operand" "v") (const_int 1)))] "TARGET_AVX512ER" ! "vrcp28\t{%1, %2, %0|%0, %2, %1}" [(set_attr "length_immediate" "1") (set_attr "prefix" "evex") (set_attr "type" "sse") *************** *** 24127,24133 **** for (i = 4; i < 7; i++) XVECEXP (operands[2], 0, i) ! = gen_rtx_SET (xmm_regs[i], CONST0_RTX (V2DImode)); XVECEXP (operands[2], 0, 7) = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (CCmode, FLAGS_REG)); --- 24127,24133 ---- for (i = 4; i < 7; i++) XVECEXP (operands[2], 0, i) ! = gen_rtx_CLOBBER (VOIDmode, xmm_regs[i]); XVECEXP (operands[2], 0, 7) = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (CCmode, FLAGS_REG)); *************** *** 24184,24190 **** for (i = 4; i < 7; i++) XVECEXP (operands[2], 0, i + 1) ! = gen_rtx_SET (xmm_regs[i], CONST0_RTX (V2DImode)); XVECEXP (operands[2], 0, 8) = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (CCmode, FLAGS_REG)); --- 24184,24190 ---- for (i = 4; i < 7; i++) XVECEXP (operands[2], 0, i + 1) ! = gen_rtx_CLOBBER (VOIDmode, xmm_regs[i]); XVECEXP (operands[2], 0, 8) = gen_rtx_CLOBBER (VOIDmode, gen_rtx_REG (CCmode, FLAGS_REG)); diff -Nrcpad gcc-11.3.0/gcc/config/i386/t-i386 gcc-11.4.0/gcc/config/i386/t-i386 *** gcc-11.3.0/gcc/config/i386/t-i386 Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/i386/t-i386 Mon May 29 08:46:29 2023 *************** i386-features.o: $(srcdir)/config/i386/i *** 61,67 **** --- 61,72 ---- $(COMPILE) $< $(POSTCOMPILE) + # i386-builtin-types.inc is included into i386-builtins.h. + # Below are direct users of i386-builtins.h: i386.o: i386-builtin-types.inc + i386-builtins.o: i386-builtin-types.inc + i386-expand.o: i386-builtin-types.inc + i386-features.o: i386-builtin-types.inc i386-builtin-types.inc: s-i386-bt ; @true s-i386-bt: $(srcdir)/config/i386/i386-builtin-types.awk \ diff -Nrcpad gcc-11.3.0/gcc/config/nvptx/nvptx.c gcc-11.4.0/gcc/config/nvptx/nvptx.c *** gcc-11.3.0/gcc/config/nvptx/nvptx.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/nvptx/nvptx.c Mon May 29 08:46:29 2023 *************** nvptx_single (unsigned mask, basic_block *** 4503,4508 **** --- 4503,4509 ---- rtx_insn *neuter_start = NULL; rtx_insn *worker_label = NULL, *vector_label = NULL; rtx_insn *worker_jump = NULL, *vector_jump = NULL; + rtx_insn *warp_sync = NULL; for (mode = GOMP_DIM_WORKER; mode <= GOMP_DIM_VECTOR; mode++) if (GOMP_DIM_MASK (mode) & skip_mask) { *************** nvptx_single (unsigned mask, basic_block *** 4535,4545 **** --- 4536,4564 ---- if (tail_branch) { label_insn = emit_label_before (label, before); + if (mode == GOMP_DIM_VECTOR) + { + if (TARGET_PTX_6_0) + warp_sync = emit_insn_after (gen_nvptx_warpsync (), + label_insn); + else + warp_sync = emit_insn_after (gen_nvptx_uniform_warp_check (), + label_insn); + } before = label_insn; } else { label_insn = emit_label_after (label, tail); + if (mode == GOMP_DIM_VECTOR) + { + if (TARGET_PTX_6_0) + warp_sync = emit_insn_after (gen_nvptx_warpsync (), + label_insn); + else + warp_sync = emit_insn_after (gen_nvptx_uniform_warp_check (), + label_insn); + } if ((mode == GOMP_DIM_VECTOR || mode == GOMP_DIM_WORKER) && CALL_P (tail) && find_reg_note (tail, REG_NORETURN, NULL)) emit_insn_after (gen_exit (), label_insn); *************** nvptx_single (unsigned mask, basic_block *** 4607,4612 **** --- 4626,4633 ---- setp.ne.u32 %rcond,%rcondu32,0; */ rtx_insn *label = PREV_INSN (tail); + if (label == warp_sync) + label = PREV_INSN (label); gcc_assert (label && LABEL_P (label)); rtx tmp = gen_reg_rtx (BImode); emit_insn_before (gen_movbi (tmp, const0_rtx), diff -Nrcpad gcc-11.3.0/gcc/config/nvptx/nvptx.h gcc-11.4.0/gcc/config/nvptx/nvptx.h *** gcc-11.3.0/gcc/config/nvptx/nvptx.h Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/nvptx/nvptx.h Mon May 29 08:46:29 2023 *************** *** 27,33 **** /* Run-time Target. */ ! #define STARTFILE_SPEC "%{mmainkernel:crt0.o}" /* Default needs to be in sync with default for misa in nvptx.opt. We add a default here to work around a hard-coded sm_30 default in --- 27,33 ---- /* Run-time Target. */ ! #define STARTFILE_SPEC "%{mmainkernel:crt0.o%s}" /* Default needs to be in sync with default for misa in nvptx.opt. We add a default here to work around a hard-coded sm_30 default in *************** *** 98,103 **** --- 98,106 ---- #define TARGET_SM35 (ptx_isa_option >= PTX_ISA_SM35) + /* 'TARGET_PTX_*' not applicable before GCC 12. */ + #define TARGET_PTX_6_0 false + /* Registers. Since ptx is a virtual target, we just define a few hard registers for special purposes and leave pseudos unallocated. We have to have some available hard registers, to keep gcc setup diff -Nrcpad gcc-11.3.0/gcc/config/nvptx/nvptx.md gcc-11.4.0/gcc/config/nvptx/nvptx.md *** gcc-11.3.0/gcc/config/nvptx/nvptx.md Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/nvptx/nvptx.md Mon May 29 08:46:29 2023 *************** *** 55,60 **** --- 55,62 ---- UNSPECV_CAS UNSPECV_XCHG UNSPECV_BARSYNC + UNSPECV_WARPSYNC + UNSPECV_UNIFORM_WARP_CHECK UNSPECV_MEMBAR UNSPECV_MEMBAR_CTA UNSPECV_DIM_POS *************** *** 1718,1723 **** --- 1720,1748 ---- } [(set_attr "predicable" "false")]) + (define_insn "nvptx_warpsync" + [(unspec_volatile [(const_int 0)] UNSPECV_WARPSYNC)] + "TARGET_PTX_6_0" + "\\tbar.warp.sync\\t0xffffffff;" + [(set_attr "predicable" "false")]) + + (define_insn "nvptx_uniform_warp_check" + [(unspec_volatile [(const_int 0)] UNSPECV_UNIFORM_WARP_CHECK)] + "" + { + output_asm_insn ("{", NULL); + output_asm_insn ("\\t" ".reg.b32" "\\t" "act;", NULL); + output_asm_insn ("\\t" "vote.ballot.b32" "\\t" "act,1;", NULL); + output_asm_insn ("\\t" ".reg.pred" "\\t" "uni;", NULL); + output_asm_insn ("\\t" "setp.eq.b32" "\\t" "uni,act,0xffffffff;", + NULL); + output_asm_insn ("@ !uni\\t" "trap;", NULL); + output_asm_insn ("@ !uni\\t" "exit;", NULL); + output_asm_insn ("}", NULL); + return ""; + } + [(set_attr "predicable" "false")]) + (define_expand "memory_barrier" [(set (match_dup 0) (unspec_volatile:BLK [(match_dup 0)] UNSPECV_MEMBAR))] diff -Nrcpad gcc-11.3.0/gcc/config/pa/pa.md gcc-11.4.0/gcc/config/pa/pa.md *** gcc-11.3.0/gcc/config/pa/pa.md Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/pa/pa.md Mon May 29 08:46:29 2023 *************** *** 5071,5093 **** (match_dup 2)))) (const_int 0))])] "" ! "") (define_insn "" ! [(set (match_operand:DI 0 "register_operand" "=r,r") ! (plus:DI (match_operand:DI 1 "reg_or_0_operand" "%rM,rM") ! (match_operand:DI 2 "arith11_operand" "r,I"))) (trap_if (ne (plus:TI (sign_extend:TI (match_dup 1)) (sign_extend:TI (match_dup 2))) (sign_extend:TI (plus:DI (match_dup 1) (match_dup 2)))) (const_int 0))] "TARGET_64BIT" ! "@ ! add,tsv,* %2,%1,%0 ! addi,tsv,* %2,%1,%0" ! [(set_attr "type" "binary,binary") ! (set_attr "length" "4,4")]) (define_insn "" [(set (match_operand:DI 0 "register_operand" "=r") --- 5071,5095 ---- (match_dup 2)))) (const_int 0))])] "" ! " ! { ! if (TARGET_64BIT) ! operands[2] = force_reg (DImode, operands[2]); ! }") (define_insn "" ! [(set (match_operand:DI 0 "register_operand" "=r") ! (plus:DI (match_operand:DI 1 "reg_or_0_operand" "%rM") ! (match_operand:DI 2 "register_operand" "r"))) (trap_if (ne (plus:TI (sign_extend:TI (match_dup 1)) (sign_extend:TI (match_dup 2))) (sign_extend:TI (plus:DI (match_dup 1) (match_dup 2)))) (const_int 0))] "TARGET_64BIT" ! "add,tsv,* %2,%1,%0" ! [(set_attr "type" "binary") ! (set_attr "length" "4")]) (define_insn "" [(set (match_operand:DI 0 "register_operand" "=r") *************** *** 5262,5284 **** (match_dup 2)))) (const_int 0))])] "" ! "") (define_insn "" ! [(set (match_operand:DI 0 "register_operand" "=r,r") ! (minus:DI (match_operand:DI 1 "arith11_operand" "r,I") ! (match_operand:DI 2 "reg_or_0_operand" "rM,rM"))) (trap_if (ne (minus:TI (sign_extend:TI (match_dup 1)) (sign_extend:TI (match_dup 2))) (sign_extend:TI (minus:DI (match_dup 1) (match_dup 2)))) (const_int 0))] "TARGET_64BIT" ! "@ ! {subo|sub,tsv} %1,%2,%0 ! {subio|subi,tsv} %1,%2,%0" ! [(set_attr "type" "binary,binary") ! (set_attr "length" "4,4")]) (define_insn "" [(set (match_operand:DI 0 "register_operand" "=r,&r") --- 5264,5288 ---- (match_dup 2)))) (const_int 0))])] "" ! " ! { ! if (TARGET_64BIT) ! operands[1] = force_reg (DImode, operands[1]); ! }") (define_insn "" ! [(set (match_operand:DI 0 "register_operand" "=r") ! (minus:DI (match_operand:DI 1 "register_operand" "r") ! (match_operand:DI 2 "reg_or_0_operand" "rM"))) (trap_if (ne (minus:TI (sign_extend:TI (match_dup 1)) (sign_extend:TI (match_dup 2))) (sign_extend:TI (minus:DI (match_dup 1) (match_dup 2)))) (const_int 0))] "TARGET_64BIT" ! "sub,tsv,* %1,%2,%0" ! [(set_attr "type" "binary") ! (set_attr "length" "4")]) (define_insn "" [(set (match_operand:DI 0 "register_operand" "=r,&r") diff -Nrcpad gcc-11.3.0/gcc/config/pru/pru.h gcc-11.4.0/gcc/config/pru/pru.h *** gcc-11.3.0/gcc/config/pru/pru.h Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/pru/pru.h Mon May 29 08:46:29 2023 *************** do { \ *** 562,569 **** #define CASE_VECTOR_MODE Pmode ! /* See definition of clz pattern for rationale of value -1. */ ! #define CLZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) ((VALUE) = -1, 2) /* Jumps are cheap on PRU. */ #define LOGICAL_OP_NON_SHORT_CIRCUIT 0 --- 562,570 ---- #define CASE_VECTOR_MODE Pmode ! /* See definition of clz pattern for rationale of the value. */ ! #define CLZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) \ ! ((VALUE) = GET_MODE_BITSIZE (MODE) - 1 - 32, 2) /* Jumps are cheap on PRU. */ #define LOGICAL_OP_NON_SHORT_CIRCUIT 0 diff -Nrcpad gcc-11.3.0/gcc/config/pru/pru.md gcc-11.4.0/gcc/config/pru/pru.md *** gcc-11.3.0/gcc/config/pru/pru.md Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/pru/pru.md Mon May 29 08:46:29 2023 *************** *** 1035,1042 **** [(set_attr "type" "control")]) ;; Count Leading Zeros implemented using LMBD. ! ;; LMBD returns 32 if bit value is not present, and we subtract 31 to get CLZ. ! ;; Hence we get a defined value -1 for CLZ_DEFINED_VALUE_AT_ZERO. (define_expand "clz2" [(set (match_operand:QISI 0 "register_operand") (clz:QISI (match_operand:QISI 1 "register_operand")))] --- 1035,1050 ---- [(set_attr "type" "control")]) ;; Count Leading Zeros implemented using LMBD. ! ;; ! ;; LMBD returns 32 if bit value is not present, for any kind of input MODE. ! ;; The LMBD's search result for a "1" bit is subtracted from the ! ;; mode bit size minus one, in order to get CLZ. ! ;; ! ;; Hence for SImode we get a defined value -1 for CLZ_DEFINED_VALUE_AT_ZERO. ! ;; ! ;; The QImode and HImode defined values for zero inputs end up to be ! ;; non-standard (-25 and -17). But this is considered acceptable in ! ;; order to keep the CLZ expansion to only two instructions. (define_expand "clz2" [(set (match_operand:QISI 0 "register_operand") (clz:QISI (match_operand:QISI 1 "register_operand")))] *************** *** 1047,1053 **** rtx tmpval = gen_reg_rtx (mode); emit_insn (gen_pru_lmbd (mode, tmpval, src, const1_rtx)); ! emit_insn (gen_sub3_insn (dst, GEN_INT (31), tmpval)); DONE; }) --- 1055,1062 ---- rtx tmpval = gen_reg_rtx (mode); emit_insn (gen_pru_lmbd (mode, tmpval, src, const1_rtx)); ! int msb_bitn = GET_MODE_BITSIZE (mode) - 1; ! emit_insn (gen_sub3_insn (dst, GEN_INT (msb_bitn), tmpval)); DONE; }) diff -Nrcpad gcc-11.3.0/gcc/config/riscv/arch-canonicalize gcc-11.4.0/gcc/config/riscv/arch-canonicalize *** gcc-11.3.0/gcc/config/riscv/arch-canonicalize Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/riscv/arch-canonicalize Mon May 29 08:46:29 2023 *************** def arch_canonicalize(arch, isa_spec): *** 45,53 **** is_isa_spec_2p2 = isa_spec == '2.2' new_arch = "" extra_long_ext = [] if arch[:5] in ['rv32e', 'rv32i', 'rv32g', 'rv64i', 'rv64g']: ! new_arch = arch[:5].replace("g", "imafd") if arch[:5] in ['rv32g', 'rv64g']: if not is_isa_spec_2p2: extra_long_ext = ['zicsr', 'zifencei'] else: --- 45,55 ---- is_isa_spec_2p2 = isa_spec == '2.2' new_arch = "" extra_long_ext = [] + std_exts = [] if arch[:5] in ['rv32e', 'rv32i', 'rv32g', 'rv64i', 'rv64g']: ! new_arch = arch[:5].replace("g", "i") if arch[:5] in ['rv32g', 'rv64g']: + std_exts = ['m', 'a', 'f', 'd'] if not is_isa_spec_2p2: extra_long_ext = ['zicsr', 'zifencei'] else: *************** def arch_canonicalize(arch, isa_spec): *** 61,70 **** if long_ext_prefixes_idx: first_long_ext_idx = min(long_ext_prefixes_idx) long_exts = arch[first_long_ext_idx:].split("_") ! std_exts = list(arch[5:first_long_ext_idx]) else: long_exts = [] ! std_exts = list(arch[5:]) long_exts += extra_long_ext --- 63,72 ---- if long_ext_prefixes_idx: first_long_ext_idx = min(long_ext_prefixes_idx) long_exts = arch[first_long_ext_idx:].split("_") ! std_exts += list(arch[5:first_long_ext_idx]) else: long_exts = [] ! std_exts += list(arch[5:]) long_exts += extra_long_ext diff -Nrcpad gcc-11.3.0/gcc/config/riscv/riscv.md gcc-11.4.0/gcc/config/riscv/riscv.md *** gcc-11.3.0/gcc/config/riscv/riscv.md Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/riscv/riscv.md Mon May 29 08:46:29 2023 *************** *** 2558,2564 **** UNSPEC_SSP_SET)) (set (match_scratch:GPR 2 "=&r") (const_int 0))] "" ! "\\t%2, %1\;\\t%2, %0\;li\t%2, 0" [(set_attr "length" "12")]) (define_expand "stack_protect_test" --- 2558,2564 ---- UNSPEC_SSP_SET)) (set (match_scratch:GPR 2 "=&r") (const_int 0))] "" ! "\t%2, %1\;\t%2, %0\;li\t%2, 0" [(set_attr "length" "12")]) (define_expand "stack_protect_test" diff -Nrcpad gcc-11.3.0/gcc/config/riscv/t-rtems gcc-11.4.0/gcc/config/riscv/t-rtems *** gcc-11.3.0/gcc/config/riscv/t-rtems Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/riscv/t-rtems Mon May 29 08:46:29 2023 *************** *** 1,8 **** MULTILIB_OPTIONS = MULTILIB_DIRNAMES = ! MULTILIB_OPTIONS += march=rv32i/march=rv32im/march=rv32imafd/march=rv32iac/march=rv32imac/march=rv32imafc/march=rv64imafd/march=rv64imac/march=rv64imafdc ! MULTILIB_DIRNAMES += rv32i rv32im rv32imafd rv32iac rv32imac rv32imafc rv64imafd rv64imac rv64imafdc MULTILIB_OPTIONS += mabi=ilp32/mabi=ilp32f/mabi=ilp32d/mabi=lp64/mabi=lp64d MULTILIB_DIRNAMES += ilp32 ilp32f ilp32d lp64 lp64d --- 1,8 ---- MULTILIB_OPTIONS = MULTILIB_DIRNAMES = ! MULTILIB_OPTIONS += march=rv32i/march=rv32iac/march=rv32im/march=rv32ima/march=rv32imac/march=rv32imaf/march=rv32imafc/march=rv32imafd/march=rv32imafdc/march=rv64ima/march=rv64imac/march=rv64imafd/march=rv64imafdc ! MULTILIB_DIRNAMES += rv32i rv32iac rv32im rv32ima rv32imac rv32imaf rv32imafc rv32imafd rv32imafdc rv64ima rv64imac rv64imafd rv64imafdc MULTILIB_OPTIONS += mabi=ilp32/mabi=ilp32f/mabi=ilp32d/mabi=lp64/mabi=lp64d MULTILIB_DIRNAMES += ilp32 ilp32f ilp32d lp64 lp64d *************** MULTILIB_DIRNAMES += medany *** 12,25 **** MULTILIB_REQUIRED = MULTILIB_REQUIRED += march=rv32i/mabi=ilp32 - MULTILIB_REQUIRED += march=rv32im/mabi=ilp32 - MULTILIB_REQUIRED += march=rv32imafd/mabi=ilp32d MULTILIB_REQUIRED += march=rv32iac/mabi=ilp32 MULTILIB_REQUIRED += march=rv32imac/mabi=ilp32 MULTILIB_REQUIRED += march=rv32imafc/mabi=ilp32f ! MULTILIB_REQUIRED += march=rv64imafd/mabi=lp64d ! MULTILIB_REQUIRED += march=rv64imafd/mabi=lp64d/mcmodel=medany ! MULTILIB_REQUIRED += march=rv64imac/mabi=lp64 MULTILIB_REQUIRED += march=rv64imac/mabi=lp64/mcmodel=medany ! MULTILIB_REQUIRED += march=rv64imafdc/mabi=lp64d MULTILIB_REQUIRED += march=rv64imafdc/mabi=lp64d/mcmodel=medany --- 12,26 ---- MULTILIB_REQUIRED = MULTILIB_REQUIRED += march=rv32i/mabi=ilp32 MULTILIB_REQUIRED += march=rv32iac/mabi=ilp32 + MULTILIB_REQUIRED += march=rv32im/mabi=ilp32 + MULTILIB_REQUIRED += march=rv32ima/mabi=ilp32 MULTILIB_REQUIRED += march=rv32imac/mabi=ilp32 + MULTILIB_REQUIRED += march=rv32imaf/mabi=ilp32f MULTILIB_REQUIRED += march=rv32imafc/mabi=ilp32f ! MULTILIB_REQUIRED += march=rv32imafd/mabi=ilp32d ! MULTILIB_REQUIRED += march=rv32imafdc/mabi=ilp32d ! MULTILIB_REQUIRED += march=rv64ima/mabi=lp64/mcmodel=medany MULTILIB_REQUIRED += march=rv64imac/mabi=lp64/mcmodel=medany ! MULTILIB_REQUIRED += march=rv64imafd/mabi=lp64d/mcmodel=medany MULTILIB_REQUIRED += march=rv64imafdc/mabi=lp64d/mcmodel=medany diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/altivec.md gcc-11.4.0/gcc/config/rs6000/altivec.md *** gcc-11.3.0/gcc/config/rs6000/altivec.md Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/rs6000/altivec.md Mon May 29 08:46:29 2023 *************** *** 4507,4515 **** [(set_attr "type" "vecsimple")]) ;; Vector parity ! (define_insn "*p9v_parity2" ! [(set (match_operand:VParity 0 "register_operand" "=v") ! (parity:VParity (match_operand:VParity 1 "register_operand" "v")))] "TARGET_P9_VECTOR" "vprtyb %0,%1" [(set_attr "type" "vecsimple")]) --- 4507,4517 ---- [(set_attr "type" "vecsimple")]) ;; Vector parity ! (define_insn "rs6000_vprtyb2" ! [(set (match_operand:VEC_IP 0 "register_operand" "=v") ! (unspec:VEC_IP ! [(match_operand:VEC_IP 1 "register_operand" "v")] ! UNSPEC_PARITY))] "TARGET_P9_VECTOR" "vprtyb %0,%1" [(set_attr "type" "vecsimple")]) diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/bmi2intrin.h gcc-11.4.0/gcc/config/rs6000/bmi2intrin.h *** gcc-11.3.0/gcc/config/rs6000/bmi2intrin.h Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/rs6000/bmi2intrin.h Mon May 29 08:46:29 2023 *************** extern __inline unsigned long long *** 77,115 **** __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _pdep_u64 (unsigned long long __X, unsigned long long __M) { ! unsigned long result = 0x0UL; ! const unsigned long mask = 0x8000000000000000UL; ! unsigned long m = __M; ! unsigned long c, t; ! unsigned long p; /* The pop-count of the mask gives the number of the bits from source to process. This is also needed to shift bits from the source into the correct position for the result. */ ! p = 64 - __builtin_popcountl (__M); /* The loop is for the number of '1' bits in the mask and clearing each mask bit as it is processed. */ ! while (m != 0) { ! c = __builtin_clzl (m); ! t = __X << (p - c); ! m ^= (mask >> c); ! result |= (t & (mask >> c)); ! p++; } ! return (result); } extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _pext_u64 (unsigned long long __X, unsigned long long __M) { ! unsigned long p = 0x4040404040404040UL; // initial bit permute control ! const unsigned long mask = 0x8000000000000000UL; ! unsigned long m = __M; ! unsigned long c; ! unsigned long result; /* if the mask is constant and selects 8 bits or less we can use the Power8 Bit permute instruction. */ --- 77,115 ---- __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _pdep_u64 (unsigned long long __X, unsigned long long __M) { ! unsigned long __result = 0x0UL; ! const unsigned long __mask = 0x8000000000000000UL; ! unsigned long __m = __M; ! unsigned long __c, __t; ! unsigned long __p; /* The pop-count of the mask gives the number of the bits from source to process. This is also needed to shift bits from the source into the correct position for the result. */ ! __p = 64 - __builtin_popcountl (__M); /* The loop is for the number of '1' bits in the mask and clearing each mask bit as it is processed. */ ! while (__m != 0) { ! __c = __builtin_clzl (__m); ! __t = __X << (__p - __c); ! __m ^= (__mask >> __c); ! __result |= (__t & (__mask >> __c)); ! __p++; } ! return __result; } extern __inline unsigned long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _pext_u64 (unsigned long long __X, unsigned long long __M) { ! unsigned long __p = 0x4040404040404040UL; // initial bit permute control ! const unsigned long __mask = 0x8000000000000000UL; ! unsigned long __m = __M; ! unsigned long __c; ! unsigned long __result; /* if the mask is constant and selects 8 bits or less we can use the Power8 Bit permute instruction. */ *************** _pext_u64 (unsigned long long __X, unsig *** 118,151 **** /* Also if the pext mask is constant, then the popcount is constant, we can evaluate the following loop at compile time and use a constant bit permute vector. */ ! for (long i = 0; i < __builtin_popcountl (__M); i++) { ! c = __builtin_clzl (m); ! p = (p << 8) | c; ! m ^= (mask >> c); } ! result = __builtin_bpermd (p, __X); } else { ! p = 64 - __builtin_popcountl (__M); ! result = 0; /* We could a use a for loop here, but that combined with -funroll-loops can expand to a lot of code. The while loop avoids unrolling and the compiler commons the xor ! from clearing the mask bit with the (m != 0) test. The result is a more compact loop setup and body. */ ! while (m != 0) { ! unsigned long t; ! c = __builtin_clzl (m); ! t = (__X & (mask >> c)) >> (p - c); ! m ^= (mask >> c); ! result |= (t); ! p++; } } ! return (result); } /* these 32-bit implementations depend on 64-bit pdep/pext --- 118,151 ---- /* Also if the pext mask is constant, then the popcount is constant, we can evaluate the following loop at compile time and use a constant bit permute vector. */ ! for (long __i = 0; __i < __builtin_popcountl (__M); __i++) { ! __c = __builtin_clzl (__m); ! __p = (__p << 8) | __c; ! __m ^= (__mask >> __c); } ! __result = __builtin_bpermd (__p, __X); } else { ! __p = 64 - __builtin_popcountl (__M); ! __result = 0; /* We could a use a for loop here, but that combined with -funroll-loops can expand to a lot of code. The while loop avoids unrolling and the compiler commons the xor ! from clearing the mask bit with the (__m != 0) test. The result is a more compact loop setup and body. */ ! while (__m != 0) { ! unsigned long __t; ! __c = __builtin_clzl (__m); ! __t = (__X & (__mask >> __c)) >> (__p - __c); ! __m ^= (__mask >> __c); ! __result |= (__t); ! __p++; } } ! return __result; } /* these 32-bit implementations depend on 64-bit pdep/pext diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/emmintrin.h gcc-11.4.0/gcc/config/rs6000/emmintrin.h *** gcc-11.3.0/gcc/config/rs6000/emmintrin.h Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/rs6000/emmintrin.h Mon May 29 08:46:29 2023 *************** _mm_setzero_pd (void) *** 141,149 **** extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_move_sd (__m128d __A, __m128d __B) { ! __v2df result = (__v2df) __A; ! result [0] = ((__v2df) __B)[0]; ! return (__m128d) result; } /* Load two DPFP values from P. The address must be 16-byte aligned. */ --- 141,149 ---- extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_move_sd (__m128d __A, __m128d __B) { ! __v2df __result = (__v2df) __A; ! __result [0] = ((__v2df) __B)[0]; ! return (__m128d) __result; } /* Load two DPFP values from P. The address must be 16-byte aligned. */ *************** _mm_sqrt_pd (__m128d __A) *** 329,337 **** extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sqrt_sd (__m128d __A, __m128d __B) { ! __v2df c; ! c = vec_sqrt ((__v2df) _mm_set1_pd (__B[0])); ! return (__m128d) _mm_setr_pd (c[0], __A[1]); } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 329,337 ---- extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sqrt_sd (__m128d __A, __m128d __B) { ! __v2df __c; ! __c = vec_sqrt ((__v2df) _mm_set1_pd (__B[0])); ! return (__m128d) _mm_setr_pd (__c[0], __A[1]); } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _mm_min_pd (__m128d __A, __m128d __B) *** 343,353 **** extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_min_sd (__m128d __A, __m128d __B) { ! __v2df a, b, c; ! a = vec_splats (__A[0]); ! b = vec_splats (__B[0]); ! c = vec_min (a, b); ! return (__m128d) _mm_setr_pd (c[0], __A[1]); } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 343,353 ---- extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_min_sd (__m128d __A, __m128d __B) { ! __v2df __a, __b, __c; ! __a = vec_splats (__A[0]); ! __b = vec_splats (__B[0]); ! __c = vec_min (__a, __b); ! return (__m128d) _mm_setr_pd (__c[0], __A[1]); } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _mm_max_pd (__m128d __A, __m128d __B) *** 359,369 **** extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_max_sd (__m128d __A, __m128d __B) { ! __v2df a, b, c; ! a = vec_splats (__A[0]); ! b = vec_splats (__B[0]); ! c = vec_max (a, b); ! return (__m128d) _mm_setr_pd (c[0], __A[1]); } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 359,369 ---- extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_max_sd (__m128d __A, __m128d __B) { ! __v2df __a, __b, __c; ! __a = vec_splats (__A[0]); ! __b = vec_splats (__B[0]); ! __c = vec_max (__a, __b); ! return (__m128d) _mm_setr_pd (__c[0], __A[1]); } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _mm_cmpge_pd (__m128d __A, __m128d __B) *** 399,406 **** extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpneq_pd (__m128d __A, __m128d __B) { ! __v2df temp = (__v2df) vec_cmpeq ((__v2df) __A, (__v2df)__B); ! return ((__m128d)vec_nor (temp, temp)); } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 399,406 ---- extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpneq_pd (__m128d __A, __m128d __B) { ! __v2df __temp = (__v2df) vec_cmpeq ((__v2df) __A, (__v2df)__B); ! return ((__m128d)vec_nor (__temp, __temp)); } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _mm_cmpnge_pd (__m128d __A, __m128d __B) *** 427,452 **** return ((__m128d)vec_cmplt ((__v2df) __A, (__v2df) __B)); } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpord_pd (__m128d __A, __m128d __B) { - #if _ARCH_PWR8 __v2du c, d; /* Compare against self will return false (0's) if NAN. */ c = (__v2du)vec_cmpeq (__A, __A); d = (__v2du)vec_cmpeq (__B, __B); - #else - __v2du a, b; - __v2du c, d; - const __v2du double_exp_mask = {0x7ff0000000000000, 0x7ff0000000000000}; - a = (__v2du)vec_abs ((__v2df)__A); - b = (__v2du)vec_abs ((__v2df)__B); - c = (__v2du)vec_cmpgt (double_exp_mask, a); - d = (__v2du)vec_cmpgt (double_exp_mask, b); - #endif /* A != NAN and B != NAN. */ return ((__m128d)vec_and(c, d)); } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpunord_pd (__m128d __A, __m128d __B) --- 427,444 ---- return ((__m128d)vec_cmplt ((__v2df) __A, (__v2df) __B)); } + #if _ARCH_PWR8 extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpord_pd (__m128d __A, __m128d __B) { __v2du c, d; /* Compare against self will return false (0's) if NAN. */ c = (__v2du)vec_cmpeq (__A, __A); d = (__v2du)vec_cmpeq (__B, __B); /* A != NAN and B != NAN. */ return ((__m128d)vec_and(c, d)); } + #endif extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpunord_pd (__m128d __A, __m128d __B) *************** _mm_cmpnge_sd (__m128d __A, __m128d __B) *** 583,588 **** --- 575,581 ---- return (__m128d) _mm_setr_pd (c[0], __A[1]); } + #if _ARCH_PWR8 extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpord_sd (__m128d __A, __m128d __B) { *************** _mm_cmpord_sd (__m128d __A, __m128d __B) *** 590,595 **** --- 583,589 ---- r = (__v2df)_mm_cmpord_pd (vec_splats (__A[0]), vec_splats (__B[0])); return (__m128d) _mm_setr_pd (r[0], ((__v2df)__A)[1]); } + #endif extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpunord_sd (__m128d __A, __m128d __B) *************** _mm_setzero_si128 (void) *** 855,866 **** extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtepi32_pd (__m128i __A) { ! __v2di val; /* For LE need to generate Vector Unpack Low Signed Word. Which is generated from unpackh. */ ! val = (__v2di)vec_unpackh ((__v4si)__A); ! return (__m128d)vec_ctf (val, 0); } #endif --- 849,860 ---- extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtepi32_pd (__m128i __A) { ! __v2di __val; /* For LE need to generate Vector Unpack Low Signed Word. Which is generated from unpackh. */ ! __val = (__v2di)vec_unpackh ((__v4si)__A); ! return (__m128d)vec_ctf (__val, 0); } #endif *************** _mm_cvtepi32_ps (__m128i __A) *** 873,988 **** extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpd_epi32 (__m128d __A) { ! __v2df rounded = vec_rint (__A); ! __v4si result, temp; ! const __v4si vzero = { 0, 0, 0, 0 }; /* VSX Vector truncate Double-Precision to integer and Convert to Signed Integer Word format with Saturate. */ __asm__( "xvcvdpsxws %x0,%x1" ! : "=wa" (temp) ! : "wa" (rounded) : ); #ifdef _ARCH_PWR8 #ifdef __LITTLE_ENDIAN__ ! temp = vec_mergeo (temp, temp); #else ! temp = vec_mergee (temp, temp); #endif ! result = (__v4si) vec_vpkudum ((__vector long long) temp, ! (__vector long long) vzero); #else { ! const __v16qu pkperm = {0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x14, 0x15, 0x16, 0x17, 0x1c, 0x1d, 0x1e, 0x1f }; ! result = (__v4si) vec_perm ((__v16qu) temp, (__v16qu) vzero, pkperm); } #endif ! return (__m128i) result; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpd_pi32 (__m128d __A) { ! __m128i result = _mm_cvtpd_epi32(__A); ! return (__m64) result[0]; } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpd_ps (__m128d __A) { ! __v4sf result; ! __v4si temp; ! const __v4si vzero = { 0, 0, 0, 0 }; __asm__( "xvcvdpsp %x0,%x1" ! : "=wa" (temp) : "wa" (__A) : ); #ifdef _ARCH_PWR8 #ifdef __LITTLE_ENDIAN__ ! temp = vec_mergeo (temp, temp); #else ! temp = vec_mergee (temp, temp); #endif ! result = (__v4sf) vec_vpkudum ((__vector long long) temp, ! (__vector long long) vzero); #else { ! const __v16qu pkperm = {0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x14, 0x15, 0x16, 0x17, 0x1c, 0x1d, 0x1e, 0x1f }; ! result = (__v4sf) vec_perm ((__v16qu) temp, (__v16qu) vzero, pkperm); } #endif ! return ((__m128)result); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvttpd_epi32 (__m128d __A) { ! __v4si result; ! __v4si temp; ! const __v4si vzero = { 0, 0, 0, 0 }; /* VSX Vector truncate Double-Precision to integer and Convert to Signed Integer Word format with Saturate. */ __asm__( "xvcvdpsxws %x0,%x1" ! : "=wa" (temp) : "wa" (__A) : ); #ifdef _ARCH_PWR8 #ifdef __LITTLE_ENDIAN__ ! temp = vec_mergeo (temp, temp); #else ! temp = vec_mergee (temp, temp); #endif ! result = (__v4si) vec_vpkudum ((__vector long long) temp, ! (__vector long long) vzero); #else { ! const __v16qu pkperm = {0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x14, 0x15, 0x16, 0x17, 0x1c, 0x1d, 0x1e, 0x1f }; ! result = (__v4si) vec_perm ((__v16qu) temp, (__v16qu) vzero, pkperm); } #endif ! return ((__m128i) result); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvttpd_pi32 (__m128d __A) { ! __m128i result = _mm_cvttpd_epi32 (__A); ! return (__m64) result[0]; } extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 867,982 ---- extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpd_epi32 (__m128d __A) { ! __v2df __rounded = vec_rint (__A); ! __v4si __result, __temp; ! const __v4si __vzero = { 0, 0, 0, 0 }; /* VSX Vector truncate Double-Precision to integer and Convert to Signed Integer Word format with Saturate. */ __asm__( "xvcvdpsxws %x0,%x1" ! : "=wa" (__temp) ! : "wa" (__rounded) : ); #ifdef _ARCH_PWR8 #ifdef __LITTLE_ENDIAN__ ! __temp = vec_mergeo (__temp, __temp); #else ! __temp = vec_mergee (__temp, __temp); #endif ! __result = (__v4si) vec_vpkudum ((__vector long long) __temp, ! (__vector long long) __vzero); #else { ! const __v16qu __pkperm = {0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x14, 0x15, 0x16, 0x17, 0x1c, 0x1d, 0x1e, 0x1f }; ! __result = (__v4si) vec_perm ((__v16qu) __temp, (__v16qu) __vzero, __pkperm); } #endif ! return (__m128i) __result; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpd_pi32 (__m128d __A) { ! __m128i __result = _mm_cvtpd_epi32(__A); ! return (__m64) __result[0]; } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpd_ps (__m128d __A) { ! __v4sf __result; ! __v4si __temp; ! const __v4si __vzero = { 0, 0, 0, 0 }; __asm__( "xvcvdpsp %x0,%x1" ! : "=wa" (__temp) : "wa" (__A) : ); #ifdef _ARCH_PWR8 #ifdef __LITTLE_ENDIAN__ ! __temp = vec_mergeo (__temp, __temp); #else ! __temp = vec_mergee (__temp, __temp); #endif ! __result = (__v4sf) vec_vpkudum ((__vector long long) __temp, ! (__vector long long) __vzero); #else { ! const __v16qu __pkperm = {0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x14, 0x15, 0x16, 0x17, 0x1c, 0x1d, 0x1e, 0x1f }; ! __result = (__v4sf) vec_perm ((__v16qu) __temp, (__v16qu) __vzero, __pkperm); } #endif ! return ((__m128)__result); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvttpd_epi32 (__m128d __A) { ! __v4si __result; ! __v4si __temp; ! const __v4si __vzero = { 0, 0, 0, 0 }; /* VSX Vector truncate Double-Precision to integer and Convert to Signed Integer Word format with Saturate. */ __asm__( "xvcvdpsxws %x0,%x1" ! : "=wa" (__temp) : "wa" (__A) : ); #ifdef _ARCH_PWR8 #ifdef __LITTLE_ENDIAN__ ! __temp = vec_mergeo (__temp, __temp); #else ! __temp = vec_mergee (__temp, __temp); #endif ! __result = (__v4si) vec_vpkudum ((__vector long long) __temp, ! (__vector long long) __vzero); #else { ! const __v16qu __pkperm = {0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0a, 0x0b, 0x14, 0x15, 0x16, 0x17, 0x1c, 0x1d, 0x1e, 0x1f }; ! __result = (__v4si) vec_perm ((__v16qu) __temp, (__v16qu) __vzero, __pkperm); } #endif ! return ((__m128i) __result); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvttpd_pi32 (__m128d __A) { ! __m128i __result = _mm_cvttpd_epi32 (__A); ! return (__m64) __result[0]; } extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _mm_cvtsi128_si32 (__m128i __A) *** 995,1029 **** extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpi32_pd (__m64 __A) { ! __v4si temp; ! __v2di tmp2; ! __v2df result; ! temp = (__v4si)vec_splats (__A); ! tmp2 = (__v2di)vec_unpackl (temp); ! result = vec_ctf ((__vector signed long long) tmp2, 0); ! return (__m128d)result; } #endif extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtps_epi32 (__m128 __A) { ! __v4sf rounded; ! __v4si result; ! rounded = vec_rint((__v4sf) __A); ! result = vec_cts (rounded, 0); ! return (__m128i) result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvttps_epi32 (__m128 __A) { ! __v4si result; ! result = vec_cts ((__v4sf) __A, 0); ! return (__m128i) result; } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 989,1023 ---- extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpi32_pd (__m64 __A) { ! __v4si __temp; ! __v2di __tmp2; ! __v2df __result; ! __temp = (__v4si)vec_splats (__A); ! __tmp2 = (__v2di)vec_unpackl (__temp); ! __result = vec_ctf ((__vector signed long long) __tmp2, 0); ! return (__m128d)__result; } #endif extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtps_epi32 (__m128 __A) { ! __v4sf __rounded; ! __v4si __result; ! __rounded = vec_rint((__v4sf) __A); ! __result = vec_cts (__rounded, 0); ! return (__m128i) __result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvttps_epi32 (__m128 __A) { ! __v4si __result; ! __result = vec_cts ((__v4sf) __A, 0); ! return (__m128i) __result; } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _mm_cvtps_pd (__m128 __A) *** 1035,1082 **** #else /* Otherwise the compiler is not current and so need to generate the equivalent code. */ ! __v4sf a = (__v4sf)__A; ! __v4sf temp; ! __v2df result; #ifdef __LITTLE_ENDIAN__ /* The input float values are in elements {[0], [1]} but the convert instruction needs them in elements {[1], [3]}, So we use two shift left double vector word immediates to get the elements lined up. */ ! temp = __builtin_vsx_xxsldwi (a, a, 3); ! temp = __builtin_vsx_xxsldwi (a, temp, 2); #else /* The input float values are in elements {[0], [1]} but the convert instruction needs them in elements {[0], [2]}, So we use two shift left double vector word immediates to get the elements lined up. */ ! temp = vec_vmrghw (a, a); #endif __asm__( " xvcvspdp %x0,%x1" ! : "=wa" (result) ! : "wa" (temp) : ); ! return (__m128d) result; #endif } extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtsd_si32 (__m128d __A) { ! __v2df rounded = vec_rint((__v2df) __A); ! int result = ((__v2df)rounded)[0]; ! return result; } /* Intel intrinsic. */ extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtsd_si64 (__m128d __A) { ! __v2df rounded = vec_rint ((__v2df) __A ); ! long long result = ((__v2df) rounded)[0]; ! return result; } /* Microsoft intrinsic. */ --- 1029,1076 ---- #else /* Otherwise the compiler is not current and so need to generate the equivalent code. */ ! __v4sf __a = (__v4sf)__A; ! __v4sf __temp; ! __v2df __result; #ifdef __LITTLE_ENDIAN__ /* The input float values are in elements {[0], [1]} but the convert instruction needs them in elements {[1], [3]}, So we use two shift left double vector word immediates to get the elements lined up. */ ! __temp = __builtin_vsx_xxsldwi (__a, __a, 3); ! __temp = __builtin_vsx_xxsldwi (__a, __temp, 2); #else /* The input float values are in elements {[0], [1]} but the convert instruction needs them in elements {[0], [2]}, So we use two shift left double vector word immediates to get the elements lined up. */ ! __temp = vec_vmrghw (__a, __a); #endif __asm__( " xvcvspdp %x0,%x1" ! : "=wa" (__result) ! : "wa" (__temp) : ); ! return (__m128d) __result; #endif } extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtsd_si32 (__m128d __A) { ! __v2df __rounded = vec_rint((__v2df) __A); ! int __result = ((__v2df)__rounded)[0]; ! return __result; } /* Intel intrinsic. */ extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtsd_si64 (__m128d __A) { ! __v2df __rounded = vec_rint ((__v2df) __A ); ! long long __result = ((__v2df) __rounded)[0]; ! return __result; } /* Microsoft intrinsic. */ *************** _mm_cvtsd_si64x (__m128d __A) *** 1089,1106 **** extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvttsd_si32 (__m128d __A) { ! int result = ((__v2df)__A)[0]; ! return result; } /* Intel intrinsic. */ extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvttsd_si64 (__m128d __A) { ! long long result = ((__v2df)__A)[0]; ! return result; } /* Microsoft intrinsic. */ --- 1083,1100 ---- extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvttsd_si32 (__m128d __A) { ! int __result = ((__v2df)__A)[0]; ! return __result; } /* Intel intrinsic. */ extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvttsd_si64 (__m128d __A) { ! long long __result = ((__v2df)__A)[0]; ! return __result; } /* Microsoft intrinsic. */ *************** _mm_cvttsd_si64x (__m128d __A) *** 1113,1158 **** extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtsd_ss (__m128 __A, __m128d __B) { ! __v4sf result = (__v4sf)__A; #ifdef __LITTLE_ENDIAN__ ! __v4sf temp_s; /* Copy double element[0] to element [1] for conversion. */ ! __v2df temp_b = vec_splat((__v2df)__B, 0); /* Pre-rotate __A left 3 (logically right 1) elements. */ ! result = __builtin_vsx_xxsldwi (result, result, 3); /* Convert double to single float scalar in a vector. */ __asm__( "xscvdpsp %x0,%x1" ! : "=wa" (temp_s) ! : "wa" (temp_b) : ); /* Shift the resulting scalar into vector element [0]. */ ! result = __builtin_vsx_xxsldwi (result, temp_s, 1); #else ! result [0] = ((__v2df)__B)[0]; #endif ! return (__m128) result; } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtsi32_sd (__m128d __A, int __B) { ! __v2df result = (__v2df)__A; ! double db = __B; ! result [0] = db; ! return (__m128d)result; } /* Intel intrinsic. */ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtsi64_sd (__m128d __A, long long __B) { ! __v2df result = (__v2df)__A; ! double db = __B; ! result [0] = db; ! return (__m128d)result; } /* Microsoft intrinsic. */ --- 1107,1152 ---- extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtsd_ss (__m128 __A, __m128d __B) { ! __v4sf __result = (__v4sf)__A; #ifdef __LITTLE_ENDIAN__ ! __v4sf __temp_s; /* Copy double element[0] to element [1] for conversion. */ ! __v2df __temp_b = vec_splat((__v2df)__B, 0); /* Pre-rotate __A left 3 (logically right 1) elements. */ ! __result = __builtin_vsx_xxsldwi (__result, __result, 3); /* Convert double to single float scalar in a vector. */ __asm__( "xscvdpsp %x0,%x1" ! : "=wa" (__temp_s) ! : "wa" (__temp_b) : ); /* Shift the resulting scalar into vector element [0]. */ ! __result = __builtin_vsx_xxsldwi (__result, __temp_s, 1); #else ! __result [0] = ((__v2df)__B)[0]; #endif ! return (__m128) __result; } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtsi32_sd (__m128d __A, int __B) { ! __v2df __result = (__v2df)__A; ! double __db = __B; ! __result [0] = __db; ! return (__m128d)__result; } /* Intel intrinsic. */ extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtsi64_sd (__m128d __A, long long __B) { ! __v2df __result = (__v2df)__A; ! double __db = __B; ! __result [0] = __db; ! return (__m128d)__result; } /* Microsoft intrinsic. */ *************** _mm_cvtss_sd (__m128d __A, __m128 __B) *** 1167,1211 **** { #ifdef __LITTLE_ENDIAN__ /* Use splat to move element [0] into position for the convert. */ ! __v4sf temp = vec_splat ((__v4sf)__B, 0); ! __v2df res; /* Convert single float scalar to double in a vector. */ __asm__( "xscvspdp %x0,%x1" ! : "=wa" (res) ! : "wa" (temp) : ); ! return (__m128d) vec_mergel (res, (__v2df)__A); #else ! __v2df res = (__v2df)__A; ! res [0] = ((__v4sf)__B) [0]; ! return (__m128d) res; #endif } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_shuffle_pd(__m128d __A, __m128d __B, const int __mask) { ! __vector double result; ! const int litmsk = __mask & 0x3; ! if (litmsk == 0) ! result = vec_mergeh (__A, __B); #if __GNUC__ < 6 ! else if (litmsk == 1) ! result = vec_xxpermdi (__B, __A, 2); ! else if (litmsk == 2) ! result = vec_xxpermdi (__B, __A, 1); #else ! else if (litmsk == 1) ! result = vec_xxpermdi (__A, __B, 2); ! else if (litmsk == 2) ! result = vec_xxpermdi (__A, __B, 1); #endif else ! result = vec_mergel (__A, __B); ! return result; } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1161,1205 ---- { #ifdef __LITTLE_ENDIAN__ /* Use splat to move element [0] into position for the convert. */ ! __v4sf __temp = vec_splat ((__v4sf)__B, 0); ! __v2df __res; /* Convert single float scalar to double in a vector. */ __asm__( "xscvspdp %x0,%x1" ! : "=wa" (__res) ! : "wa" (__temp) : ); ! return (__m128d) vec_mergel (__res, (__v2df)__A); #else ! __v2df __res = (__v2df)__A; ! __res [0] = ((__v4sf)__B) [0]; ! return (__m128d) __res; #endif } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_shuffle_pd(__m128d __A, __m128d __B, const int __mask) { ! __vector double __result; ! const int __litmsk = __mask & 0x3; ! if (__litmsk == 0) ! __result = vec_mergeh (__A, __B); #if __GNUC__ < 6 ! else if (__litmsk == 1) ! __result = vec_xxpermdi (__B, __A, 2); ! else if (__litmsk == 2) ! __result = vec_xxpermdi (__B, __A, 1); #else ! else if (__litmsk == 1) ! __result = vec_xxpermdi (__A, __B, 2); ! else if (__litmsk == 2) ! __result = vec_xxpermdi (__A, __B, 1); #endif else ! __result = vec_mergel (__A, __B); ! return __result; } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _mm_unpacklo_pd (__m128d __A, __m128d __ *** 1223,1239 **** extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_loadh_pd (__m128d __A, double const *__B) { ! __v2df result = (__v2df)__A; ! result [1] = *__B; ! return (__m128d)result; } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_loadl_pd (__m128d __A, double const *__B) { ! __v2df result = (__v2df)__A; ! result [0] = *__B; ! return (__m128d)result; } #ifdef _ARCH_PWR8 --- 1217,1233 ---- extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_loadh_pd (__m128d __A, double const *__B) { ! __v2df __result = (__v2df)__A; ! __result [1] = *__B; ! return (__m128d)__result; } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_loadl_pd (__m128d __A, double const *__B) { ! __v2df __result = (__v2df)__A; ! __result [0] = *__B; ! return (__m128d)__result; } #ifdef _ARCH_PWR8 *************** _mm_loadl_pd (__m128d __A, double const *** 1243,1250 **** extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_movemask_pd (__m128d __A) { ! __vector unsigned long long result; ! static const __vector unsigned int perm_mask = { #ifdef __LITTLE_ENDIAN__ 0x80800040, 0x80808080, 0x80808080, 0x80808080 --- 1237,1244 ---- extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_movemask_pd (__m128d __A) { ! __vector unsigned long long __result; ! static const __vector unsigned int __perm_mask = { #ifdef __LITTLE_ENDIAN__ 0x80800040, 0x80808080, 0x80808080, 0x80808080 *************** _mm_movemask_pd (__m128d __A) *** 1253,1266 **** #endif }; ! result = ((__vector unsigned long long) vec_vbpermq ((__vector unsigned char) __A, ! (__vector unsigned char) perm_mask)); #ifdef __LITTLE_ENDIAN__ ! return result[1]; #else ! return result[0]; #endif } #endif /* _ARCH_PWR8 */ --- 1247,1260 ---- #endif }; ! __result = ((__vector unsigned long long) vec_vbpermq ((__vector unsigned char) __A, ! (__vector unsigned char) __perm_mask)); #ifdef __LITTLE_ENDIAN__ ! return __result[1]; #else ! return __result[0]; #endif } #endif /* _ARCH_PWR8 */ *************** _mm_subs_epu16 (__m128i __A, __m128i __B *** 1432,1448 **** extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_madd_epi16 (__m128i __A, __m128i __B) { ! __vector signed int zero = {0, 0, 0, 0}; ! return (__m128i) vec_vmsumshm ((__v8hi)__A, (__v8hi)__B, zero); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_mulhi_epi16 (__m128i __A, __m128i __B) { ! __vector signed int w0, w1; ! __vector unsigned char xform1 = { #ifdef __LITTLE_ENDIAN__ 0x02, 0x03, 0x12, 0x13, 0x06, 0x07, 0x16, 0x17, 0x0A, 0x0B, 0x1A, 0x1B, 0x0E, 0x0F, 0x1E, 0x1F --- 1426,1442 ---- extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_madd_epi16 (__m128i __A, __m128i __B) { ! __vector signed int __zero = {0, 0, 0, 0}; ! return (__m128i) vec_vmsumshm ((__v8hi)__A, (__v8hi)__B, __zero); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_mulhi_epi16 (__m128i __A, __m128i __B) { ! __vector signed int __w0, __w1; ! __vector unsigned char __xform1 = { #ifdef __LITTLE_ENDIAN__ 0x02, 0x03, 0x12, 0x13, 0x06, 0x07, 0x16, 0x17, 0x0A, 0x0B, 0x1A, 0x1B, 0x0E, 0x0F, 0x1E, 0x1F *************** _mm_mulhi_epi16 (__m128i __A, __m128i __ *** 1452,1460 **** #endif }; ! w0 = vec_vmulesh ((__v8hi)__A, (__v8hi)__B); ! w1 = vec_vmulosh ((__v8hi)__A, (__v8hi)__B); ! return (__m128i) vec_perm (w0, w1, xform1); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1446,1454 ---- #endif }; ! __w0 = vec_vmulesh ((__v8hi)__A, (__v8hi)__B); ! __w1 = vec_vmulosh ((__v8hi)__A, (__v8hi)__B); ! return (__m128i) vec_perm (__w0, __w1, __xform1); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _mm_mullo_epi16 (__m128i __A, __m128i __ *** 1466,1499 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_mul_su32 (__m64 __A, __m64 __B) { ! unsigned int a = __A; ! unsigned int b = __B; ! return ((__m64)a * (__m64)b); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_mul_epu32 (__m128i __A, __m128i __B) { ! #if __GNUC__ < 8 ! __v2du result; #ifdef __LITTLE_ENDIAN__ /* VMX Vector Multiply Odd Unsigned Word. */ __asm__( "vmulouw %0,%1,%2" ! : "=v" (result) : "v" (__A), "v" (__B) : ); #else /* VMX Vector Multiply Even Unsigned Word. */ __asm__( "vmuleuw %0,%1,%2" ! : "=v" (result) : "v" (__A), "v" (__B) : ); #endif ! return (__m128i) result; #else return (__m128i) vec_mule ((__v4su)__A, (__v4su)__B); #endif --- 1460,1493 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_mul_su32 (__m64 __A, __m64 __B) { ! unsigned int __a = __A; ! unsigned int __b = __B; ! return ((__m64)__a * (__m64)__b); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_mul_epu32 (__m128i __A, __m128i __B) { ! #if __GNUC__ < 8 || !defined (_ARCH_PWR8) ! __v2du __result; #ifdef __LITTLE_ENDIAN__ /* VMX Vector Multiply Odd Unsigned Word. */ __asm__( "vmulouw %0,%1,%2" ! : "=v" (__result) : "v" (__A), "v" (__B) : ); #else /* VMX Vector Multiply Even Unsigned Word. */ __asm__( "vmuleuw %0,%1,%2" ! : "=v" (__result) : "v" (__A), "v" (__B) : ); #endif ! return (__m128i) __result; #else return (__m128i) vec_mule ((__v4su)__A, (__v4su)__B); #endif *************** _mm_mul_epu32 (__m128i __A, __m128i __B) *** 1502,1623 **** extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_slli_epi16 (__m128i __A, int __B) { ! __v8hu lshift; ! __v8hi result = { 0, 0, 0, 0, 0, 0, 0, 0 }; if (__B >= 0 && __B < 16) { if (__builtin_constant_p(__B)) ! lshift = (__v8hu) vec_splat_s16(__B); else ! lshift = vec_splats ((unsigned short) __B); ! result = vec_sl ((__v8hi) __A, lshift); } ! return (__m128i) result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_slli_epi32 (__m128i __A, int __B) { ! __v4su lshift; ! __v4si result = { 0, 0, 0, 0 }; if (__B >= 0 && __B < 32) { if (__builtin_constant_p(__B) && __B < 16) ! lshift = (__v4su) vec_splat_s32(__B); else ! lshift = vec_splats ((unsigned int) __B); ! result = vec_sl ((__v4si) __A, lshift); } ! return (__m128i) result; } #ifdef _ARCH_PWR8 extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_slli_epi64 (__m128i __A, int __B) { ! __v2du lshift; ! __v2di result = { 0, 0 }; if (__B >= 0 && __B < 64) { if (__builtin_constant_p(__B) && __B < 16) ! lshift = (__v2du) vec_splat_s32(__B); else ! lshift = (__v2du) vec_splats ((unsigned int) __B); ! result = vec_sl ((__v2di) __A, lshift); } ! return (__m128i) result; } #endif extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srai_epi16 (__m128i __A, int __B) { ! __v8hu rshift = { 15, 15, 15, 15, 15, 15, 15, 15 }; ! __v8hi result; if (__B < 16) { if (__builtin_constant_p(__B)) ! rshift = (__v8hu) vec_splat_s16(__B); else ! rshift = vec_splats ((unsigned short) __B); } ! result = vec_sra ((__v8hi) __A, rshift); ! return (__m128i) result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srai_epi32 (__m128i __A, int __B) { ! __v4su rshift = { 31, 31, 31, 31 }; ! __v4si result; if (__B < 32) { if (__builtin_constant_p(__B)) { if (__B < 16) ! rshift = (__v4su) vec_splat_s32(__B); else ! rshift = (__v4su) vec_splats((unsigned int)__B); } else ! rshift = vec_splats ((unsigned int) __B); } ! result = vec_sra ((__v4si) __A, rshift); ! return (__m128i) result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_bslli_si128 (__m128i __A, const int __N) { ! __v16qu result; ! const __v16qu zeros = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; if (__N < 16) ! result = vec_sld ((__v16qu) __A, zeros, __N); else ! result = zeros; ! return (__m128i) result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_bsrli_si128 (__m128i __A, const int __N) { ! __v16qu result; ! const __v16qu zeros = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; if (__N < 16) #ifdef __LITTLE_ENDIAN__ --- 1496,1617 ---- extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_slli_epi16 (__m128i __A, int __B) { ! __v8hu __lshift; ! __v8hi __result = { 0, 0, 0, 0, 0, 0, 0, 0 }; if (__B >= 0 && __B < 16) { if (__builtin_constant_p(__B)) ! __lshift = (__v8hu) vec_splat_s16(__B); else ! __lshift = vec_splats ((unsigned short) __B); ! __result = vec_sl ((__v8hi) __A, __lshift); } ! return (__m128i) __result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_slli_epi32 (__m128i __A, int __B) { ! __v4su __lshift; ! __v4si __result = { 0, 0, 0, 0 }; if (__B >= 0 && __B < 32) { if (__builtin_constant_p(__B) && __B < 16) ! __lshift = (__v4su) vec_splat_s32(__B); else ! __lshift = vec_splats ((unsigned int) __B); ! __result = vec_sl ((__v4si) __A, __lshift); } ! return (__m128i) __result; } #ifdef _ARCH_PWR8 extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_slli_epi64 (__m128i __A, int __B) { ! __v2du __lshift; ! __v2di __result = { 0, 0 }; if (__B >= 0 && __B < 64) { if (__builtin_constant_p(__B) && __B < 16) ! __lshift = (__v2du) vec_splat_s32(__B); else ! __lshift = (__v2du) vec_splats ((unsigned int) __B); ! __result = vec_sl ((__v2di) __A, __lshift); } ! return (__m128i) __result; } #endif extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srai_epi16 (__m128i __A, int __B) { ! __v8hu __rshift = { 15, 15, 15, 15, 15, 15, 15, 15 }; ! __v8hi __result; if (__B < 16) { if (__builtin_constant_p(__B)) ! __rshift = (__v8hu) vec_splat_s16(__B); else ! __rshift = vec_splats ((unsigned short) __B); } ! __result = vec_sra ((__v8hi) __A, __rshift); ! return (__m128i) __result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srai_epi32 (__m128i __A, int __B) { ! __v4su __rshift = { 31, 31, 31, 31 }; ! __v4si __result; if (__B < 32) { if (__builtin_constant_p(__B)) { if (__B < 16) ! __rshift = (__v4su) vec_splat_s32(__B); else ! __rshift = (__v4su) vec_splats((unsigned int)__B); } else ! __rshift = vec_splats ((unsigned int) __B); } ! __result = vec_sra ((__v4si) __A, __rshift); ! return (__m128i) __result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_bslli_si128 (__m128i __A, const int __N) { ! __v16qu __result; ! const __v16qu __zeros = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; if (__N < 16) ! __result = vec_sld ((__v16qu) __A, __zeros, __N); else ! __result = __zeros; ! return (__m128i) __result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_bsrli_si128 (__m128i __A, const int __N) { ! __v16qu __result; ! const __v16qu __zeros = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; if (__N < 16) #ifdef __LITTLE_ENDIAN__ *************** _mm_bsrli_si128 (__m128i __A, const int *** 1625,1645 **** /* Would like to use Vector Shift Left Double by Octet Immediate here to use the immediate form and avoid load of __N * 8 value into a separate VR. */ ! result = vec_sld (zeros, (__v16qu) __A, (16 - __N)); else #endif { ! __v16qu shift = vec_splats((unsigned char)(__N*8)); #ifdef __LITTLE_ENDIAN__ ! result = vec_sro ((__v16qu)__A, shift); #else ! result = vec_slo ((__v16qu)__A, shift); #endif } else ! result = zeros; ! return (__m128i) result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1619,1639 ---- /* Would like to use Vector Shift Left Double by Octet Immediate here to use the immediate form and avoid load of __N * 8 value into a separate VR. */ ! __result = vec_sld (__zeros, (__v16qu) __A, (16 - __N)); else #endif { ! __v16qu __shift = vec_splats((unsigned char)(__N*8)); #ifdef __LITTLE_ENDIAN__ ! __result = vec_sro ((__v16qu)__A, __shift); #else ! __result = vec_slo ((__v16qu)__A, __shift); #endif } else ! __result = __zeros; ! return (__m128i) __result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _mm_srli_si128 (__m128i __A, const int _ *** 1651,1889 **** extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_slli_si128 (__m128i __A, const int _imm5) { ! __v16qu result; ! const __v16qu zeros = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; if (_imm5 < 16) #ifdef __LITTLE_ENDIAN__ ! result = vec_sld ((__v16qu) __A, zeros, _imm5); #else ! result = vec_sld (zeros, (__v16qu) __A, (16 - _imm5)); #endif else ! result = zeros; ! return (__m128i) result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srli_epi16 (__m128i __A, int __B) { ! __v8hu rshift; ! __v8hi result = { 0, 0, 0, 0, 0, 0, 0, 0 }; if (__B < 16) { if (__builtin_constant_p(__B)) ! rshift = (__v8hu) vec_splat_s16(__B); else ! rshift = vec_splats ((unsigned short) __B); ! result = vec_sr ((__v8hi) __A, rshift); } ! return (__m128i) result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srli_epi32 (__m128i __A, int __B) { ! __v4su rshift; ! __v4si result = { 0, 0, 0, 0 }; if (__B < 32) { if (__builtin_constant_p(__B)) { if (__B < 16) ! rshift = (__v4su) vec_splat_s32(__B); else ! rshift = (__v4su) vec_splats((unsigned int)__B); } else ! rshift = vec_splats ((unsigned int) __B); ! result = vec_sr ((__v4si) __A, rshift); } ! return (__m128i) result; } #ifdef _ARCH_PWR8 extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srli_epi64 (__m128i __A, int __B) { ! __v2du rshift; ! __v2di result = { 0, 0 }; if (__B < 64) { if (__builtin_constant_p(__B)) { if (__B < 16) ! rshift = (__v2du) vec_splat_s32(__B); else ! rshift = (__v2du) vec_splats((unsigned long long)__B); } else ! rshift = (__v2du) vec_splats ((unsigned int) __B); ! result = vec_sr ((__v2di) __A, rshift); } ! return (__m128i) result; } #endif extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sll_epi16 (__m128i __A, __m128i __B) { ! __v8hu lshift; ! __vector __bool short shmask; ! const __v8hu shmax = { 15, 15, 15, 15, 15, 15, 15, 15 }; ! __v8hu result; #ifdef __LITTLE_ENDIAN__ ! lshift = vec_splat ((__v8hu) __B, 0); #else ! lshift = vec_splat ((__v8hu) __B, 3); #endif ! shmask = vec_cmple (lshift, shmax); ! result = vec_sl ((__v8hu) __A, lshift); ! result = vec_sel ((__v8hu) shmask, result, shmask); ! return (__m128i) result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sll_epi32 (__m128i __A, __m128i __B) { ! __v4su lshift; ! __vector __bool int shmask; ! const __v4su shmax = { 32, 32, 32, 32 }; ! __v4su result; #ifdef __LITTLE_ENDIAN__ ! lshift = vec_splat ((__v4su) __B, 0); #else ! lshift = vec_splat ((__v4su) __B, 1); #endif ! shmask = vec_cmplt (lshift, shmax); ! result = vec_sl ((__v4su) __A, lshift); ! result = vec_sel ((__v4su) shmask, result, shmask); ! return (__m128i) result; } #ifdef _ARCH_PWR8 extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sll_epi64 (__m128i __A, __m128i __B) { ! __v2du lshift; ! __vector __bool long long shmask; ! const __v2du shmax = { 64, 64 }; ! __v2du result; ! lshift = vec_splat ((__v2du) __B, 0); ! shmask = vec_cmplt (lshift, shmax); ! result = vec_sl ((__v2du) __A, lshift); ! result = vec_sel ((__v2du) shmask, result, shmask); ! return (__m128i) result; } #endif extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sra_epi16 (__m128i __A, __m128i __B) { ! const __v8hu rshmax = { 15, 15, 15, 15, 15, 15, 15, 15 }; ! __v8hu rshift; ! __v8hi result; #ifdef __LITTLE_ENDIAN__ ! rshift = vec_splat ((__v8hu)__B, 0); #else ! rshift = vec_splat ((__v8hu)__B, 3); #endif ! rshift = vec_min (rshift, rshmax); ! result = vec_sra ((__v8hi) __A, rshift); ! return (__m128i) result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sra_epi32 (__m128i __A, __m128i __B) { ! const __v4su rshmax = { 31, 31, 31, 31 }; ! __v4su rshift; ! __v4si result; #ifdef __LITTLE_ENDIAN__ ! rshift = vec_splat ((__v4su)__B, 0); #else ! rshift = vec_splat ((__v4su)__B, 1); #endif ! rshift = vec_min (rshift, rshmax); ! result = vec_sra ((__v4si) __A, rshift); ! return (__m128i) result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srl_epi16 (__m128i __A, __m128i __B) { ! __v8hu rshift; ! __vector __bool short shmask; ! const __v8hu shmax = { 15, 15, 15, 15, 15, 15, 15, 15 }; ! __v8hu result; #ifdef __LITTLE_ENDIAN__ ! rshift = vec_splat ((__v8hu) __B, 0); #else ! rshift = vec_splat ((__v8hu) __B, 3); #endif ! shmask = vec_cmple (rshift, shmax); ! result = vec_sr ((__v8hu) __A, rshift); ! result = vec_sel ((__v8hu) shmask, result, shmask); ! return (__m128i) result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srl_epi32 (__m128i __A, __m128i __B) { ! __v4su rshift; ! __vector __bool int shmask; ! const __v4su shmax = { 32, 32, 32, 32 }; ! __v4su result; #ifdef __LITTLE_ENDIAN__ ! rshift = vec_splat ((__v4su) __B, 0); #else ! rshift = vec_splat ((__v4su) __B, 1); #endif ! shmask = vec_cmplt (rshift, shmax); ! result = vec_sr ((__v4su) __A, rshift); ! result = vec_sel ((__v4su) shmask, result, shmask); ! return (__m128i) result; } #ifdef _ARCH_PWR8 extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srl_epi64 (__m128i __A, __m128i __B) { ! __v2du rshift; ! __vector __bool long long shmask; ! const __v2du shmax = { 64, 64 }; ! __v2du result; ! rshift = vec_splat ((__v2du) __B, 0); ! shmask = vec_cmplt (rshift, shmax); ! result = vec_sr ((__v2du) __A, rshift); ! result = vec_sel ((__v2du) shmask, result, shmask); ! return (__m128i) result; } #endif --- 1645,1883 ---- extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_slli_si128 (__m128i __A, const int _imm5) { ! __v16qu __result; ! const __v16qu __zeros = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; if (_imm5 < 16) #ifdef __LITTLE_ENDIAN__ ! __result = vec_sld ((__v16qu) __A, __zeros, _imm5); #else ! __result = vec_sld (__zeros, (__v16qu) __A, (16 - _imm5)); #endif else ! __result = __zeros; ! return (__m128i) __result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srli_epi16 (__m128i __A, int __B) { ! __v8hu __rshift; ! __v8hi __result = { 0, 0, 0, 0, 0, 0, 0, 0 }; if (__B < 16) { if (__builtin_constant_p(__B)) ! __rshift = (__v8hu) vec_splat_s16(__B); else ! __rshift = vec_splats ((unsigned short) __B); ! __result = vec_sr ((__v8hi) __A, __rshift); } ! return (__m128i) __result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srli_epi32 (__m128i __A, int __B) { ! __v4su __rshift; ! __v4si __result = { 0, 0, 0, 0 }; if (__B < 32) { if (__builtin_constant_p(__B)) { if (__B < 16) ! __rshift = (__v4su) vec_splat_s32(__B); else ! __rshift = (__v4su) vec_splats((unsigned int)__B); } else ! __rshift = vec_splats ((unsigned int) __B); ! __result = vec_sr ((__v4si) __A, __rshift); } ! return (__m128i) __result; } #ifdef _ARCH_PWR8 extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srli_epi64 (__m128i __A, int __B) { ! __v2du __rshift; ! __v2di __result = { 0, 0 }; if (__B < 64) { if (__builtin_constant_p(__B)) { if (__B < 16) ! __rshift = (__v2du) vec_splat_s32(__B); else ! __rshift = (__v2du) vec_splats((unsigned long long)__B); } else ! __rshift = (__v2du) vec_splats ((unsigned int) __B); ! __result = vec_sr ((__v2di) __A, __rshift); } ! return (__m128i) __result; } #endif extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sll_epi16 (__m128i __A, __m128i __B) { ! __v8hu __lshift; ! __vector __bool short __shmask; ! const __v8hu __shmax = { 15, 15, 15, 15, 15, 15, 15, 15 }; ! __v8hu __result; #ifdef __LITTLE_ENDIAN__ ! __lshift = vec_splat ((__v8hu) __B, 0); #else ! __lshift = vec_splat ((__v8hu) __B, 3); #endif ! __shmask = vec_cmple (__lshift, __shmax); ! __result = vec_sl ((__v8hu) __A, __lshift); ! __result = vec_sel ((__v8hu) __shmask, __result, __shmask); ! return (__m128i) __result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sll_epi32 (__m128i __A, __m128i __B) { ! __v4su __lshift; ! __vector __bool int __shmask; ! const __v4su __shmax = { 32, 32, 32, 32 }; ! __v4su __result; #ifdef __LITTLE_ENDIAN__ ! __lshift = vec_splat ((__v4su) __B, 0); #else ! __lshift = vec_splat ((__v4su) __B, 1); #endif ! __shmask = vec_cmplt (__lshift, __shmax); ! __result = vec_sl ((__v4su) __A, __lshift); ! __result = vec_sel ((__v4su) __shmask, __result, __shmask); ! return (__m128i) __result; } #ifdef _ARCH_PWR8 extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sll_epi64 (__m128i __A, __m128i __B) { ! __v2du __lshift; ! __vector __bool long long __shmask; ! const __v2du __shmax = { 64, 64 }; ! __v2du __result; ! __lshift = vec_splat ((__v2du) __B, 0); ! __shmask = vec_cmplt (__lshift, __shmax); ! __result = vec_sl ((__v2du) __A, __lshift); ! __result = vec_sel ((__v2du) __shmask, __result, __shmask); ! return (__m128i) __result; } #endif extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sra_epi16 (__m128i __A, __m128i __B) { ! const __v8hu __rshmax = { 15, 15, 15, 15, 15, 15, 15, 15 }; ! __v8hu __rshift; ! __v8hi __result; #ifdef __LITTLE_ENDIAN__ ! __rshift = vec_splat ((__v8hu)__B, 0); #else ! __rshift = vec_splat ((__v8hu)__B, 3); #endif ! __rshift = vec_min (__rshift, __rshmax); ! __result = vec_sra ((__v8hi) __A, __rshift); ! return (__m128i) __result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sra_epi32 (__m128i __A, __m128i __B) { ! const __v4su __rshmax = { 31, 31, 31, 31 }; ! __v4su __rshift; ! __v4si __result; #ifdef __LITTLE_ENDIAN__ ! __rshift = vec_splat ((__v4su)__B, 0); #else ! __rshift = vec_splat ((__v4su)__B, 1); #endif ! __rshift = vec_min (__rshift, __rshmax); ! __result = vec_sra ((__v4si) __A, __rshift); ! return (__m128i) __result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srl_epi16 (__m128i __A, __m128i __B) { ! __v8hu __rshift; ! __vector __bool short __shmask; ! const __v8hu __shmax = { 15, 15, 15, 15, 15, 15, 15, 15 }; ! __v8hu __result; #ifdef __LITTLE_ENDIAN__ ! __rshift = vec_splat ((__v8hu) __B, 0); #else ! __rshift = vec_splat ((__v8hu) __B, 3); #endif ! __shmask = vec_cmple (__rshift, __shmax); ! __result = vec_sr ((__v8hu) __A, __rshift); ! __result = vec_sel ((__v8hu) __shmask, __result, __shmask); ! return (__m128i) __result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srl_epi32 (__m128i __A, __m128i __B) { ! __v4su __rshift; ! __vector __bool int __shmask; ! const __v4su __shmax = { 32, 32, 32, 32 }; ! __v4su __result; #ifdef __LITTLE_ENDIAN__ ! __rshift = vec_splat ((__v4su) __B, 0); #else ! __rshift = vec_splat ((__v4su) __B, 1); #endif ! __shmask = vec_cmplt (__rshift, __shmax); ! __result = vec_sr ((__v4su) __A, __rshift); ! __result = vec_sel ((__v4su) __shmask, __result, __shmask); ! return (__m128i) __result; } #ifdef _ARCH_PWR8 extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srl_epi64 (__m128i __A, __m128i __B) { ! __v2du __rshift; ! __vector __bool long long __shmask; ! const __v2du __shmax = { 64, 64 }; ! __v2du __result; ! __rshift = vec_splat ((__v2du) __B, 0); ! __shmask = vec_cmplt (__rshift, __shmax); ! __result = vec_sr ((__v2du) __A, __rshift); ! __result = vec_sel ((__v2du) __shmask, __result, __shmask); ! return (__m128i) __result; } #endif *************** _mm_extract_epi16 (__m128i const __A, in *** 1998,2008 **** extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_insert_epi16 (__m128i const __A, int const __D, int const __N) { ! __v8hi result = (__v8hi)__A; ! result [(__N & 7)] = __D; ! return (__m128i) result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1992,2002 ---- extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_insert_epi16 (__m128i const __A, int const __D, int const __N) { ! __v8hi __result = (__v8hi)__A; ! __result [(__N & 7)] = __D; ! return (__m128i) __result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _mm_min_epu8 (__m128i __A, __m128i __B) *** 2038,2058 **** extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_movemask_epi8 (__m128i __A) { ! __vector unsigned long long result; ! static const __vector unsigned char perm_mask = { 0x78, 0x70, 0x68, 0x60, 0x58, 0x50, 0x48, 0x40, 0x38, 0x30, 0x28, 0x20, 0x18, 0x10, 0x08, 0x00 }; ! result = ((__vector unsigned long long) vec_vbpermq ((__vector unsigned char) __A, ! (__vector unsigned char) perm_mask)); #ifdef __LITTLE_ENDIAN__ ! return result[1]; #else ! return result[0]; #endif } #endif /* _ARCH_PWR8 */ --- 2032,2052 ---- extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_movemask_epi8 (__m128i __A) { ! __vector unsigned long long __result; ! static const __vector unsigned char __perm_mask = { 0x78, 0x70, 0x68, 0x60, 0x58, 0x50, 0x48, 0x40, 0x38, 0x30, 0x28, 0x20, 0x18, 0x10, 0x08, 0x00 }; ! __result = ((__vector unsigned long long) vec_vbpermq ((__vector unsigned char) __A, ! (__vector unsigned char) __perm_mask)); #ifdef __LITTLE_ENDIAN__ ! return __result[1]; #else ! return __result[0]; #endif } #endif /* _ARCH_PWR8 */ *************** _mm_movemask_epi8 (__m128i __A) *** 2060,2067 **** extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_mulhi_epu16 (__m128i __A, __m128i __B) { ! __v4su w0, w1; ! __v16qu xform1 = { #ifdef __LITTLE_ENDIAN__ 0x02, 0x03, 0x12, 0x13, 0x06, 0x07, 0x16, 0x17, 0x0A, 0x0B, 0x1A, 0x1B, 0x0E, 0x0F, 0x1E, 0x1F --- 2054,2061 ---- extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_mulhi_epu16 (__m128i __A, __m128i __B) { ! __v4su __w0, __w1; ! __v16qu __xform1 = { #ifdef __LITTLE_ENDIAN__ 0x02, 0x03, 0x12, 0x13, 0x06, 0x07, 0x16, 0x17, 0x0A, 0x0B, 0x1A, 0x1B, 0x0E, 0x0F, 0x1E, 0x1F *************** _mm_mulhi_epu16 (__m128i __A, __m128i __ *** 2071,2089 **** #endif }; ! w0 = vec_vmuleuh ((__v8hu)__A, (__v8hu)__B); ! w1 = vec_vmulouh ((__v8hu)__A, (__v8hu)__B); ! return (__m128i) vec_perm (w0, w1, xform1); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_shufflehi_epi16 (__m128i __A, const int __mask) { ! unsigned long element_selector_98 = __mask & 0x03; ! unsigned long element_selector_BA = (__mask >> 2) & 0x03; ! unsigned long element_selector_DC = (__mask >> 4) & 0x03; ! unsigned long element_selector_FE = (__mask >> 6) & 0x03; ! static const unsigned short permute_selectors[4] = { #ifdef __LITTLE_ENDIAN__ 0x0908, 0x0B0A, 0x0D0C, 0x0F0E --- 2065,2083 ---- #endif }; ! __w0 = vec_vmuleuh ((__v8hu)__A, (__v8hu)__B); ! __w1 = vec_vmulouh ((__v8hu)__A, (__v8hu)__B); ! return (__m128i) vec_perm (__w0, __w1, __xform1); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_shufflehi_epi16 (__m128i __A, const int __mask) { ! unsigned long __element_selector_98 = __mask & 0x03; ! unsigned long __element_selector_BA = (__mask >> 2) & 0x03; ! unsigned long __element_selector_DC = (__mask >> 4) & 0x03; ! unsigned long __element_selector_FE = (__mask >> 6) & 0x03; ! static const unsigned short __permute_selectors[4] = { #ifdef __LITTLE_ENDIAN__ 0x0908, 0x0B0A, 0x0D0C, 0x0F0E *************** _mm_shufflehi_epi16 (__m128i __A, const *** 2091,2123 **** 0x0809, 0x0A0B, 0x0C0D, 0x0E0F #endif }; ! __v2du pmask = #ifdef __LITTLE_ENDIAN__ { 0x1716151413121110UL, 0UL}; #else { 0x1011121314151617UL, 0UL}; #endif ! __m64_union t; ! __v2du a, r; ! t.as_short[0] = permute_selectors[element_selector_98]; ! t.as_short[1] = permute_selectors[element_selector_BA]; ! t.as_short[2] = permute_selectors[element_selector_DC]; ! t.as_short[3] = permute_selectors[element_selector_FE]; ! pmask[1] = t.as_m64; ! a = (__v2du)__A; ! r = vec_perm (a, a, (__vector unsigned char)pmask); ! return (__m128i) r; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_shufflelo_epi16 (__m128i __A, const int __mask) { ! unsigned long element_selector_10 = __mask & 0x03; ! unsigned long element_selector_32 = (__mask >> 2) & 0x03; ! unsigned long element_selector_54 = (__mask >> 4) & 0x03; ! unsigned long element_selector_76 = (__mask >> 6) & 0x03; ! static const unsigned short permute_selectors[4] = { #ifdef __LITTLE_ENDIAN__ 0x0100, 0x0302, 0x0504, 0x0706 --- 2085,2117 ---- 0x0809, 0x0A0B, 0x0C0D, 0x0E0F #endif }; ! __v2du __pmask = #ifdef __LITTLE_ENDIAN__ { 0x1716151413121110UL, 0UL}; #else { 0x1011121314151617UL, 0UL}; #endif ! __m64_union __t; ! __v2du __a, __r; ! __t.as_short[0] = __permute_selectors[__element_selector_98]; ! __t.as_short[1] = __permute_selectors[__element_selector_BA]; ! __t.as_short[2] = __permute_selectors[__element_selector_DC]; ! __t.as_short[3] = __permute_selectors[__element_selector_FE]; ! __pmask[1] = __t.as_m64; ! __a = (__v2du)__A; ! __r = vec_perm (__a, __a, (__vector unsigned char)__pmask); ! return (__m128i) __r; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_shufflelo_epi16 (__m128i __A, const int __mask) { ! unsigned long __element_selector_10 = __mask & 0x03; ! unsigned long __element_selector_32 = (__mask >> 2) & 0x03; ! unsigned long __element_selector_54 = (__mask >> 4) & 0x03; ! unsigned long __element_selector_76 = (__mask >> 6) & 0x03; ! static const unsigned short __permute_selectors[4] = { #ifdef __LITTLE_ENDIAN__ 0x0100, 0x0302, 0x0504, 0x0706 *************** _mm_shufflelo_epi16 (__m128i __A, const *** 2125,2156 **** 0x0001, 0x0203, 0x0405, 0x0607 #endif }; ! __v2du pmask = #ifdef __LITTLE_ENDIAN__ { 0UL, 0x1f1e1d1c1b1a1918UL}; #else { 0UL, 0x18191a1b1c1d1e1fUL}; #endif ! __m64_union t; ! __v2du a, r; ! t.as_short[0] = permute_selectors[element_selector_10]; ! t.as_short[1] = permute_selectors[element_selector_32]; ! t.as_short[2] = permute_selectors[element_selector_54]; ! t.as_short[3] = permute_selectors[element_selector_76]; ! pmask[0] = t.as_m64; ! a = (__v2du)__A; ! r = vec_perm (a, a, (__vector unsigned char)pmask); ! return (__m128i) r; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_shuffle_epi32 (__m128i __A, const int __mask) { ! unsigned long element_selector_10 = __mask & 0x03; ! unsigned long element_selector_32 = (__mask >> 2) & 0x03; ! unsigned long element_selector_54 = (__mask >> 4) & 0x03; ! unsigned long element_selector_76 = (__mask >> 6) & 0x03; ! static const unsigned int permute_selectors[4] = { #ifdef __LITTLE_ENDIAN__ 0x03020100, 0x07060504, 0x0B0A0908, 0x0F0E0D0C --- 2119,2150 ---- 0x0001, 0x0203, 0x0405, 0x0607 #endif }; ! __v2du __pmask = #ifdef __LITTLE_ENDIAN__ { 0UL, 0x1f1e1d1c1b1a1918UL}; #else { 0UL, 0x18191a1b1c1d1e1fUL}; #endif ! __m64_union __t; ! __v2du __a, __r; ! __t.as_short[0] = __permute_selectors[__element_selector_10]; ! __t.as_short[1] = __permute_selectors[__element_selector_32]; ! __t.as_short[2] = __permute_selectors[__element_selector_54]; ! __t.as_short[3] = __permute_selectors[__element_selector_76]; ! __pmask[0] = __t.as_m64; ! __a = (__v2du)__A; ! __r = vec_perm (__a, __a, (__vector unsigned char)__pmask); ! return (__m128i) __r; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_shuffle_epi32 (__m128i __A, const int __mask) { ! unsigned long __element_selector_10 = __mask & 0x03; ! unsigned long __element_selector_32 = (__mask >> 2) & 0x03; ! unsigned long __element_selector_54 = (__mask >> 4) & 0x03; ! unsigned long __element_selector_76 = (__mask >> 6) & 0x03; ! static const unsigned int __permute_selectors[4] = { #ifdef __LITTLE_ENDIAN__ 0x03020100, 0x07060504, 0x0B0A0908, 0x0F0E0D0C *************** _mm_shuffle_epi32 (__m128i __A, const in *** 2158,2183 **** 0x00010203, 0x04050607, 0x08090A0B, 0x0C0D0E0F #endif }; ! __v4su t; ! t[0] = permute_selectors[element_selector_10]; ! t[1] = permute_selectors[element_selector_32]; ! t[2] = permute_selectors[element_selector_54] + 0x10101010; ! t[3] = permute_selectors[element_selector_76] + 0x10101010; ! return (__m128i)vec_perm ((__v4si) __A, (__v4si)__A, (__vector unsigned char)t); } extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_maskmoveu_si128 (__m128i __A, __m128i __B, char *__C) { ! __v2du hibit = { 0x7f7f7f7f7f7f7f7fUL, 0x7f7f7f7f7f7f7f7fUL}; ! __v16qu mask, tmp; ! __m128i_u *p = (__m128i_u*)__C; ! tmp = (__v16qu)_mm_loadu_si128(p); ! mask = (__v16qu)vec_cmpgt ((__v16qu)__B, (__v16qu)hibit); ! tmp = vec_sel (tmp, (__v16qu)__A, mask); ! _mm_storeu_si128 (p, (__m128i)tmp); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 2152,2177 ---- 0x00010203, 0x04050607, 0x08090A0B, 0x0C0D0E0F #endif }; ! __v4su __t; ! __t[0] = __permute_selectors[__element_selector_10]; ! __t[1] = __permute_selectors[__element_selector_32]; ! __t[2] = __permute_selectors[__element_selector_54] + 0x10101010; ! __t[3] = __permute_selectors[__element_selector_76] + 0x10101010; ! return (__m128i)vec_perm ((__v4si) __A, (__v4si)__A, (__vector unsigned char)__t); } extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_maskmoveu_si128 (__m128i __A, __m128i __B, char *__C) { ! __v2du __hibit = { 0x7f7f7f7f7f7f7f7fUL, 0x7f7f7f7f7f7f7f7fUL}; ! __v16qu __mask, __tmp; ! __m128i_u *__p = (__m128i_u*)__C; ! __tmp = (__v16qu)_mm_loadu_si128(__p); ! __mask = (__v16qu)vec_cmpgt ((__v16qu)__B, (__v16qu)__hibit); ! __tmp = vec_sel (__tmp, (__v16qu)__A, __mask); ! _mm_storeu_si128 (__p, (__m128i)__tmp); } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _mm_avg_epu16 (__m128i __A, __m128i __B) *** 2196,2224 **** extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sad_epu8 (__m128i __A, __m128i __B) { ! __v16qu a, b; ! __v16qu vmin, vmax, vabsdiff; ! __v4si vsum; ! const __v4su zero = { 0, 0, 0, 0 }; ! __v4si result; ! a = (__v16qu) __A; ! b = (__v16qu) __B; ! vmin = vec_min (a, b); ! vmax = vec_max (a, b); ! vabsdiff = vec_sub (vmax, vmin); /* Sum four groups of bytes into integers. */ ! vsum = (__vector signed int) vec_sum4s (vabsdiff, zero); /* Sum across four integers with two integer results. */ ! result = vec_sum2s (vsum, (__vector signed int) zero); /* Rotate the sums into the correct position. */ #ifdef __LITTLE_ENDIAN__ ! result = vec_sld (result, result, 4); #else ! result = vec_sld (result, result, 6); #endif /* Rotate the sums into the correct position. */ ! return (__m128i) result; } extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 2190,2218 ---- extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sad_epu8 (__m128i __A, __m128i __B) { ! __v16qu __a, __b; ! __v16qu __vmin, __vmax, __vabsdiff; ! __v4si __vsum; ! const __v4su __zero = { 0, 0, 0, 0 }; ! __v4si __result; ! __a = (__v16qu) __A; ! __b = (__v16qu) __B; ! __vmin = vec_min (__a, __b); ! __vmax = vec_max (__a, __b); ! __vabsdiff = vec_sub (__vmax, __vmin); /* Sum four groups of bytes into integers. */ ! __vsum = (__vector signed int) vec_sum4s (__vabsdiff, __zero); /* Sum across four integers with two integer results. */ ! __result = vec_sum2s (__vsum, (__vector signed int) __zero); /* Rotate the sums into the correct position. */ #ifdef __LITTLE_ENDIAN__ ! __result = vec_sld (__result, __result, 4); #else ! __result = vec_sld (__result, __result, 6); #endif /* Rotate the sums into the correct position. */ ! return (__m128i) __result; } extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/mm_malloc.h gcc-11.4.0/gcc/config/rs6000/mm_malloc.h *** gcc-11.3.0/gcc/config/rs6000/mm_malloc.h Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/rs6000/mm_malloc.h Mon May 29 08:46:29 2023 *************** extern "C" int posix_memalign (void **, *** 35,62 **** #endif static __inline void * ! _mm_malloc (size_t size, size_t alignment) { /* PowerPC64 ELF V2 ABI requires quadword alignment. */ ! size_t vec_align = sizeof (__vector float); /* Linux GLIBC malloc alignment is at least 2 X ptr size. */ ! size_t malloc_align = (sizeof (void *) + sizeof (void *)); ! void *ptr; ! if (alignment == malloc_align && alignment == vec_align) ! return malloc (size); ! if (alignment < vec_align) ! alignment = vec_align; ! if (posix_memalign (&ptr, alignment, size) == 0) ! return ptr; else return NULL; } static __inline void ! _mm_free (void * ptr) { ! free (ptr); } #endif /* _MM_MALLOC_H_INCLUDED */ --- 35,62 ---- #endif static __inline void * ! _mm_malloc (size_t __size, size_t __alignment) { /* PowerPC64 ELF V2 ABI requires quadword alignment. */ ! size_t __vec_align = sizeof (__vector float); /* Linux GLIBC malloc alignment is at least 2 X ptr size. */ ! size_t __malloc_align = (sizeof (void *) + sizeof (void *)); ! void *__ptr; ! if (__alignment == __malloc_align && __alignment == __vec_align) ! return malloc (__size); ! if (__alignment < __vec_align) ! __alignment = __vec_align; ! if (posix_memalign (&__ptr, __alignment, __size) == 0) ! return __ptr; else return NULL; } static __inline void ! _mm_free (void * __ptr) { ! free (__ptr); } #endif /* _MM_MALLOC_H_INCLUDED */ diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/mma.md gcc-11.4.0/gcc/config/rs6000/mma.md *** gcc-11.3.0/gcc/config/rs6000/mma.md Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/rs6000/mma.md Mon May 29 08:46:29 2023 *************** *** 267,276 **** (define_expand "movoo" [(set (match_operand:OO 0 "nonimmediate_operand") (match_operand:OO 1 "input_operand"))] ! "TARGET_MMA" { ! rs6000_emit_move (operands[0], operands[1], OOmode); ! DONE; }) (define_insn_and_split "*movoo" --- 267,294 ---- (define_expand "movoo" [(set (match_operand:OO 0 "nonimmediate_operand") (match_operand:OO 1 "input_operand"))] ! "" { ! if (TARGET_MMA) ! { ! rs6000_emit_move (operands[0], operands[1], OOmode); ! DONE; ! } ! else if (currently_expanding_to_rtl && seen_error ()) ! { ! /* PR103353 shows we may want to continue to expand the __builtin_vsx_lxvp ! built-in function, even if we have already emitted error messages about ! some missing required conditions. As shown in that PR, without one ! explicit mov optab on OOmode provided, it would call emit_move_insn ! recursively. So we allow this pattern to be generated when we are ! expanding to RTL and have seen errors. It would not cause further ICEs ! as the compilation would stop soon after expanding. */ ! } ! else if (rs6000_opaque_type_invalid_use_p (currently_expanding_gimple_stmt)) ! ; ! else ! /* Catch unexpected cases. */ ! gcc_assert (false); }) (define_insn_and_split "*movoo" *************** *** 299,308 **** (define_expand "movxo" [(set (match_operand:XO 0 "nonimmediate_operand") (match_operand:XO 1 "input_operand"))] ! "TARGET_MMA" { ! rs6000_emit_move (operands[0], operands[1], XOmode); ! DONE; }) (define_insn_and_split "*movxo" --- 317,341 ---- (define_expand "movxo" [(set (match_operand:XO 0 "nonimmediate_operand") (match_operand:XO 1 "input_operand"))] ! "" { ! if (TARGET_MMA) ! { ! rs6000_emit_move (operands[0], operands[1], XOmode); ! DONE; ! } ! else if (currently_expanding_to_rtl && seen_error ()) ! { ! /* PR103353 shows we may want to continue to expand the __builtin_vsx_lxvp ! built-in function, even if we have already emitted error messages about ! some missing required conditions. So do the same handlings for XOmode ! as OOmode here. */ ! } ! else if (rs6000_opaque_type_invalid_use_p (currently_expanding_gimple_stmt)) ! ; ! else ! /* Catch unexpected cases. */ ! gcc_assert (false); }) (define_insn_and_split "*movxo" diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/mmintrin.h gcc-11.4.0/gcc/config/rs6000/mmintrin.h *** gcc-11.3.0/gcc/config/rs6000/mmintrin.h Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/rs6000/mmintrin.h Mon May 29 08:46:29 2023 *************** _mm_cvtsi64_si64x (__m64 __i) *** 170,186 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_packs_pi16 (__m64 __m1, __m64 __m2) { ! __vector signed short vm1; ! __vector signed char vresult; ! vm1 = (__vector signed short) (__vector unsigned long long) #ifdef __LITTLE_ENDIAN__ { __m1, __m2 }; #else { __m2, __m1 }; #endif ! vresult = vec_packs (vm1, vm1); ! return (__m64) ((__vector long long) vresult)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 170,186 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_packs_pi16 (__m64 __m1, __m64 __m2) { ! __vector signed short __vm1; ! __vector signed char __vresult; ! __vm1 = (__vector signed short) (__vector unsigned long long) #ifdef __LITTLE_ENDIAN__ { __m1, __m2 }; #else { __m2, __m1 }; #endif ! __vresult = vec_packs (__vm1, __vm1); ! return (__m64) ((__vector long long) __vresult)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_packsswb (__m64 __m1, __m64 __m2) *** 195,211 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_packs_pi32 (__m64 __m1, __m64 __m2) { ! __vector signed int vm1; ! __vector signed short vresult; ! vm1 = (__vector signed int) (__vector unsigned long long) #ifdef __LITTLE_ENDIAN__ { __m1, __m2 }; #else { __m2, __m1 }; #endif ! vresult = vec_packs (vm1, vm1); ! return (__m64) ((__vector long long) vresult)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 195,211 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_packs_pi32 (__m64 __m1, __m64 __m2) { ! __vector signed int __vm1; ! __vector signed short __vresult; ! __vm1 = (__vector signed int) (__vector unsigned long long) #ifdef __LITTLE_ENDIAN__ { __m1, __m2 }; #else { __m2, __m1 }; #endif ! __vresult = vec_packs (__vm1, __vm1); ! return (__m64) ((__vector long long) __vresult)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_packssdw (__m64 __m1, __m64 __m2) *** 220,238 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_packs_pu16 (__m64 __m1, __m64 __m2) { ! __vector unsigned char r; ! __vector signed short vm1 = (__vector signed short) (__vector long long) #ifdef __LITTLE_ENDIAN__ { __m1, __m2 }; #else { __m2, __m1 }; #endif const __vector signed short __zero = { 0 }; ! __vector __bool short __select = vec_cmplt (vm1, __zero); ! r = vec_packs ((__vector unsigned short) vm1, (__vector unsigned short) vm1); ! __vector __bool char packsel = vec_pack (__select, __select); ! r = vec_sel (r, (const __vector unsigned char) __zero, packsel); ! return (__m64) ((__vector long long) r)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 220,238 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_packs_pu16 (__m64 __m1, __m64 __m2) { ! __vector unsigned char __r; ! __vector signed short __vm1 = (__vector signed short) (__vector long long) #ifdef __LITTLE_ENDIAN__ { __m1, __m2 }; #else { __m2, __m1 }; #endif const __vector signed short __zero = { 0 }; ! __vector __bool short __select = vec_cmplt (__vm1, __zero); ! __r = vec_packs ((__vector unsigned short) __vm1, (__vector unsigned short) __vm1); ! __vector __bool char __packsel = vec_pack (__select, __select); ! __r = vec_sel (__r, (const __vector unsigned char) __zero, __packsel); ! return (__m64) ((__vector long long) __r)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** extern __inline __m64 __attribute__((__g *** 248,275 **** _mm_unpackhi_pi8 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector unsigned char a, b, c; ! a = (__vector unsigned char)vec_splats (__m1); ! b = (__vector unsigned char)vec_splats (__m2); ! c = vec_mergel (a, b); ! return (__m64) ((__vector long long) c)[1]; #else ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_char[0] = m1.as_char[4]; ! res.as_char[1] = m2.as_char[4]; ! res.as_char[2] = m1.as_char[5]; ! res.as_char[3] = m2.as_char[5]; ! res.as_char[4] = m1.as_char[6]; ! res.as_char[5] = m2.as_char[6]; ! res.as_char[6] = m1.as_char[7]; ! res.as_char[7] = m2.as_char[7]; ! return (__m64) res.as_m64; #endif } --- 248,275 ---- _mm_unpackhi_pi8 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector unsigned char __a, __b, __c; ! __a = (__vector unsigned char)vec_splats (__m1); ! __b = (__vector unsigned char)vec_splats (__m2); ! __c = vec_mergel (__a, __b); ! return (__m64) ((__vector long long) __c)[1]; #else ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_char[0] = __mu1.as_char[4]; ! __res.as_char[1] = __mu2.as_char[4]; ! __res.as_char[2] = __mu1.as_char[5]; ! __res.as_char[3] = __mu2.as_char[5]; ! __res.as_char[4] = __mu1.as_char[6]; ! __res.as_char[5] = __mu2.as_char[6]; ! __res.as_char[6] = __mu1.as_char[7]; ! __res.as_char[7] = __mu2.as_char[7]; ! return (__m64) __res.as_m64; #endif } *************** _m_punpckhbw (__m64 __m1, __m64 __m2) *** 284,300 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_unpackhi_pi16 (__m64 __m1, __m64 __m2) { ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_short[0] = m1.as_short[2]; ! res.as_short[1] = m2.as_short[2]; ! res.as_short[2] = m1.as_short[3]; ! res.as_short[3] = m2.as_short[3]; ! return (__m64) res.as_m64; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 284,300 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_unpackhi_pi16 (__m64 __m1, __m64 __m2) { ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_short[0] = __mu1.as_short[2]; ! __res.as_short[1] = __mu2.as_short[2]; ! __res.as_short[2] = __mu1.as_short[3]; ! __res.as_short[3] = __mu2.as_short[3]; ! return (__m64) __res.as_m64; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_punpckhwd (__m64 __m1, __m64 __m2) *** 307,321 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_unpackhi_pi32 (__m64 __m1, __m64 __m2) { ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_int[0] = m1.as_int[1]; ! res.as_int[1] = m2.as_int[1]; ! return (__m64) res.as_m64; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 307,321 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_unpackhi_pi32 (__m64 __m1, __m64 __m2) { ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_int[0] = __mu1.as_int[1]; ! __res.as_int[1] = __mu2.as_int[1]; ! return (__m64) __res.as_m64; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** extern __inline __m64 __attribute__((__g *** 329,356 **** _mm_unpacklo_pi8 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector unsigned char a, b, c; ! a = (__vector unsigned char)vec_splats (__m1); ! b = (__vector unsigned char)vec_splats (__m2); ! c = vec_mergel (a, b); ! return (__m64) ((__vector long long) c)[0]; #else ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_char[0] = m1.as_char[0]; ! res.as_char[1] = m2.as_char[0]; ! res.as_char[2] = m1.as_char[1]; ! res.as_char[3] = m2.as_char[1]; ! res.as_char[4] = m1.as_char[2]; ! res.as_char[5] = m2.as_char[2]; ! res.as_char[6] = m1.as_char[3]; ! res.as_char[7] = m2.as_char[3]; ! return (__m64) res.as_m64; #endif } --- 329,356 ---- _mm_unpacklo_pi8 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector unsigned char __a, __b, __c; ! __a = (__vector unsigned char)vec_splats (__m1); ! __b = (__vector unsigned char)vec_splats (__m2); ! __c = vec_mergel (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; #else ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_char[0] = __mu1.as_char[0]; ! __res.as_char[1] = __mu2.as_char[0]; ! __res.as_char[2] = __mu1.as_char[1]; ! __res.as_char[3] = __mu2.as_char[1]; ! __res.as_char[4] = __mu1.as_char[2]; ! __res.as_char[5] = __mu2.as_char[2]; ! __res.as_char[6] = __mu1.as_char[3]; ! __res.as_char[7] = __mu2.as_char[3]; ! return (__m64) __res.as_m64; #endif } *************** _m_punpcklbw (__m64 __m1, __m64 __m2) *** 364,380 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_unpacklo_pi16 (__m64 __m1, __m64 __m2) { ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_short[0] = m1.as_short[0]; ! res.as_short[1] = m2.as_short[0]; ! res.as_short[2] = m1.as_short[1]; ! res.as_short[3] = m2.as_short[1]; ! return (__m64) res.as_m64; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 364,380 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_unpacklo_pi16 (__m64 __m1, __m64 __m2) { ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_short[0] = __mu1.as_short[0]; ! __res.as_short[1] = __mu2.as_short[0]; ! __res.as_short[2] = __mu1.as_short[1]; ! __res.as_short[3] = __mu2.as_short[1]; ! return (__m64) __res.as_m64; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_punpcklwd (__m64 __m1, __m64 __m2) *** 388,402 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_unpacklo_pi32 (__m64 __m1, __m64 __m2) { ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_int[0] = m1.as_int[0]; ! res.as_int[1] = m2.as_int[0]; ! return (__m64) res.as_m64; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 388,402 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_unpacklo_pi32 (__m64 __m1, __m64 __m2) { ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_int[0] = __mu1.as_int[0]; ! __res.as_int[1] = __mu2.as_int[0]; ! return (__m64) __res.as_m64; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** extern __inline __m64 __attribute__((__g *** 410,437 **** _mm_add_pi8 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector signed char a, b, c; ! a = (__vector signed char)vec_splats (__m1); ! b = (__vector signed char)vec_splats (__m2); ! c = vec_add (a, b); ! return (__m64) ((__vector long long) c)[0]; #else ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_char[0] = m1.as_char[0] + m2.as_char[0]; ! res.as_char[1] = m1.as_char[1] + m2.as_char[1]; ! res.as_char[2] = m1.as_char[2] + m2.as_char[2]; ! res.as_char[3] = m1.as_char[3] + m2.as_char[3]; ! res.as_char[4] = m1.as_char[4] + m2.as_char[4]; ! res.as_char[5] = m1.as_char[5] + m2.as_char[5]; ! res.as_char[6] = m1.as_char[6] + m2.as_char[6]; ! res.as_char[7] = m1.as_char[7] + m2.as_char[7]; ! return (__m64) res.as_m64; #endif } --- 410,437 ---- _mm_add_pi8 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector signed char __a, __b, __c; ! __a = (__vector signed char)vec_splats (__m1); ! __b = (__vector signed char)vec_splats (__m2); ! __c = vec_add (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; #else ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_char[0] = __mu1.as_char[0] + __mu2.as_char[0]; ! __res.as_char[1] = __mu1.as_char[1] + __mu2.as_char[1]; ! __res.as_char[2] = __mu1.as_char[2] + __mu2.as_char[2]; ! __res.as_char[3] = __mu1.as_char[3] + __mu2.as_char[3]; ! __res.as_char[4] = __mu1.as_char[4] + __mu2.as_char[4]; ! __res.as_char[5] = __mu1.as_char[5] + __mu2.as_char[5]; ! __res.as_char[6] = __mu1.as_char[6] + __mu2.as_char[6]; ! __res.as_char[7] = __mu1.as_char[7] + __mu2.as_char[7]; ! return (__m64) __res.as_m64; #endif } *************** extern __inline __m64 __attribute__((__g *** 446,469 **** _mm_add_pi16 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector signed short a, b, c; ! a = (__vector signed short)vec_splats (__m1); ! b = (__vector signed short)vec_splats (__m2); ! c = vec_add (a, b); ! return (__m64) ((__vector long long) c)[0]; #else ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_short[0] = m1.as_short[0] + m2.as_short[0]; ! res.as_short[1] = m1.as_short[1] + m2.as_short[1]; ! res.as_short[2] = m1.as_short[2] + m2.as_short[2]; ! res.as_short[3] = m1.as_short[3] + m2.as_short[3]; ! return (__m64) res.as_m64; #endif } --- 446,469 ---- _mm_add_pi16 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector signed short __a, __b, __c; ! __a = (__vector signed short)vec_splats (__m1); ! __b = (__vector signed short)vec_splats (__m2); ! __c = vec_add (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; #else ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_short[0] = __mu1.as_short[0] + __mu2.as_short[0]; ! __res.as_short[1] = __mu1.as_short[1] + __mu2.as_short[1]; ! __res.as_short[2] = __mu1.as_short[2] + __mu2.as_short[2]; ! __res.as_short[3] = __mu1.as_short[3] + __mu2.as_short[3]; ! return (__m64) __res.as_m64; #endif } *************** extern __inline __m64 __attribute__((__g *** 478,499 **** _mm_add_pi32 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR9 ! __vector signed int a, b, c; ! a = (__vector signed int)vec_splats (__m1); ! b = (__vector signed int)vec_splats (__m2); ! c = vec_add (a, b); ! return (__m64) ((__vector long long) c)[0]; #else ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_int[0] = m1.as_int[0] + m2.as_int[0]; ! res.as_int[1] = m1.as_int[1] + m2.as_int[1]; ! return (__m64) res.as_m64; #endif } --- 478,499 ---- _mm_add_pi32 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR9 ! __vector signed int __a, __b, __c; ! __a = (__vector signed int)vec_splats (__m1); ! __b = (__vector signed int)vec_splats (__m2); ! __c = vec_add (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; #else ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_int[0] = __mu1.as_int[0] + __mu2.as_int[0]; ! __res.as_int[1] = __mu1.as_int[1] + __mu2.as_int[1]; ! return (__m64) __res.as_m64; #endif } *************** extern __inline __m64 __attribute__((__g *** 508,535 **** _mm_sub_pi8 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector signed char a, b, c; ! a = (__vector signed char)vec_splats (__m1); ! b = (__vector signed char)vec_splats (__m2); ! c = vec_sub (a, b); ! return (__m64) ((__vector long long) c)[0]; #else ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_char[0] = m1.as_char[0] - m2.as_char[0]; ! res.as_char[1] = m1.as_char[1] - m2.as_char[1]; ! res.as_char[2] = m1.as_char[2] - m2.as_char[2]; ! res.as_char[3] = m1.as_char[3] - m2.as_char[3]; ! res.as_char[4] = m1.as_char[4] - m2.as_char[4]; ! res.as_char[5] = m1.as_char[5] - m2.as_char[5]; ! res.as_char[6] = m1.as_char[6] - m2.as_char[6]; ! res.as_char[7] = m1.as_char[7] - m2.as_char[7]; ! return (__m64) res.as_m64; #endif } --- 508,535 ---- _mm_sub_pi8 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector signed char __a, __b, __c; ! __a = (__vector signed char)vec_splats (__m1); ! __b = (__vector signed char)vec_splats (__m2); ! __c = vec_sub (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; #else ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_char[0] = __mu1.as_char[0] - __mu2.as_char[0]; ! __res.as_char[1] = __mu1.as_char[1] - __mu2.as_char[1]; ! __res.as_char[2] = __mu1.as_char[2] - __mu2.as_char[2]; ! __res.as_char[3] = __mu1.as_char[3] - __mu2.as_char[3]; ! __res.as_char[4] = __mu1.as_char[4] - __mu2.as_char[4]; ! __res.as_char[5] = __mu1.as_char[5] - __mu2.as_char[5]; ! __res.as_char[6] = __mu1.as_char[6] - __mu2.as_char[6]; ! __res.as_char[7] = __mu1.as_char[7] - __mu2.as_char[7]; ! return (__m64) __res.as_m64; #endif } *************** extern __inline __m64 __attribute__((__g *** 544,567 **** _mm_sub_pi16 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector signed short a, b, c; ! a = (__vector signed short)vec_splats (__m1); ! b = (__vector signed short)vec_splats (__m2); ! c = vec_sub (a, b); ! return (__m64) ((__vector long long) c)[0]; #else ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_short[0] = m1.as_short[0] - m2.as_short[0]; ! res.as_short[1] = m1.as_short[1] - m2.as_short[1]; ! res.as_short[2] = m1.as_short[2] - m2.as_short[2]; ! res.as_short[3] = m1.as_short[3] - m2.as_short[3]; ! return (__m64) res.as_m64; #endif } --- 544,567 ---- _mm_sub_pi16 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector signed short __a, __b, __c; ! __a = (__vector signed short)vec_splats (__m1); ! __b = (__vector signed short)vec_splats (__m2); ! __c = vec_sub (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; #else ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_short[0] = __mu1.as_short[0] - __mu2.as_short[0]; ! __res.as_short[1] = __mu1.as_short[1] - __mu2.as_short[1]; ! __res.as_short[2] = __mu1.as_short[2] - __mu2.as_short[2]; ! __res.as_short[3] = __mu1.as_short[3] - __mu2.as_short[3]; ! return (__m64) __res.as_m64; #endif } *************** extern __inline __m64 __attribute__((__g *** 576,597 **** _mm_sub_pi32 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR9 ! __vector signed int a, b, c; ! a = (__vector signed int)vec_splats (__m1); ! b = (__vector signed int)vec_splats (__m2); ! c = vec_sub (a, b); ! return (__m64) ((__vector long long) c)[0]; #else ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_int[0] = m1.as_int[0] - m2.as_int[0]; ! res.as_int[1] = m1.as_int[1] - m2.as_int[1]; ! return (__m64) res.as_m64; #endif } --- 576,597 ---- _mm_sub_pi32 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR9 ! __vector signed int __a, __b, __c; ! __a = (__vector signed int)vec_splats (__m1); ! __b = (__vector signed int)vec_splats (__m2); ! __c = vec_sub (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; #else ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_int[0] = __mu1.as_int[0] - __mu2.as_int[0]; ! __res.as_int[1] = __mu1.as_int[1] - __mu2.as_int[1]; ! return (__m64) __res.as_m64; #endif } *************** extern __inline __m64 __attribute__((__g *** 729,758 **** _mm_cmpeq_pi8 (__m64 __m1, __m64 __m2) { #if defined(_ARCH_PWR6) && defined(__powerpc64__) ! __m64 res; __asm__( "cmpb %0,%1,%2;\n" ! : "=r" (res) : "r" (__m1), "r" (__m2) : ); ! return (res); #else ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_char[0] = (m1.as_char[0] == m2.as_char[0])? -1: 0; ! res.as_char[1] = (m1.as_char[1] == m2.as_char[1])? -1: 0; ! res.as_char[2] = (m1.as_char[2] == m2.as_char[2])? -1: 0; ! res.as_char[3] = (m1.as_char[3] == m2.as_char[3])? -1: 0; ! res.as_char[4] = (m1.as_char[4] == m2.as_char[4])? -1: 0; ! res.as_char[5] = (m1.as_char[5] == m2.as_char[5])? -1: 0; ! res.as_char[6] = (m1.as_char[6] == m2.as_char[6])? -1: 0; ! res.as_char[7] = (m1.as_char[7] == m2.as_char[7])? -1: 0; ! return (__m64) res.as_m64; #endif } --- 729,758 ---- _mm_cmpeq_pi8 (__m64 __m1, __m64 __m2) { #if defined(_ARCH_PWR6) && defined(__powerpc64__) ! __m64 __res; __asm__( "cmpb %0,%1,%2;\n" ! : "=r" (__res) : "r" (__m1), "r" (__m2) : ); ! return (__res); #else ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_char[0] = (__mu1.as_char[0] == __mu2.as_char[0])? -1: 0; ! __res.as_char[1] = (__mu1.as_char[1] == __mu2.as_char[1])? -1: 0; ! __res.as_char[2] = (__mu1.as_char[2] == __mu2.as_char[2])? -1: 0; ! __res.as_char[3] = (__mu1.as_char[3] == __mu2.as_char[3])? -1: 0; ! __res.as_char[4] = (__mu1.as_char[4] == __mu2.as_char[4])? -1: 0; ! __res.as_char[5] = (__mu1.as_char[5] == __mu2.as_char[5])? -1: 0; ! __res.as_char[6] = (__mu1.as_char[6] == __mu2.as_char[6])? -1: 0; ! __res.as_char[7] = (__mu1.as_char[7] == __mu2.as_char[7])? -1: 0; ! return (__m64) __res.as_m64; #endif } *************** extern __inline __m64 __attribute__((__g *** 766,793 **** _mm_cmpgt_pi8 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector signed char a, b, c; ! a = (__vector signed char)vec_splats (__m1); ! b = (__vector signed char)vec_splats (__m2); ! c = (__vector signed char)vec_cmpgt (a, b); ! return (__m64) ((__vector long long) c)[0]; #else ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_char[0] = (m1.as_char[0] > m2.as_char[0])? -1: 0; ! res.as_char[1] = (m1.as_char[1] > m2.as_char[1])? -1: 0; ! res.as_char[2] = (m1.as_char[2] > m2.as_char[2])? -1: 0; ! res.as_char[3] = (m1.as_char[3] > m2.as_char[3])? -1: 0; ! res.as_char[4] = (m1.as_char[4] > m2.as_char[4])? -1: 0; ! res.as_char[5] = (m1.as_char[5] > m2.as_char[5])? -1: 0; ! res.as_char[6] = (m1.as_char[6] > m2.as_char[6])? -1: 0; ! res.as_char[7] = (m1.as_char[7] > m2.as_char[7])? -1: 0; ! return (__m64) res.as_m64; #endif } --- 766,793 ---- _mm_cmpgt_pi8 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector signed char __a, __b, __c; ! __a = (__vector signed char)vec_splats (__m1); ! __b = (__vector signed char)vec_splats (__m2); ! __c = (__vector signed char)vec_cmpgt (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; #else ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_char[0] = (__mu1.as_char[0] > __mu2.as_char[0])? -1: 0; ! __res.as_char[1] = (__mu1.as_char[1] > __mu2.as_char[1])? -1: 0; ! __res.as_char[2] = (__mu1.as_char[2] > __mu2.as_char[2])? -1: 0; ! __res.as_char[3] = (__mu1.as_char[3] > __mu2.as_char[3])? -1: 0; ! __res.as_char[4] = (__mu1.as_char[4] > __mu2.as_char[4])? -1: 0; ! __res.as_char[5] = (__mu1.as_char[5] > __mu2.as_char[5])? -1: 0; ! __res.as_char[6] = (__mu1.as_char[6] > __mu2.as_char[6])? -1: 0; ! __res.as_char[7] = (__mu1.as_char[7] > __mu2.as_char[7])? -1: 0; ! return (__m64) __res.as_m64; #endif } *************** extern __inline __m64 __attribute__((__g *** 803,826 **** _mm_cmpeq_pi16 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector signed short a, b, c; ! a = (__vector signed short)vec_splats (__m1); ! b = (__vector signed short)vec_splats (__m2); ! c = (__vector signed short)vec_cmpeq (a, b); ! return (__m64) ((__vector long long) c)[0]; #else ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_short[0] = (m1.as_short[0] == m2.as_short[0])? -1: 0; ! res.as_short[1] = (m1.as_short[1] == m2.as_short[1])? -1: 0; ! res.as_short[2] = (m1.as_short[2] == m2.as_short[2])? -1: 0; ! res.as_short[3] = (m1.as_short[3] == m2.as_short[3])? -1: 0; ! return (__m64) res.as_m64; #endif } --- 803,826 ---- _mm_cmpeq_pi16 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector signed short __a, __b, __c; ! __a = (__vector signed short)vec_splats (__m1); ! __b = (__vector signed short)vec_splats (__m2); ! __c = (__vector signed short)vec_cmpeq (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; #else ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_short[0] = (__mu1.as_short[0] == __mu2.as_short[0])? -1: 0; ! __res.as_short[1] = (__mu1.as_short[1] == __mu2.as_short[1])? -1: 0; ! __res.as_short[2] = (__mu1.as_short[2] == __mu2.as_short[2])? -1: 0; ! __res.as_short[3] = (__mu1.as_short[3] == __mu2.as_short[3])? -1: 0; ! return (__m64) __res.as_m64; #endif } *************** extern __inline __m64 __attribute__((__g *** 834,857 **** _mm_cmpgt_pi16 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector signed short a, b, c; ! a = (__vector signed short)vec_splats (__m1); ! b = (__vector signed short)vec_splats (__m2); ! c = (__vector signed short)vec_cmpgt (a, b); ! return (__m64) ((__vector long long) c)[0]; #else ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_short[0] = (m1.as_short[0] > m2.as_short[0])? -1: 0; ! res.as_short[1] = (m1.as_short[1] > m2.as_short[1])? -1: 0; ! res.as_short[2] = (m1.as_short[2] > m2.as_short[2])? -1: 0; ! res.as_short[3] = (m1.as_short[3] > m2.as_short[3])? -1: 0; ! return (__m64) res.as_m64; #endif } --- 834,857 ---- _mm_cmpgt_pi16 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR8 ! __vector signed short __a, __b, __c; ! __a = (__vector signed short)vec_splats (__m1); ! __b = (__vector signed short)vec_splats (__m2); ! __c = (__vector signed short)vec_cmpgt (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; #else ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_short[0] = (__mu1.as_short[0] > __mu2.as_short[0])? -1: 0; ! __res.as_short[1] = (__mu1.as_short[1] > __mu2.as_short[1])? -1: 0; ! __res.as_short[2] = (__mu1.as_short[2] > __mu2.as_short[2])? -1: 0; ! __res.as_short[3] = (__mu1.as_short[3] > __mu2.as_short[3])? -1: 0; ! return (__m64) __res.as_m64; #endif } *************** extern __inline __m64 __attribute__((__g *** 867,888 **** _mm_cmpeq_pi32 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR9 ! __vector signed int a, b, c; ! a = (__vector signed int)vec_splats (__m1); ! b = (__vector signed int)vec_splats (__m2); ! c = (__vector signed int)vec_cmpeq (a, b); ! return (__m64) ((__vector long long) c)[0]; #else ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_int[0] = (m1.as_int[0] == m2.as_int[0])? -1: 0; ! res.as_int[1] = (m1.as_int[1] == m2.as_int[1])? -1: 0; ! return (__m64) res.as_m64; #endif } --- 867,888 ---- _mm_cmpeq_pi32 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR9 ! __vector signed int __a, __b, __c; ! __a = (__vector signed int)vec_splats (__m1); ! __b = (__vector signed int)vec_splats (__m2); ! __c = (__vector signed int)vec_cmpeq (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; #else ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_int[0] = (__mu1.as_int[0] == __mu2.as_int[0])? -1: 0; ! __res.as_int[1] = (__mu1.as_int[1] == __mu2.as_int[1])? -1: 0; ! return (__m64) __res.as_m64; #endif } *************** extern __inline __m64 __attribute__((__g *** 896,917 **** _mm_cmpgt_pi32 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR9 ! __vector signed int a, b, c; ! a = (__vector signed int)vec_splats (__m1); ! b = (__vector signed int)vec_splats (__m2); ! c = (__vector signed int)vec_cmpgt (a, b); ! return (__m64) ((__vector long long) c)[0]; #else ! __m64_union m1, m2, res; ! m1.as_m64 = __m1; ! m2.as_m64 = __m2; ! res.as_int[0] = (m1.as_int[0] > m2.as_int[0])? -1: 0; ! res.as_int[1] = (m1.as_int[1] > m2.as_int[1])? -1: 0; ! return (__m64) res.as_m64; #endif } --- 896,917 ---- _mm_cmpgt_pi32 (__m64 __m1, __m64 __m2) { #if _ARCH_PWR9 ! __vector signed int __a, __b, __c; ! __a = (__vector signed int)vec_splats (__m1); ! __b = (__vector signed int)vec_splats (__m2); ! __c = (__vector signed int)vec_cmpgt (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; #else ! __m64_union __mu1, __mu2, __res; ! __mu1.as_m64 = __m1; ! __mu2.as_m64 = __m2; ! __res.as_int[0] = (__mu1.as_int[0] > __mu2.as_int[0])? -1: 0; ! __res.as_int[1] = (__mu1.as_int[1] > __mu2.as_int[1])? -1: 0; ! return (__m64) __res.as_m64; #endif } *************** _m_pcmpgtd (__m64 __m1, __m64 __m2) *** 927,938 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_adds_pi8 (__m64 __m1, __m64 __m2) { ! __vector signed char a, b, c; ! a = (__vector signed char)vec_splats (__m1); ! b = (__vector signed char)vec_splats (__m2); ! c = vec_adds (a, b); ! return (__m64) ((__vector long long) c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 927,938 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_adds_pi8 (__m64 __m1, __m64 __m2) { ! __vector signed char __a, __b, __c; ! __a = (__vector signed char)vec_splats (__m1); ! __b = (__vector signed char)vec_splats (__m2); ! __c = vec_adds (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_paddsb (__m64 __m1, __m64 __m2) *** 945,956 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_adds_pi16 (__m64 __m1, __m64 __m2) { ! __vector signed short a, b, c; ! a = (__vector signed short)vec_splats (__m1); ! b = (__vector signed short)vec_splats (__m2); ! c = vec_adds (a, b); ! return (__m64) ((__vector long long) c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 945,956 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_adds_pi16 (__m64 __m1, __m64 __m2) { ! __vector signed short __a, __b, __c; ! __a = (__vector signed short)vec_splats (__m1); ! __b = (__vector signed short)vec_splats (__m2); ! __c = vec_adds (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_paddsw (__m64 __m1, __m64 __m2) *** 963,974 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_adds_pu8 (__m64 __m1, __m64 __m2) { ! __vector unsigned char a, b, c; ! a = (__vector unsigned char)vec_splats (__m1); ! b = (__vector unsigned char)vec_splats (__m2); ! c = vec_adds (a, b); ! return (__m64) ((__vector long long) c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 963,974 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_adds_pu8 (__m64 __m1, __m64 __m2) { ! __vector unsigned char __a, __b, __c; ! __a = (__vector unsigned char)vec_splats (__m1); ! __b = (__vector unsigned char)vec_splats (__m2); ! __c = vec_adds (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_paddusb (__m64 __m1, __m64 __m2) *** 982,993 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_adds_pu16 (__m64 __m1, __m64 __m2) { ! __vector unsigned short a, b, c; ! a = (__vector unsigned short)vec_splats (__m1); ! b = (__vector unsigned short)vec_splats (__m2); ! c = vec_adds (a, b); ! return (__m64) ((__vector long long) c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 982,993 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_adds_pu16 (__m64 __m1, __m64 __m2) { ! __vector unsigned short __a, __b, __c; ! __a = (__vector unsigned short)vec_splats (__m1); ! __b = (__vector unsigned short)vec_splats (__m2); ! __c = vec_adds (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_paddusw (__m64 __m1, __m64 __m2) *** 1001,1012 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_subs_pi8 (__m64 __m1, __m64 __m2) { ! __vector signed char a, b, c; ! a = (__vector signed char)vec_splats (__m1); ! b = (__vector signed char)vec_splats (__m2); ! c = vec_subs (a, b); ! return (__m64) ((__vector long long) c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1001,1012 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_subs_pi8 (__m64 __m1, __m64 __m2) { ! __vector signed char __a, __b, __c; ! __a = (__vector signed char)vec_splats (__m1); ! __b = (__vector signed char)vec_splats (__m2); ! __c = vec_subs (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_psubsb (__m64 __m1, __m64 __m2) *** 1020,1031 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_subs_pi16 (__m64 __m1, __m64 __m2) { ! __vector signed short a, b, c; ! a = (__vector signed short)vec_splats (__m1); ! b = (__vector signed short)vec_splats (__m2); ! c = vec_subs (a, b); ! return (__m64) ((__vector long long) c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1020,1031 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_subs_pi16 (__m64 __m1, __m64 __m2) { ! __vector signed short __a, __b, __c; ! __a = (__vector signed short)vec_splats (__m1); ! __b = (__vector signed short)vec_splats (__m2); ! __c = vec_subs (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_psubsw (__m64 __m1, __m64 __m2) *** 1039,1050 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_subs_pu8 (__m64 __m1, __m64 __m2) { ! __vector unsigned char a, b, c; ! a = (__vector unsigned char)vec_splats (__m1); ! b = (__vector unsigned char)vec_splats (__m2); ! c = vec_subs (a, b); ! return (__m64) ((__vector long long) c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1039,1050 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_subs_pu8 (__m64 __m1, __m64 __m2) { ! __vector unsigned char __a, __b, __c; ! __a = (__vector unsigned char)vec_splats (__m1); ! __b = (__vector unsigned char)vec_splats (__m2); ! __c = vec_subs (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_psubusb (__m64 __m1, __m64 __m2) *** 1058,1069 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_subs_pu16 (__m64 __m1, __m64 __m2) { ! __vector unsigned short a, b, c; ! a = (__vector unsigned short)vec_splats (__m1); ! b = (__vector unsigned short)vec_splats (__m2); ! c = vec_subs (a, b); ! return (__m64) ((__vector long long) c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1058,1069 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_subs_pu16 (__m64 __m1, __m64 __m2) { ! __vector unsigned short __a, __b, __c; ! __a = (__vector unsigned short)vec_splats (__m1); ! __b = (__vector unsigned short)vec_splats (__m2); ! __c = vec_subs (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_psubusw (__m64 __m1, __m64 __m2) *** 1078,1091 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_madd_pi16 (__m64 __m1, __m64 __m2) { ! __vector signed short a, b; ! __vector signed int c; ! __vector signed int zero = {0, 0, 0, 0}; ! a = (__vector signed short)vec_splats (__m1); ! b = (__vector signed short)vec_splats (__m2); ! c = vec_vmsumshm (a, b, zero); ! return (__m64) ((__vector long long) c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1078,1091 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_madd_pi16 (__m64 __m1, __m64 __m2) { ! __vector signed short __a, __b; ! __vector signed int __c; ! __vector signed int __zero = {0, 0, 0, 0}; ! __a = (__vector signed short)vec_splats (__m1); ! __b = (__vector signed short)vec_splats (__m2); ! __c = vec_vmsumshm (__a, __b, __zero); ! return (__m64) ((__vector long long) __c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_pmaddwd (__m64 __m1, __m64 __m2) *** 1098,1107 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_mulhi_pi16 (__m64 __m1, __m64 __m2) { ! __vector signed short a, b; ! __vector signed short c; ! __vector signed int w0, w1; ! __vector unsigned char xform1 = { #ifdef __LITTLE_ENDIAN__ 0x02, 0x03, 0x12, 0x13, 0x06, 0x07, 0x16, 0x17, 0x0A, 0x0B, 0x1A, 0x1B, 0x0E, 0x0F, 0x1E, 0x1F --- 1098,1107 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_mulhi_pi16 (__m64 __m1, __m64 __m2) { ! __vector signed short __a, __b; ! __vector signed short __c; ! __vector signed int __w0, __w1; ! __vector unsigned char __xform1 = { #ifdef __LITTLE_ENDIAN__ 0x02, 0x03, 0x12, 0x13, 0x06, 0x07, 0x16, 0x17, 0x0A, 0x0B, 0x1A, 0x1B, 0x0E, 0x0F, 0x1E, 0x1F *************** _mm_mulhi_pi16 (__m64 __m1, __m64 __m2) *** 1111,1124 **** #endif }; ! a = (__vector signed short)vec_splats (__m1); ! b = (__vector signed short)vec_splats (__m2); ! w0 = vec_vmulesh (a, b); ! w1 = vec_vmulosh (a, b); ! c = (__vector signed short)vec_perm (w0, w1, xform1); ! return (__m64) ((__vector long long) c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1111,1124 ---- #endif }; ! __a = (__vector signed short)vec_splats (__m1); ! __b = (__vector signed short)vec_splats (__m2); ! __w0 = vec_vmulesh (__a, __b); ! __w1 = vec_vmulosh (__a, __b); ! __c = (__vector signed short)vec_perm (__w0, __w1, __xform1); ! return (__m64) ((__vector long long) __c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_pmulhw (__m64 __m1, __m64 __m2) *** 1132,1143 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_mullo_pi16 (__m64 __m1, __m64 __m2) { ! __vector signed short a, b, c; ! a = (__vector signed short)vec_splats (__m1); ! b = (__vector signed short)vec_splats (__m2); ! c = a * b; ! return (__m64) ((__vector long long) c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1132,1143 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_mullo_pi16 (__m64 __m1, __m64 __m2) { ! __vector signed short __a, __b, __c; ! __a = (__vector signed short)vec_splats (__m1); ! __b = (__vector signed short)vec_splats (__m2); ! __c = __a * __b; ! return (__m64) ((__vector long long) __c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_pmullw (__m64 __m1, __m64 __m2) *** 1150,1164 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sll_pi16 (__m64 __m, __m64 __count) { ! __vector signed short m, r; ! __vector unsigned short c; if (__count <= 15) { ! m = (__vector signed short)vec_splats (__m); ! c = (__vector unsigned short)vec_splats ((unsigned short)__count); ! r = vec_sl (m, (__vector unsigned short)c); ! return (__m64) ((__vector long long) r)[0]; } else return (0); --- 1150,1164 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sll_pi16 (__m64 __m, __m64 __count) { ! __vector signed short __r; ! __vector unsigned short __c; if (__count <= 15) { ! __r = (__vector signed short)vec_splats (__m); ! __c = (__vector unsigned short)vec_splats ((unsigned short)__count); ! __r = vec_sl (__r, (__vector unsigned short)__c); ! return (__m64) ((__vector long long) __r)[0]; } else return (0); *************** _m_psllwi (__m64 __m, int __count) *** 1187,1199 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sll_pi32 (__m64 __m, __m64 __count) { ! __m64_union m, res; ! m.as_m64 = __m; ! res.as_int[0] = m.as_int[0] << __count; ! res.as_int[1] = m.as_int[1] << __count; ! return (res.as_m64); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1187,1199 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sll_pi32 (__m64 __m, __m64 __count) { ! __m64_union __res; ! __res.as_m64 = __m; ! __res.as_int[0] = __res.as_int[0] << __count; ! __res.as_int[1] = __res.as_int[1] << __count; ! return (__res.as_m64); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_pslldi (__m64 __m, int __count) *** 1219,1233 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sra_pi16 (__m64 __m, __m64 __count) { ! __vector signed short m, r; ! __vector unsigned short c; if (__count <= 15) { ! m = (__vector signed short)vec_splats (__m); ! c = (__vector unsigned short)vec_splats ((unsigned short)__count); ! r = vec_sra (m, (__vector unsigned short)c); ! return (__m64) ((__vector long long) r)[0]; } else return (0); --- 1219,1233 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sra_pi16 (__m64 __m, __m64 __count) { ! __vector signed short __r; ! __vector unsigned short __c; if (__count <= 15) { ! __r = (__vector signed short)vec_splats (__m); ! __c = (__vector unsigned short)vec_splats ((unsigned short)__count); ! __r = vec_sra (__r, (__vector unsigned short)__c); ! return (__m64) ((__vector long long) __r)[0]; } else return (0); *************** _m_psrawi (__m64 __m, int __count) *** 1256,1268 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sra_pi32 (__m64 __m, __m64 __count) { ! __m64_union m, res; ! m.as_m64 = __m; ! res.as_int[0] = m.as_int[0] >> __count; ! res.as_int[1] = m.as_int[1] >> __count; ! return (res.as_m64); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1256,1268 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sra_pi32 (__m64 __m, __m64 __count) { ! __m64_union __res; ! __res.as_m64 = __m; ! __res.as_int[0] = __res.as_int[0] >> __count; ! __res.as_int[1] = __res.as_int[1] >> __count; ! return (__res.as_m64); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_psradi (__m64 __m, int __count) *** 1288,1302 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srl_pi16 (__m64 __m, __m64 __count) { ! __vector unsigned short m, r; ! __vector unsigned short c; if (__count <= 15) { ! m = (__vector unsigned short)vec_splats (__m); ! c = (__vector unsigned short)vec_splats ((unsigned short)__count); ! r = vec_sr (m, (__vector unsigned short)c); ! return (__m64) ((__vector long long) r)[0]; } else return (0); --- 1288,1302 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srl_pi16 (__m64 __m, __m64 __count) { ! __vector unsigned short __r; ! __vector unsigned short __c; if (__count <= 15) { ! __r = (__vector unsigned short)vec_splats (__m); ! __c = (__vector unsigned short)vec_splats ((unsigned short)__count); ! __r = vec_sr (__r, (__vector unsigned short)__c); ! return (__m64) ((__vector long long) __r)[0]; } else return (0); *************** _m_psrlwi (__m64 __m, int __count) *** 1325,1337 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srl_pi32 (__m64 __m, __m64 __count) { ! __m64_union m, res; ! m.as_m64 = __m; ! res.as_int[0] = (unsigned int)m.as_int[0] >> __count; ! res.as_int[1] = (unsigned int)m.as_int[1] >> __count; ! return (res.as_m64); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1325,1337 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_srl_pi32 (__m64 __m, __m64 __count) { ! __m64_union __res; ! __res.as_m64 = __m; ! __res.as_int[0] = (unsigned int)__res.as_int[0] >> __count; ! __res.as_int[1] = (unsigned int)__res.as_int[1] >> __count; ! return (__res.as_m64); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_psrldi (__m64 __m, int __count) *** 1358,1381 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_set_pi32 (int __i1, int __i0) { ! __m64_union res; ! res.as_int[0] = __i0; ! res.as_int[1] = __i1; ! return (res.as_m64); } /* Creates a vector of four 16-bit values; W0 is least significant. */ extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_set_pi16 (short __w3, short __w2, short __w1, short __w0) { ! __m64_union res; ! res.as_short[0] = __w0; ! res.as_short[1] = __w1; ! res.as_short[2] = __w2; ! res.as_short[3] = __w3; ! return (res.as_m64); } /* Creates a vector of eight 8-bit values; B0 is least significant. */ --- 1358,1381 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_set_pi32 (int __i1, int __i0) { ! __m64_union __res; ! __res.as_int[0] = __i0; ! __res.as_int[1] = __i1; ! return (__res.as_m64); } /* Creates a vector of four 16-bit values; W0 is least significant. */ extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_set_pi16 (short __w3, short __w2, short __w1, short __w0) { ! __m64_union __res; ! __res.as_short[0] = __w0; ! __res.as_short[1] = __w1; ! __res.as_short[2] = __w2; ! __res.as_short[3] = __w3; ! return (__res.as_m64); } /* Creates a vector of eight 8-bit values; B0 is least significant. */ *************** extern __inline __m64 __attribute__((__g *** 1383,1410 **** _mm_set_pi8 (char __b7, char __b6, char __b5, char __b4, char __b3, char __b2, char __b1, char __b0) { ! __m64_union res; ! res.as_char[0] = __b0; ! res.as_char[1] = __b1; ! res.as_char[2] = __b2; ! res.as_char[3] = __b3; ! res.as_char[4] = __b4; ! res.as_char[5] = __b5; ! res.as_char[6] = __b6; ! res.as_char[7] = __b7; ! return (res.as_m64); } /* Similar, but with the arguments in reverse order. */ extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_setr_pi32 (int __i0, int __i1) { ! __m64_union res; ! res.as_int[0] = __i0; ! res.as_int[1] = __i1; ! return (res.as_m64); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1383,1410 ---- _mm_set_pi8 (char __b7, char __b6, char __b5, char __b4, char __b3, char __b2, char __b1, char __b0) { ! __m64_union __res; ! __res.as_char[0] = __b0; ! __res.as_char[1] = __b1; ! __res.as_char[2] = __b2; ! __res.as_char[3] = __b3; ! __res.as_char[4] = __b4; ! __res.as_char[5] = __b5; ! __res.as_char[6] = __b6; ! __res.as_char[7] = __b7; ! return (__res.as_m64); } /* Similar, but with the arguments in reverse order. */ extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_setr_pi32 (int __i0, int __i1) { ! __m64_union __res; ! __res.as_int[0] = __i0; ! __res.as_int[1] = __i1; ! return (__res.as_m64); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _mm_setr_pi8 (char __b0, char __b1, char *** 1424,1434 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_set1_pi32 (int __i) { ! __m64_union res; ! res.as_int[0] = __i; ! res.as_int[1] = __i; ! return (res.as_m64); } /* Creates a vector of four 16-bit values, all elements containing W. */ --- 1424,1434 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_set1_pi32 (int __i) { ! __m64_union __res; ! __res.as_int[0] = __i; ! __res.as_int[1] = __i; ! return (__res.as_m64); } /* Creates a vector of four 16-bit values, all elements containing W. */ *************** _mm_set1_pi16 (short __w) *** 1441,1453 **** w = (__vector signed short)vec_splats (__w); return (__m64) ((__vector long long) w)[0]; #else ! __m64_union res; ! res.as_short[0] = __w; ! res.as_short[1] = __w; ! res.as_short[2] = __w; ! res.as_short[3] = __w; ! return (res.as_m64); #endif } --- 1441,1453 ---- w = (__vector signed short)vec_splats (__w); return (__m64) ((__vector long long) w)[0]; #else ! __m64_union __res; ! __res.as_short[0] = __w; ! __res.as_short[1] = __w; ! __res.as_short[2] = __w; ! __res.as_short[3] = __w; ! return (__res.as_m64); #endif } *************** extern __inline __m64 __attribute__((__g *** 1456,1477 **** _mm_set1_pi8 (signed char __b) { #if _ARCH_PWR8 ! __vector signed char b; ! b = (__vector signed char)vec_splats (__b); ! return (__m64) ((__vector long long) b)[0]; #else ! __m64_union res; ! res.as_char[0] = __b; ! res.as_char[1] = __b; ! res.as_char[2] = __b; ! res.as_char[3] = __b; ! res.as_char[4] = __b; ! res.as_char[5] = __b; ! res.as_char[6] = __b; ! res.as_char[7] = __b; ! return (res.as_m64); #endif } #endif /* _MMINTRIN_H_INCLUDED */ --- 1456,1477 ---- _mm_set1_pi8 (signed char __b) { #if _ARCH_PWR8 ! __vector signed char __res; ! __res = (__vector signed char)vec_splats (__b); ! return (__m64) ((__vector long long) __res)[0]; #else ! __m64_union __res; ! __res.as_char[0] = __b; ! __res.as_char[1] = __b; ! __res.as_char[2] = __b; ! __res.as_char[3] = __b; ! __res.as_char[4] = __b; ! __res.as_char[5] = __b; ! __res.as_char[6] = __b; ! __res.as_char[7] = __b; ! return (__res.as_m64); #endif } #endif /* _MMINTRIN_H_INCLUDED */ diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/pmmintrin.h gcc-11.4.0/gcc/config/rs6000/pmmintrin.h *** gcc-11.3.0/gcc/config/rs6000/pmmintrin.h Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/rs6000/pmmintrin.h Mon May 29 08:46:29 2023 *************** *** 58,112 **** extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_addsub_ps (__m128 __X, __m128 __Y) { ! const __v4sf even_n0 = {-0.0, 0.0, -0.0, 0.0}; ! __v4sf even_neg_Y = vec_xor(__Y, even_n0); ! return (__m128) vec_add (__X, even_neg_Y); } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_addsub_pd (__m128d __X, __m128d __Y) { ! const __v2df even_n0 = {-0.0, 0.0}; ! __v2df even_neg_Y = vec_xor(__Y, even_n0); ! return (__m128d) vec_add (__X, even_neg_Y); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_hadd_ps (__m128 __X, __m128 __Y) { ! __vector unsigned char xform2 = { 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B, 0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B }; ! __vector unsigned char xform1 = { 0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F, 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F }; ! return (__m128) vec_add (vec_perm ((__v4sf) __X, (__v4sf) __Y, xform2), ! vec_perm ((__v4sf) __X, (__v4sf) __Y, xform1)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_hsub_ps (__m128 __X, __m128 __Y) { ! __vector unsigned char xform2 = { 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B, 0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B }; ! __vector unsigned char xform1 = { 0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F, 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F }; ! return (__m128) vec_sub (vec_perm ((__v4sf) __X, (__v4sf) __Y, xform2), ! vec_perm ((__v4sf) __X, (__v4sf) __Y, xform1)); } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 58,112 ---- extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_addsub_ps (__m128 __X, __m128 __Y) { ! const __v4sf __even_n0 = {-0.0, 0.0, -0.0, 0.0}; ! __v4sf __even_neg_Y = vec_xor(__Y, __even_n0); ! return (__m128) vec_add (__X, __even_neg_Y); } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_addsub_pd (__m128d __X, __m128d __Y) { ! const __v2df __even_n0 = {-0.0, 0.0}; ! __v2df __even_neg_Y = vec_xor(__Y, __even_n0); ! return (__m128d) vec_add (__X, __even_neg_Y); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_hadd_ps (__m128 __X, __m128 __Y) { ! __vector unsigned char __xform2 = { 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B, 0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B }; ! __vector unsigned char __xform1 = { 0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F, 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F }; ! return (__m128) vec_add (vec_perm ((__v4sf) __X, (__v4sf) __Y, __xform2), ! vec_perm ((__v4sf) __X, (__v4sf) __Y, __xform1)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_hsub_ps (__m128 __X, __m128 __Y) { ! __vector unsigned char __xform2 = { 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B, 0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B }; ! __vector unsigned char __xform1 = { 0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F, 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F }; ! return (__m128) vec_sub (vec_perm ((__v4sf) __X, (__v4sf) __Y, __xform2), ! vec_perm ((__v4sf) __X, (__v4sf) __Y, __xform1)); } extern __inline __m128d __attribute__((__gnu_inline__, __always_inline__, __artificial__)) diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/rs6000-builtin.def gcc-11.4.0/gcc/config/rs6000/rs6000-builtin.def *** gcc-11.3.0/gcc/config/rs6000/rs6000-builtin.def Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/rs6000/rs6000-builtin.def Mon May 29 08:46:29 2023 *************** BU_P9V_AV_1 (VCTZB, "vctzb", CONST, c *** 2881,2889 **** BU_P9V_AV_1 (VCTZH, "vctzh", CONST, ctzv8hi2) BU_P9V_AV_1 (VCTZW, "vctzw", CONST, ctzv4si2) BU_P9V_AV_1 (VCTZD, "vctzd", CONST, ctzv2di2) ! BU_P9V_AV_1 (VPRTYBD, "vprtybd", CONST, parityv2di2) ! BU_P9V_AV_1 (VPRTYBQ, "vprtybq", CONST, parityv1ti2) ! BU_P9V_AV_1 (VPRTYBW, "vprtybw", CONST, parityv4si2) /* ISA 3.0 vector overloaded 1 argument functions. */ BU_P9V_OVERLOAD_1 (VCTZ, "vctz") --- 2881,2889 ---- BU_P9V_AV_1 (VCTZH, "vctzh", CONST, ctzv8hi2) BU_P9V_AV_1 (VCTZW, "vctzw", CONST, ctzv4si2) BU_P9V_AV_1 (VCTZD, "vctzd", CONST, ctzv2di2) ! BU_P9V_AV_1 (VPRTYBD, "vprtybd", CONST, rs6000_vprtybv2di2) ! BU_P9V_AV_1 (VPRTYBQ, "vprtybq", CONST, rs6000_vprtybv1ti2) ! BU_P9V_AV_1 (VPRTYBW, "vprtybw", CONST, rs6000_vprtybv4si2) /* ISA 3.0 vector overloaded 1 argument functions. */ BU_P9V_OVERLOAD_1 (VCTZ, "vctz") *************** BU_P9_OVERLOAD_2 (CMPRB2, "byte_in_eithe *** 2910,2920 **** BU_P9_OVERLOAD_2 (CMPEQB, "byte_in_set") ! BU_P9V_AV_1 (VSIGNEXTSB2W, "vsignextsb2w", CONST, vsignextend_qi_v4si) ! BU_P9V_AV_1 (VSIGNEXTSH2W, "vsignextsh2w", CONST, vsignextend_hi_v4si) ! BU_P9V_AV_1 (VSIGNEXTSB2D, "vsignextsb2d", CONST, vsignextend_qi_v2di) ! BU_P9V_AV_1 (VSIGNEXTSH2D, "vsignextsh2d", CONST, vsignextend_hi_v2di) ! BU_P9V_AV_1 (VSIGNEXTSW2D, "vsignextsw2d", CONST, vsignextend_si_v2di) /* Builtins for scalar instructions added in ISA 3.1 (power10). */ BU_P10V_AV_P (VCMPEQUT_P, "vcmpequt_p", CONST, vector_eq_v1ti_p) --- 2910,2920 ---- BU_P9_OVERLOAD_2 (CMPEQB, "byte_in_set") ! BU_P9V_AV_1 (VSIGNEXTSB2W, "vsignextsb2w", CONST, vsx_sign_extend_v16qi_v4si) ! BU_P9V_AV_1 (VSIGNEXTSH2W, "vsignextsh2w", CONST, vsx_sign_extend_v8hi_v4si) ! BU_P9V_AV_1 (VSIGNEXTSB2D, "vsignextsb2d", CONST, vsx_sign_extend_v16qi_v2di) ! BU_P9V_AV_1 (VSIGNEXTSH2D, "vsignextsh2d", CONST, vsx_sign_extend_v8hi_v2di) ! BU_P9V_AV_1 (VSIGNEXTSW2D, "vsignextsw2d", CONST, vsx_sign_extend_v4si_v2di) /* Builtins for scalar instructions added in ISA 3.1 (power10). */ BU_P10V_AV_P (VCMPEQUT_P, "vcmpequt_p", CONST, vector_eq_v1ti_p) *************** BU_P10V_AV_2 (VNOR_V1TI, "vnor_v1ti", CO *** 2954,2960 **** BU_P10V_AV_2 (VCMPNET_P, "vcmpnet_p", CONST, vector_ne_v1ti_p) BU_P10V_AV_2 (VCMPAET_P, "vcmpaet_p", CONST, vector_ae_v1ti_p) ! BU_P10V_AV_1 (VSIGNEXTSD2Q, "vsignext", CONST, vsignextend_v2di_v1ti) BU_P10V_AV_2 (VMULEUD, "vmuleud", CONST, vec_widen_umult_even_v2di) BU_P10V_AV_2 (VMULESD, "vmulesd", CONST, vec_widen_smult_even_v2di) --- 2954,2960 ---- BU_P10V_AV_2 (VCMPNET_P, "vcmpnet_p", CONST, vector_ne_v1ti_p) BU_P10V_AV_2 (VCMPAET_P, "vcmpaet_p", CONST, vector_ae_v1ti_p) ! BU_P10V_AV_1 (VSIGNEXTSD2Q, "vsignext", CONST, vsx_sign_extend_v2di_v1ti) BU_P10V_AV_2 (VMULEUD, "vmuleud", CONST, vec_widen_umult_even_v2di) BU_P10V_AV_2 (VMULESD, "vmulesd", CONST, vec_widen_smult_even_v2di) diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/rs6000-call.c gcc-11.4.0/gcc/config/rs6000/rs6000-call.c *** gcc-11.3.0/gcc/config/rs6000/rs6000-call.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/rs6000/rs6000-call.c Mon May 29 08:46:29 2023 *************** rs6000_function_arg_advance_1 (CUMULATIV *** 7190,7195 **** --- 7190,7201 ---- { cum->vregno += n_elts; + /* If we are not splitting Complex IEEE128 args then account for the + fact that they are passed in 2 VSX regs. */ + if (!targetm.calls.split_complex_arg && type + && TREE_CODE (type) == COMPLEX_TYPE && elt_mode == KCmode) + cum->vregno++; + if (!TARGET_ALTIVEC) error ("cannot pass argument in vector register because" " altivec instructions are disabled, use %qs" *************** rs6000_gimple_fold_mma_builtin (gimple_s *** 11877,11883 **** unsigned nvec = (fncode == MMA_BUILTIN_DISASSEMBLE_ACC) ? 4 : 2; tree dst_ptr = gimple_call_arg (stmt, 0); tree src_ptr = gimple_call_arg (stmt, 1); ! tree src_type = TREE_TYPE (src_ptr); tree src = create_tmp_reg_or_ssa_name (TREE_TYPE (src_type)); gimplify_assign (src, build_simple_mem_ref (src_ptr), &new_seq); --- 11883,11894 ---- unsigned nvec = (fncode == MMA_BUILTIN_DISASSEMBLE_ACC) ? 4 : 2; tree dst_ptr = gimple_call_arg (stmt, 0); tree src_ptr = gimple_call_arg (stmt, 1); ! tree src_type = (fncode == MMA_BUILTIN_DISASSEMBLE_ACC) ! ? build_pointer_type (vector_quad_type_node) ! : build_pointer_type (vector_pair_type_node); ! if (TREE_TYPE (src_ptr) != src_type) ! src_ptr = build1 (NOP_EXPR, src_type, src_ptr); ! tree src = create_tmp_reg_or_ssa_name (TREE_TYPE (src_type)); gimplify_assign (src, build_simple_mem_ref (src_ptr), &new_seq); diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/rs6000-logue.c gcc-11.4.0/gcc/config/rs6000/rs6000-logue.c *** gcc-11.3.0/gcc/config/rs6000/rs6000-logue.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/rs6000/rs6000-logue.c Mon May 29 08:46:29 2023 *************** rs6000_emit_epilogue (enum epilogue_type *** 4924,4930 **** a REG_CFA_DEF_CFA note, but that's OK; A duplicate is discarded by dwarf2cfi.c/dwarf2out.c, and in any case would be harmless if emitted. */ ! if (frame_pointer_needed) { insn = get_last_insn (); add_reg_note (insn, REG_CFA_DEF_CFA, --- 4924,4930 ---- a REG_CFA_DEF_CFA note, but that's OK; A duplicate is discarded by dwarf2cfi.c/dwarf2out.c, and in any case would be harmless if emitted. */ ! if (frame_pointer_needed_indeed) { insn = get_last_insn (); add_reg_note (insn, REG_CFA_DEF_CFA, diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/rs6000-p8swap.c gcc-11.4.0/gcc/config/rs6000/rs6000-p8swap.c *** gcc-11.3.0/gcc/config/rs6000/rs6000-p8swap.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/rs6000/rs6000-p8swap.c Mon May 29 08:46:29 2023 *************** replace_swapped_aligned_store (swap_web_ *** 1668,1674 **** gcc_assert ((GET_CODE (new_body) == SET) && MEM_P (SET_DEST (new_body))); ! set_block_for_insn (new_insn, BLOCK_FOR_INSN (store_insn)); df_insn_rescan (new_insn); df_insn_delete (store_insn); --- 1668,1682 ---- gcc_assert ((GET_CODE (new_body) == SET) && MEM_P (SET_DEST (new_body))); ! basic_block bb = BLOCK_FOR_INSN (store_insn); ! set_block_for_insn (new_insn, bb); ! /* Handle REG_EH_REGION note. */ ! if (cfun->can_throw_non_call_exceptions && BB_END (bb) == store_insn) ! { ! rtx note = find_reg_note (store_insn, REG_EH_REGION, NULL_RTX); ! if (note) ! add_reg_note (new_insn, REG_EH_REGION, XEXP (note, 0)); ! } df_insn_rescan (new_insn); df_insn_delete (store_insn); *************** replace_swapped_aligned_load (swap_web_e *** 1761,1767 **** gcc_assert ((GET_CODE (new_body) == SET) && MEM_P (SET_SRC (new_body))); ! set_block_for_insn (new_insn, BLOCK_FOR_INSN (def_insn)); df_insn_rescan (new_insn); df_insn_delete (def_insn); --- 1769,1783 ---- gcc_assert ((GET_CODE (new_body) == SET) && MEM_P (SET_SRC (new_body))); ! basic_block bb = BLOCK_FOR_INSN (def_insn); ! set_block_for_insn (new_insn, bb); ! /* Handle REG_EH_REGION note. */ ! if (cfun->can_throw_non_call_exceptions && BB_END (bb) == def_insn) ! { ! rtx note = find_reg_note (def_insn, REG_EH_REGION, NULL_RTX); ! if (note) ! add_reg_note (new_insn, REG_EH_REGION, XEXP (note, 0)); ! } df_insn_rescan (new_insn); df_insn_delete (def_insn); diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/rs6000-protos.h gcc-11.4.0/gcc/config/rs6000/rs6000-protos.h *** gcc-11.3.0/gcc/config/rs6000/rs6000-protos.h Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/rs6000/rs6000-protos.h Mon May 29 08:46:29 2023 *************** extern rtx rs6000_gen_lvx (enum machine_ *** 321,324 **** --- 321,326 ---- extern rtx rs6000_gen_stvx (enum machine_mode, rtx, rtx); extern void rs6000_emit_xxspltidp_v2df (rtx, long value); + extern gimple *currently_expanding_gimple_stmt; + extern bool rs6000_opaque_type_invalid_use_p (gimple *); #endif /* rs6000-protos.h */ diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/rs6000.c gcc-11.4.0/gcc/config/rs6000/rs6000.c *** gcc-11.3.0/gcc/config/rs6000/rs6000.c Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/rs6000/rs6000.c Mon May 29 08:46:29 2023 *************** rs6000_option_override_internal (bool gl *** 4147,4160 **** rs6000_isa_flags &= ~OPTION_MASK_BLOCK_OPS_UNALIGNED_VSX; } - if (!(rs6000_isa_flags_explicit & OPTION_MASK_BLOCK_OPS_VECTOR_PAIR)) - { - if (TARGET_MMA && TARGET_EFFICIENT_UNALIGNED_VSX) - rs6000_isa_flags |= OPTION_MASK_BLOCK_OPS_VECTOR_PAIR; - else - rs6000_isa_flags &= ~OPTION_MASK_BLOCK_OPS_VECTOR_PAIR; - } - /* Use long double size to select the appropriate long double. We use TYPE_PRECISION to differentiate the 3 different long double types. We map 128 into the precision used for TFmode. */ --- 4147,4152 ---- *************** const char *rs6000_machine; *** 5742,5774 **** const char * rs6000_machine_from_flags (void) { ! /* For some CPUs, the machine cannot be determined by ISA flags. We have to ! check them first. */ ! switch (rs6000_cpu) ! { ! case PROCESSOR_PPC8540: ! case PROCESSOR_PPC8548: ! return "e500"; ! case PROCESSOR_PPCE300C2: ! case PROCESSOR_PPCE300C3: ! return "e300"; ! case PROCESSOR_PPCE500MC: ! return "e500mc"; ! case PROCESSOR_PPCE500MC64: ! return "e500mc64"; ! case PROCESSOR_PPCE5500: ! return "e5500"; ! case PROCESSOR_PPCE6500: ! return "e6500"; ! default: ! break; ! } HOST_WIDE_INT flags = rs6000_isa_flags; --- 5734,5801 ---- const char * rs6000_machine_from_flags (void) { ! /* e300 and e500 */ ! if (rs6000_cpu == PROCESSOR_PPCE300C2 || rs6000_cpu == PROCESSOR_PPCE300C3) ! return "e300"; ! if (rs6000_cpu == PROCESSOR_PPC8540 || rs6000_cpu == PROCESSOR_PPC8548) ! return "e500"; ! if (rs6000_cpu == PROCESSOR_PPCE500MC) ! return "e500mc"; ! if (rs6000_cpu == PROCESSOR_PPCE500MC64) ! return "e500mc64"; ! if (rs6000_cpu == PROCESSOR_PPCE5500) ! return "e5500"; ! if (rs6000_cpu == PROCESSOR_PPCE6500) ! return "e6500"; ! /* 400 series */ ! if (rs6000_cpu == PROCESSOR_PPC403) ! return "\"403\""; ! if (rs6000_cpu == PROCESSOR_PPC405) ! return "\"405\""; ! if (rs6000_cpu == PROCESSOR_PPC440) ! return "\"440\""; ! if (rs6000_cpu == PROCESSOR_PPC476) ! return "\"476\""; ! /* A2 */ ! if (rs6000_cpu == PROCESSOR_PPCA2) ! return "a2"; ! /* Cell BE */ ! if (rs6000_cpu == PROCESSOR_CELL) ! return "cell"; ! /* Titan */ ! if (rs6000_cpu == PROCESSOR_TITAN) ! return "titan"; ! /* 500 series and 800 series */ ! if (rs6000_cpu == PROCESSOR_MPCCORE) ! return "\"821\""; ! #if 0 ! /* This (and ppc64 below) are disabled here (for now at least) because ! PROCESSOR_POWERPC, PROCESSOR_POWERPC64, and PROCESSOR_COMMON ! are #define'd as some of these. Untangling that is a job for later. */ ! ! /* 600 series and 700 series, "classic" */ ! if (rs6000_cpu == PROCESSOR_PPC601 || rs6000_cpu == PROCESSOR_PPC603 ! || rs6000_cpu == PROCESSOR_PPC604 || rs6000_cpu == PROCESSOR_PPC604e ! || rs6000_cpu == PROCESSOR_PPC750) ! return "ppc"; ! #endif ! ! /* Classic with AltiVec, "G4" */ ! if (rs6000_cpu == PROCESSOR_PPC7400 || rs6000_cpu == PROCESSOR_PPC7450) ! return "\"7450\""; ! ! #if 0 ! /* The older 64-bit CPUs */ ! if (rs6000_cpu == PROCESSOR_PPC620 || rs6000_cpu == PROCESSOR_PPC630 ! || rs6000_cpu == PROCESSOR_RS64A) ! return "ppc64"; ! #endif HOST_WIDE_INT flags = rs6000_isa_flags; *************** rs6000_expand_vector_set_var_p9 (rtx tar *** 7052,7074 **** machine_mode idx_mode = GET_MODE (idx); machine_mode shift_mode; ! rtx (*gen_ashl)(rtx, rtx, rtx); ! rtx (*gen_lvsl)(rtx, rtx); ! rtx (*gen_lvsr)(rtx, rtx); if (TARGET_POWERPC64) { shift_mode = DImode; gen_ashl = gen_ashldi3; ! gen_lvsl = gen_altivec_lvsl_reg_di; ! gen_lvsr = gen_altivec_lvsr_reg_di; } else { shift_mode = SImode; gen_ashl = gen_ashlsi3; ! gen_lvsl = gen_altivec_lvsl_reg_si; ! gen_lvsr = gen_altivec_lvsr_reg_si; } /* Generate the IDX for permute shift, width is the vector element size. idx = idx * width. */ --- 7079,7107 ---- machine_mode idx_mode = GET_MODE (idx); machine_mode shift_mode; ! /* Gen function pointers for shifting left and generation of permutation ! control vectors. */ ! rtx (*gen_ashl) (rtx, rtx, rtx); ! rtx (*gen_pcvr1) (rtx, rtx); ! rtx (*gen_pcvr2) (rtx, rtx); if (TARGET_POWERPC64) { shift_mode = DImode; gen_ashl = gen_ashldi3; ! gen_pcvr1 = BYTES_BIG_ENDIAN ? gen_altivec_lvsl_reg_di ! : gen_altivec_lvsr_reg_di; ! gen_pcvr2 = BYTES_BIG_ENDIAN ? gen_altivec_lvsr_reg_di ! : gen_altivec_lvsl_reg_di; } else { shift_mode = SImode; gen_ashl = gen_ashlsi3; ! gen_pcvr1 = BYTES_BIG_ENDIAN ? gen_altivec_lvsl_reg_si ! : gen_altivec_lvsr_reg_si; ! gen_pcvr2 = BYTES_BIG_ENDIAN ? gen_altivec_lvsr_reg_si ! : gen_altivec_lvsl_reg_si; } /* Generate the IDX for permute shift, width is the vector element size. idx = idx * width. */ *************** rs6000_expand_vector_set_var_p9 (rtx tar *** 7077,7101 **** emit_insn (gen_ashl (tmp, idx, GEN_INT (shift))); ! /* lvsr v1,0,idx. */ ! rtx pcvr = gen_reg_rtx (V16QImode); ! emit_insn (gen_lvsr (pcvr, tmp)); ! ! /* lvsl v2,0,idx. */ ! rtx pcvl = gen_reg_rtx (V16QImode); ! emit_insn (gen_lvsl (pcvl, tmp)); rtx sub_target = simplify_gen_subreg (V16QImode, target, mode, 0); ! rtx permr ! = gen_altivec_vperm_v8hiv16qi (sub_target, sub_target, sub_target, pcvr); ! emit_insn (permr); ! rs6000_expand_vector_set (target, val, const0_rtx); ! rtx perml ! = gen_altivec_vperm_v8hiv16qi (sub_target, sub_target, sub_target, pcvl); ! emit_insn (perml); } /* Insert VAL into IDX of TARGET, VAL size is same of the vector element, IDX --- 7110,7138 ---- emit_insn (gen_ashl (tmp, idx, GEN_INT (shift))); ! /* Generate one permutation control vector used for rotating the element ! at to-insert position to element zero in target vector. lvsl is ! used for big endianness while lvsr is used for little endianness: ! lvs[lr] v1,0,idx. */ ! rtx pcvr1 = gen_reg_rtx (V16QImode); ! emit_insn (gen_pcvr1 (pcvr1, tmp)); rtx sub_target = simplify_gen_subreg (V16QImode, target, mode, 0); + rtx perm1 = gen_altivec_vperm_v8hiv16qi (sub_target, sub_target, sub_target, + pcvr1); + emit_insn (perm1); ! /* Insert val into element 0 of target vector. */ rs6000_expand_vector_set (target, val, const0_rtx); ! /* Rotate back with a reversed permutation control vector generated from: ! lvs[rl] v2,0,idx. */ ! rtx pcvr2 = gen_reg_rtx (V16QImode); ! emit_insn (gen_pcvr2 (pcvr2, tmp)); ! ! rtx perm2 = gen_altivec_vperm_v8hiv16qi (sub_target, sub_target, sub_target, ! pcvr2); ! emit_insn (perm2); } /* Insert VAL into IDX of TARGET, VAL size is same of the vector element, IDX *************** init_float128_ibm (machine_mode mode) *** 10968,10993 **** } } - /* Create a decl for either complex long double multiply or complex long double - divide when long double is IEEE 128-bit floating point. We can't use - __multc3 and __divtc3 because the original long double using IBM extended - double used those names. The complex multiply/divide functions are encoded - as builtin functions with a complex result and 4 scalar inputs. */ - - static void - create_complex_muldiv (const char *name, built_in_function fncode, tree fntype) - { - tree fndecl = add_builtin_function (name, fntype, fncode, BUILT_IN_NORMAL, - name, NULL_TREE); - - set_builtin_decl (fncode, fndecl, true); - - if (TARGET_DEBUG_BUILTIN) - fprintf (stderr, "create complex %s, fncode: %d\n", name, (int) fncode); - - return; - } - /* Set up IEEE 128-bit floating point routines. Use different names if the arguments can be passed in a vector register. The historical PowerPC implementation of IEEE 128-bit floating point used _q_ for the names, so --- 11005,11010 ---- *************** init_float128_ieee (machine_mode mode) *** 10999,11030 **** { if (FLOAT128_VECTOR_P (mode)) { - static bool complex_muldiv_init_p = false; - - /* Set up to call __mulkc3 and __divkc3 under -mabi=ieeelongdouble. If - we have clone or target attributes, this will be called a second - time. We want to create the built-in function only once. */ - if (mode == TFmode && TARGET_IEEEQUAD && !complex_muldiv_init_p) - { - complex_muldiv_init_p = true; - built_in_function fncode_mul = - (built_in_function) (BUILT_IN_COMPLEX_MUL_MIN + TCmode - - MIN_MODE_COMPLEX_FLOAT); - built_in_function fncode_div = - (built_in_function) (BUILT_IN_COMPLEX_DIV_MIN + TCmode - - MIN_MODE_COMPLEX_FLOAT); - - tree fntype = build_function_type_list (complex_long_double_type_node, - long_double_type_node, - long_double_type_node, - long_double_type_node, - long_double_type_node, - NULL_TREE); - - create_complex_muldiv ("__mulkc3", fncode_mul, fntype); - create_complex_muldiv ("__divkc3", fncode_div, fntype); - } - set_optab_libfunc (add_optab, mode, "__addkf3"); set_optab_libfunc (sub_optab, mode, "__subkf3"); set_optab_libfunc (neg_optab, mode, "__negkf2"); --- 11016,11021 ---- *************** rs6000_can_inline_p (tree caller, tree c *** 25074,25079 **** --- 25065,25075 ---- else caller_isa = rs6000_isa_flags; + /* Ignore -mpower8-fusion and -mpower10-fusion options for inlining + purposes. */ + callee_isa &= ~(OPTION_MASK_P8_FUSION | OPTION_MASK_P10_FUSION); + explicit_isa &= ~(OPTION_MASK_P8_FUSION | OPTION_MASK_P10_FUSION); + /* The callee's options must be a subset of the caller's options, i.e. a vsx function may inline an altivec function, but a no-vsx function must not inline a vsx function. However, for those options that the *************** rs6000_starting_frame_offset (void) *** 27795,27800 **** --- 27791,27817 ---- return RS6000_STARTING_FRAME_OFFSET; } + /* Internal function to return the built-in function id for the complex + multiply operation for a given mode. */ + + static inline built_in_function + complex_multiply_builtin_code (machine_mode mode) + { + gcc_assert (IN_RANGE (mode, MIN_MODE_COMPLEX_FLOAT, MAX_MODE_COMPLEX_FLOAT)); + int func = BUILT_IN_COMPLEX_MUL_MIN + mode - MIN_MODE_COMPLEX_FLOAT; + return (built_in_function) func; + } + + /* Internal function to return the built-in function id for the complex divide + operation for a given mode. */ + + static inline built_in_function + complex_divide_builtin_code (machine_mode mode) + { + gcc_assert (IN_RANGE (mode, MIN_MODE_COMPLEX_FLOAT, MAX_MODE_COMPLEX_FLOAT)); + int func = BUILT_IN_COMPLEX_DIV_MIN + mode - MIN_MODE_COMPLEX_FLOAT; + return (built_in_function) func; + } /* On 64-bit Linux and Freebsd systems, possibly switch the long double library function names from l to f128 if the default long double type is *************** rs6000_starting_frame_offset (void) *** 27813,27823 **** only do this transformation if the __float128 type is enabled. This prevents us from doing the transformation on older 32-bit ports that might have enabled using IEEE 128-bit floating point as the default long double ! type. */ static tree rs6000_mangle_decl_assembler_name (tree decl, tree id) { if (TARGET_FLOAT128_TYPE && TARGET_IEEEQUAD && TARGET_LONG_DOUBLE_128 && TREE_CODE (decl) == FUNCTION_DECL && DECL_IS_UNDECLARED_BUILTIN (decl) --- 27830,27882 ---- only do this transformation if the __float128 type is enabled. This prevents us from doing the transformation on older 32-bit ports that might have enabled using IEEE 128-bit floating point as the default long double ! type. ! ! We also use the TARGET_MANGLE_DECL_ASSEMBLER_NAME hook to change the ! function names used for complex multiply and divide to the appropriate ! names. */ static tree rs6000_mangle_decl_assembler_name (tree decl, tree id) { + /* Handle complex multiply/divide. For IEEE 128-bit, use __mulkc3 or + __divkc3 and for IBM 128-bit use __multc3 and __divtc3. */ + if (TARGET_FLOAT128_TYPE + && TREE_CODE (decl) == FUNCTION_DECL + && DECL_IS_UNDECLARED_BUILTIN (decl) + && DECL_BUILT_IN_CLASS (decl) == BUILT_IN_NORMAL) + { + built_in_function id = DECL_FUNCTION_CODE (decl); + const char *newname = NULL; + + if (id == complex_multiply_builtin_code (KCmode)) + newname = "__mulkc3"; + + else if (id == complex_multiply_builtin_code (ICmode)) + newname = "__multc3"; + + else if (id == complex_multiply_builtin_code (TCmode)) + newname = (TARGET_IEEEQUAD) ? "__mulkc3" : "__multc3"; + + else if (id == complex_divide_builtin_code (KCmode)) + newname = "__divkc3"; + + else if (id == complex_divide_builtin_code (ICmode)) + newname = "__divtc3"; + + else if (id == complex_divide_builtin_code (TCmode)) + newname = (TARGET_IEEEQUAD) ? "__divkc3" : "__divtc3"; + + if (newname) + { + if (TARGET_DEBUG_BUILTIN) + fprintf (stderr, "Map complex mul/div => %s\n", newname); + + return get_identifier (newname); + } + } + + /* Map long double built-in functions if long double is IEEE 128-bit. */ if (TARGET_FLOAT128_TYPE && TARGET_IEEEQUAD && TARGET_LONG_DOUBLE_128 && TREE_CODE (decl) == FUNCTION_DECL && DECL_IS_UNDECLARED_BUILTIN (decl) *************** rs6000_invalid_conversion (const_tree fr *** 28000,28027 **** if (tomode == OOmode) return N_("invalid conversion to type %<__vector_pair%>"); } - else if (POINTER_TYPE_P (fromtype) && POINTER_TYPE_P (totype)) - { - /* We really care about the modes of the base types. */ - frommode = TYPE_MODE (TREE_TYPE (fromtype)); - tomode = TYPE_MODE (TREE_TYPE (totype)); - - /* Do not allow conversions to/from XOmode and OOmode pointer - types, except to/from void pointers. */ - if (frommode != tomode - && frommode != VOIDmode - && tomode != VOIDmode) - { - if (frommode == XOmode) - return N_("invalid conversion from type %<* __vector_quad%>"); - if (tomode == XOmode) - return N_("invalid conversion to type %<* __vector_quad%>"); - if (frommode == OOmode) - return N_("invalid conversion from type %<* __vector_pair%>"); - if (tomode == OOmode) - return N_("invalid conversion to type %<* __vector_pair%>"); - } - } /* Conversion allowed. */ return NULL; --- 28059,28064 ---- *************** rs6000_output_addr_vec_elt (FILE *file, *** 28068,28073 **** --- 28105,28191 ---- fprintf (file, "\n"); } + + /* Now we have only two opaque types, they are __vector_quad and + __vector_pair built-in types. They are target specific and + only available when MMA is supported. With MMA supported, it + simply returns true, otherwise it checks if the given gimple + STMT is an assignment, asm or call stmt and uses either of + these two opaque types unexpectedly, if yes, it would raise + an error message and returns true, otherwise it returns false. */ + + bool + rs6000_opaque_type_invalid_use_p (gimple *stmt) + { + if (TARGET_MMA) + return false; + + /* If the given TYPE is one MMA opaque type, emit the corresponding + error messages and return true, otherwise return false. */ + auto check_and_error_invalid_use = [](tree type) + { + tree mv = TYPE_MAIN_VARIANT (type); + if (mv == vector_quad_type_node) + { + error ("type %<__vector_quad%> requires the %qs option", "-mmma"); + return true; + } + else if (mv == vector_pair_type_node) + { + error ("type %<__vector_pair%> requires the %qs option", "-mmma"); + return true; + } + return false; + }; + + if (stmt) + { + /* The usage of MMA opaque types is very limited for now, + to check with gassign, gasm and gcall is enough so far. */ + if (gassign *ga = dyn_cast (stmt)) + { + tree lhs = gimple_assign_lhs (ga); + tree type = TREE_TYPE (lhs); + if (check_and_error_invalid_use (type)) + return true; + } + else if (gasm *gs = dyn_cast (stmt)) + { + unsigned ninputs = gimple_asm_ninputs (gs); + for (unsigned i = 0; i < ninputs; i++) + { + tree op = gimple_asm_input_op (gs, i); + tree val = TREE_VALUE (op); + tree type = TREE_TYPE (val); + if (check_and_error_invalid_use (type)) + return true; + } + unsigned noutputs = gimple_asm_noutputs (gs); + for (unsigned i = 0; i < noutputs; i++) + { + tree op = gimple_asm_output_op (gs, i); + tree val = TREE_VALUE (op); + tree type = TREE_TYPE (val); + if (check_and_error_invalid_use (type)) + return true; + } + } + else if (gcall *gc = dyn_cast (stmt)) + { + unsigned nargs = gimple_call_num_args (gc); + for (unsigned i = 0; i < nargs; i++) + { + tree arg = gimple_call_arg (gc, i); + tree type = TREE_TYPE (arg); + if (check_and_error_invalid_use (type)) + return true; + } + } + } + + return false; + } + struct gcc_target targetm = TARGET_INITIALIZER; #include "gt-rs6000.h" diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/rs6000.h gcc-11.4.0/gcc/config/rs6000/rs6000.h *** gcc-11.3.0/gcc/config/rs6000/rs6000.h Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config/rs6000/rs6000.h Mon May 29 08:46:29 2023 *************** *** 81,92 **** # define SUBTARGET_DRIVER_SELF_SPECS "" #endif ! /* Only for use in the testsuite: -mdejagnu-cpu= simply overrides -mcpu=. With older versions of Dejagnu the command line arguments you set in ! RUNTESTFLAGS override those set in the testcases; with this option, ! the testcase will always win. Ditto for -mdejagnu-tune=. */ #define DRIVER_SELF_SPECS \ ! "%{mdejagnu-cpu=*: % filters out all ! -mcpu= as well as -mtune= options then simply adds -mcpu=, ! while -mdejagnu-tune= filters out all -mtune= options then ! simply adds -mtune=. With older versions of Dejagnu the command line arguments you set in ! RUNTESTFLAGS override those set in the testcases; with these options, ! the testcase will always win. */ #define DRIVER_SELF_SPECS \ ! "%{mdejagnu-cpu=*: %2" ! [(set (match_operand:EXTQI 0 "gpc_reg_operand" "=r,r,^wa,^v") ! (zero_extend:EXTQI (match_operand:QI 1 "reg_or_mem_operand" "m,r,Z,v")))] "" "@ lbz%U1%X1 %0,%1 --- 835,842 ---- ;; complex forms. Basic data transfer is done later. (define_insn "zero_extendqi2" ! [(set (match_operand:EXTQI 0 "gpc_reg_operand" "=r,r,wa,^v") ! (zero_extend:EXTQI (match_operand:QI 1 "reg_or_mem_operand" "m,r,?Z,v")))] "" "@ lbz%U1%X1 %0,%1 *************** *** 889,896 **** (define_insn "zero_extendhi2" ! [(set (match_operand:EXTHI 0 "gpc_reg_operand" "=r,r,^wa,^v") ! (zero_extend:EXTHI (match_operand:HI 1 "reg_or_mem_operand" "m,r,Z,v")))] "" "@ lhz%U1%X1 %0,%1 --- 889,896 ---- (define_insn "zero_extendhi2" ! [(set (match_operand:EXTHI 0 "gpc_reg_operand" "=r,r,wa,^v") ! (zero_extend:EXTHI (match_operand:HI 1 "reg_or_mem_operand" "m,r,?Z,v")))] "" "@ lhz%U1%X1 %0,%1 *************** *** 944,950 **** (define_insn "zero_extendsi2" [(set (match_operand:EXTSI 0 "gpc_reg_operand" "=r,r,d,wa,wa,r,wa") ! (zero_extend:EXTSI (match_operand:SI 1 "reg_or_mem_operand" "m,r,Z,Z,r,wa,wa")))] "" "@ lwz%U1%X1 %0,%1 --- 944,950 ---- (define_insn "zero_extendsi2" [(set (match_operand:EXTSI 0 "gpc_reg_operand" "=r,r,d,wa,wa,r,wa") ! (zero_extend:EXTSI (match_operand:SI 1 "reg_or_mem_operand" "m,r,?Z,?Z,r,wa,wa")))] "" "@ lwz%U1%X1 %0,%1 *************** *** 7312,7318 **** [(set (match_operand:SI 0 "nonimmediate_operand" "=r, r, r, d, v, ! m, Z, Z, r, r, r, r, wa, wa, wa, v, wa, v, v, --- 7312,7318 ---- [(set (match_operand:SI 0 "nonimmediate_operand" "=r, r, r, d, v, ! m, ?Z, ?Z, r, r, r, r, wa, wa, wa, v, wa, v, v, *************** *** 7320,7326 **** r, *h, *h") (match_operand:SI 1 "input_operand" "r, U, ! m, Z, Z, r, d, v, I, L, eI, n, wa, O, wM, wB, --- 7320,7326 ---- r, *h, *h") (match_operand:SI 1 "input_operand" "r, U, ! m, ?Z, ?Z, r, d, v, I, L, eI, n, wa, O, wM, wB, *************** *** 7557,7563 **** rtx op0_v16qi = gen_rtx_REG (V16QImode, r); emit_insn (gen_xxspltib_v16qi (op0_v16qi, op1)); ! emit_insn (gen_vsx_sign_extend_qi_si (operands[0], op0_v16qi)); DONE; }) --- 7557,7563 ---- rtx op0_v16qi = gen_rtx_REG (V16QImode, r); emit_insn (gen_xxspltib_v16qi (op0_v16qi, op1)); ! emit_insn (gen_vsx_sign_extend_v16qi_si (operands[0], op0_v16qi)); DONE; }) *************** *** 7601,7611 **** ;; MTVSRWZ MF%1 MT%1 NOP (define_insn "*mov_internal" [(set (match_operand:QHI 0 "nonimmediate_operand" ! "=r, r, wa, m, Z, r, wa, wa, wa, v, ?v, r, wa, r, *c*l, *h") (match_operand:QHI 1 "input_operand" ! "r, m, Z, r, wa, i, wa, O, wM, wB, wS, wa, r, *h, r, 0"))] "gpc_reg_operand (operands[0], mode) --- 7601,7611 ---- ;; MTVSRWZ MF%1 MT%1 NOP (define_insn "*mov_internal" [(set (match_operand:QHI 0 "nonimmediate_operand" ! "=r, r, wa, m, ?Z, r, wa, wa, wa, v, ?v, r, wa, r, *c*l, *h") (match_operand:QHI 1 "input_operand" ! "r, m, ?Z, r, wa, i, wa, O, wM, wB, wS, wa, r, *h, r, 0"))] "gpc_reg_operand (operands[0], mode) *************** *** 7784,7793 **** ;; FMR MR MT%0 MF%1 NOP (define_insn "movsd_hardfloat" [(set (match_operand:SD 0 "nonimmediate_operand" ! "=!r, d, m, Z, ?d, ?r, f, !r, *c*l, !r, *h") (match_operand:SD 1 "input_operand" ! "m, Z, r, wx, r, d, f, r, r, *h, 0"))] "(register_operand (operands[0], SDmode) || register_operand (operands[1], SDmode)) --- 7784,7793 ---- ;; FMR MR MT%0 MF%1 NOP (define_insn "movsd_hardfloat" [(set (match_operand:SD 0 "nonimmediate_operand" ! "=!r, d, m, ?Z, ?d, ?r, f, !r, *c*l, !r, *h") (match_operand:SD 1 "input_operand" ! "m, ?Z, r, wx, r, d, f, r, r, *h, 0"))] "(register_operand (operands[0], SDmode) || register_operand (operands[1], SDmode)) *************** *** 9452,9460 **** emit_insn (gen_xxspltib_v16qi (op0_v16qi, op1)); if (mode == DImode) ! emit_insn (gen_vsx_sign_extend_qi_di (operands[0], op0_v16qi)); else if (mode == SImode) ! emit_insn (gen_vsx_sign_extend_qi_si (operands[0], op0_v16qi)); else if (mode == HImode) { rtx op0_v8hi = gen_rtx_REG (V8HImode, r); --- 9452,9460 ---- emit_insn (gen_xxspltib_v16qi (op0_v16qi, op1)); if (mode == DImode) ! emit_insn (gen_vsx_sign_extend_v16qi_di (operands[0], op0_v16qi)); else if (mode == SImode) ! emit_insn (gen_vsx_sign_extend_v16qi_si (operands[0], op0_v16qi)); else if (mode == HImode) { rtx op0_v8hi = gen_rtx_REG (V8HImode, r); diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/rtems.h gcc-11.4.0/gcc/config/rs6000/rtems.h *** gcc-11.3.0/gcc/config/rs6000/rtems.h Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/config/rs6000/rtems.h Mon May 29 08:46:29 2023 *************** *** 23,28 **** --- 23,31 ---- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see . */ + /* Undef gnu-user.h macro we don't want. */ + #undef CPLUSPLUS_CPP_SPEC + /* Copy and paste from linux64.h and freebsd64.h */ #ifdef IN_LIBGCC2 #undef TARGET_64BIT *************** *** 252,258 **** %{mcpu=821: %{!Dppc*: %{!Dmpc*: -Dmpc821} } } \ %{mcpu=860: %{!Dppc*: %{!Dmpc*: -Dmpc860} } } \ %{mcpu=8540: %{!Dppc*: %{!Dmpc*: -Dppc8540} } } \ ! %{mcpu=e6500: -D__PPC_CPU_E6500__}" #undef ASM_SPEC #define ASM_SPEC "%{!m64:%(asm_spec32)}%{m64:%(asm_spec64)} %(asm_spec_common)" --- 255,262 ---- %{mcpu=821: %{!Dppc*: %{!Dmpc*: -Dmpc821} } } \ %{mcpu=860: %{!Dppc*: %{!Dmpc*: -Dmpc860} } } \ %{mcpu=8540: %{!Dppc*: %{!Dmpc*: -Dppc8540} } } \ ! %{mcpu=e6500: -D__PPC_CPU_E6500__} \ ! %{mvrsave: -D__PPC_VRSAVE__}" #undef ASM_SPEC #define ASM_SPEC "%{!m64:%(asm_spec32)}%{m64:%(asm_spec64)} %(asm_spec_common)" diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/smmintrin.h gcc-11.4.0/gcc/config/rs6000/smmintrin.h *** gcc-11.3.0/gcc/config/rs6000/smmintrin.h Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/config/rs6000/smmintrin.h Mon May 29 08:46:29 2023 *************** *** 45,75 **** extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_insert_epi8 (__m128i const __A, int const __D, int const __N) { ! __v16qi result = (__v16qi)__A; ! result [__N & 0xf] = __D; ! return (__m128i) result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_insert_epi32 (__m128i const __A, int const __D, int const __N) { ! __v4si result = (__v4si)__A; ! result [__N & 3] = __D; ! return (__m128i) result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_insert_epi64 (__m128i const __A, long long const __D, int const __N) { ! __v2di result = (__v2di)__A; ! result [__N & 1] = __D; ! return (__m128i) result; } extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 45,75 ---- extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_insert_epi8 (__m128i const __A, int const __D, int const __N) { ! __v16qi __result = (__v16qi)__A; ! __result [__N & 0xf] = __D; ! return (__m128i) __result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_insert_epi32 (__m128i const __A, int const __D, int const __N) { ! __v4si __result = (__v4si)__A; ! __result [__N & 3] = __D; ! return (__m128i) __result; } extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_insert_epi64 (__m128i const __A, long long const __D, int const __N) { ! __v2di __result = (__v2di)__A; ! __result [__N & 1] = __D; ! return (__m128i) __result; } extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/t-rtems gcc-11.4.0/gcc/config/rs6000/t-rtems *** gcc-11.3.0/gcc/config/rs6000/t-rtems Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/config/rs6000/t-rtems Mon May 29 08:46:29 2023 *************** MULTILIB_DIRNAMES += nof *** 36,41 **** --- 36,44 ---- MULTILIB_OPTIONS += mno-altivec MULTILIB_DIRNAMES += noaltivec + MULTILIB_OPTIONS += mvrsave + MULTILIB_DIRNAMES += vrsave + MULTILIB_MATCHES += ${MULTILIB_MATCHES_ENDIAN} MULTILIB_MATCHES += ${MULTILIB_MATCHES_SYSV} # Map 405 to 403 *************** MULTILIB_REQUIRED += mcpu=7400/msoft-flo *** 70,74 **** --- 73,79 ---- MULTILIB_REQUIRED += mcpu=8540/msoft-float MULTILIB_REQUIRED += mcpu=860 MULTILIB_REQUIRED += mcpu=e6500/m32 + MULTILIB_REQUIRED += mcpu=e6500/m32/mvrsave MULTILIB_REQUIRED += mcpu=e6500/m32/msoft-float/mno-altivec MULTILIB_REQUIRED += mcpu=e6500/m64 + MULTILIB_REQUIRED += mcpu=e6500/m64/mvrsave diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/tmmintrin.h gcc-11.4.0/gcc/config/rs6000/tmmintrin.h *** gcc-11.3.0/gcc/config/rs6000/tmmintrin.h Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/config/rs6000/tmmintrin.h Mon May 29 08:46:29 2023 *************** _mm_alignr_epi8 (__m128i __A, __m128i __ *** 112,119 **** { if (__count >= 32) { ! const __v16qu zero = { 0 }; ! return (__m128i) zero; } else { --- 112,119 ---- { if (__count >= 32) { ! const __v16qu __zero = { 0 }; ! return (__m128i) __zero; } else { diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/vector.md gcc-11.4.0/gcc/config/rs6000/vector.md *** gcc-11.3.0/gcc/config/rs6000/vector.md Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/config/rs6000/vector.md Mon May 29 08:46:29 2023 *************** *** 1288,1294 **** (define_expand "parity2" [(set (match_operand:VEC_IP 0 "register_operand") (parity:VEC_IP (match_operand:VEC_IP 1 "register_operand")))] ! "TARGET_P9_VECTOR") ;; Same size conversions --- 1288,1303 ---- (define_expand "parity2" [(set (match_operand:VEC_IP 0 "register_operand") (parity:VEC_IP (match_operand:VEC_IP 1 "register_operand")))] ! "TARGET_P9_VECTOR" ! { ! rtx op1 = gen_lowpart (V16QImode, operands[1]); ! rtx res = gen_reg_rtx (V16QImode); ! emit_insn (gen_popcountv16qi2 (res, op1)); ! emit_insn (gen_rs6000_vprtyb2 (operands[0], ! gen_lowpart (mode, res))); ! ! DONE; ! }) ;; Same size conversions diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/vsx.md gcc-11.4.0/gcc/config/rs6000/vsx.md *** gcc-11.3.0/gcc/config/rs6000/vsx.md Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/config/rs6000/vsx.md Mon May 29 08:46:29 2023 *************** *** 1145,1154 **** emit_insn (gen_xxspltib_v16qi (tmp, GEN_INT (value))); if (mode == V2DImode) ! emit_insn (gen_vsx_sign_extend_qi_v2di (op0, tmp)); else if (mode == V4SImode) ! emit_insn (gen_vsx_sign_extend_qi_v4si (op0, tmp)); else if (mode == V8HImode) emit_insn (gen_altivec_vupkhsb (op0, tmp)); --- 1145,1154 ---- emit_insn (gen_xxspltib_v16qi (tmp, GEN_INT (value))); if (mode == V2DImode) ! emit_insn (gen_vsx_sign_extend_v16qi_v2di (op0, tmp)); else if (mode == V4SImode) ! emit_insn (gen_vsx_sign_extend_v16qi_v4si (op0, tmp)); else if (mode == V8HImode) emit_insn (gen_altivec_vupkhsb (op0, tmp)); *************** *** 1972,1993 **** "xtsqrtp %0,%x1" [(set_attr "type" "")]) ! ;; Fused vector multiply/add instructions. Support the classical Altivec ! ;; versions of fma, which allows the target to be a separate register from the ! ;; 3 inputs. Under VSX, the target must be either the addend or the first ! ;; multiply. ! (define_insn "*vsx_fmav4sf4" ! [(set (match_operand:V4SF 0 "vsx_register_operand" "=wa,wa,v") (fma:V4SF ! (match_operand:V4SF 1 "vsx_register_operand" "%wa,wa,v") ! (match_operand:V4SF 2 "vsx_register_operand" "wa,0,v") ! (match_operand:V4SF 3 "vsx_register_operand" "0,wa,v")))] "VECTOR_UNIT_VSX_P (V4SFmode)" "@ xvmaddasp %x0,%x1,%x2 ! xvmaddmsp %x0,%x1,%x3 ! vmaddfp %0,%1,%2,%3" [(set_attr "type" "vecfloat")]) (define_insn "*vsx_fmav2df4" --- 1972,1991 ---- "xtsqrtp %0,%x1" [(set_attr "type" "")]) ! ;; Fused vector multiply/add instructions. Do not generate the Altivec versions ! ;; of fma (vmaddfp and vnmsubfp). These instructions allows the target to be a ! ;; separate register from the 3 inputs, but they have different rounding ! ;; behaviors than the VSX instructions. (define_insn "*vsx_fmav4sf4" ! [(set (match_operand:V4SF 0 "vsx_register_operand" "=wa,wa") (fma:V4SF ! (match_operand:V4SF 1 "vsx_register_operand" "%wa,wa") ! (match_operand:V4SF 2 "vsx_register_operand" "wa,0") ! (match_operand:V4SF 3 "vsx_register_operand" "0,wa")))] "VECTOR_UNIT_VSX_P (V4SFmode)" "@ xvmaddasp %x0,%x1,%x2 ! xvmaddmsp %x0,%x1,%x3" [(set_attr "type" "vecfloat")]) (define_insn "*vsx_fmav2df4" *************** *** 2029,2046 **** [(set_attr "type" "")]) (define_insn "*vsx_nfmsv4sf4" ! [(set (match_operand:V4SF 0 "vsx_register_operand" "=wa,wa,v") (neg:V4SF (fma:V4SF ! (match_operand:V4SF 1 "vsx_register_operand" "%wa,wa,v") ! (match_operand:V4SF 2 "vsx_register_operand" "wa,0,v") (neg:V4SF ! (match_operand:V4SF 3 "vsx_register_operand" "0,wa,v")))))] "VECTOR_UNIT_VSX_P (V4SFmode)" "@ xvnmsubasp %x0,%x1,%x2 ! xvnmsubmsp %x0,%x1,%x3 ! vnmsubfp %0,%1,%2,%3" [(set_attr "type" "vecfloat")]) (define_insn "*vsx_nfmsv2df4" --- 2027,2043 ---- [(set_attr "type" "")]) (define_insn "*vsx_nfmsv4sf4" ! [(set (match_operand:V4SF 0 "vsx_register_operand" "=wa,wa") (neg:V4SF (fma:V4SF ! (match_operand:V4SF 1 "vsx_register_operand" "%wa,wa") ! (match_operand:V4SF 2 "vsx_register_operand" "wa,0") (neg:V4SF ! (match_operand:V4SF 3 "vsx_register_operand" "0,wa")))))] "VECTOR_UNIT_VSX_P (V4SFmode)" "@ xvnmsubasp %x0,%x1,%x2 ! xvnmsubmsp %x0,%x1,%x3" [(set_attr "type" "vecfloat")]) (define_insn "*vsx_nfmsv2df4" *************** *** 4892,4918 **** "vextsd2q %0,%1" [(set_attr "type" "vecexts")]) - (define_expand "vsignextend_v2di_v1ti" - [(set (match_operand:V1TI 0 "vsx_register_operand" "=v") - (unspec:V1TI [(match_operand:V2DI 1 "vsx_register_operand" "v")] - UNSPEC_VSX_SIGN_EXTEND))] - "TARGET_POWER10" - { - if (BYTES_BIG_ENDIAN) - { - rtx tmp = gen_reg_rtx (V2DImode); - - emit_insn (gen_altivec_vrevev2di2(tmp, operands[1])); - emit_insn (gen_vsx_sign_extend_v2di_v1ti(operands[0], tmp)); - DONE; - } - - emit_insn (gen_vsx_sign_extend_v2di_v1ti(operands[0], operands[1])); - }) - ;; ISA 3.0 vector extend sign support ! (define_insn "vsx_sign_extend_qi_" [(set (match_operand:VSINT_84 0 "vsx_register_operand" "=v") (unspec:VSINT_84 [(match_operand:V16QI 1 "vsx_register_operand" "v")] --- 4889,4897 ---- "vextsd2q %0,%1" [(set_attr "type" "vecexts")]) ;; ISA 3.0 vector extend sign support ! (define_insn "vsx_sign_extend_v16qi_" [(set (match_operand:VSINT_84 0 "vsx_register_operand" "=v") (unspec:VSINT_84 [(match_operand:V16QI 1 "vsx_register_operand" "v")] *************** *** 4921,4945 **** "vextsb2 %0,%1" [(set_attr "type" "vecexts")]) ! (define_expand "vsignextend_qi_" ! [(set (match_operand:VIlong 0 "vsx_register_operand" "=v") ! (unspec:VIlong ! [(match_operand:V16QI 1 "vsx_register_operand" "v")] ! UNSPEC_VSX_SIGN_EXTEND))] ! "TARGET_P9_VECTOR" ! { ! if (BYTES_BIG_ENDIAN) ! { ! rtx tmp = gen_reg_rtx (V16QImode); ! emit_insn (gen_altivec_vrevev16qi2(tmp, operands[1])); ! emit_insn (gen_vsx_sign_extend_qi_(operands[0], tmp)); ! } ! else ! emit_insn (gen_vsx_sign_extend_qi_(operands[0], operands[1])); ! DONE; ! }) ! ! (define_insn "vsx_sign_extend_hi_" [(set (match_operand:VSINT_84 0 "vsx_register_operand" "=v") (unspec:VSINT_84 [(match_operand:V8HI 1 "vsx_register_operand" "v")] --- 4900,4906 ---- "vextsb2 %0,%1" [(set_attr "type" "vecexts")]) ! (define_insn "vsx_sign_extend_v8hi_" [(set (match_operand:VSINT_84 0 "vsx_register_operand" "=v") (unspec:VSINT_84 [(match_operand:V8HI 1 "vsx_register_operand" "v")] *************** *** 4948,4972 **** "vextsh2 %0,%1" [(set_attr "type" "vecexts")]) ! (define_expand "vsignextend_hi_" ! [(set (match_operand:VIlong 0 "vsx_register_operand" "=v") ! (unspec:VIlong ! [(match_operand:V8HI 1 "vsx_register_operand" "v")] ! UNSPEC_VSX_SIGN_EXTEND))] ! "TARGET_P9_VECTOR" ! { ! if (BYTES_BIG_ENDIAN) ! { ! rtx tmp = gen_reg_rtx (V8HImode); ! emit_insn (gen_altivec_vrevev8hi2(tmp, operands[1])); ! emit_insn (gen_vsx_sign_extend_hi_(operands[0], tmp)); ! } ! else ! emit_insn (gen_vsx_sign_extend_hi_(operands[0], operands[1])); ! DONE; ! }) ! ! (define_insn "vsx_sign_extend_si_v2di" [(set (match_operand:V2DI 0 "vsx_register_operand" "=v") (unspec:V2DI [(match_operand:V4SI 1 "vsx_register_operand" "v")] UNSPEC_VSX_SIGN_EXTEND))] --- 4909,4915 ---- "vextsh2 %0,%1" [(set_attr "type" "vecexts")]) ! (define_insn "vsx_sign_extend_v4si_v2di" [(set (match_operand:V2DI 0 "vsx_register_operand" "=v") (unspec:V2DI [(match_operand:V4SI 1 "vsx_register_operand" "v")] UNSPEC_VSX_SIGN_EXTEND))] *************** *** 4974,4997 **** "vextsw2d %0,%1" [(set_attr "type" "vecexts")]) - (define_expand "vsignextend_si_v2di" - [(set (match_operand:V2DI 0 "vsx_register_operand" "=v") - (unspec:V2DI [(match_operand:V4SI 1 "vsx_register_operand" "v")] - UNSPEC_VSX_SIGN_EXTEND))] - "TARGET_P9_VECTOR" - { - if (BYTES_BIG_ENDIAN) - { - rtx tmp = gen_reg_rtx (V4SImode); - - emit_insn (gen_altivec_vrevev4si2(tmp, operands[1])); - emit_insn (gen_vsx_sign_extend_si_v2di(operands[0], tmp)); - } - else - emit_insn (gen_vsx_sign_extend_si_v2di(operands[0], operands[1])); - DONE; - }) - ;; ISA 3.1 vector sign extend ;; Move DI value from GPR to TI mode in VSX register, word 1. (define_insn "mtvsrdd_diti_w1" --- 4917,4922 ---- diff -Nrcpad gcc-11.3.0/gcc/config/rs6000/xmmintrin.h gcc-11.4.0/gcc/config/rs6000/xmmintrin.h *** gcc-11.3.0/gcc/config/rs6000/xmmintrin.h Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/config/rs6000/xmmintrin.h Mon May 29 08:46:29 2023 *************** extern __inline __m128 __attribute__((__ *** 127,140 **** _mm_loadr_ps (float const *__P) { __v4sf __tmp; ! __m128 result; ! static const __vector unsigned char permute_vector = { 0x1C, 0x1D, 0x1E, 0x1F, 0x18, 0x19, 0x1A, 0x1B, 0x14, 0x15, 0x16, 0x17, 0x10, 0x11, 0x12, 0x13 }; __tmp = vec_ld (0, (__v4sf *) __P); ! result = (__m128) vec_perm (__tmp, __tmp, permute_vector); ! return result; } /* Create a vector with all four elements equal to F. */ --- 127,140 ---- _mm_loadr_ps (float const *__P) { __v4sf __tmp; ! __m128 __result; ! static const __vector unsigned char __permute_vector = { 0x1C, 0x1D, 0x1E, 0x1F, 0x18, 0x19, 0x1A, 0x1B, 0x14, 0x15, 0x16, 0x17, 0x10, 0x11, 0x12, 0x13 }; __tmp = vec_ld (0, (__v4sf *) __P); ! __result = (__m128) vec_perm (__tmp, __tmp, __permute_vector); ! return __result; } /* Create a vector with all four elements equal to F. */ *************** extern __inline void __attribute__((__gn *** 184,194 **** _mm_storer_ps (float *__P, __m128 __A) { __v4sf __tmp; ! static const __vector unsigned char permute_vector = { 0x1C, 0x1D, 0x1E, 0x1F, 0x18, 0x19, 0x1A, 0x1B, 0x14, 0x15, 0x16, 0x17, 0x10, 0x11, 0x12, 0x13 }; ! __tmp = (__m128) vec_perm (__A, __A, permute_vector); _mm_store_ps (__P, __tmp); } --- 184,194 ---- _mm_storer_ps (float *__P, __m128 __A) { __v4sf __tmp; ! static const __vector unsigned char __permute_vector = { 0x1C, 0x1D, 0x1E, 0x1F, 0x18, 0x19, 0x1A, 0x1B, 0x14, 0x15, 0x16, 0x17, 0x10, 0x11, 0x12, 0x13 }; ! __tmp = (__m128) vec_perm (__A, __A, __permute_vector); _mm_store_ps (__P, __tmp); } *************** _mm_set_ss (float __F) *** 218,226 **** extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_move_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int mask = {0xffffffff, 0, 0, 0}; ! return (vec_sel ((__v4sf)__A, (__v4sf)__B, mask)); } /* Create a vector with element 0 as *P and the rest zero. */ --- 218,226 ---- extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_move_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int __mask = {0xffffffff, 0, 0, 0}; ! return (vec_sel ((__v4sf)__A, (__v4sf)__B, __mask)); } /* Create a vector with element 0 as *P and the rest zero. */ *************** extern __inline __m128 __attribute__((__ *** 245,262 **** _mm_add_ss (__m128 __A, __m128 __B) { #ifdef _ARCH_PWR7 ! __m128 a, b, c; ! static const __vector unsigned int mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower double) results. So to insure we don't generate spurious exceptions (from the upper double values) we splat the lower double before we to the operation. */ ! a = vec_splat (__A, 0); ! b = vec_splat (__B, 0); ! c = a + b; /* Then we merge the lower float result with the original upper float elements from __A. */ ! return (vec_sel (__A, c, mask)); #else __A[0] = __A[0] + __B[0]; return (__A); --- 245,262 ---- _mm_add_ss (__m128 __A, __m128 __B) { #ifdef _ARCH_PWR7 ! __m128 __a, __b, __c; ! static const __vector unsigned int __mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower double) results. So to insure we don't generate spurious exceptions (from the upper double values) we splat the lower double before we to the operation. */ ! __a = vec_splat (__A, 0); ! __b = vec_splat (__B, 0); ! __c = __a + __b; /* Then we merge the lower float result with the original upper float elements from __A. */ ! return (vec_sel (__A, __c, __mask)); #else __A[0] = __A[0] + __B[0]; return (__A); *************** extern __inline __m128 __attribute__((__ *** 267,284 **** _mm_sub_ss (__m128 __A, __m128 __B) { #ifdef _ARCH_PWR7 ! __m128 a, b, c; ! static const __vector unsigned int mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower double) results. So to insure we don't generate spurious exceptions (from the upper double values) we splat the lower double before we to the operation. */ ! a = vec_splat (__A, 0); ! b = vec_splat (__B, 0); ! c = a - b; /* Then we merge the lower float result with the original upper float elements from __A. */ ! return (vec_sel (__A, c, mask)); #else __A[0] = __A[0] - __B[0]; return (__A); --- 267,284 ---- _mm_sub_ss (__m128 __A, __m128 __B) { #ifdef _ARCH_PWR7 ! __m128 __a, __b, __c; ! static const __vector unsigned int __mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower double) results. So to insure we don't generate spurious exceptions (from the upper double values) we splat the lower double before we to the operation. */ ! __a = vec_splat (__A, 0); ! __b = vec_splat (__B, 0); ! __c = __a - __b; /* Then we merge the lower float result with the original upper float elements from __A. */ ! return (vec_sel (__A, __c, __mask)); #else __A[0] = __A[0] - __B[0]; return (__A); *************** extern __inline __m128 __attribute__((__ *** 289,306 **** _mm_mul_ss (__m128 __A, __m128 __B) { #ifdef _ARCH_PWR7 ! __m128 a, b, c; ! static const __vector unsigned int mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower double) results. So to insure we don't generate spurious exceptions (from the upper double values) we splat the lower double before we to the operation. */ ! a = vec_splat (__A, 0); ! b = vec_splat (__B, 0); ! c = a * b; /* Then we merge the lower float result with the original upper float elements from __A. */ ! return (vec_sel (__A, c, mask)); #else __A[0] = __A[0] * __B[0]; return (__A); --- 289,306 ---- _mm_mul_ss (__m128 __A, __m128 __B) { #ifdef _ARCH_PWR7 ! __m128 __a, __b, __c; ! static const __vector unsigned int __mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower double) results. So to insure we don't generate spurious exceptions (from the upper double values) we splat the lower double before we to the operation. */ ! __a = vec_splat (__A, 0); ! __b = vec_splat (__B, 0); ! __c = __a * __b; /* Then we merge the lower float result with the original upper float elements from __A. */ ! return (vec_sel (__A, __c, __mask)); #else __A[0] = __A[0] * __B[0]; return (__A); *************** extern __inline __m128 __attribute__((__ *** 311,328 **** _mm_div_ss (__m128 __A, __m128 __B) { #ifdef _ARCH_PWR7 ! __m128 a, b, c; ! static const __vector unsigned int mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower double) results. So to insure we don't generate spurious exceptions (from the upper double values) we splat the lower double before we to the operation. */ ! a = vec_splat (__A, 0); ! b = vec_splat (__B, 0); ! c = a / b; /* Then we merge the lower float result with the original upper float elements from __A. */ ! return (vec_sel (__A, c, mask)); #else __A[0] = __A[0] / __B[0]; return (__A); --- 311,328 ---- _mm_div_ss (__m128 __A, __m128 __B) { #ifdef _ARCH_PWR7 ! __m128 __a, __b, __c; ! static const __vector unsigned int __mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower double) results. So to insure we don't generate spurious exceptions (from the upper double values) we splat the lower double before we to the operation. */ ! __a = vec_splat (__A, 0); ! __b = vec_splat (__B, 0); ! __c = __a / __b; /* Then we merge the lower float result with the original upper float elements from __A. */ ! return (vec_sel (__A, __c, __mask)); #else __A[0] = __A[0] / __B[0]; return (__A); *************** _mm_div_ss (__m128 __A, __m128 __B) *** 332,348 **** extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sqrt_ss (__m128 __A) { ! __m128 a, c; ! static const __vector unsigned int mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower double) * results. So to insure we don't generate spurious exceptions * (from the upper double values) we splat the lower double * before we to the operation. */ ! a = vec_splat (__A, 0); ! c = vec_sqrt (a); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return (vec_sel (__A, c, mask)); } /* Perform the respective operation on the four SPFP values in A and B. */ --- 332,348 ---- extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sqrt_ss (__m128 __A) { ! __m128 __a, __c; ! static const __vector unsigned int __mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower double) * results. So to insure we don't generate spurious exceptions * (from the upper double values) we splat the lower double * before we to the operation. */ ! __a = vec_splat (__A, 0); ! __c = vec_sqrt (__a); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return (vec_sel (__A, __c, __mask)); } /* Perform the respective operation on the four SPFP values in A and B. */ *************** _mm_rsqrt_ps (__m128 __A) *** 391,471 **** extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_rcp_ss (__m128 __A) { ! __m128 a, c; ! static const __vector unsigned int mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower double) * results. So to insure we don't generate spurious exceptions * (from the upper double values) we splat the lower double * before we to the operation. */ ! a = vec_splat (__A, 0); ! c = _mm_rcp_ps (a); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return (vec_sel (__A, c, mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_rsqrt_ss (__m128 __A) { ! __m128 a, c; ! static const __vector unsigned int mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower double) * results. So to insure we don't generate spurious exceptions * (from the upper double values) we splat the lower double * before we to the operation. */ ! a = vec_splat (__A, 0); ! c = vec_rsqrte (a); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return (vec_sel (__A, c, mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_min_ss (__m128 __A, __m128 __B) { ! __v4sf a, b, c; ! static const __vector unsigned int mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower float) * results. So to insure we don't generate spurious exceptions * (from the upper float values) we splat the lower float * before we to the operation. */ ! a = vec_splat ((__v4sf)__A, 0); ! b = vec_splat ((__v4sf)__B, 0); ! c = vec_min (a, b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return (vec_sel ((__v4sf)__A, c, mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_max_ss (__m128 __A, __m128 __B) { ! __v4sf a, b, c; ! static const __vector unsigned int mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower float) * results. So to insure we don't generate spurious exceptions * (from the upper float values) we splat the lower float * before we to the operation. */ ! a = vec_splat (__A, 0); ! b = vec_splat (__B, 0); ! c = vec_max (a, b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return (vec_sel ((__v4sf)__A, c, mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_min_ps (__m128 __A, __m128 __B) { ! __vector __bool int m = vec_cmpgt ((__v4sf) __B, (__v4sf) __A); ! return vec_sel (__B, __A, m); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_max_ps (__m128 __A, __m128 __B) { ! __vector __bool int m = vec_cmpgt ((__v4sf) __A, (__v4sf) __B); ! return vec_sel (__B, __A, m); } /* Perform logical bit-wise operations on 128-bit values. */ --- 391,471 ---- extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_rcp_ss (__m128 __A) { ! __m128 __a, __c; ! static const __vector unsigned int __mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower double) * results. So to insure we don't generate spurious exceptions * (from the upper double values) we splat the lower double * before we to the operation. */ ! __a = vec_splat (__A, 0); ! __c = _mm_rcp_ps (__a); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return (vec_sel (__A, __c, __mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_rsqrt_ss (__m128 __A) { ! __m128 __a, __c; ! static const __vector unsigned int __mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower double) * results. So to insure we don't generate spurious exceptions * (from the upper double values) we splat the lower double * before we to the operation. */ ! __a = vec_splat (__A, 0); ! __c = vec_rsqrte (__a); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return (vec_sel (__A, __c, __mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_min_ss (__m128 __A, __m128 __B) { ! __v4sf __a, __b, __c; ! static const __vector unsigned int __mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower float) * results. So to insure we don't generate spurious exceptions * (from the upper float values) we splat the lower float * before we to the operation. */ ! __a = vec_splat ((__v4sf)__A, 0); ! __b = vec_splat ((__v4sf)__B, 0); ! __c = vec_min (__a, __b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return (vec_sel ((__v4sf)__A, __c, __mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_max_ss (__m128 __A, __m128 __B) { ! __v4sf __a, __b, __c; ! static const __vector unsigned int __mask = {0xffffffff, 0, 0, 0}; /* PowerISA VSX does not allow partial (for just lower float) * results. So to insure we don't generate spurious exceptions * (from the upper float values) we splat the lower float * before we to the operation. */ ! __a = vec_splat (__A, 0); ! __b = vec_splat (__B, 0); ! __c = vec_max (__a, __b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return (vec_sel ((__v4sf)__A, __c, __mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_min_ps (__m128 __A, __m128 __B) { ! __vector __bool int __m = vec_cmpgt ((__v4sf) __B, (__v4sf) __A); ! return vec_sel (__B, __A, __m); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_max_ps (__m128 __A, __m128 __B) { ! __vector __bool int __m = vec_cmpgt ((__v4sf) __A, (__v4sf) __B); ! return vec_sel (__B, __A, __m); } /* Perform logical bit-wise operations on 128-bit values. */ *************** _mm_cmpge_ps (__m128 __A, __m128 __B) *** 530,537 **** extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpneq_ps (__m128 __A, __m128 __B) { ! __v4sf temp = (__v4sf ) vec_cmpeq ((__v4sf) __A, (__v4sf)__B); ! return ((__m128)vec_nor (temp, temp)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 530,537 ---- extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpneq_ps (__m128 __A, __m128 __B) { ! __v4sf __temp = (__v4sf ) vec_cmpeq ((__v4sf) __A, (__v4sf)__B); ! return ((__m128)vec_nor (__temp, __temp)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _mm_cmpnge_ps (__m128 __A, __m128 __B) *** 561,591 **** extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpord_ps (__m128 __A, __m128 __B) { ! __vector unsigned int a, b; ! __vector unsigned int c, d; ! static const __vector unsigned int float_exp_mask = { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 }; ! a = (__vector unsigned int) vec_abs ((__v4sf)__A); ! b = (__vector unsigned int) vec_abs ((__v4sf)__B); ! c = (__vector unsigned int) vec_cmpgt (float_exp_mask, a); ! d = (__vector unsigned int) vec_cmpgt (float_exp_mask, b); ! return ((__m128 ) vec_and (c, d)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpunord_ps (__m128 __A, __m128 __B) { ! __vector unsigned int a, b; ! __vector unsigned int c, d; ! static const __vector unsigned int float_exp_mask = { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 }; ! a = (__vector unsigned int) vec_abs ((__v4sf)__A); ! b = (__vector unsigned int) vec_abs ((__v4sf)__B); ! c = (__vector unsigned int) vec_cmpgt (a, float_exp_mask); ! d = (__vector unsigned int) vec_cmpgt (b, float_exp_mask); ! return ((__m128 ) vec_or (c, d)); } /* Perform a comparison on the lower SPFP values of A and B. If the --- 561,591 ---- extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpord_ps (__m128 __A, __m128 __B) { ! __vector unsigned int __a, __b; ! __vector unsigned int __c, __d; ! static const __vector unsigned int __float_exp_mask = { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 }; ! __a = (__vector unsigned int) vec_abs ((__v4sf)__A); ! __b = (__vector unsigned int) vec_abs ((__v4sf)__B); ! __c = (__vector unsigned int) vec_cmpgt (__float_exp_mask, __a); ! __d = (__vector unsigned int) vec_cmpgt (__float_exp_mask, __b); ! return ((__m128 ) vec_and (__c, __d)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpunord_ps (__m128 __A, __m128 __B) { ! __vector unsigned int __a, __b; ! __vector unsigned int __c, __d; ! static const __vector unsigned int __float_exp_mask = { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 }; ! __a = (__vector unsigned int) vec_abs ((__v4sf)__A); ! __b = (__vector unsigned int) vec_abs ((__v4sf)__B); ! __c = (__vector unsigned int) vec_cmpgt (__a, __float_exp_mask); ! __d = (__vector unsigned int) vec_cmpgt (__b, __float_exp_mask); ! return ((__m128 ) vec_or (__c, __d)); } /* Perform a comparison on the lower SPFP values of A and B. If the *************** _mm_cmpunord_ps (__m128 __A, __m128 __B) *** 594,815 **** extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpeq_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf a, b, c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! a = vec_splat ((__v4sf) __A, 0); ! b = vec_splat ((__v4sf) __B, 0); ! c = (__v4sf) vec_cmpeq(a, b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, c, mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmplt_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf a, b, c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! a = vec_splat ((__v4sf) __A, 0); ! b = vec_splat ((__v4sf) __B, 0); ! c = (__v4sf) vec_cmplt(a, b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, c, mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmple_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf a, b, c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! a = vec_splat ((__v4sf) __A, 0); ! b = vec_splat ((__v4sf) __B, 0); ! c = (__v4sf) vec_cmple(a, b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, c, mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpgt_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf a, b, c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! a = vec_splat ((__v4sf) __A, 0); ! b = vec_splat ((__v4sf) __B, 0); ! c = (__v4sf) vec_cmpgt(a, b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, c, mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpge_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf a, b, c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! a = vec_splat ((__v4sf) __A, 0); ! b = vec_splat ((__v4sf) __B, 0); ! c = (__v4sf) vec_cmpge(a, b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, c, mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpneq_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf a, b, c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! a = vec_splat ((__v4sf) __A, 0); ! b = vec_splat ((__v4sf) __B, 0); ! c = (__v4sf) vec_cmpeq(a, b); ! c = vec_nor (c, c); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, c, mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpnlt_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf a, b, c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! a = vec_splat ((__v4sf) __A, 0); ! b = vec_splat ((__v4sf) __B, 0); ! c = (__v4sf) vec_cmpge(a, b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, c, mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpnle_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf a, b, c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! a = vec_splat ((__v4sf) __A, 0); ! b = vec_splat ((__v4sf) __B, 0); ! c = (__v4sf) vec_cmpgt(a, b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, c, mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpngt_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf a, b, c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! a = vec_splat ((__v4sf) __A, 0); ! b = vec_splat ((__v4sf) __B, 0); ! c = (__v4sf) vec_cmple(a, b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, c, mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpnge_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf a, b, c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we do the operation. */ ! a = vec_splat ((__v4sf) __A, 0); ! b = vec_splat ((__v4sf) __B, 0); ! c = (__v4sf) vec_cmplt(a, b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, c, mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpord_ss (__m128 __A, __m128 __B) { ! __vector unsigned int a, b; ! __vector unsigned int c, d; ! static const __vector unsigned int float_exp_mask = { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 }; ! static const __vector unsigned int mask = { 0xffffffff, 0, 0, 0 }; ! a = (__vector unsigned int) vec_abs ((__v4sf)__A); ! b = (__vector unsigned int) vec_abs ((__v4sf)__B); ! c = (__vector unsigned int) vec_cmpgt (float_exp_mask, a); ! d = (__vector unsigned int) vec_cmpgt (float_exp_mask, b); ! c = vec_and (c, d); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, (__v4sf)c, mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpunord_ss (__m128 __A, __m128 __B) { ! __vector unsigned int a, b; ! __vector unsigned int c, d; ! static const __vector unsigned int float_exp_mask = { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 }; ! static const __vector unsigned int mask = { 0xffffffff, 0, 0, 0 }; ! a = (__vector unsigned int) vec_abs ((__v4sf)__A); ! b = (__vector unsigned int) vec_abs ((__v4sf)__B); ! c = (__vector unsigned int) vec_cmpgt (a, float_exp_mask); ! d = (__vector unsigned int) vec_cmpgt (b, float_exp_mask); ! c = vec_or (c, d); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, (__v4sf)c, mask)); } /* Compare the lower SPFP values of A and B and return 1 if true --- 594,815 ---- extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpeq_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int __mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf __a, __b, __c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! __a = vec_splat ((__v4sf) __A, 0); ! __b = vec_splat ((__v4sf) __B, 0); ! __c = (__v4sf) vec_cmpeq (__a, __b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, __c, __mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmplt_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int __mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf __a, __b, __c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! __a = vec_splat ((__v4sf) __A, 0); ! __b = vec_splat ((__v4sf) __B, 0); ! __c = (__v4sf) vec_cmplt(__a, __b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, __c, __mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmple_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int __mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf __a, __b, __c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! __a = vec_splat ((__v4sf) __A, 0); ! __b = vec_splat ((__v4sf) __B, 0); ! __c = (__v4sf) vec_cmple(__a, __b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, __c, __mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpgt_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int __mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf __a, __b, __c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! __a = vec_splat ((__v4sf) __A, 0); ! __b = vec_splat ((__v4sf) __B, 0); ! __c = (__v4sf) vec_cmpgt(__a, __b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, __c, __mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpge_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int __mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf __a, __b, __c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! __a = vec_splat ((__v4sf) __A, 0); ! __b = vec_splat ((__v4sf) __B, 0); ! __c = (__v4sf) vec_cmpge(__a, __b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, __c, __mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpneq_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int __mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf __a, __b, __c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! __a = vec_splat ((__v4sf) __A, 0); ! __b = vec_splat ((__v4sf) __B, 0); ! __c = (__v4sf) vec_cmpeq(__a, __b); ! __c = vec_nor (__c, __c); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, __c, __mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpnlt_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int __mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf __a, __b, __c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! __a = vec_splat ((__v4sf) __A, 0); ! __b = vec_splat ((__v4sf) __B, 0); ! __c = (__v4sf) vec_cmpge(__a, __b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, __c, __mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpnle_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int __mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf __a, __b, __c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! __a = vec_splat ((__v4sf) __A, 0); ! __b = vec_splat ((__v4sf) __B, 0); ! __c = (__v4sf) vec_cmpgt(__a, __b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, __c, __mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpngt_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int __mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf __a, __b, __c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we to the operation. */ ! __a = vec_splat ((__v4sf) __A, 0); ! __b = vec_splat ((__v4sf) __B, 0); ! __c = (__v4sf) vec_cmple(__a, __b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, __c, __mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpnge_ss (__m128 __A, __m128 __B) { ! static const __vector unsigned int __mask = { 0xffffffff, 0, 0, 0 }; ! __v4sf __a, __b, __c; /* PowerISA VMX does not allow partial (for just element 0) * results. So to insure we don't generate spurious exceptions * (from the upper elements) we splat the lower float * before we do the operation. */ ! __a = vec_splat ((__v4sf) __A, 0); ! __b = vec_splat ((__v4sf) __B, 0); ! __c = (__v4sf) vec_cmplt(__a, __b); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, __c, __mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpord_ss (__m128 __A, __m128 __B) { ! __vector unsigned int __a, __b; ! __vector unsigned int __c, __d; ! static const __vector unsigned int __float_exp_mask = { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 }; ! static const __vector unsigned int __mask = { 0xffffffff, 0, 0, 0 }; ! __a = (__vector unsigned int) vec_abs ((__v4sf)__A); ! __b = (__vector unsigned int) vec_abs ((__v4sf)__B); ! __c = (__vector unsigned int) vec_cmpgt (__float_exp_mask, __a); ! __d = (__vector unsigned int) vec_cmpgt (__float_exp_mask, __b); ! __c = vec_and (__c, __d); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, (__v4sf)__c, __mask)); } extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cmpunord_ss (__m128 __A, __m128 __B) { ! __vector unsigned int __a, __b; ! __vector unsigned int __c, __d; ! static const __vector unsigned int __float_exp_mask = { 0x7f800000, 0x7f800000, 0x7f800000, 0x7f800000 }; ! static const __vector unsigned int __mask = { 0xffffffff, 0, 0, 0 }; ! __a = (__vector unsigned int) vec_abs ((__v4sf)__A); ! __b = (__vector unsigned int) vec_abs ((__v4sf)__B); ! __c = (__vector unsigned int) vec_cmpgt (__a, __float_exp_mask); ! __d = (__vector unsigned int) vec_cmpgt (__b, __float_exp_mask); ! __c = vec_or (__c, __d); /* Then we merge the lower float result with the original upper * float elements from __A. */ ! return ((__m128)vec_sel ((__v4sf)__A, (__v4sf)__c, __mask)); } /* Compare the lower SPFP values of A and B and return 1 if true *************** _mm_cvtss_f32 (__m128 __A) *** 905,913 **** extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtss_si32 (__m128 __A) { ! int res; #ifdef _ARCH_PWR8 ! double dtmp; __asm__( #ifdef __LITTLE_ENDIAN__ "xxsldwi %x0,%x0,%x0,3;\n" --- 905,913 ---- extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtss_si32 (__m128 __A) { ! int __res; #ifdef _ARCH_PWR8 ! double __dtmp; __asm__( #ifdef __LITTLE_ENDIAN__ "xxsldwi %x0,%x0,%x0,3;\n" *************** _mm_cvtss_si32 (__m128 __A) *** 916,928 **** "fctiw %2,%2;\n" "mfvsrd %1,%x2;\n" : "+wa" (__A), ! "=r" (res), ! "=f" (dtmp) : ); #else ! res = __builtin_rint(__A[0]); #endif ! return (res); } extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 916,928 ---- "fctiw %2,%2;\n" "mfvsrd %1,%x2;\n" : "+wa" (__A), ! "=r" (__res), ! "=f" (__dtmp) : ); #else ! __res = __builtin_rint(__A[0]); #endif ! return __res; } extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _mm_cvt_ss2si (__m128 __A) *** 938,946 **** extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtss_si64 (__m128 __A) { ! long long res; #if defined (_ARCH_PWR8) && defined (__powerpc64__) ! double dtmp; __asm__( #ifdef __LITTLE_ENDIAN__ "xxsldwi %x0,%x0,%x0,3;\n" --- 938,946 ---- extern __inline long long __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtss_si64 (__m128 __A) { ! long long __res; #if defined (_ARCH_PWR8) && defined (__powerpc64__) ! double __dtmp; __asm__( #ifdef __LITTLE_ENDIAN__ "xxsldwi %x0,%x0,%x0,3;\n" *************** _mm_cvtss_si64 (__m128 __A) *** 949,961 **** "fctid %2,%2;\n" "mfvsrd %1,%x2;\n" : "+wa" (__A), ! "=r" (res), ! "=f" (dtmp) : ); #else ! res = __builtin_llrint(__A[0]); #endif ! return (res); } /* Microsoft intrinsic. */ --- 949,961 ---- "fctid %2,%2;\n" "mfvsrd %1,%x2;\n" : "+wa" (__A), ! "=r" (__res), ! "=f" (__dtmp) : ); #else ! __res = __builtin_llrint(__A[0]); #endif ! return __res; } /* Microsoft intrinsic. */ *************** extern __inline __m64 __attribute__((__g *** 992,1006 **** _mm_cvtps_pi32 (__m128 __A) { /* Splat two lower SPFP values to both halves. */ ! __v4sf temp, rounded; ! __vector unsigned long long result; /* Splat two lower SPFP values to both halves. */ ! temp = (__v4sf) vec_splat ((__vector long long)__A, 0); ! rounded = vec_rint(temp); ! result = (__vector unsigned long long) vec_cts (rounded, 0); ! return (__m64) ((__vector long long) result)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 992,1006 ---- _mm_cvtps_pi32 (__m128 __A) { /* Splat two lower SPFP values to both halves. */ ! __v4sf __temp, __rounded; ! __vector unsigned long long __result; /* Splat two lower SPFP values to both halves. */ ! __temp = (__v4sf) vec_splat ((__vector long long)__A, 0); ! __rounded = vec_rint (__temp); ! __result = (__vector unsigned long long) vec_cts (__rounded, 0); ! return (__m64) ((__vector long long) __result)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** extern __inline int __attribute__((__gnu *** 1014,1022 **** _mm_cvttss_si32 (__m128 __A) { /* Extract the lower float element. */ ! float temp = __A[0]; /* truncate to 32-bit integer and return. */ ! return temp; } extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1014,1022 ---- _mm_cvttss_si32 (__m128 __A) { /* Extract the lower float element. */ ! float __temp = __A[0]; /* truncate to 32-bit integer and return. */ ! return __temp; } extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** extern __inline long long __attribute__( *** 1030,1038 **** _mm_cvttss_si64 (__m128 __A) { /* Extract the lower float element. */ ! float temp = __A[0]; /* truncate to 32-bit integer and return. */ ! return temp; } /* Microsoft intrinsic. */ --- 1030,1038 ---- _mm_cvttss_si64 (__m128 __A) { /* Extract the lower float element. */ ! float __temp = __A[0]; /* truncate to 32-bit integer and return. */ ! return __temp; } /* Microsoft intrinsic. */ *************** extern __inline long long __attribute__( *** 1040,1048 **** _mm_cvttss_si64x (__m128 __A) { /* Extract the lower float element. */ ! float temp = __A[0]; /* truncate to 32-bit integer and return. */ ! return temp; } /* Truncate the two lower SPFP values to 32-bit integers. Return the --- 1040,1048 ---- _mm_cvttss_si64x (__m128 __A) { /* Extract the lower float element. */ ! float __temp = __A[0]; /* truncate to 32-bit integer and return. */ ! return __temp; } /* Truncate the two lower SPFP values to 32-bit integers. Return the *************** _mm_cvttss_si64x (__m128 __A) *** 1050,1063 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvttps_pi32 (__m128 __A) { ! __v4sf temp; ! __vector unsigned long long result; /* Splat two lower SPFP values to both halves. */ ! temp = (__v4sf) vec_splat ((__vector long long)__A, 0); ! result = (__vector unsigned long long) vec_cts (temp, 0); ! return (__m64) ((__vector long long) result)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1050,1063 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvttps_pi32 (__m128 __A) { ! __v4sf __temp; ! __vector unsigned long long __result; /* Splat two lower SPFP values to both halves. */ ! __temp = (__v4sf) vec_splat ((__vector long long)__A, 0); ! __result = (__vector unsigned long long) vec_cts (__temp, 0); ! return (__m64) ((__vector long long) __result)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _mm_cvtt_ps2pi (__m128 __A) *** 1070,1077 **** extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtsi32_ss (__m128 __A, int __B) { ! float temp = __B; ! __A[0] = temp; return __A; } --- 1070,1077 ---- extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtsi32_ss (__m128 __A, int __B) { ! float __temp = __B; ! __A[0] = __temp; return __A; } *************** _mm_cvt_si2ss (__m128 __A, int __B) *** 1087,1094 **** extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtsi64_ss (__m128 __A, long long __B) { ! float temp = __B; ! __A[0] = temp; return __A; } --- 1087,1094 ---- extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtsi64_ss (__m128 __A, long long __B) { ! float __temp = __B; ! __A[0] = __temp; return __A; } *************** _mm_cvtsi64x_ss (__m128 __A, long long _ *** 1105,1118 **** extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpi32_ps (__m128 __A, __m64 __B) { ! __vector signed int vm1; ! __vector float vf1; ! vm1 = (__vector signed int) (__vector unsigned long long) {__B, __B}; ! vf1 = (__vector float) vec_ctf (vm1, 0); return ((__m128) (__vector unsigned long long) ! { ((__vector unsigned long long)vf1) [0], ((__vector unsigned long long)__A) [1]}); } --- 1105,1118 ---- extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpi32_ps (__m128 __A, __m64 __B) { ! __vector signed int __vm1; ! __vector float __vf1; ! __vm1 = (__vector signed int) (__vector unsigned long long) {__B, __B}; ! __vf1 = (__vector float) vec_ctf (__vm1, 0); return ((__m128) (__vector unsigned long long) ! { ((__vector unsigned long long)__vf1) [0], ((__vector unsigned long long)__A) [1]}); } *************** _mm_cvt_pi2ps (__m128 __A, __m64 __B) *** 1126,1179 **** extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpi16_ps (__m64 __A) { ! __vector signed short vs8; ! __vector signed int vi4; ! __vector float vf1; ! vs8 = (__vector signed short) (__vector unsigned long long) { __A, __A }; ! vi4 = vec_vupklsh (vs8); ! vf1 = (__vector float) vec_ctf (vi4, 0); ! return (__m128) vf1; } /* Convert the four unsigned 16-bit values in A to SPFP form. */ extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpu16_ps (__m64 __A) { ! const __vector unsigned short zero = { 0, 0, 0, 0, 0, 0, 0, 0 }; ! __vector unsigned short vs8; ! __vector unsigned int vi4; ! __vector float vf1; ! vs8 = (__vector unsigned short) (__vector unsigned long long) { __A, __A }; ! vi4 = (__vector unsigned int) vec_mergel #ifdef __LITTLE_ENDIAN__ ! (vs8, zero); #else ! (zero, vs8); #endif ! vf1 = (__vector float) vec_ctf (vi4, 0); ! return (__m128) vf1; } /* Convert the low four signed 8-bit values in A to SPFP form. */ extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpi8_ps (__m64 __A) { ! __vector signed char vc16; ! __vector signed short vs8; ! __vector signed int vi4; ! __vector float vf1; ! vc16 = (__vector signed char) (__vector unsigned long long) { __A, __A }; ! vs8 = vec_vupkhsb (vc16); ! vi4 = vec_vupkhsh (vs8); ! vf1 = (__vector float) vec_ctf (vi4, 0); ! return (__m128) vf1; } /* Convert the low four unsigned 8-bit values in A to SPFP form. */ --- 1126,1179 ---- extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpi16_ps (__m64 __A) { ! __vector signed short __vs8; ! __vector signed int __vi4; ! __vector float __vf1; ! __vs8 = (__vector signed short) (__vector unsigned long long) { __A, __A }; ! __vi4 = vec_vupklsh (__vs8); ! __vf1 = (__vector float) vec_ctf (__vi4, 0); ! return (__m128) __vf1; } /* Convert the four unsigned 16-bit values in A to SPFP form. */ extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpu16_ps (__m64 __A) { ! const __vector unsigned short __zero = { 0, 0, 0, 0, 0, 0, 0, 0 }; ! __vector unsigned short __vs8; ! __vector unsigned int __vi4; ! __vector float __vf1; ! __vs8 = (__vector unsigned short) (__vector unsigned long long) { __A, __A }; ! __vi4 = (__vector unsigned int) vec_mergel #ifdef __LITTLE_ENDIAN__ ! (__vs8, __zero); #else ! (__zero, __vs8); #endif ! __vf1 = (__vector float) vec_ctf (__vi4, 0); ! return (__m128) __vf1; } /* Convert the low four signed 8-bit values in A to SPFP form. */ extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpi8_ps (__m64 __A) { ! __vector signed char __vc16; ! __vector signed short __vs8; ! __vector signed int __vi4; ! __vector float __vf1; ! __vc16 = (__vector signed char) (__vector unsigned long long) { __A, __A }; ! __vs8 = vec_vupkhsb (__vc16); ! __vi4 = vec_vupkhsh (__vs8); ! __vf1 = (__vector float) vec_ctf (__vi4, 0); ! return (__m128) __vf1; } /* Convert the low four unsigned 8-bit values in A to SPFP form. */ *************** extern __inline __m128 __attribute__(( *** 1181,1250 **** _mm_cvtpu8_ps (__m64 __A) { ! const __vector unsigned char zero = { 0, 0, 0, 0, 0, 0, 0, 0 }; ! __vector unsigned char vc16; ! __vector unsigned short vs8; ! __vector unsigned int vi4; ! __vector float vf1; ! vc16 = (__vector unsigned char) (__vector unsigned long long) { __A, __A }; #ifdef __LITTLE_ENDIAN__ ! vs8 = (__vector unsigned short) vec_mergel (vc16, zero); ! vi4 = (__vector unsigned int) vec_mergeh (vs8, ! (__vector unsigned short) zero); #else ! vs8 = (__vector unsigned short) vec_mergel (zero, vc16); ! vi4 = (__vector unsigned int) vec_mergeh ((__vector unsigned short) zero, ! vs8); #endif ! vf1 = (__vector float) vec_ctf (vi4, 0); ! return (__m128) vf1; } /* Convert the four signed 32-bit values in A and B to SPFP form. */ extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpi32x2_ps (__m64 __A, __m64 __B) { ! __vector signed int vi4; ! __vector float vf4; ! vi4 = (__vector signed int) (__vector unsigned long long) { __A, __B }; ! vf4 = (__vector float) vec_ctf (vi4, 0); ! return (__m128) vf4; } /* Convert the four SPFP values in A to four signed 16-bit integers. */ extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtps_pi16 (__m128 __A) { ! __v4sf rounded; ! __vector signed int temp; ! __vector unsigned long long result; ! rounded = vec_rint(__A); ! temp = vec_cts (rounded, 0); ! result = (__vector unsigned long long) vec_pack (temp, temp); ! return (__m64) ((__vector long long) result)[0]; } /* Convert the four SPFP values in A to four signed 8-bit integers. */ extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtps_pi8 (__m128 __A) { ! __v4sf rounded; ! __vector signed int tmp_i; ! static const __vector signed int zero = {0, 0, 0, 0}; ! __vector signed short tmp_s; ! __vector signed char res_v; ! rounded = vec_rint(__A); ! tmp_i = vec_cts (rounded, 0); ! tmp_s = vec_pack (tmp_i, zero); ! res_v = vec_pack (tmp_s, tmp_s); ! return (__m64) ((__vector long long) res_v)[0]; } /* Selects four specific SPFP values from A and B based on MASK. */ --- 1181,1250 ---- _mm_cvtpu8_ps (__m64 __A) { ! const __vector unsigned char __zero = { 0, 0, 0, 0, 0, 0, 0, 0 }; ! __vector unsigned char __vc16; ! __vector unsigned short __vs8; ! __vector unsigned int __vi4; ! __vector float __vf1; ! __vc16 = (__vector unsigned char) (__vector unsigned long long) { __A, __A }; #ifdef __LITTLE_ENDIAN__ ! __vs8 = (__vector unsigned short) vec_mergel (__vc16, __zero); ! __vi4 = (__vector unsigned int) vec_mergeh (__vs8, ! (__vector unsigned short) __zero); #else ! __vs8 = (__vector unsigned short) vec_mergel (__zero, __vc16); ! __vi4 = (__vector unsigned int) vec_mergeh ((__vector unsigned short) __zero, ! __vs8); #endif ! __vf1 = (__vector float) vec_ctf (__vi4, 0); ! return (__m128) __vf1; } /* Convert the four signed 32-bit values in A and B to SPFP form. */ extern __inline __m128 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtpi32x2_ps (__m64 __A, __m64 __B) { ! __vector signed int __vi4; ! __vector float __vf4; ! __vi4 = (__vector signed int) (__vector unsigned long long) { __A, __B }; ! __vf4 = (__vector float) vec_ctf (__vi4, 0); ! return (__m128) __vf4; } /* Convert the four SPFP values in A to four signed 16-bit integers. */ extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtps_pi16 (__m128 __A) { ! __v4sf __rounded; ! __vector signed int __temp; ! __vector unsigned long long __result; ! __rounded = vec_rint(__A); ! __temp = vec_cts (__rounded, 0); ! __result = (__vector unsigned long long) vec_pack (__temp, __temp); ! return (__m64) ((__vector long long) __result)[0]; } /* Convert the four SPFP values in A to four signed 8-bit integers. */ extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_cvtps_pi8 (__m128 __A) { ! __v4sf __rounded; ! __vector signed int __tmp_i; ! static const __vector signed int __zero = {0, 0, 0, 0}; ! __vector signed short __tmp_s; ! __vector signed char __res_v; ! __rounded = vec_rint(__A); ! __tmp_i = vec_cts (__rounded, 0); ! __tmp_s = vec_pack (__tmp_i, __zero); ! __res_v = vec_pack (__tmp_s, __tmp_s); ! return (__m64) ((__vector long long) __res_v)[0]; } /* Selects four specific SPFP values from A and B based on MASK. */ *************** extern __inline __m128 __attribute__(( *** 1252,1262 **** _mm_shuffle_ps (__m128 __A, __m128 __B, int const __mask) { ! unsigned long element_selector_10 = __mask & 0x03; ! unsigned long element_selector_32 = (__mask >> 2) & 0x03; ! unsigned long element_selector_54 = (__mask >> 4) & 0x03; ! unsigned long element_selector_76 = (__mask >> 6) & 0x03; ! static const unsigned int permute_selectors[4] = { #ifdef __LITTLE_ENDIAN__ 0x03020100, 0x07060504, 0x0B0A0908, 0x0F0E0D0C --- 1252,1262 ---- _mm_shuffle_ps (__m128 __A, __m128 __B, int const __mask) { ! unsigned long __element_selector_10 = __mask & 0x03; ! unsigned long __element_selector_32 = (__mask >> 2) & 0x03; ! unsigned long __element_selector_54 = (__mask >> 4) & 0x03; ! unsigned long __element_selector_76 = (__mask >> 6) & 0x03; ! static const unsigned int __permute_selectors[4] = { #ifdef __LITTLE_ENDIAN__ 0x03020100, 0x07060504, 0x0B0A0908, 0x0F0E0D0C *************** _mm_shuffle_ps (__m128 __A, __m128 __B *** 1264,1276 **** 0x00010203, 0x04050607, 0x08090A0B, 0x0C0D0E0F #endif }; ! __vector unsigned int t; ! t[0] = permute_selectors[element_selector_10]; ! t[1] = permute_selectors[element_selector_32]; ! t[2] = permute_selectors[element_selector_54] + 0x10101010; ! t[3] = permute_selectors[element_selector_76] + 0x10101010; ! return vec_perm ((__v4sf) __A, (__v4sf)__B, (__vector unsigned char)t); } /* Selects and interleaves the upper two SPFP values from A and B. */ --- 1264,1276 ---- 0x00010203, 0x04050607, 0x08090A0B, 0x0C0D0E0F #endif }; ! __vector unsigned int __t; ! __t[0] = __permute_selectors[__element_selector_10]; ! __t[1] = __permute_selectors[__element_selector_32]; ! __t[2] = __permute_selectors[__element_selector_54] + 0x10101010; ! __t[3] = __permute_selectors[__element_selector_76] + 0x10101010; ! return vec_perm ((__v4sf) __A, (__v4sf)__B, (__vector unsigned char)__t); } /* Selects and interleaves the upper two SPFP values from A and B. */ *************** _mm_storel_pi (__m64 *__P, __m128 __A) *** 1352,1359 **** extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_movemask_ps (__m128 __A) { ! __vector unsigned long long result; ! static const __vector unsigned int perm_mask = { #ifdef __LITTLE_ENDIAN__ 0x00204060, 0x80808080, 0x80808080, 0x80808080 --- 1352,1359 ---- extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_movemask_ps (__m128 __A) { ! __vector unsigned long long __result; ! static const __vector unsigned int __perm_mask = { #ifdef __LITTLE_ENDIAN__ 0x00204060, 0x80808080, 0x80808080, 0x80808080 *************** _mm_movemask_ps (__m128 __A) *** 1362,1375 **** #endif }; ! result = ((__vector unsigned long long) vec_vbpermq ((__vector unsigned char) __A, ! (__vector unsigned char) perm_mask)); #ifdef __LITTLE_ENDIAN__ ! return result[1]; #else ! return result[0]; #endif } #endif /* _ARCH_PWR8 */ --- 1362,1375 ---- #endif }; ! __result = ((__vector unsigned long long) vec_vbpermq ((__vector unsigned char) __A, ! (__vector unsigned char) __perm_mask)); #ifdef __LITTLE_ENDIAN__ ! return __result[1]; #else ! return __result[0]; #endif } #endif /* _ARCH_PWR8 */ *************** _mm_load_ps1 (float const *__P) *** 1391,1402 **** extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_extract_pi16 (__m64 const __A, int const __N) { ! unsigned int shiftr = __N & 3; #ifdef __BIG_ENDIAN__ ! shiftr = 3 - shiftr; #endif ! return ((__A >> (shiftr * 16)) & 0xffff); } extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1391,1402 ---- extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_extract_pi16 (__m64 const __A, int const __N) { ! unsigned int __shiftr = __N & 3; #ifdef __BIG_ENDIAN__ ! __shiftr = 3 - __shiftr; #endif ! return ((__A >> (__shiftr * 16)) & 0xffff); } extern __inline int __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_pextrw (__m64 const __A, int const __ *** 1410,1421 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_insert_pi16 (__m64 const __A, int const __D, int const __N) { ! const int shiftl = (__N & 3) * 16; ! const __m64 shiftD = (const __m64) __D << shiftl; ! const __m64 mask = 0xffffUL << shiftl; ! __m64 result = (__A & (~mask)) | (shiftD & mask); ! return (result); } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1410,1421 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_insert_pi16 (__m64 const __A, int const __D, int const __N) { ! const int __shiftl = (__N & 3) * 16; ! const __m64 __shiftD = (const __m64) __D << __shiftl; ! const __m64 __mask = 0xffffUL << __shiftl; ! __m64 __result = (__A & (~__mask)) | (__shiftD & __mask); ! return __result; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** extern __inline __m64 __attribute__((__g *** 1430,1459 **** _mm_max_pi16 (__m64 __A, __m64 __B) { #if _ARCH_PWR8 ! __vector signed short a, b, r; ! __vector __bool short c; ! a = (__vector signed short)vec_splats (__A); ! b = (__vector signed short)vec_splats (__B); ! c = (__vector __bool short)vec_cmpgt (a, b); ! r = vec_sel (b, a, c); ! return (__m64) ((__vector long long) r)[0]; #else ! __m64_union m1, m2, res; ! m1.as_m64 = __A; ! m2.as_m64 = __B; ! res.as_short[0] = ! (m1.as_short[0] > m2.as_short[0]) ? m1.as_short[0] : m2.as_short[0]; ! res.as_short[1] = ! (m1.as_short[1] > m2.as_short[1]) ? m1.as_short[1] : m2.as_short[1]; ! res.as_short[2] = ! (m1.as_short[2] > m2.as_short[2]) ? m1.as_short[2] : m2.as_short[2]; ! res.as_short[3] = ! (m1.as_short[3] > m2.as_short[3]) ? m1.as_short[3] : m2.as_short[3]; ! return (__m64) res.as_m64; #endif } --- 1430,1459 ---- _mm_max_pi16 (__m64 __A, __m64 __B) { #if _ARCH_PWR8 ! __vector signed short __a, __b, __r; ! __vector __bool short __c; ! __a = (__vector signed short)vec_splats (__A); ! __b = (__vector signed short)vec_splats (__B); ! __c = (__vector __bool short)vec_cmpgt (__a, __b); ! __r = vec_sel (__b, __a, __c); ! return (__m64) ((__vector long long) __r)[0]; #else ! __m64_union __m1, __m2, __res; ! __m1.as_m64 = __A; ! __m2.as_m64 = __B; ! __res.as_short[0] = ! (__m1.as_short[0] > __m2.as_short[0]) ? __m1.as_short[0] : __m2.as_short[0]; ! __res.as_short[1] = ! (__m1.as_short[1] > __m2.as_short[1]) ? __m1.as_short[1] : __m2.as_short[1]; ! __res.as_short[2] = ! (__m1.as_short[2] > __m2.as_short[2]) ? __m1.as_short[2] : __m2.as_short[2]; ! __res.as_short[3] = ! (__m1.as_short[3] > __m2.as_short[3]) ? __m1.as_short[3] : __m2.as_short[3]; ! return (__m64) __res.as_m64; #endif } *************** extern __inline __m64 __attribute__((__g *** 1468,1495 **** _mm_max_pu8 (__m64 __A, __m64 __B) { #if _ARCH_PWR8 ! __vector unsigned char a, b, r; ! __vector __bool char c; ! a = (__vector unsigned char)vec_splats (__A); ! b = (__vector unsigned char)vec_splats (__B); ! c = (__vector __bool char)vec_cmpgt (a, b); ! r = vec_sel (b, a, c); ! return (__m64) ((__vector long long) r)[0]; #else ! __m64_union m1, m2, res; ! long i; ! ! m1.as_m64 = __A; ! m2.as_m64 = __B; ! for (i = 0; i < 8; i++) ! res.as_char[i] = ! ((unsigned char) m1.as_char[i] > (unsigned char) m2.as_char[i]) ? ! m1.as_char[i] : m2.as_char[i]; ! return (__m64) res.as_m64; #endif } --- 1468,1494 ---- _mm_max_pu8 (__m64 __A, __m64 __B) { #if _ARCH_PWR8 ! __vector unsigned char __a, __b, __r; ! __vector __bool char __c; ! __a = (__vector unsigned char)vec_splats (__A); ! __b = (__vector unsigned char)vec_splats (__B); ! __c = (__vector __bool char)vec_cmpgt (__a, __b); ! __r = vec_sel (__b, __a, __c); ! return (__m64) ((__vector long long) __r)[0]; #else ! __m64_union __m1, __m2, __res; ! long __i; + __m1.as_m64 = __A; + __m2.as_m64 = __B; ! for (__i = 0; __i < 8; __i++) ! __res.as_char[__i] = ! ((unsigned char) __m1.as_char[__i] > (unsigned char) __m2.as_char[__i]) ? ! __m1.as_char[__i] : __m2.as_char[__i]; ! return (__m64) __res.as_m64; #endif } *************** extern __inline __m64 __attribute__((__g *** 1504,1533 **** _mm_min_pi16 (__m64 __A, __m64 __B) { #if _ARCH_PWR8 ! __vector signed short a, b, r; ! __vector __bool short c; ! a = (__vector signed short)vec_splats (__A); ! b = (__vector signed short)vec_splats (__B); ! c = (__vector __bool short)vec_cmplt (a, b); ! r = vec_sel (b, a, c); ! return (__m64) ((__vector long long) r)[0]; #else ! __m64_union m1, m2, res; ! m1.as_m64 = __A; ! m2.as_m64 = __B; ! res.as_short[0] = ! (m1.as_short[0] < m2.as_short[0]) ? m1.as_short[0] : m2.as_short[0]; ! res.as_short[1] = ! (m1.as_short[1] < m2.as_short[1]) ? m1.as_short[1] : m2.as_short[1]; ! res.as_short[2] = ! (m1.as_short[2] < m2.as_short[2]) ? m1.as_short[2] : m2.as_short[2]; ! res.as_short[3] = ! (m1.as_short[3] < m2.as_short[3]) ? m1.as_short[3] : m2.as_short[3]; ! return (__m64) res.as_m64; #endif } --- 1503,1532 ---- _mm_min_pi16 (__m64 __A, __m64 __B) { #if _ARCH_PWR8 ! __vector signed short __a, __b, __r; ! __vector __bool short __c; ! __a = (__vector signed short)vec_splats (__A); ! __b = (__vector signed short)vec_splats (__B); ! __c = (__vector __bool short)vec_cmplt (__a, __b); ! __r = vec_sel (__b, __a, __c); ! return (__m64) ((__vector long long) __r)[0]; #else ! __m64_union __m1, __m2, __res; ! __m1.as_m64 = __A; ! __m2.as_m64 = __B; ! __res.as_short[0] = ! (__m1.as_short[0] < __m2.as_short[0]) ? __m1.as_short[0] : __m2.as_short[0]; ! __res.as_short[1] = ! (__m1.as_short[1] < __m2.as_short[1]) ? __m1.as_short[1] : __m2.as_short[1]; ! __res.as_short[2] = ! (__m1.as_short[2] < __m2.as_short[2]) ? __m1.as_short[2] : __m2.as_short[2]; ! __res.as_short[3] = ! (__m1.as_short[3] < __m2.as_short[3]) ? __m1.as_short[3] : __m2.as_short[3]; ! return (__m64) __res.as_m64; #endif } *************** extern __inline __m64 __attribute__((__g *** 1542,1569 **** _mm_min_pu8 (__m64 __A, __m64 __B) { #if _ARCH_PWR8 ! __vector unsigned char a, b, r; ! __vector __bool char c; ! a = (__vector unsigned char)vec_splats (__A); ! b = (__vector unsigned char)vec_splats (__B); ! c = (__vector __bool char)vec_cmplt (a, b); ! r = vec_sel (b, a, c); ! return (__m64) ((__vector long long) r)[0]; #else ! __m64_union m1, m2, res; ! long i; ! m1.as_m64 = __A; ! m2.as_m64 = __B; ! for (i = 0; i < 8; i++) ! res.as_char[i] = ! ((unsigned char) m1.as_char[i] < (unsigned char) m2.as_char[i]) ? ! m1.as_char[i] : m2.as_char[i]; ! return (__m64) res.as_m64; #endif } --- 1541,1568 ---- _mm_min_pu8 (__m64 __A, __m64 __B) { #if _ARCH_PWR8 ! __vector unsigned char __a, __b, __r; ! __vector __bool char __c; ! __a = (__vector unsigned char)vec_splats (__A); ! __b = (__vector unsigned char)vec_splats (__B); ! __c = (__vector __bool char)vec_cmplt (__a, __b); ! __r = vec_sel (__b, __a, __c); ! return (__m64) ((__vector long long) __r)[0]; #else ! __m64_union __m1, __m2, __res; ! long __i; ! __m1.as_m64 = __A; ! __m2.as_m64 = __B; ! for (__i = 0; __i < 8; __i++) ! __res.as_char[__i] = ! ((unsigned char) __m1.as_char[__i] < (unsigned char) __m2.as_char[__i]) ? ! __m1.as_char[__i] : __m2.as_char[__i]; ! return (__m64) __res.as_m64; #endif } *************** extern __inline int __attribute__((__gnu *** 1578,1601 **** _mm_movemask_pi8 (__m64 __A) { #ifdef __powerpc64__ ! unsigned long long p = #ifdef __LITTLE_ENDIAN__ 0x0008101820283038UL; // permute control for sign bits #else 0x3830282018100800UL; // permute control for sign bits #endif ! return __builtin_bpermd (p, __A); #else #ifdef __LITTLE_ENDIAN__ ! unsigned int mask = 0x20283038UL; ! unsigned int r1 = __builtin_bpermd (mask, __A) & 0xf; ! unsigned int r2 = __builtin_bpermd (mask, __A >> 32) & 0xf; #else ! unsigned int mask = 0x38302820UL; ! unsigned int r1 = __builtin_bpermd (mask, __A >> 32) & 0xf; ! unsigned int r2 = __builtin_bpermd (mask, __A) & 0xf; #endif ! return (r2 << 4) | r1; #endif } --- 1577,1600 ---- _mm_movemask_pi8 (__m64 __A) { #ifdef __powerpc64__ ! unsigned long long __p = #ifdef __LITTLE_ENDIAN__ 0x0008101820283038UL; // permute control for sign bits #else 0x3830282018100800UL; // permute control for sign bits #endif ! return __builtin_bpermd (__p, __A); #else #ifdef __LITTLE_ENDIAN__ ! unsigned int __mask = 0x20283038UL; ! unsigned int __r1 = __builtin_bpermd (__mask, __A) & 0xf; ! unsigned int __r2 = __builtin_bpermd (__mask, __A >> 32) & 0xf; #else ! unsigned int __mask = 0x38302820UL; ! unsigned int __r1 = __builtin_bpermd (__mask, __A >> 32) & 0xf; ! unsigned int __r2 = __builtin_bpermd (__mask, __A) & 0xf; #endif ! return (__r2 << 4) | __r1; #endif } *************** _m_pmovmskb (__m64 __A) *** 1610,1619 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_mulhi_pu16 (__m64 __A, __m64 __B) { ! __vector unsigned short a, b; ! __vector unsigned short c; ! __vector unsigned int w0, w1; ! __vector unsigned char xform1 = { #ifdef __LITTLE_ENDIAN__ 0x02, 0x03, 0x12, 0x13, 0x06, 0x07, 0x16, 0x17, 0x0A, 0x0B, 0x1A, 0x1B, 0x0E, 0x0F, 0x1E, 0x1F --- 1609,1618 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_mulhi_pu16 (__m64 __A, __m64 __B) { ! __vector unsigned short __a, __b; ! __vector unsigned short __c; ! __vector unsigned int __w0, __w1; ! __vector unsigned char __xform1 = { #ifdef __LITTLE_ENDIAN__ 0x02, 0x03, 0x12, 0x13, 0x06, 0x07, 0x16, 0x17, 0x0A, 0x0B, 0x1A, 0x1B, 0x0E, 0x0F, 0x1E, 0x1F *************** _mm_mulhi_pu16 (__m64 __A, __m64 __B) *** 1623,1636 **** #endif }; ! a = (__vector unsigned short)vec_splats (__A); ! b = (__vector unsigned short)vec_splats (__B); ! w0 = vec_vmuleuh (a, b); ! w1 = vec_vmulouh (a, b); ! c = (__vector unsigned short)vec_perm (w0, w1, xform1); ! return (__m64) ((__vector long long) c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1622,1635 ---- #endif }; ! __a = (__vector unsigned short)vec_splats (__A); ! __b = (__vector unsigned short)vec_splats (__B); ! __w0 = vec_vmuleuh (__a, __b); ! __w1 = vec_vmulouh (__a, __b); ! __c = (__vector unsigned short)vec_perm (__w0, __w1, __xform1); ! return (__m64) ((__vector long long) __c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_pmulhuw (__m64 __A, __m64 __B) *** 1644,1654 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_shuffle_pi16 (__m64 __A, int const __N) { ! unsigned long element_selector_10 = __N & 0x03; ! unsigned long element_selector_32 = (__N >> 2) & 0x03; ! unsigned long element_selector_54 = (__N >> 4) & 0x03; ! unsigned long element_selector_76 = (__N >> 6) & 0x03; ! static const unsigned short permute_selectors[4] = { #ifdef __LITTLE_ENDIAN__ 0x0908, 0x0B0A, 0x0D0C, 0x0F0E --- 1643,1653 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_shuffle_pi16 (__m64 __A, int const __N) { ! unsigned long __element_selector_10 = __N & 0x03; ! unsigned long __element_selector_32 = (__N >> 2) & 0x03; ! unsigned long __element_selector_54 = (__N >> 4) & 0x03; ! unsigned long __element_selector_76 = (__N >> 6) & 0x03; ! static const unsigned short __permute_selectors[4] = { #ifdef __LITTLE_ENDIAN__ 0x0908, 0x0B0A, 0x0D0C, 0x0F0E *************** _mm_shuffle_pi16 (__m64 __A, int const _ *** 1656,1679 **** 0x0607, 0x0405, 0x0203, 0x0001 #endif }; ! __m64_union t; ! __vector unsigned long long a, p, r; #ifdef __LITTLE_ENDIAN__ ! t.as_short[0] = permute_selectors[element_selector_10]; ! t.as_short[1] = permute_selectors[element_selector_32]; ! t.as_short[2] = permute_selectors[element_selector_54]; ! t.as_short[3] = permute_selectors[element_selector_76]; #else ! t.as_short[3] = permute_selectors[element_selector_10]; ! t.as_short[2] = permute_selectors[element_selector_32]; ! t.as_short[1] = permute_selectors[element_selector_54]; ! t.as_short[0] = permute_selectors[element_selector_76]; #endif ! p = vec_splats (t.as_m64); ! a = vec_splats (__A); ! r = vec_perm (a, a, (__vector unsigned char)p); ! return (__m64) ((__vector long long) r)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1655,1678 ---- 0x0607, 0x0405, 0x0203, 0x0001 #endif }; ! __m64_union __t; ! __vector unsigned long long __a, __p, __r; #ifdef __LITTLE_ENDIAN__ ! __t.as_short[0] = __permute_selectors[__element_selector_10]; ! __t.as_short[1] = __permute_selectors[__element_selector_32]; ! __t.as_short[2] = __permute_selectors[__element_selector_54]; ! __t.as_short[3] = __permute_selectors[__element_selector_76]; #else ! __t.as_short[3] = __permute_selectors[__element_selector_10]; ! __t.as_short[2] = __permute_selectors[__element_selector_32]; ! __t.as_short[1] = __permute_selectors[__element_selector_54]; ! __t.as_short[0] = __permute_selectors[__element_selector_76]; #endif ! __p = vec_splats (__t.as_m64); ! __a = vec_splats (__A); ! __r = vec_perm (__a, __a, (__vector unsigned char)__p); ! return (__m64) ((__vector long long) __r)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_pshufw (__m64 __A, int const __N) *** 1688,1701 **** extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_maskmove_si64 (__m64 __A, __m64 __N, char *__P) { ! __m64 hibit = 0x8080808080808080UL; ! __m64 mask, tmp; ! __m64 *p = (__m64*)__P; ! tmp = *p; ! mask = _mm_cmpeq_pi8 ((__N & hibit), hibit); ! tmp = (tmp & (~mask)) | (__A & mask); ! *p = tmp; } extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1687,1700 ---- extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_maskmove_si64 (__m64 __A, __m64 __N, char *__P) { ! __m64 __hibit = 0x8080808080808080UL; ! __m64 __mask, __tmp; ! __m64 *__p = (__m64*)__P; ! __tmp = *__p; ! __mask = _mm_cmpeq_pi8 ((__N & __hibit), __hibit); ! __tmp = (__tmp & (~__mask)) | (__A & __mask); ! *__p = __tmp; } extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_maskmovq (__m64 __A, __m64 __N, char *** 1708,1719 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_avg_pu8 (__m64 __A, __m64 __B) { ! __vector unsigned char a, b, c; ! a = (__vector unsigned char)vec_splats (__A); ! b = (__vector unsigned char)vec_splats (__B); ! c = vec_avg (a, b); ! return (__m64) ((__vector long long) c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1707,1718 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_avg_pu8 (__m64 __A, __m64 __B) { ! __vector unsigned char __a, __b, __c; ! __a = (__vector unsigned char)vec_splats (__A); ! __b = (__vector unsigned char)vec_splats (__B); ! __c = vec_avg (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_pavgb (__m64 __A, __m64 __B) *** 1726,1737 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_avg_pu16 (__m64 __A, __m64 __B) { ! __vector unsigned short a, b, c; ! a = (__vector unsigned short)vec_splats (__A); ! b = (__vector unsigned short)vec_splats (__B); ! c = vec_avg (a, b); ! return (__m64) ((__vector long long) c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1725,1736 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_avg_pu16 (__m64 __A, __m64 __B) { ! __vector unsigned short __a, __b, __c; ! __a = (__vector unsigned short)vec_splats (__A); ! __b = (__vector unsigned short)vec_splats (__B); ! __c = vec_avg (__a, __b); ! return (__m64) ((__vector long long) __c)[0]; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) *************** _m_pavgw (__m64 __A, __m64 __B) *** 1746,1771 **** extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sad_pu8 (__m64 __A, __m64 __B) { ! __vector unsigned char a, b; ! __vector unsigned char vmin, vmax, vabsdiff; ! __vector signed int vsum; ! const __vector unsigned int zero = { 0, 0, 0, 0 }; ! __m64_union result = {0}; ! a = (__vector unsigned char) (__vector unsigned long long) { 0UL, __A }; ! b = (__vector unsigned char) (__vector unsigned long long) { 0UL, __B }; ! vmin = vec_min (a, b); ! vmax = vec_max (a, b); ! vabsdiff = vec_sub (vmax, vmin); /* Sum four groups of bytes into integers. */ ! vsum = (__vector signed int) vec_sum4s (vabsdiff, zero); /* Sum across four integers with integer result. */ ! vsum = vec_sums (vsum, (__vector signed int) zero); /* The sum is in the right most 32-bits of the vector result. Transfer to a GPR and truncate to 16 bits. */ ! result.as_short[0] = vsum[3]; ! return result.as_m64; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) --- 1745,1770 ---- extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _mm_sad_pu8 (__m64 __A, __m64 __B) { ! __vector unsigned char __a, __b; ! __vector unsigned char __vmin, __vmax, __vabsdiff; ! __vector signed int __vsum; ! const __vector unsigned int __zero = { 0, 0, 0, 0 }; ! __m64_union __result = {0}; ! __a = (__vector unsigned char) (__vector unsigned long long) { 0UL, __A }; ! __b = (__vector unsigned char) (__vector unsigned long long) { 0UL, __B }; ! __vmin = vec_min (__a, __b); ! __vmax = vec_max (__a, __b); ! __vabsdiff = vec_sub (__vmax, __vmin); /* Sum four groups of bytes into integers. */ ! __vsum = (__vector signed int) vec_sum4s (__vabsdiff, __zero); /* Sum across four integers with integer result. */ ! __vsum = vec_sums (__vsum, (__vector signed int) __zero); /* The sum is in the right most 32-bits of the vector result. Transfer to a GPR and truncate to 16 bits. */ ! __result.as_short[0] = __vsum[3]; ! return __result.as_m64; } extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__)) diff -Nrcpad gcc-11.3.0/gcc/config/s390/s390.c gcc-11.4.0/gcc/config/s390/s390.c *** gcc-11.3.0/gcc/config/s390/s390.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/config/s390/s390.c Mon May 29 08:46:29 2023 *************** s390_call_saved_register_used (tree call *** 13679,13714 **** function_arg_info arg (TREE_TYPE (parameter), /*named=*/true); apply_pass_by_reference_rules (&cum_v, arg); ! parm_rtx = s390_function_arg (cum, arg); ! ! s390_function_arg_advance (cum, arg); ! if (!parm_rtx) ! continue; ! if (REG_P (parm_rtx)) ! { ! for (reg = 0; reg < REG_NREGS (parm_rtx); reg++) ! if (!call_used_or_fixed_reg_p (reg + REGNO (parm_rtx))) ! return true; ! } ! if (GET_CODE (parm_rtx) == PARALLEL) ! { ! int i; ! for (i = 0; i < XVECLEN (parm_rtx, 0); i++) ! { ! rtx r = XEXP (XVECEXP (parm_rtx, 0, i), 0); ! gcc_assert (REG_P (r)); ! for (reg = 0; reg < REG_NREGS (r); reg++) ! if (!call_used_or_fixed_reg_p (reg + REGNO (r))) ! return true; ! } ! } } return false; } --- 13679,13715 ---- function_arg_info arg (TREE_TYPE (parameter), /*named=*/true); apply_pass_by_reference_rules (&cum_v, arg); ! parm_rtx = s390_function_arg (cum, arg); ! s390_function_arg_advance (cum, arg); ! if (!parm_rtx) ! continue; ! if (REG_P (parm_rtx)) ! { ! int size = s390_function_arg_size (arg.mode, arg.type); ! int nregs = (size + UNITS_PER_LONG - 1) / UNITS_PER_LONG; ! for (reg = 0; reg < nregs; reg++) ! if (!call_used_or_fixed_reg_p (reg + REGNO (parm_rtx))) ! return true; ! } ! else if (GET_CODE (parm_rtx) == PARALLEL) ! { ! int i; ! for (i = 0; i < XVECLEN (parm_rtx, 0); i++) ! { ! rtx r = XEXP (XVECEXP (parm_rtx, 0, i), 0); ! gcc_assert (REG_P (r)); ! gcc_assert (REG_NREGS (r) == 1); + if (!call_used_or_fixed_reg_p (REGNO (r))) + return true; + } + } } return false; } diff -Nrcpad gcc-11.3.0/gcc/config/sparc/sparc.c gcc-11.4.0/gcc/config/sparc/sparc.c *** gcc-11.3.0/gcc/config/sparc/sparc.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/config/sparc/sparc.c Mon May 29 08:46:29 2023 *************** sparc_expand_prologue (void) *** 6122,6127 **** --- 6122,6130 ---- } RTX_FRAME_RELATED_P (insn) = 1; + + /* Ensure no memory access is done before the frame is established. */ + emit_insn (gen_frame_blockage ()); } else { *************** sparc_expand_prologue (void) *** 6136,6148 **** /* %sp is not the CFA register anymore. */ emit_insn (gen_stack_pointer_inc (GEN_INT (4096 - size))); ! /* Make sure no %fp-based store is issued until after the frame is ! established. The offset between the frame pointer and the stack ! pointer is calculated relative to the value of the stack pointer ! at the end of the function prologue, and moving instructions that ! access the stack via the frame pointer between the instructions ! that decrement the stack pointer could result in accessing the ! register window save area, which is volatile. */ emit_insn (gen_frame_blockage ()); } else --- 6139,6145 ---- /* %sp is not the CFA register anymore. */ emit_insn (gen_stack_pointer_inc (GEN_INT (4096 - size))); ! /* Likewise. */ emit_insn (gen_frame_blockage ()); } else *************** sparc_flat_expand_prologue (void) *** 6238,6245 **** } RTX_FRAME_RELATED_P (insn) = 1; ! /* Ensure nothing is scheduled until after the frame is established. */ ! emit_insn (gen_blockage ()); if (frame_pointer_needed) { --- 6235,6242 ---- } RTX_FRAME_RELATED_P (insn) = 1; ! /* Ensure no memory access is done before the frame is established. */ ! emit_insn (gen_frame_blockage ()); if (frame_pointer_needed) { *************** sparc_expand_epilogue (bool for_eh) *** 6326,6331 **** --- 6323,6331 ---- ; /* do nothing. */ else if (sparc_leaf_function_p) { + /* Ensure no memory access is done after the frame is destroyed. */ + emit_insn (gen_frame_blockage ()); + if (size <= 4096) emit_insn (gen_stack_pointer_inc (GEN_INT (size))); else if (size <= 8192) *************** sparc_flat_expand_epilogue (bool for_eh) *** 6376,6390 **** ; /* do nothing. */ else if (frame_pointer_needed) { ! /* Make sure the frame is destroyed after everything else is done. */ ! emit_insn (gen_blockage ()); emit_move_insn (stack_pointer_rtx, gen_rtx_REG (Pmode, 1)); } else { /* Likewise. */ ! emit_insn (gen_blockage ()); if (size <= 4096) emit_insn (gen_stack_pointer_inc (GEN_INT (size))); --- 6376,6390 ---- ; /* do nothing. */ else if (frame_pointer_needed) { ! /* Ensure no memory access is done after the frame is destroyed. */ ! emit_insn (gen_frame_blockage ()); emit_move_insn (stack_pointer_rtx, gen_rtx_REG (Pmode, 1)); } else { /* Likewise. */ ! emit_insn (gen_frame_blockage ()); if (size <= 4096) emit_insn (gen_stack_pointer_inc (GEN_INT (size))); *************** epilogue_renumber (rtx *where, int test) *** 8956,8963 **** if (REGNO (*where) >= 8 && REGNO (*where) < 24) /* oX or lX */ return 1; if (! test && REGNO (*where) >= 24 && REGNO (*where) < 32) ! *where = gen_rtx_REG (GET_MODE (*where), OUTGOING_REGNO (REGNO(*where))); ! /* fallthrough */ case SCRATCH: case CC0: case PC: --- 8956,8975 ---- if (REGNO (*where) >= 8 && REGNO (*where) < 24) /* oX or lX */ return 1; if (! test && REGNO (*where) >= 24 && REGNO (*where) < 32) ! { ! if (ORIGINAL_REGNO (*where)) ! { ! rtx n = gen_raw_REG (GET_MODE (*where), ! OUTGOING_REGNO (REGNO (*where))); ! ORIGINAL_REGNO (n) = ORIGINAL_REGNO (*where); ! *where = n; ! } ! else ! *where = gen_rtx_REG (GET_MODE (*where), ! OUTGOING_REGNO (REGNO (*where))); ! } ! return 0; ! case SCRATCH: case CC0: case PC: *************** sparc_vectorize_vec_perm_const (machine_ *** 13074,13082 **** if (!TARGET_VIS2) return false; ! /* All permutes are supported. */ if (!target) ! return true; /* Force target-independent code to convert constant permutations on other modes down to V8QI. Rely on this to avoid the complexity of the byte --- 13086,13094 ---- if (!TARGET_VIS2) return false; ! /* All 8-byte permutes are supported. */ if (!target) ! return GET_MODE_SIZE (vmode) == 8; /* Force target-independent code to convert constant permutations on other modes down to V8QI. Rely on this to avoid the complexity of the byte *************** sparc_expand_conditional_move (machine_m *** 13693,13710 **** void sparc_expand_vcond (machine_mode mode, rtx *operands, int ccode, int fcode) { rtx mask, cop0, cop1, fcmp, cmask, bshuf, gsr; - enum rtx_code code = GET_CODE (operands[3]); mask = gen_reg_rtx (Pmode); cop0 = operands[4]; cop1 = operands[5]; if (code == LT || code == GE) { - rtx t; - code = swap_condition (code); ! t = cop0; cop0 = cop1; cop1 = t; } gsr = gen_rtx_REG (DImode, SPARC_GSR_REG); --- 13705,13720 ---- void sparc_expand_vcond (machine_mode mode, rtx *operands, int ccode, int fcode) { + enum rtx_code code = signed_condition (GET_CODE (operands[3])); rtx mask, cop0, cop1, fcmp, cmask, bshuf, gsr; mask = gen_reg_rtx (Pmode); cop0 = operands[4]; cop1 = operands[5]; if (code == LT || code == GE) { code = swap_condition (code); ! std::swap (cop0, cop1); } gsr = gen_rtx_REG (DImode, SPARC_GSR_REG); diff -Nrcpad gcc-11.3.0/gcc/config/sparc/sparc.md gcc-11.4.0/gcc/config/sparc/sparc.md *** gcc-11.3.0/gcc/config/sparc/sparc.md Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/config/sparc/sparc.md Mon May 29 08:46:29 2023 *************** visl") *** 9033,9038 **** --- 9033,9082 ---- DONE; }) + (define_expand "vcondv8qiv8qi" + [(match_operand:V8QI 0 "register_operand" "") + (match_operand:V8QI 1 "register_operand" "") + (match_operand:V8QI 2 "register_operand" "") + (match_operator 3 "" + [(match_operand:V8QI 4 "register_operand" "") + (match_operand:V8QI 5 "register_operand" "")])] + "TARGET_VIS4" + { + sparc_expand_vcond (V8QImode, operands, UNSPEC_CMASK8, UNSPEC_FCMP); + DONE; + }) + + (define_insn "fucmp8_vis" + [(set (match_operand:P 0 "register_operand" "=r") + (unspec:P [(gcond:V8QI (match_operand:V8QI 1 "register_operand" "e") + (match_operand:V8QI 2 "register_operand" "e"))] + UNSPEC_FUCMP))] + "TARGET_VIS3" + "fucmp8\t%1, %2, %0" + [(set_attr "type" "viscmp")]) + + (define_insn "fpcmpu_vis" + [(set (match_operand:P 0 "register_operand" "=r") + (unspec:P [(gcond:GCM (match_operand:GCM 1 "register_operand" "e") + (match_operand:GCM 2 "register_operand" "e"))] + UNSPEC_FUCMP))] + "TARGET_VIS4" + "fpcmpu\t%1, %2, %0" + [(set_attr "type" "viscmp")]) + + (define_expand "vcondu" + [(match_operand:GCM 0 "register_operand" "") + (match_operand:GCM 1 "register_operand" "") + (match_operand:GCM 2 "register_operand" "") + (match_operator 3 "" + [(match_operand:GCM 4 "register_operand" "") + (match_operand:GCM 5 "register_operand" "")])] + "TARGET_VIS4" + { + sparc_expand_vcond (mode, operands, UNSPEC_CMASK, UNSPEC_FUCMP); + DONE; + }) + (define_expand "vconduv8qiv8qi" [(match_operand:V8QI 0 "register_operand" "") (match_operand:V8QI 1 "register_operand" "") *************** visl") *** 9351,9374 **** [(set_attr "type" "fga") (set_attr "subtype" "other")]) - (define_insn "fucmp8_vis" - [(set (match_operand:P 0 "register_operand" "=r") - (unspec:P [(gcond:V8QI (match_operand:V8QI 1 "register_operand" "e") - (match_operand:V8QI 2 "register_operand" "e"))] - UNSPEC_FUCMP))] - "TARGET_VIS3" - "fucmp8\t%1, %2, %0" - [(set_attr "type" "viscmp")]) - - (define_insn "fpcmpu_vis" - [(set (match_operand:P 0 "register_operand" "=r") - (unspec:P [(gcond:GCM (match_operand:GCM 1 "register_operand" "e") - (match_operand:GCM 2 "register_operand" "e"))] - UNSPEC_FUCMP))] - "TARGET_VIS4" - "fpcmpu\t%1, %2, %0" - [(set_attr "type" "viscmp")]) - (define_insn "*naddsf3" [(set (match_operand:SF 0 "register_operand" "=f") (neg:SF (plus:SF (match_operand:SF 1 "register_operand" "f") --- 9395,9400 ---- diff -Nrcpad gcc-11.3.0/gcc/config/tilepro/gen-mul-tables.cc gcc-11.4.0/gcc/config/tilepro/gen-mul-tables.cc *** gcc-11.3.0/gcc/config/tilepro/gen-mul-tables.cc Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/config/tilepro/gen-mul-tables.cc Mon May 29 08:46:29 2023 *************** tilegx_emit (long long multiplier, int n *** 1190,1200 **** long long next_pow10; while (((j * 10) < abs_multiplier) ! && (j < (INTMAX_MAX / 10))) j = j * 10; prev_pow10 = j; ! next_pow10 = (j > (INTMAX_MAX / 10)) ? 0 : j * 10; if ((abs_multiplier - prev_pow10 <= 100) || (next_pow10 --- 1190,1200 ---- long long next_pow10; while (((j * 10) < abs_multiplier) ! && (j < (j * 10))) j = j * 10; prev_pow10 = j; ! next_pow10 = j * 10; if ((abs_multiplier - prev_pow10 <= 100) || (next_pow10 diff -Nrcpad gcc-11.3.0/gcc/config/xtensa/xtensa.md gcc-11.4.0/gcc/config/xtensa/xtensa.md *** gcc-11.3.0/gcc/config/xtensa/xtensa.md Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/config/xtensa/xtensa.md Mon May 29 08:46:29 2023 *************** *** 754,764 **** because of offering further optimization opportunities. */ if (register_operand (operands[0], DImode)) { ! rtx first, second; ! split_double (operands[1], &first, &second); ! emit_insn (gen_movsi (gen_lowpart (SImode, operands[0]), first)); ! emit_insn (gen_movsi (gen_highpart (SImode, operands[0]), second)); DONE; } --- 754,767 ---- because of offering further optimization opportunities. */ if (register_operand (operands[0], DImode)) { ! rtx lowpart, highpart; ! if (TARGET_BIG_ENDIAN) ! split_double (operands[1], &highpart, &lowpart); ! else ! split_double (operands[1], &lowpart, &highpart); ! emit_insn (gen_movsi (gen_lowpart (SImode, operands[0]), lowpart)); ! emit_insn (gen_movsi (gen_highpart (SImode, operands[0]), highpart)); DONE; } diff -Nrcpad gcc-11.3.0/gcc/config.gcc gcc-11.4.0/gcc/config.gcc *** gcc-11.3.0/gcc/config.gcc Thu Apr 21 07:58:52 2022 --- gcc-11.4.0/gcc/config.gcc Mon May 29 08:46:29 2023 *************** case ${target} in *** 699,704 **** --- 699,718 ---- macos_min=0 fi def_ld64=85.2 + # Tools hosted on earlier versions of Darwin constrained all object + # alignment to be 2^15 or smaller. From Darwin11 (macOS 10.7) the + # alignment of non-common is allowed to be up to 2^28. Note that the + # larger alignment is permitted when targeting 10.6 from 10.7 so that + # the constraint only need be applied per host (and only if the host + # is Darwin). + case ${host} in + *-*-darwin[4-9]* | *-*-darwin10*) + tm_defines="$tm_defines L2_MAX_OFILE_ALIGNMENT=15U" + ;; + *) + tm_defines="$tm_defines L2_MAX_OFILE_ALIGNMENT=28U" + ;; + esac case ${target} in # Darwin 4 to 19 correspond to macOS 10.0 to 10.15 *-*-darwin[4-9]* | *-*-darwin1[0-9]*) *************** hppa[12]*-*-hpux11*) *** 1872,1878 **** dwarf2=no fi ;; ! i[34567]86-*-darwin1[89]*) echo "Error: 32bit target is not supported after Darwin17" 1>&2 ;; i[34567]86-*-darwin*) --- 1886,1892 ---- dwarf2=no fi ;; ! i[34567]86-*-darwin1[89]* | i[34567]86-*-darwin2*) echo "Error: 32bit target is not supported after Darwin17" 1>&2 ;; i[34567]86-*-darwin*) *************** i[34567]86-*-darwin*) *** 1882,1888 **** tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch t-slibgcc" tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h" ;; ! x86_64-*-darwin1[89]* | x86_64-*-darwin2[01]*) # Only 64b from now with_cpu=${with_cpu:-core2} tmake_file="${tmake_file} t-slibgcc" --- 1896,1902 ---- tmake_file="${tmake_file} ${cpu_type}/t-darwin32-biarch t-slibgcc" tm_file="${tm_file} ${cpu_type}/darwin32-biarch.h" ;; ! x86_64-*-darwin1[89]* | x86_64-*-darwin2*) # Only 64b from now with_cpu=${with_cpu:-core2} tmake_file="${tmake_file} t-slibgcc" diff -Nrcpad gcc-11.3.0/gcc/configure gcc-11.4.0/gcc/configure *** gcc-11.3.0/gcc/configure Thu Apr 21 07:59:35 2022 --- gcc-11.4.0/gcc/configure Mon May 29 08:46:29 2023 *************** $as_echo "$as_me: WARNING: LTO for $targ *** 27016,27022 **** ;; esac case $target_os in ! darwin2[0-9]* | darwin19*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for llvm assembler x86-pad-for-align option" >&5 $as_echo_n "checking assembler for llvm assembler x86-pad-for-align option... " >&6; } if ${gcc_cv_as_mllvm_x86_pad_for_align+:} false; then : --- 27016,27022 ---- ;; esac case $target_os in ! darwin2* | darwin19*) { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for llvm assembler x86-pad-for-align option" >&5 $as_echo_n "checking assembler for llvm assembler x86-pad-for-align option... " >&6; } if ${gcc_cv_as_mllvm_x86_pad_for_align+:} false; then : diff -Nrcpad gcc-11.3.0/gcc/configure.ac gcc-11.4.0/gcc/configure.ac *** gcc-11.3.0/gcc/configure.ac Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/configure.ac Mon May 29 08:46:29 2023 *************** foo: nop *** 4772,4778 **** ;; esac case $target_os in ! darwin2[[0-9]]* | darwin19*) gcc_GAS_CHECK_FEATURE([llvm assembler x86-pad-for-align option], gcc_cv_as_mllvm_x86_pad_for_align,, [-mllvm -x86-pad-for-align=false], [.text],, --- 4772,4778 ---- ;; esac case $target_os in ! darwin2* | darwin19*) gcc_GAS_CHECK_FEATURE([llvm assembler x86-pad-for-align option], gcc_cv_as_mllvm_x86_pad_for_align,, [-mllvm -x86-pad-for-align=false], [.text],, diff -Nrcpad gcc-11.3.0/gcc/cp/ChangeLog gcc-11.4.0/gcc/cp/ChangeLog *** gcc-11.3.0/gcc/cp/ChangeLog Thu Apr 21 07:59:16 2022 --- gcc-11.4.0/gcc/cp/ChangeLog Mon May 29 08:46:50 2023 *************** *** 1,3 **** --- 1,542 ---- + 2023-05-29 Release Manager + + * GCC 11.4.0 released. + + 2023-05-22 Patrick Palka + + Backported from master: + 2023-03-03 Patrick Palka + + PR c++/108998 + * pt.c (el_data::skipped_trees): New data member. + (extract_locals_r): Push to skipped_trees any unevaluated + contexts that we skipped over. + (extract_local_specs): For the second walk, start from each + tree in skipped_trees. + + 2023-05-22 Patrick Palka + + Backported from master: + 2022-12-15 Patrick Palka + + PR c++/100295 + PR c++/107579 + * pt.c (el_data::skip_unevaluated_operands): New data member. + (extract_locals_r): If skip_unevaluated_operands is true, + don't walk into unevaluated contexts. + (extract_local_specs): Walk the pattern twice, first with + skip_unevaluated_operands true followed by it set to false. + + 2023-05-22 Patrick Palka + + Backported from master: + 2022-11-29 Patrick Palka + + PR c++/107864 + * decl.c (function_requirements_equivalent_p): Don't check + DECL_TEMPLATE_SPECIALIZATION. + * pt.c (determine_specialization): Propagate constraints when + specializing a function template too. Simplify by using + add_outermost_template_args. + + 2023-05-22 Patrick Palka + + Backported from master: + 2022-11-03 Patrick Palka + + PR c++/107179 + * constraint.cc (tsubst_requires_expr): Make sure we're not + deferring access checks. + + 2023-05-22 Patrick Palka + + Backported from master: + 2022-03-30 Patrick Palka + + PR c++/100474 + * constraint.cc (diagnose_trait_expr): Handle all remaining + traits appropriately. Remove default case. + + 2023-05-22 Patrick Palka + + Backported from master: + 2022-03-12 Patrick Palka + + PR c++/104527 + * constraint.cc (normalize_atom): Set + ATOMIC_CONSTR_EXPR_FROM_CONCEPT_P appropriately. + (get_mapped_args): Make static, adjust parameters. Always + return a vector whose depth corresponds to the template depth of + the context of the atomic constraint expression. Micro-optimize + by passing false as exact to safe_grow_cleared and by collapsing + a multi-level depth-one argument vector. + (satisfy_atom): Adjust call to get_mapped_args and + diagnose_atomic_constraint. + (diagnose_atomic_constraint): Replace map parameter with an args + parameter. + * cp-tree.h (ATOMIC_CONSTR_EXPR_FROM_CONCEPT_P): Define. + (get_mapped_args): Remove declaration. + + 2023-05-22 Patrick Palka + + Backported from master: + 2022-01-28 Patrick Palka + Jason Merrill + + PR c++/92752 + * typeck.c (build_ptrmemfunc): Cast a nullptr constant to the + unqualified pointer type not the qualified one. + + 2023-05-16 Iain Sandoe + + Backported from master: + 2023-04-09 Iain Sandoe + + * coroutines.cc (coro_rewrite_function_body): Ensure that added + bind expressions have scope blocks. + + 2023-05-16 Iain Sandoe + + Backported from master: + 2023-04-01 Iain Sandoe + + PR c++/101118 + * coroutines.cc (flatten_await_stmt): Use the current count of + promoted temporaries to build a unique name for the frame entries. + + 2023-05-09 Jason Merrill + + PR c++/106740 + PR c++/105852 + * decl.c (duplicate_decls): Change non-templated friend + check to an assert. + * pt.c (tsubst_function_decl): Don't set DECL_TEMPLATE_INFO + on non-templated friends. + (tsubst_friend_function): Adjust. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-04-12 Jakub Jelinek + + * Make-lang.in (s-cp-module-version): New target. + (cp/module.o): Depend on it. + (MODULE_VERSION): Remove variable. + (CFLAGS-cp/module.o): For -DMODULE_VERSION= argument just + cat s-cp-module-version. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-03-20 Jakub Jelinek + + PR c++/109164 + * cp-tree.h (var_needs_tls_wrapper): Declare. + * decl2.c (var_needs_tls_wrapper): No longer static. + * decl.c (cp_finish_decl): Clear TREE_READONLY on TLS variables + for which a TLS wrapper will be needed. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-03-14 Jakub Jelinek + + PR c++/109096 + * tree.c (record_has_unique_obj_representations): Ignore unnamed + bitfields. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-03-10 Jakub Jelinek + + PR c++/107558 + * decl.c (cp_finish_decl): Don't clear TREE_READONLY on + automatic non-aggregate variables just because of + -fmerge-all-constants. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-03-02 Jakub Jelinek + + PR debug/108716 + * cp-gimplify.c (cp_genericize_r) : Set + DECL_SOURCE_LOCATION on IMPORTED_DECL to expression location + of USING_STMT or input_location. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-01-24 Jakub Jelinek + + PR c++/108474 + * cp-gimplify.c (cp_fold_r): Handle structured bindings + vars like anon union artificial vars. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-01-14 Jakub Jelinek + + PR c++/108365 + * typeck.c (cp_build_binary_op): For integral division or modulo, + shorten if type0 is unsigned, or op0 is cast from narrower unsigned + integral type or stripped_op1 is INTEGER_CST other than -1. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-02-01 Jakub Jelinek + + PR c++/108607 + * constexpr.c (cxx_eval_constant_expression): Handle OMP_* + and OACC_* constructs as non-constant. + (potential_constant_expression_1): Handle OMP_SCAN. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-01-19 Jakub Jelinek + + PR c++/53932 + * cp-gimplify.c (cp_fold_r): During cp_fully_fold_init replace + DECL_ANON_UNION_VAR_P VAR_DECLs with their corresponding + DECL_VALUE_EXPR. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2022-12-21 Jakub Jelinek + + PR c++/108180 + * pt.c (tsubst_expr): Don't call cp_finish_decl on + DECL_OMP_PRIVATIZED_MEMBER vars. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2022-12-15 Jakub Jelinek + + PR c++/107065 + * typeck.c (cp_build_unary_op) : If + invert_truthvalue_loc returns obvalue_p, wrap it into NON_LVALUE_EXPR. + * parser.c (cp_parser_binary_expression): Don't call + warn_logical_not_parentheses if current.lhs is a NON_LVALUE_EXPR + of a decl with boolean type. + + 2023-04-22 Jason Merrill + + PR c++/105996 + * typeck.c (build_ptrmemfunc): Drop 0-offset optimization + and location wrappers. + + 2023-04-22 Jason Merrill + + PR c++/108975 + * lambda.c (prune_lambda_captures): Don't bother in a template. + + 2023-04-22 Jason Merrill + + PR c++/69410 + * friend.c (do_friend): Handle namespace as scope argument. + * decl.c (grokdeclarator): Pass down in_namespace. + + 2023-04-22 Jason Merrill + + PR c++/101869 + * semantics.c (finish_qualified_id_expr): Don't try to build a + pointer-to-member if the scope is an enumeration. + + 2023-04-22 Jason Merrill + + PR c++/105406 + * coroutines.cc (build_co_await): Handle lvalue 'o'. + + 2023-04-22 Jason Merrill + + PR c++/103871 + PR c++/98056 + * typeck.c (cp_build_modify_expr): Allow array initialization of + DECL_ARTIFICIAL variable. + + 2023-04-22 Jason Merrill + + PR c++/108468 + * pt.c (unify_pack_expansion): Check that TPARMS_PRIMARY_TEMPLATE + is non-null. + + 2023-03-13 Arsen Arsenović + + PR c++/106188 + PR c++/106713 + * coroutines.cc (coro_rewrite_function_body): Ensure we have a + BIND_EXPR wrapping the function body. + + 2023-02-15 Marek Polacek + + Backported from master: + 2023-02-15 Marek Polacek + + PR c++/106675 + * call.c (joust_maybe_elide_copy): Return false for ck_ambig. + + 2022-12-16 Patrick Palka + + Backported from master: + 2021-10-28 Patrick Palka + + PR c++/102780 + PR c++/108138 + * constexpr.c (potential_constant_expression_1) : + When tf_error isn't set, preemptively check potentiality of the + second operand before performing trial evaluation of the first + operand. + (potential_constant_expression_1): When tf_error is set, first check + potentiality quietly and return true if successful, otherwise + proceed noisily to give errors. + + 2022-11-18 Marek Polacek + + Backported from master: + 2022-11-18 Marek Polacek + + PR c++/104066 + * decl.c (grokdeclarator): Check funcdecl_p before complaining + about constinit. + + 2022-11-04 Jakub Jelinek + + Backported from master: + 2022-10-24 Jakub Jelinek + + PR c++/105774 + * constexpr.c (cxx_eval_increment_expression): For signed types + that promote to int, evaluate PLUS_EXPR or MINUS_EXPR in int type. + + 2022-11-04 Jakub Jelinek + + Backported from master: + 2022-08-16 Jakub Jelinek + + * typeck.c (cp_build_modify_expr): Implement + P2327R1 - De-deprecating volatile compound operations. Don't warn + for |=, &= or ^= with volatile lhs. + * expr.c (mark_use) : Adjust warning wording, + leave out simple. + + 2022-10-24 Marek Polacek + + Backported from master: + 2022-05-27 Marek Polacek + + PR c++/105725 + * parser.c (class_decl_loc_t::add): Check CLASS_TYPE_P. + + 2022-07-22 Jason Merrill + + PR c++/106361 + * decl.c (move_fn_p): Remove assert. + + 2022-07-01 Jason Merrill + + PR c++/106024 + * parser.c (cp_parser_lookup_name): Don't look in dependent lambda. + + 2022-06-24 Jason Merrill + + PR c++/105925 + * decl.c (reshape_init_array_1): Set + CONSTRUCTOR_IS_DESIGNATED_INIT here. + (reshape_init_class): And here. + + 2022-06-08 Jason Merrill + + PR c++/105852 + PR c++/105761 + * decl.c (duplicate_decls): Avoid copying template info + from non-templated friend even if newdecl isn't a definition. + Correct handling of DECL_UNIQUE_FRIEND_P on templates. + * pt.c (non_templated_friend_p): New. + * cp-tree.h (non_templated_friend_p): Declare it. + + 2022-06-03 Jason Merrill + + PR c++/105761 + * decl.c (duplicate_decls): Don't copy DECL_TEMPLATE_INFO + from a hidden friend. + + 2022-06-03 Jason Merrill + + PR c++/105795 + * constexpr.c (cxx_eval_bare_aggregate): Always call + init_subob_ctx. + + 2022-05-31 Jason Merrill + + PR c++/102307 + * decl.c (check_initializer): Use build_cplus_new in case of + constexpr failure. + + 2022-05-13 Jason Merrill + + PR c++/101442 + * decl.c (cp_finish_decl): Don't pass decl to push_cleanup. + * init.c (perform_member_init): Likewise. + * semantics.c (push_cleanup): Adjust comment. + + 2022-05-13 Jason Merrill + + PR c++/101698 + * pt.c (tsubst_baselink): Also check dependent optype. + + 2022-05-13 Jason Merrill + + PR c++/65211 + * pt.c (tsubst_decl) [TYPE_DECL]: Copy TYPE_ALIGN. + + 2022-05-13 Patrick Palka + + Backported from master: + 2021-09-27 Patrick Palka + + PR c++/102479 + * pt.c (rewrite_template_parm): Handle single-level tsubst_args. + Avoid a tree cycle when assigning the DECL_TEMPLATE_PARMS for a + rewritten ttp. + (alias_ctad_tweaks): Set current_template_parms accordingly. + + 2022-05-13 Jason Merrill + + PR c++/102300 + * parser.c (cp_parser_template_name): Use dependent_scope_p. + + 2022-05-12 Jason Merrill + + PR c++/102629 + * pt.c (gen_elem_of_pack_expansion_instantiation): Clear + TEMPLATE_TYPE_PARAMETER_PACK on auto. + + 2022-05-12 Jason Merrill + + PR c++/104646 + * constexpr.c (maybe_save_constexpr_fundef): Don't do extra + checks for defaulted ctors. + + 2022-05-12 Jason Merrill + + PR c++/82980 + * lambda.c (type_deducible_expression_p): New. + (lambda_capture_field_type): Check it. + + 2022-05-12 Jason Merrill + + PR c++/105265 + PR c++/100838 + * call.c (build_user_type_conversion_1): Drop + flag_elide_constructors check. + (convert_like_internal): Likewise. + + 2022-05-12 Jason Merrill + + PR c++/105245 + PR c++/100111 + * constexpr.c (cxx_eval_store_expression): Build a CONSTRUCTOR + as needed in empty base handling. + + 2022-05-12 Jason Merrill + + PR c++/104669 + * decl.c (decls_match): Compare versions even if not recording. + (duplicate_decls): Propagate attributes to alias. + * decl2.c (find_last_decl): Give up if versioned. + + 2022-05-12 Jason Merrill + + PR c++/102071 + * init.c (build_new_1): Include cookie in alignment. Omit + constexpr wrapper from alloc_call. + + 2022-05-12 Jason Merrill + + PR c++/104142 + * decl.c (check_initializer): Check TREE_SIDE_EFFECTS. + + 2022-05-06 Jakub Jelinek + + Backported from master: + 2022-05-04 Jakub Jelinek + + * lambda.c: Include decl.h. + (maybe_add_lambda_conv_op): Temporarily override deprecated_state to + DEPRECATED_SUPPRESS. + + 2022-04-28 Patrick Palka + + Backported from master: + 2022-04-26 Patrick Palka + + PR c++/105386 + * semantics.c (finish_decltype_type): Pass tf_decltype to + instantiate_non_dependent_expr_sfinae. + + 2022-04-28 Patrick Palka + + Backported from master: + 2022-04-26 Patrick Palka + + PR c++/105289 + PR c++/86193 + * pt.c (process_partial_specialization): Downgrade "partial + specialization isn't more specialized" diagnostic from permerror + to an on-by-default pedwarn. + (unify) : When substituting into the + NTTP type a second time, use the original type not the + substituted type. + + 2022-04-28 Marek Polacek + + Backported from master: + 2022-04-28 Marek Polacek + + PR c++/90107 + * parser.c (cp_parser_class_specifier_1): Accept :: after a class + definition. + + 2022-04-27 Marek Polacek + + Backported from master: + 2022-04-27 Marek Polacek + + PR c++/105398 + * pt.c (uses_template_parms): Return false for any NAMESPACE_DECL. + + 2022-04-22 Marek Polacek + + Backported from master: + 2022-04-21 Marek Polacek + + PR c++/105321 + * constexpr.c (cxx_eval_logical_expression): Always pass false for lval + to cxx_eval_constant_expression. + + 2022-04-22 Marek Polacek + + Backported from master: + 2022-04-13 Marek Polacek + + PR c++/97296 + * call.c (direct_reference_binding): strip_top_quals when creating + a ck_qual. + + 2022-04-21 Matthias Kretz + + Backported from master: + 2021-12-19 Matthias Kretz + + * module.cc (trees_out::get_merge_kind): NAMESPACE_DECLs also + cannot have a DECL_TEMPLATE_INFO. + 2022-04-21 Release Manager * GCC 11.3.0 released. diff -Nrcpad gcc-11.3.0/gcc/cp/Make-lang.in gcc-11.4.0/gcc/cp/Make-lang.in *** gcc-11.3.0/gcc/cp/Make-lang.in Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/cp/Make-lang.in Mon May 29 08:46:29 2023 *************** CFLAGS-cp/module.o += -DHOST_MACHINE=\"$ *** 59,70 **** # In non-release builds, use a date-related module version. ifneq ($(DEVPHASE_c),) ! # Some date's don't grok 'r', if so, simply use today's ! # date (don't bootstrap at midnight). ! MODULE_VERSION := $(shell date -r $(srcdir)/cp/module.cc '+%y%m%d-%H%M' \ ! 2>/dev/null || date '+%y%m%d-0000' 2>/dev/null || echo 0) ! ! CFLAGS-cp/module.o += -DMODULE_VERSION='($(subst -,,$(MODULE_VERSION))U)' endif # Create the compiler driver for g++. --- 59,79 ---- # In non-release builds, use a date-related module version. ifneq ($(DEVPHASE_c),) ! # Some date's don't grok 'r', if so, simply use today's date, ! # but use date from previous stage if bootstrapping to avoid breaking ! # bootstraps across midnight. ! s-cp-module-version: $(srcdir)/cp/module.cc ! MODULE_VERSION=`if date -r $(srcdir)/cp/module.cc '+%y%m%d%H%MU' \ ! 2>/dev/null; then :; \ ! elif test ../prev-gcc/s-cp-module-version -nt \ ! $(srcdir)/cp/module.cc; then \ ! cat ../prev-gcc/s-cp-module-version; \ ! else \ ! date '+%y%m%d0000U' 2>/dev/null; \ ! fi`; \ ! echo $${MODULE_VERSION} > s-cp-module-version ! cp/module.o: s-cp-module-version ! CFLAGS-cp/module.o += -DMODULE_VERSION='$(shell cat s-cp-module-version)' endif # Create the compiler driver for g++. diff -Nrcpad gcc-11.3.0/gcc/cp/call.c gcc-11.4.0/gcc/cp/call.c *** gcc-11.3.0/gcc/cp/call.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/cp/call.c Mon May 29 08:46:29 2023 *************** direct_reference_binding (tree type, con *** 1683,1690 **** because the types "int *" and "const int *const" are reference-related and we were binding both directly and they had the same rank. To break it up, we add a ck_qual under the ! ck_ref_bind so that conversion sequence ranking chooses #1. */ ! conv = build_conv (ck_qual, t, conv); return build_conv (ck_ref_bind, type, conv); } --- 1683,1701 ---- because the types "int *" and "const int *const" are reference-related and we were binding both directly and they had the same rank. To break it up, we add a ck_qual under the ! ck_ref_bind so that conversion sequence ranking chooses #1. ! ! We strip_top_quals here which is also what standard_conversion ! does. Failure to do so would confuse comp_cv_qual_signature ! into thinking that in ! ! void f(const int * const &); // #1 ! void f(const int *); // #2 ! int *x; ! f(x); ! ! #2 is a better match than #1 even though they're ambiguous (97296). */ ! conv = build_conv (ck_qual, strip_top_quals (t), conv); return build_conv (ck_ref_bind, type, conv); } *************** build_user_type_conversion_1 (tree totyp *** 4117,4123 **** We represent this in the conversion sequence with an rvalue conversion, which means a constructor call. */ if (!TYPE_REF_P (totype) ! && (flag_elide_constructors || (flags & LOOKUP_ONLYCONVERTING)) && !(convflags & LOOKUP_NO_TEMP_BIND)) cand->second_conv = build_conv (ck_rvalue, totype, cand->second_conv); --- 4128,4135 ---- We represent this in the conversion sequence with an rvalue conversion, which means a constructor call. */ if (!TYPE_REF_P (totype) ! && cxx_dialect < cxx17 ! && (flags & LOOKUP_ONLYCONVERTING) && !(convflags & LOOKUP_NO_TEMP_BIND)) cand->second_conv = build_conv (ck_rvalue, totype, cand->second_conv); *************** convert_like_internal (conversion *convs *** 7804,7816 **** break; }; - tsubst_flags_t sub_complain = complain; - if (!flag_elide_constructors) - sub_complain &= ~tf_no_cleanup; expr = convert_like (next_conversion (convs), expr, fn, argnum, convs->kind == ck_ref_bind ? issue_conversion_warnings : false, ! c_cast_p, sub_complain); if (expr == error_mark_node) return error_mark_node; --- 7816,7825 ---- break; }; expr = convert_like (next_conversion (convs), expr, fn, argnum, convs->kind == ck_ref_bind ? issue_conversion_warnings : false, ! c_cast_p, complain & ~tf_no_cleanup); if (expr == error_mark_node) return error_mark_node; *************** joust_maybe_elide_copy (z_candidate *&ca *** 11584,11589 **** --- 11593,11600 ---- if (!DECL_COPY_CONSTRUCTOR_P (fn) && !DECL_MOVE_CONSTRUCTOR_P (fn)) return false; conversion *conv = cand->convs[0]; + if (conv->kind == ck_ambig) + return false; gcc_checking_assert (conv->kind == ck_ref_bind); conv = next_conversion (conv); if (conv->kind == ck_user && !TYPE_REF_P (conv->type)) diff -Nrcpad gcc-11.3.0/gcc/cp/constexpr.c gcc-11.4.0/gcc/cp/constexpr.c *** gcc-11.3.0/gcc/cp/constexpr.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/cp/constexpr.c Mon May 29 08:46:29 2023 *************** maybe_save_constexpr_fundef (tree fun) *** 890,896 **** if (!potential && !DECL_GENERATED_P (fun)) require_potential_rvalue_constant_expression (massaged); ! if (DECL_CONSTRUCTOR_P (fun) && cx_check_missing_mem_inits (DECL_CONTEXT (fun), massaged, !DECL_GENERATED_P (fun))) potential = false; --- 890,896 ---- if (!potential && !DECL_GENERATED_P (fun)) require_potential_rvalue_constant_expression (massaged); ! if (DECL_CONSTRUCTOR_P (fun) && !DECL_DEFAULTED_FN (fun) && cx_check_missing_mem_inits (DECL_CONTEXT (fun), massaged, !DECL_GENERATED_P (fun))) potential = false; *************** cxx_eval_bit_cast (const constexpr_ctx * *** 4280,4298 **** static tree cxx_eval_logical_expression (const constexpr_ctx *ctx, tree t, tree bailout_value, tree continue_value, ! bool lval, ! bool *non_constant_p, bool *overflow_p) { tree r; tree lhs = cxx_eval_constant_expression (ctx, TREE_OPERAND (t, 0), ! lval, ! non_constant_p, overflow_p); VERIFY_CONSTANT (lhs); if (tree_int_cst_equal (lhs, bailout_value)) return lhs; gcc_assert (tree_int_cst_equal (lhs, continue_value)); r = cxx_eval_constant_expression (ctx, TREE_OPERAND (t, 1), ! lval, non_constant_p, overflow_p); VERIFY_CONSTANT (r); return r; --- 4280,4297 ---- static tree cxx_eval_logical_expression (const constexpr_ctx *ctx, tree t, tree bailout_value, tree continue_value, ! bool, bool *non_constant_p, bool *overflow_p) { tree r; tree lhs = cxx_eval_constant_expression (ctx, TREE_OPERAND (t, 0), ! /*lval*/false, non_constant_p, ! overflow_p); VERIFY_CONSTANT (lhs); if (tree_int_cst_equal (lhs, bailout_value)) return lhs; gcc_assert (tree_int_cst_equal (lhs, continue_value)); r = cxx_eval_constant_expression (ctx, TREE_OPERAND (t, 1), ! /*lval*/false, non_constant_p, overflow_p); VERIFY_CONSTANT (r); return r; *************** cxx_eval_bare_aggregate (const constexpr *** 4468,4479 **** tree orig_value = value; /* Like in cxx_eval_store_expression, omit entries for empty fields. */ bool no_slot = TREE_CODE (type) == RECORD_TYPE && is_empty_field (index); ! if (no_slot) ! new_ctx = *ctx; ! else ! init_subob_ctx (ctx, new_ctx, index, value); int pos_hint = -1; ! if (new_ctx.ctor != ctx->ctor) { /* If we built a new CONSTRUCTOR, attach it now so that other initializers can refer to it. */ --- 4467,4475 ---- tree orig_value = value; /* Like in cxx_eval_store_expression, omit entries for empty fields. */ bool no_slot = TREE_CODE (type) == RECORD_TYPE && is_empty_field (index); ! init_subob_ctx (ctx, new_ctx, index, value); int pos_hint = -1; ! if (new_ctx.ctor != ctx->ctor && !no_slot) { /* If we built a new CONSTRUCTOR, attach it now so that other initializers can refer to it. */ *************** cxx_eval_store_expression (const constex *** 5579,5584 **** --- 5575,5586 ---- { /* See above on initialization of empty bases. */ gcc_assert (is_empty_class (TREE_TYPE (init)) && !lval); + if (!*valp) + { + /* But do make sure we have something in *valp. */ + *valp = build_constructor (type, nullptr); + CONSTRUCTOR_NO_CLEARING (*valp) = no_zero_init; + } return init; } else *************** cxx_eval_increment_expression (const con *** 5672,5677 **** --- 5674,5691 ---- offset = fold_build1 (NEGATE_EXPR, TREE_TYPE (offset), offset); mod = fold_build2 (POINTER_PLUS_EXPR, type, val, offset); } + else if (c_promoting_integer_type_p (type) + && !TYPE_UNSIGNED (type) + && TYPE_PRECISION (type) < TYPE_PRECISION (integer_type_node)) + { + offset = fold_convert (integer_type_node, offset); + mod = fold_convert (integer_type_node, val); + tree t = fold_build2 (inc ? PLUS_EXPR : MINUS_EXPR, integer_type_node, + mod, offset); + mod = fold_convert (type, t); + if (TREE_OVERFLOW_P (mod) && !TREE_OVERFLOW_P (t)) + TREE_OVERFLOW (mod) = false; + } else mod = fold_build2 (inc ? PLUS_EXPR : MINUS_EXPR, type, val, offset); if (!ptr) *************** cxx_eval_constant_expression (const cons *** 7158,7163 **** --- 7172,7220 ---- r = cxx_eval_bit_cast (ctx, t, non_constant_p, overflow_p); break; + case OMP_PARALLEL: + case OMP_TASK: + case OMP_FOR: + case OMP_SIMD: + case OMP_DISTRIBUTE: + case OMP_TASKLOOP: + case OMP_LOOP: + case OMP_TEAMS: + case OMP_TARGET_DATA: + case OMP_TARGET: + case OMP_SECTIONS: + case OMP_ORDERED: + case OMP_CRITICAL: + case OMP_SINGLE: + case OMP_SCAN: + case OMP_SECTION: + case OMP_MASTER: + case OMP_TASKGROUP: + case OMP_TARGET_UPDATE: + case OMP_TARGET_ENTER_DATA: + case OMP_TARGET_EXIT_DATA: + case OMP_ATOMIC: + case OMP_ATOMIC_READ: + case OMP_ATOMIC_CAPTURE_OLD: + case OMP_ATOMIC_CAPTURE_NEW: + case OMP_DEPOBJ: + case OACC_PARALLEL: + case OACC_KERNELS: + case OACC_SERIAL: + case OACC_DATA: + case OACC_HOST_DATA: + case OACC_LOOP: + case OACC_CACHE: + case OACC_DECLARE: + case OACC_ENTER_DATA: + case OACC_EXIT_DATA: + case OACC_UPDATE: + if (!ctx->quiet) + error_at (EXPR_LOCATION (t), + "statement is not a constant expression"); + *non_constant_p = true; + break; + default: if (STATEMENT_CODE_P (TREE_CODE (t))) { *************** potential_constant_expression_1 (tree t, *** 8575,8580 **** --- 8632,8638 ---- case OMP_ORDERED: case OMP_CRITICAL: case OMP_SINGLE: + case OMP_SCAN: case OMP_SECTION: case OMP_MASTER: case OMP_TASKGROUP: *************** potential_constant_expression_1 (tree t, *** 8868,8880 **** tmp = boolean_false_node; truth: { ! tree op = TREE_OPERAND (t, 0); ! if (!RECUR (op, rval)) return false; if (!processing_template_decl) ! op = cxx_eval_outermost_constant_expr (op, true); ! if (tree_int_cst_equal (op, tmp)) ! return RECUR (TREE_OPERAND (t, 1), rval); else return true; } --- 8926,8943 ---- tmp = boolean_false_node; truth: { ! tree op0 = TREE_OPERAND (t, 0); ! tree op1 = TREE_OPERAND (t, 1); ! if (!RECUR (op0, rval)) return false; + if (!(flags & tf_error) && RECUR (op1, rval)) + /* When quiet, try to avoid expensive trial evaluation by first + checking potentiality of the second operand. */ + return true; if (!processing_template_decl) ! op0 = cxx_eval_outermost_constant_expr (op0, true); ! if (tree_int_cst_equal (op0, tmp)) ! return (flags & tf_error) ? RECUR (op1, rval) : false; else return true; } *************** bool *** 9075,9080 **** --- 9138,9154 ---- potential_constant_expression_1 (tree t, bool want_rval, bool strict, bool now, tsubst_flags_t flags) { + if (flags & tf_error) + { + /* Check potentiality quietly first, as that could be performed more + efficiently in some cases (currently only for TRUTH_*_EXPR). If + that fails, replay the check noisily to give errors. */ + flags &= ~tf_error; + if (potential_constant_expression_1 (t, want_rval, strict, now, flags)) + return true; + flags |= tf_error; + } + tree target = NULL_TREE; return potential_constant_expression_1 (t, want_rval, strict, now, flags, &target); diff -Nrcpad gcc-11.3.0/gcc/cp/constraint.cc gcc-11.4.0/gcc/cp/constraint.cc *** gcc-11.3.0/gcc/cp/constraint.cc Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/cp/constraint.cc Mon May 29 08:46:29 2023 *************** normalize_atom (tree t, tree args, norm_ *** 788,793 **** --- 788,802 ---- tree ci = build_tree_list (t, info.context); tree atom = build1 (ATOMIC_CONSTR, ci, map); + + /* Remember whether the expression of this atomic constraint belongs to + a concept definition by inspecting in_decl, which should always be set + in this case either by norm_info::update_context (when recursing into a + concept-id during normalization) or by normalize_concept_definition + (when starting out with a concept-id). */ + if (info.in_decl && concept_definition_p (info.in_decl)) + ATOMIC_CONSTR_EXPR_FROM_CONCEPT_P (atom) = true; + if (!info.generate_diagnostics ()) { /* Cache the ATOMIC_CONSTRs that we return, so that sat_hasher::equal *************** tsubst_requires_expr (tree t, tree args, *** 2292,2297 **** --- 2301,2309 ---- { local_specialization_stack stack (lss_copy); + /* We need to check access during the substitution. */ + deferring_access_check_sentinel acs (dk_no_deferred); + /* A requires-expression is an unevaluated context. */ cp_unevaluated u; *************** satisfaction_value (tree t) *** 2870,2902 **** return boolean_true_node; } ! /* Build a new template argument list with template arguments corresponding ! to the parameters used in an atomic constraint. */ ! tree ! get_mapped_args (tree map) { /* No map, no arguments. */ if (!map) return NULL_TREE; ! /* Find the mapped parameter with the highest level. */ ! int count = 0; ! for (tree p = map; p; p = TREE_CHAIN (p)) ! { ! int level; ! int index; ! template_parm_level_and_index (TREE_VALUE (p), &level, &index); ! if (level > count) ! count = level; ! } /* Place each argument at its corresponding position in the argument list. Note that the list will be sparse (not all arguments supplied), but instantiation is guaranteed to only use the parameters in the mapping, so null arguments would never be used. */ ! auto_vec< vec > lists (count); ! lists.quick_grow_cleared (count); for (tree p = map; p; p = TREE_CHAIN (p)) { int level; --- 2882,2918 ---- return boolean_true_node; } ! /* Build a new template argument vector corresponding to the parameter ! mapping of the atomic constraint T, using arguments from ARGS. */ ! static tree ! get_mapped_args (tree t, tree args) { + tree map = ATOMIC_CONSTR_MAP (t); + /* No map, no arguments. */ if (!map) return NULL_TREE; ! /* Determine the depth of the resulting argument vector. */ ! int depth; ! if (ATOMIC_CONSTR_EXPR_FROM_CONCEPT_P (t)) ! /* The expression of this atomic constraint comes from a concept definition, ! whose template depth is always one, so the resulting argument vector ! will also have depth one. */ ! depth = 1; ! else ! /* Otherwise, the expression of this atomic constraint comes from ! the context of the constrained entity, whose template depth is that ! of ARGS. */ ! depth = TMPL_ARGS_DEPTH (args); /* Place each argument at its corresponding position in the argument list. Note that the list will be sparse (not all arguments supplied), but instantiation is guaranteed to only use the parameters in the mapping, so null arguments would never be used. */ ! auto_vec< vec > lists (depth); ! lists.quick_grow_cleared (depth); for (tree p = map; p; p = TREE_CHAIN (p)) { int level; *************** get_mapped_args (tree map) *** 2906,2917 **** /* Insert the argument into its corresponding position. */ vec &list = lists[level - 1]; if (index >= (int)list.length ()) ! list.safe_grow_cleared (index + 1, true); list[index] = TREE_PURPOSE (p); } /* Build the new argument list. */ ! tree args = make_tree_vec (lists.length ()); for (unsigned i = 0; i != lists.length (); ++i) { vec &list = lists[i]; --- 2922,2933 ---- /* Insert the argument into its corresponding position. */ vec &list = lists[level - 1]; if (index >= (int)list.length ()) ! list.safe_grow_cleared (index + 1, /*exact=*/false); list[index] = TREE_PURPOSE (p); } /* Build the new argument list. */ ! args = make_tree_vec (lists.length ()); for (unsigned i = 0; i != lists.length (); ++i) { vec &list = lists[i]; *************** get_mapped_args (tree map) *** 2923,2928 **** --- 2939,2953 ---- } SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT (args, 0); + if (TMPL_ARGS_HAVE_MULTIPLE_LEVELS (args) + && TMPL_ARGS_DEPTH (args) == 1) + { + /* Get rid of the redundant outer TREE_VEC. */ + tree level = TMPL_ARGS_LEVEL (args, 1); + ggc_free (args); + args = level; + } + return args; } *************** satisfy_atom (tree t, tree args, sat_inf *** 2977,2983 **** } /* Rebuild the argument vector from the parameter mapping. */ ! args = get_mapped_args (map); /* Apply the parameter mapping (i.e., just substitute). */ tree expr = ATOMIC_CONSTR_EXPR (t); --- 3002,3008 ---- } /* Rebuild the argument vector from the parameter mapping. */ ! args = get_mapped_args (t, args); /* Apply the parameter mapping (i.e., just substitute). */ tree expr = ATOMIC_CONSTR_EXPR (t); *************** satisfy_atom (tree t, tree args, sat_inf *** 2999,3005 **** if (!same_type_p (TREE_TYPE (result), boolean_type_node)) { if (info.noisy ()) ! diagnose_atomic_constraint (t, map, result, info); return cache.save (inst_cache.save (error_mark_node)); } --- 3024,3030 ---- if (!same_type_p (TREE_TYPE (result), boolean_type_node)) { if (info.noisy ()) ! diagnose_atomic_constraint (t, args, result, info); return cache.save (inst_cache.save (error_mark_node)); } *************** satisfy_atom (tree t, tree args, sat_inf *** 3018,3024 **** } result = satisfaction_value (result); if (result == boolean_false_node && info.diagnose_unsatisfaction_p ()) ! diagnose_atomic_constraint (t, map, result, info); return cache.save (inst_cache.save (result)); } --- 3043,3049 ---- } result = satisfaction_value (result); if (result == boolean_false_node && info.diagnose_unsatisfaction_p ()) ! diagnose_atomic_constraint (t, args, result, info); return cache.save (inst_cache.save (result)); } *************** diagnose_trait_expr (tree expr, tree arg *** 3717,3732 **** case CPTK_IS_UNION: inform (loc, " %qT is not a union", t1); break; ! default: gcc_unreachable (); } } ! /* Diagnose a substitution failure in the atomic constraint T when applied ! with the instantiated parameter mapping MAP. */ static void ! diagnose_atomic_constraint (tree t, tree map, tree result, sat_info info) { /* If the constraint is already ill-formed, we've previously diagnosed the reason. We should still say why the constraints aren't satisfied. */ --- 3742,3797 ---- case CPTK_IS_UNION: inform (loc, " %qT is not a union", t1); break; ! case CPTK_IS_AGGREGATE: ! inform (loc, " %qT is not an aggregate", t1); ! break; ! case CPTK_IS_TRIVIALLY_COPYABLE: ! inform (loc, " %qT is not trivially copyable", t1); ! break; ! case CPTK_IS_ASSIGNABLE: ! inform (loc, " %qT is not assignable from %qT", t1, t2); ! break; ! case CPTK_IS_TRIVIALLY_ASSIGNABLE: ! inform (loc, " %qT is not trivially assignable from %qT", t1, t2); ! break; ! case CPTK_IS_NOTHROW_ASSIGNABLE: ! inform (loc, " %qT is not % assignable from %qT", t1, t2); ! break; ! case CPTK_IS_CONSTRUCTIBLE: ! if (!t2) ! inform (loc, " %qT is not default constructible", t1); ! else ! inform (loc, " %qT is not constructible from %qE", t1, t2); ! break; ! case CPTK_IS_TRIVIALLY_CONSTRUCTIBLE: ! if (!t2) ! inform (loc, " %qT is not trivially default constructible", t1); ! else ! inform (loc, " %qT is not trivially constructible from %qE", t1, t2); ! break; ! case CPTK_IS_NOTHROW_CONSTRUCTIBLE: ! if (!t2) ! inform (loc, " %qT is not % default constructible", t1); ! else ! inform (loc, " %qT is not % constructible from %qE", t1, t2); ! break; ! case CPTK_HAS_UNIQUE_OBJ_REPRESENTATIONS: ! inform (loc, " %qT does not have unique object representations", t1); ! break; ! case CPTK_BASES: ! case CPTK_DIRECT_BASES: ! case CPTK_UNDERLYING_TYPE: ! /* We shouldn't see these non-expression traits. */ gcc_unreachable (); + /* We deliberately omit the default case so that when adding a new + trait we'll get reminded (by way of a warning) to handle it here. */ } } ! /* Diagnose a substitution failure in the atomic constraint T using ARGS. */ static void ! diagnose_atomic_constraint (tree t, tree args, tree result, sat_info info) { /* If the constraint is already ill-formed, we've previously diagnosed the reason. We should still say why the constraints aren't satisfied. */ *************** diagnose_atomic_constraint (tree t, tree *** 3747,3753 **** /* Generate better diagnostics for certain kinds of expressions. */ tree expr = ATOMIC_CONSTR_EXPR (t); STRIP_ANY_LOCATION_WRAPPER (expr); - tree args = get_mapped_args (map); switch (TREE_CODE (expr)) { case TRAIT_EXPR: --- 3812,3817 ---- diff -Nrcpad gcc-11.3.0/gcc/cp/coroutines.cc gcc-11.4.0/gcc/cp/coroutines.cc *** gcc-11.3.0/gcc/cp/coroutines.cc Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/cp/coroutines.cc Mon May 29 08:46:29 2023 *************** build_co_await (location_t loc, tree a, *** 1016,1024 **** } else { ! e_proxy = get_awaitable_var (suspend_kind, o_type); o = cp_build_modify_expr (loc, e_proxy, INIT_EXPR, o, tf_warning_or_error); } /* I suppose we could check that this is contextually convertible to bool. */ --- 1016,1028 ---- } else { ! tree p_type = o_type; ! if (glvalue_p (o)) ! p_type = cp_build_reference_type (p_type, !lvalue_p (o)); ! e_proxy = get_awaitable_var (suspend_kind, p_type); o = cp_build_modify_expr (loc, e_proxy, INIT_EXPR, o, tf_warning_or_error); + e_proxy = convert_from_reference (e_proxy); } /* I suppose we could check that this is contextually convertible to bool. */ *************** build_co_await (location_t loc, tree a, *** 1111,1116 **** --- 1115,1123 ---- } TREE_VEC_ELT (awaiter_calls, 2) = awrs_call; /* await_resume(). */ + if (REFERENCE_REF_P (e_proxy)) + e_proxy = TREE_OPERAND (e_proxy, 0); + tree await_expr = build5_loc (loc, CO_AWAIT_EXPR, TREE_TYPE (TREE_TYPE (awrs_func)), a, e_proxy, o, awaiter_calls, *************** flatten_await_stmt (var_nest_node *n, ha *** 2867,2873 **** tree init = t; temps_used->add (init); tree var_type = TREE_TYPE (init); ! char *buf = xasprintf ("D.%d", DECL_UID (TREE_OPERAND (init, 0))); tree var = build_lang_decl (VAR_DECL, get_identifier (buf), var_type); DECL_ARTIFICIAL (var) = true; free (buf); --- 2874,2880 ---- tree init = t; temps_used->add (init); tree var_type = TREE_TYPE (init); ! char *buf = xasprintf ("T%03u", (unsigned) temps_used->elements ()); tree var = build_lang_decl (VAR_DECL, get_identifier (buf), var_type); DECL_ARTIFICIAL (var) = true; free (buf); *************** coro_rewrite_function_body (location_t f *** 4067,4072 **** --- 4074,4092 ---- BLOCK_SUPERCONTEXT (replace_blk) = top_block; BLOCK_SUBBLOCKS (top_block) = replace_blk; } + else + { + /* We are missing a top level BIND_EXPR. We need one to ensure that we + don't shuffle around the coroutine frame and corrupt it. */ + tree bind_wrap = build3_loc (fn_start, BIND_EXPR, void_type_node, + NULL, NULL, NULL); + BIND_EXPR_BODY (bind_wrap) = fnbody; + /* Ensure we have a block to connect up the scopes. */ + tree new_blk = make_node (BLOCK); + BIND_EXPR_BLOCK (bind_wrap) = new_blk; + BLOCK_SUBBLOCKS (top_block) = new_blk; + fnbody = bind_wrap; + } /* Wrap the function body in a try {} catch (...) {} block, if exceptions are enabled. */ diff -Nrcpad gcc-11.3.0/gcc/cp/cp-gimplify.c gcc-11.4.0/gcc/cp/cp-gimplify.c *** gcc-11.3.0/gcc/cp/cp-gimplify.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/cp/cp-gimplify.c Mon May 29 08:46:29 2023 *************** along with GCC; see the file COPYING3. *** 42,47 **** --- 42,55 ---- #include "cgraph.h" #include "omp-general.h" + struct cp_fold_data + { + hash_set pset; + bool genericize; // called from cp_fold_function? + + cp_fold_data (bool g): genericize (g) {} + }; + /* Forward declarations. */ static tree cp_genericize_r (tree *, int *, void *); *************** cp_gimplify_expr (tree *expr_p, gimple_s *** 468,475 **** init, VEC_INIT_EXPR_VALUE_INIT (*expr_p), from_array, tf_warning_or_error); ! hash_set pset; ! cp_walk_tree (expr_p, cp_fold_r, &pset, NULL); cp_genericize_tree (expr_p, false); copy_if_shared (expr_p); ret = GS_OK; --- 476,483 ---- init, VEC_INIT_EXPR_VALUE_INIT (*expr_p), from_array, tf_warning_or_error); ! cp_fold_data data (/*genericize*/true); ! cp_walk_tree (expr_p, cp_fold_r, &data, NULL); cp_genericize_tree (expr_p, false); copy_if_shared (expr_p); ret = GS_OK; *************** struct cp_genericize_data *** 875,888 **** GIMPLE-form. */ static tree ! cp_fold_r (tree *stmt_p, int *walk_subtrees, void *data) { ! tree stmt; ! enum tree_code code; *stmt_p = stmt = cp_fold (*stmt_p); ! if (((hash_set *) data)->add (stmt)) { /* Don't walk subtrees of stmts we've already walked once, otherwise we can have exponential complexity with e.g. lots of nested --- 883,917 ---- GIMPLE-form. */ static tree ! cp_fold_r (tree *stmt_p, int *walk_subtrees, void *data_) { ! cp_fold_data *data = (cp_fold_data*)data_; ! tree stmt = *stmt_p; ! enum tree_code code = TREE_CODE (stmt); ! ! switch (code) ! { ! case VAR_DECL: ! /* In initializers replace anon union artificial VAR_DECLs ! with their DECL_VALUE_EXPRs, as nothing will do it later. ! Ditto for structured bindings. */ ! if (!data->genericize ! && DECL_HAS_VALUE_EXPR_P (stmt) ! && (DECL_ANON_UNION_VAR_P (stmt) ! || (DECL_DECOMPOSITION_P (stmt) && DECL_DECOMP_BASE (stmt)))) ! { ! *stmt_p = stmt = unshare_expr (DECL_VALUE_EXPR (stmt)); ! break; ! } ! break; ! ! default: ! break; ! } *stmt_p = stmt = cp_fold (*stmt_p); ! if (data->pset.add (stmt)) { /* Don't walk subtrees of stmts we've already walked once, otherwise we can have exponential complexity with e.g. lots of nested *************** cp_fold_r (tree *stmt_p, int *walk_subtr *** 949,956 **** void cp_fold_function (tree fndecl) { ! hash_set pset; ! cp_walk_tree (&DECL_SAVED_TREE (fndecl), cp_fold_r, &pset, NULL); } /* Turn SPACESHIP_EXPR EXPR into GENERIC. */ --- 978,985 ---- void cp_fold_function (tree fndecl) { ! cp_fold_data data (/*genericize*/true); ! cp_walk_tree (&DECL_SAVED_TREE (fndecl), cp_fold_r, &data, NULL); } /* Turn SPACESHIP_EXPR EXPR into GENERIC. */ *************** cp_genericize_r (tree *stmt_p, int *walk *** 1273,1278 **** --- 1302,1309 ---- tree using_directive = make_node (IMPORTED_DECL); TREE_TYPE (using_directive) = void_type_node; DECL_CONTEXT (using_directive) = current_function_decl; + DECL_SOURCE_LOCATION (using_directive) + = cp_expr_loc_or_input_loc (stmt); IMPORTED_DECL_ASSOCIATED_DECL (using_directive) = decl; DECL_CHAIN (using_directive) = BLOCK_VARS (block); *************** cp_fully_fold_init (tree x) *** 2218,2225 **** if (processing_template_decl) return x; x = cp_fully_fold (x); ! hash_set pset; ! cp_walk_tree (&x, cp_fold_r, &pset, NULL); return x; } --- 2249,2256 ---- if (processing_template_decl) return x; x = cp_fully_fold (x); ! cp_fold_data data (/*genericize*/false); ! cp_walk_tree (&x, cp_fold_r, &data, NULL); return x; } diff -Nrcpad gcc-11.3.0/gcc/cp/cp-tree.h gcc-11.4.0/gcc/cp/cp-tree.h *** gcc-11.3.0/gcc/cp/cp-tree.h Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/cp/cp-tree.h Mon May 29 08:46:29 2023 *************** extern GTY(()) tree cp_global_trees[CPTI *** 466,471 **** --- 466,472 ---- PACK_EXPANSION_SIZEOF_P (in *_PACK_EXPANSION) OVL_USING_P (in OVERLOAD) IMPLICIT_CONV_EXPR_NONTYPE_ARG (in IMPLICIT_CONV_EXPR) + ATOMIC_CONSTR_EXPR_FROM_CONCEPT_P (in ATOMIC_CONSTR) 2: IDENTIFIER_KIND_BIT_2 (in IDENTIFIER_NODE) ICS_THIS_FLAG (in _CONV) DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P (in VAR_DECL) *************** check_constraint_info (tree t) *** 1635,1640 **** --- 1636,1646 ---- #define ATOMIC_CONSTR_MAP_INSTANTIATED_P(NODE) \ TREE_LANG_FLAG_0 (ATOMIC_CONSTR_CHECK (NODE)) + /* Whether the expression for this atomic constraint belongs to a + concept definition. */ + #define ATOMIC_CONSTR_EXPR_FROM_CONCEPT_P(NODE) \ + TREE_LANG_FLAG_1 (ATOMIC_CONSTR_CHECK (NODE)) + /* The expression of an atomic constraint. */ #define ATOMIC_CONSTR_EXPR(NODE) \ CONSTR_EXPR (ATOMIC_CONSTR_CHECK (NODE)) *************** extern void copy_linkage (tree, tree); *** 6789,6794 **** --- 6795,6801 ---- extern tree get_guard (tree); extern tree get_guard_cond (tree, bool); extern tree set_guard (tree); + extern bool var_needs_tls_wrapper (tree); extern tree maybe_get_tls_wrapper_call (tree); extern void mark_needed (tree); extern bool decl_needed_p (tree); *************** extern bool push_tinst_level_loc *** 7242,7247 **** --- 7249,7255 ---- extern bool push_tinst_level_loc (tree, tree, location_t); extern void pop_tinst_level (void); extern struct tinst_level *outermost_tinst_level(void); + extern bool non_templated_friend_p (tree); extern void init_template_processing (void); extern void print_template_statistics (void); bool template_template_parameter_p (const_tree); *************** extern tree evaluate_requires_expr (tre *** 8137,8143 **** extern tree tsubst_constraint (tree, tree, tsubst_flags_t, tree); extern tree tsubst_constraint_info (tree, tree, tsubst_flags_t, tree); extern tree tsubst_parameter_mapping (tree, tree, tsubst_flags_t, tree); - extern tree get_mapped_args (tree); struct processing_constraint_expression_sentinel { --- 8145,8150 ---- diff -Nrcpad gcc-11.3.0/gcc/cp/decl.c gcc-11.4.0/gcc/cp/decl.c *** gcc-11.3.0/gcc/cp/decl.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/cp/decl.c Mon May 29 08:46:29 2023 *************** static bool *** 944,952 **** function_requirements_equivalent_p (tree newfn, tree oldfn) { /* In the concepts TS, the combined constraints are compared. */ ! if (cxx_dialect < cxx20 ! && (DECL_TEMPLATE_SPECIALIZATION (newfn) ! <= DECL_TEMPLATE_SPECIALIZATION (oldfn))) { tree ci1 = get_constraints (oldfn); tree ci2 = get_constraints (newfn); --- 944,950 ---- function_requirements_equivalent_p (tree newfn, tree oldfn) { /* In the concepts TS, the combined constraints are compared. */ ! if (cxx_dialect < cxx20) { tree ci1 = get_constraints (oldfn); tree ci2 = get_constraints (newfn); *************** decls_match (tree newdecl, tree olddecl, *** 1059,1069 **** if (types_match && !DECL_EXTERN_C_P (newdecl) && !DECL_EXTERN_C_P (olddecl) ! && record_versions ! && maybe_version_functions (newdecl, olddecl, ! (!DECL_FUNCTION_VERSIONED (newdecl) ! || !DECL_FUNCTION_VERSIONED (olddecl)))) ! return 0; } else if (TREE_CODE (newdecl) == TEMPLATE_DECL) { --- 1057,1070 ---- if (types_match && !DECL_EXTERN_C_P (newdecl) && !DECL_EXTERN_C_P (olddecl) ! && targetm.target_option.function_versions (newdecl, olddecl)) ! { ! if (record_versions) ! maybe_version_functions (newdecl, olddecl, ! (!DECL_FUNCTION_VERSIONED (newdecl) ! || !DECL_FUNCTION_VERSIONED (olddecl))); ! return 0; ! } } else if (TREE_CODE (newdecl) == TEMPLATE_DECL) { *************** duplicate_decls (tree newdecl, tree oldd *** 2221,2228 **** check_no_redeclaration_friend_default_args (old_result, new_result); } ! if (!DECL_UNIQUE_FRIEND_P (old_result)) ! DECL_UNIQUE_FRIEND_P (new_result) = false; check_default_args (newdecl); --- 2222,2229 ---- check_no_redeclaration_friend_default_args (old_result, new_result); } ! if (!DECL_UNIQUE_FRIEND_P (new_result)) ! DECL_UNIQUE_FRIEND_P (old_result) = false; check_default_args (newdecl); *************** duplicate_decls (tree newdecl, tree oldd *** 2523,2529 **** else { retrofit_lang_decl (newdecl); ! DECL_LOCAL_DECL_ALIAS (newdecl) = DECL_LOCAL_DECL_ALIAS (olddecl); } } --- 2524,2535 ---- else { retrofit_lang_decl (newdecl); ! tree alias = DECL_LOCAL_DECL_ALIAS (newdecl) ! = DECL_LOCAL_DECL_ALIAS (olddecl); ! DECL_ATTRIBUTES (alias) ! = (*targetm.merge_decl_attributes) (alias, newdecl); ! if (TREE_CODE (newdecl) == FUNCTION_DECL) ! merge_attribute_bits (newdecl, alias); } } *************** duplicate_decls (tree newdecl, tree oldd *** 2581,2586 **** --- 2587,2597 ---- TINFO_USED_TEMPLATE_ID (DECL_TEMPLATE_INFO (olddecl)) = TINFO_USED_TEMPLATE_ID (new_template_info); } + + /* We don't want to copy template info from a non-templated friend + (PR105761), but these shouldn't have DECL_TEMPLATE_INFO now. */ + gcc_checking_assert (!DECL_TEMPLATE_INFO (olddecl) + || !non_templated_friend_p (olddecl)); DECL_TEMPLATE_INFO (newdecl) = DECL_TEMPLATE_INFO (olddecl); } *************** reshape_init_array_1 (tree elt_type, tre *** 6283,6288 **** --- 6294,6301 ---- tree elt_init; constructor_elt *old_cur = d->cur; + if (d->cur->index) + CONSTRUCTOR_IS_DESIGNATED_INIT (new_init) = true; check_array_designated_initializer (d->cur, index); elt_init = reshape_init_r (elt_type, d, /*first_initializer_p=*/NULL_TREE, *************** reshape_init_class (tree type, reshape_i *** 6435,6440 **** --- 6448,6454 ---- } else if (TREE_CODE (d->cur->index) == IDENTIFIER_NODE) { + CONSTRUCTOR_IS_DESIGNATED_INIT (new_init) = true; field = get_class_binding (type, d->cur->index); direct_desig = true; } *************** check_initializer (tree decl, tree init, *** 7167,7178 **** /* Declared constexpr or constinit, but no suitable initializer; massage init appropriately so we can pass it into store_init_value for the error. */ ! if (CLASS_TYPE_P (type) ! && (!init || TREE_CODE (init) == TREE_LIST)) { ! init = build_functional_cast (input_location, type, ! init, tf_none); ! if (TREE_CODE (init) == TARGET_EXPR) TARGET_EXPR_DIRECT_INIT_P (init) = true; } init_code = NULL_TREE; --- 7181,7199 ---- /* Declared constexpr or constinit, but no suitable initializer; massage init appropriately so we can pass it into store_init_value for the error. */ ! tree new_init = NULL_TREE; ! if (!processing_template_decl ! && TREE_CODE (init_code) == CALL_EXPR) ! new_init = build_cplus_new (type, init_code, tf_none); ! else if (CLASS_TYPE_P (type) ! && (!init || TREE_CODE (init) == TREE_LIST)) ! new_init = build_functional_cast (input_location, type, ! init, tf_none); ! if (new_init) { ! init = new_init; ! if (TREE_CODE (init) == TARGET_EXPR ! && !(flags & LOOKUP_ONLYCONVERTING)) TARGET_EXPR_DIRECT_INIT_P (init) = true; } init_code = NULL_TREE; *************** check_initializer (tree decl, tree init, *** 7227,7232 **** --- 7248,7257 ---- if (init && init != error_mark_node) init_code = build2 (INIT_EXPR, type, decl, init); + if (init_code && !TREE_SIDE_EFFECTS (init_code) + && init_code != error_mark_node) + init_code = NULL_TREE; + if (init_code) { /* We might have set these in cp_finish_decl. */ *************** cp_finish_decl (tree decl, tree init, bo *** 8221,8228 **** if (var_definition_p /* With -fmerge-all-constants, gimplify_init_constructor ! might add TREE_STATIC to the variable. */ ! && (TREE_STATIC (decl) || flag_merge_constants >= 2)) { /* If a TREE_READONLY variable needs initialization at runtime, it is no longer readonly and we need to --- 8246,8255 ---- if (var_definition_p /* With -fmerge-all-constants, gimplify_init_constructor ! might add TREE_STATIC to aggregate variables. */ ! && (TREE_STATIC (decl) ! || (flag_merge_constants >= 2 ! && AGGREGATE_TYPE_P (type)))) { /* If a TREE_READONLY variable needs initialization at runtime, it is no longer readonly and we need to *************** cp_finish_decl (tree decl, tree init, bo *** 8240,8245 **** --- 8267,8284 ---- if (!decl_maybe_constant_destruction (decl, type)) TREE_READONLY (decl) = 0; } + else if (VAR_P (decl) + && CP_DECL_THREAD_LOCAL_P (decl) + && (!DECL_EXTERNAL (decl) || flag_extern_tls_init) + && (was_readonly || TREE_READONLY (decl)) + && var_needs_tls_wrapper (decl)) + { + /* TLS variables need dynamic initialization by the TLS wrapper + function, we don't want to hoist accesses to it before the + wrapper. */ + was_readonly = 0; + TREE_READONLY (decl) = 0; + } make_rtl_for_nonlocal_decl (decl, init, asmspec); *************** cp_finish_decl (tree decl, tree init, bo *** 8300,8306 **** { unsigned i; tree t; FOR_EACH_VEC_ELT (*cleanups, i, t) ! push_cleanup (decl, t, false); release_tree_vector (cleanups); } --- 8339,8345 ---- { unsigned i; tree t; FOR_EACH_VEC_ELT (*cleanups, i, t) ! push_cleanup (NULL_TREE, t, false); release_tree_vector (cleanups); } *************** grokdeclarator (const cp_declarator *dec *** 12656,12662 **** "an array", name); return error_mark_node; } ! if (constinit_p) { error_at (declspecs->locations[ds_constinit], "% on function return type is not " --- 12695,12701 ---- "an array", name); return error_mark_node; } ! if (constinit_p && funcdecl_p) { error_at (declspecs->locations[ds_constinit], "% on function return type is not " *************** grokdeclarator (const cp_declarator *dec *** 13862,13868 **** return error_mark_node; } ! decl = do_friend (ctype, unqualified_id, decl, *attrlist, flags, funcdef_flag); return decl; --- 13901,13908 ---- return error_mark_node; } ! tree scope = ctype ? ctype : in_namespace; ! decl = do_friend (scope, unqualified_id, decl, *attrlist, flags, funcdef_flag); return decl; *************** copy_fn_p (const_tree d) *** 14663,14670 **** bool move_fn_p (const_tree d) { - gcc_assert (DECL_FUNCTION_MEMBER_P (d)); - if (cxx_dialect == cxx98) /* There are no move constructors if we are in C++98 mode. */ return false; --- 14703,14708 ---- diff -Nrcpad gcc-11.3.0/gcc/cp/decl2.c gcc-11.4.0/gcc/cp/decl2.c *** gcc-11.3.0/gcc/cp/decl2.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/cp/decl2.c Mon May 29 08:46:29 2023 *************** find_last_decl (tree decl) *** 1531,1538 **** if (TREE_CODE (*iter) == OVERLOAD) continue; ! if (decls_match (decl, *iter, /*record_decls=*/false)) ! return *iter; } return NULL_TREE; } --- 1531,1546 ---- if (TREE_CODE (*iter) == OVERLOAD) continue; ! tree d = *iter; ! ! /* We can't compare versions in the middle of processing the ! attribute that has the version. */ ! if (TREE_CODE (d) == FUNCTION_DECL ! && DECL_FUNCTION_VERSIONED (d)) ! return NULL_TREE; ! ! if (decls_match (decl, d, /*record_decls=*/false)) ! return d; } return NULL_TREE; } *************** var_defined_without_dynamic_init (tree v *** 3441,3447 **** /* Returns true iff VAR is a variable that needs uses to be wrapped for possible dynamic initialization. */ ! static bool var_needs_tls_wrapper (tree var) { return (!error_operand_p (var) --- 3449,3455 ---- /* Returns true iff VAR is a variable that needs uses to be wrapped for possible dynamic initialization. */ ! bool var_needs_tls_wrapper (tree var) { return (!error_operand_p (var) diff -Nrcpad gcc-11.3.0/gcc/cp/expr.c gcc-11.4.0/gcc/cp/expr.c *** gcc-11.3.0/gcc/cp/expr.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/cp/expr.c Mon May 29 08:46:29 2023 *************** mark_use (tree expr, bool rvalue_p, bool *** 220,226 **** case MODIFY_EXPR: { tree lhs = TREE_OPERAND (expr, 0); ! /* [expr.ass] "A simple assignment whose left operand is of a volatile-qualified type is deprecated unless the assignment is either a discarded-value expression or appears in an unevaluated context." */ --- 220,226 ---- case MODIFY_EXPR: { tree lhs = TREE_OPERAND (expr, 0); ! /* [expr.ass] "An assignment whose left operand is of a volatile-qualified type is deprecated unless the assignment is either a discarded-value expression or appears in an unevaluated context." */ *************** mark_use (tree expr, bool rvalue_p, bool *** 230,236 **** && !TREE_THIS_VOLATILE (expr)) { if (warning_at (location_of (expr), OPT_Wvolatile, ! "using value of simple assignment with " "%-qualified left operand is " "deprecated")) /* Make sure not to warn about this assignment again. */ --- 230,236 ---- && !TREE_THIS_VOLATILE (expr)) { if (warning_at (location_of (expr), OPT_Wvolatile, ! "using value of assignment with " "%-qualified left operand is " "deprecated")) /* Make sure not to warn about this assignment again. */ diff -Nrcpad gcc-11.3.0/gcc/cp/friend.c gcc-11.4.0/gcc/cp/friend.c *** gcc-11.3.0/gcc/cp/friend.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/cp/friend.c Mon May 29 08:46:29 2023 *************** make_friend_class (tree type, tree frien *** 467,485 **** } /* Record DECL (a FUNCTION_DECL) as a friend of the ! CURRENT_CLASS_TYPE. If DECL is a member function, CTYPE is the class of which it is a member, as named in the friend declaration. DECLARATOR is the name of the friend. FUNCDEF_FLAG is true if the friend declaration is a definition of the function. FLAGS is as for grokclass fn. */ tree ! do_friend (tree ctype, tree declarator, tree decl, tree attrlist, enum overload_flags flags, bool funcdef_flag) { gcc_assert (TREE_CODE (decl) == FUNCTION_DECL); ! gcc_assert (!ctype || MAYBE_CLASS_TYPE_P (ctype)); /* Friend functions are unique, until proved otherwise. */ DECL_UNIQUE_FRIEND_P (decl) = 1; --- 467,498 ---- } /* Record DECL (a FUNCTION_DECL) as a friend of the ! CURRENT_CLASS_TYPE. If DECL is a member function, SCOPE is the class of which it is a member, as named in the friend declaration. + If the friend declaration was explicitly namespace-qualified, SCOPE + is that namespace. DECLARATOR is the name of the friend. FUNCDEF_FLAG is true if the friend declaration is a definition of the function. FLAGS is as for grokclass fn. */ tree ! do_friend (tree scope, tree declarator, tree decl, tree attrlist, enum overload_flags flags, bool funcdef_flag) { gcc_assert (TREE_CODE (decl) == FUNCTION_DECL); ! ! tree ctype = NULL_TREE; ! tree in_namespace = NULL_TREE; ! if (!scope) ! ; ! else if (MAYBE_CLASS_TYPE_P (scope)) ! ctype = scope; ! else ! { ! gcc_checking_assert (TREE_CODE (scope) == NAMESPACE_DECL); ! in_namespace = scope; ! } /* Friend functions are unique, until proved otherwise. */ DECL_UNIQUE_FRIEND_P (decl) = 1; *************** do_friend (tree ctype, tree declarator, *** 606,612 **** parameters. Instead, we call pushdecl when the class is instantiated. */ decl = push_template_decl (decl, /*is_friend=*/true); ! else if (current_function_decl) /* pushdecl will check there's a local decl already. */ decl = pushdecl (decl, /*hiding=*/true); else --- 619,625 ---- parameters. Instead, we call pushdecl when the class is instantiated. */ decl = push_template_decl (decl, /*is_friend=*/true); ! else if (current_function_decl && !in_namespace) /* pushdecl will check there's a local decl already. */ decl = pushdecl (decl, /*hiding=*/true); else diff -Nrcpad gcc-11.3.0/gcc/cp/init.c gcc-11.4.0/gcc/cp/init.c *** gcc-11.3.0/gcc/cp/init.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/cp/init.c Mon May 29 08:46:29 2023 *************** perform_member_init (tree member, tree i *** 911,917 **** init = build2 (INIT_EXPR, type, decl, init); finish_expr_stmt (init); FOR_EACH_VEC_ELT (*cleanups, i, t) ! push_cleanup (decl, t, false); } else if (type_build_ctor_call (type) || (init && CLASS_TYPE_P (strip_array_types (type)))) --- 911,917 ---- init = build2 (INIT_EXPR, type, decl, init); finish_expr_stmt (init); FOR_EACH_VEC_ELT (*cleanups, i, t) ! push_cleanup (NULL_TREE, t, false); } else if (type_build_ctor_call (type) || (init && CLASS_TYPE_P (strip_array_types (type)))) *************** build_new_1 (vec **placemen *** 3079,3085 **** tree align_arg = NULL_TREE; if (type_has_new_extended_alignment (elt_type)) ! align_arg = build_int_cst (align_type_node, TYPE_ALIGN_UNIT (elt_type)); alloc_fn = NULL_TREE; --- 3079,3091 ---- tree align_arg = NULL_TREE; if (type_has_new_extended_alignment (elt_type)) ! { ! unsigned align = TYPE_ALIGN_UNIT (elt_type); ! /* Also consider the alignment of the cookie, if any. */ ! if (array_p && TYPE_VEC_NEW_USES_COOKIE (elt_type)) ! align = MAX (align, TYPE_ALIGN_UNIT (size_type_node)); ! align_arg = build_int_cst (align_type_node, align); ! } alloc_fn = NULL_TREE; *************** build_new_1 (vec **placemen *** 3261,3278 **** } } if (cookie_size) ! alloc_call = maybe_wrap_new_for_constexpr (alloc_call, type, cookie_size); /* In the simple case, we can stop now. */ pointer_type = build_pointer_type (type); if (!cookie_size && !is_initialized) ! return build_nop (pointer_type, alloc_call); /* Store the result of the allocation call in a variable so that we can use it more than once. */ ! alloc_expr = get_target_expr (alloc_call); alloc_node = TARGET_EXPR_SLOT (alloc_expr); /* Strip any COMPOUND_EXPRs from ALLOC_CALL. */ --- 3267,3285 ---- } } + alloc_expr = alloc_call; if (cookie_size) ! alloc_expr = maybe_wrap_new_for_constexpr (alloc_call, type, cookie_size); /* In the simple case, we can stop now. */ pointer_type = build_pointer_type (type); if (!cookie_size && !is_initialized) ! return build_nop (pointer_type, alloc_expr); /* Store the result of the allocation call in a variable so that we can use it more than once. */ ! alloc_expr = get_target_expr (alloc_expr); alloc_node = TARGET_EXPR_SLOT (alloc_expr); /* Strip any COMPOUND_EXPRs from ALLOC_CALL. */ diff -Nrcpad gcc-11.3.0/gcc/cp/lambda.c gcc-11.4.0/gcc/cp/lambda.c *** gcc-11.3.0/gcc/cp/lambda.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/cp/lambda.c Mon May 29 08:46:29 2023 *************** along with GCC; see the file COPYING3. *** 31,36 **** --- 31,37 ---- #include "toplev.h" #include "gimplify.h" #include "target.h" + #include "decl.h" /* Constructor for a lambda expression. */ *************** lambda_function (tree lambda) *** 202,207 **** --- 203,226 ---- return lambda; } + /* True if EXPR is an expression whose type can be used directly in lambda + capture. Not to be used for 'auto'. */ + + static bool + type_deducible_expression_p (tree expr) + { + if (!type_dependent_expression_p (expr)) + return true; + if (BRACE_ENCLOSED_INITIALIZER_P (expr) + || TREE_CODE (expr) == EXPR_PACK_EXPANSION) + return false; + tree t = non_reference (TREE_TYPE (expr)); + if (!t) return false; + while (TREE_CODE (t) == POINTER_TYPE) + t = TREE_TYPE (t); + return currently_open_class (t); + } + /* Returns the type to use for the FIELD_DECL corresponding to the capture of EXPR. EXPLICIT_INIT_P indicates whether this is a C++14 init capture, and BY_REFERENCE_P indicates whether we're *************** lambda_capture_field_type (tree expr, bo *** 228,234 **** else type = do_auto_deduction (type, expr, auto_node); } ! else if (!is_this && type_dependent_expression_p (expr)) { type = cxx_make_type (DECLTYPE_TYPE); DECLTYPE_TYPE_EXPR (type) = expr; --- 247,253 ---- else type = do_auto_deduction (type, expr, auto_node); } ! else if (!is_this && !type_deducible_expression_p (expr)) { type = cxx_make_type (DECLTYPE_TYPE); DECLTYPE_TYPE_EXPR (type) = expr; *************** maybe_add_lambda_conv_op (tree type) *** 1177,1185 **** } } else ! call = build_call_a (callop, ! direct_argvec->length (), ! direct_argvec->address ()); CALL_FROM_THUNK_P (call) = 1; SET_EXPR_LOCATION (call, UNKNOWN_LOCATION); --- 1196,1208 ---- } } else ! { ! /* Don't warn on deprecated lambda declarations, unless ! the lambda is actually called. */ ! auto du = make_temp_override (deprecated_state, DEPRECATED_SUPPRESS); ! call = build_call_a (callop, direct_argvec->length (), ! direct_argvec->address ()); ! } CALL_FROM_THUNK_P (call) = 1; SET_EXPR_LOCATION (call, UNKNOWN_LOCATION); *************** prune_lambda_captures (tree body) *** 1536,1541 **** --- 1559,1567 ---- if (LAMBDA_EXPR_DEFAULT_CAPTURE_MODE (lam) == CPLD_NONE) /* No default captures, and we don't prune explicit captures. */ return; + /* Don't bother pruning in a template, we'll prune at instantiation time. */ + if (dependent_type_p (TREE_TYPE (lam))) + return; hash_map const_vars; diff -Nrcpad gcc-11.3.0/gcc/cp/module.cc gcc-11.4.0/gcc/cp/module.cc *** gcc-11.3.0/gcc/cp/module.cc Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/cp/module.cc Mon May 29 08:46:29 2023 *************** trees_out::get_merge_kind (tree decl, de *** 10059,10067 **** tree ctx = CP_DECL_CONTEXT (decl); if (TREE_CODE (ctx) == FUNCTION_DECL) { ! /* USING_DECLs cannot have DECL_TEMPLATE_INFO -- this isn't ! permitting them to have one. */ gcc_checking_assert (TREE_CODE (decl) == USING_DECL || !DECL_LANG_SPECIFIC (decl) || !DECL_TEMPLATE_INFO (decl)); --- 10059,10068 ---- tree ctx = CP_DECL_CONTEXT (decl); if (TREE_CODE (ctx) == FUNCTION_DECL) { ! /* USING_DECLs and NAMESPACE_DECLs cannot have DECL_TEMPLATE_INFO -- ! this isn't permitting them to have one. */ gcc_checking_assert (TREE_CODE (decl) == USING_DECL + || TREE_CODE (decl) == NAMESPACE_DECL || !DECL_LANG_SPECIFIC (decl) || !DECL_TEMPLATE_INFO (decl)); diff -Nrcpad gcc-11.3.0/gcc/cp/parser.c gcc-11.4.0/gcc/cp/parser.c *** gcc-11.3.0/gcc/cp/parser.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/cp/parser.c Mon May 29 08:46:29 2023 *************** cp_parser_binary_expression (cp_parser* *** 9968,9974 **** || (TREE_CODE (TREE_TYPE (TREE_OPERAND (current.lhs, 0))) != BOOLEAN_TYPE)))) /* Avoid warning for !!b == y where b is boolean. */ ! && (!DECL_P (tree_strip_any_location_wrapper (current.lhs)) || TREE_TYPE (current.lhs) == NULL_TREE || TREE_CODE (TREE_TYPE (current.lhs)) != BOOLEAN_TYPE)) warn_logical_not_parentheses (current.loc, current.tree_type, --- 9968,9977 ---- || (TREE_CODE (TREE_TYPE (TREE_OPERAND (current.lhs, 0))) != BOOLEAN_TYPE)))) /* Avoid warning for !!b == y where b is boolean. */ ! && (!(DECL_P (tree_strip_any_location_wrapper (current.lhs)) ! || (TREE_CODE (current.lhs) == NON_LVALUE_EXPR ! && DECL_P (tree_strip_any_location_wrapper ! (TREE_OPERAND (current.lhs, 0))))) || TREE_TYPE (current.lhs) == NULL_TREE || TREE_CODE (TREE_TYPE (current.lhs)) != BOOLEAN_TYPE)) warn_logical_not_parentheses (current.loc, current.tree_type, *************** cp_parser_template_name (cp_parser* pars *** 17728,17734 **** : parser->context->object_type); if (scope && TYPE_P (scope) && (!CLASS_TYPE_P (scope) ! || (check_dependency_p && dependent_type_p (scope)))) { /* We're optimizing away the call to cp_parser_lookup_name, but we still need to do this. */ --- 17731,17737 ---- : parser->context->object_type); if (scope && TYPE_P (scope) && (!CLASS_TYPE_P (scope) ! || (check_dependency_p && dependent_scope_p (scope)))) { /* We're optimizing away the call to cp_parser_lookup_name, but we still need to do this. */ *************** cp_parser_template_name (cp_parser* pars *** 17739,17746 **** } /* cp_parser_lookup_name clears OBJECT_TYPE. */ ! const bool scoped_p = ((parser->scope ? parser->scope ! : parser->context->object_type) != NULL_TREE); /* Look up the name. */ decl = cp_parser_lookup_name (parser, identifier, --- 17742,17749 ---- } /* cp_parser_lookup_name clears OBJECT_TYPE. */ ! tree scope = (parser->scope ? parser->scope ! : parser->context->object_type); /* Look up the name. */ decl = cp_parser_lookup_name (parser, identifier, *************** cp_parser_template_name (cp_parser* pars *** 17753,17758 **** --- 17756,17774 ---- decl = strip_using_decl (decl); + /* 13.3 [temp.names] A < is interpreted as the delimiter of a + template-argument-list if it follows a name that is not a + conversion-function-id and + - that follows the keyword template or a ~ after a nested-name-specifier or + in a class member access expression, or + - for which name lookup finds the injected-class-name of a class template + or finds any declaration of a template, or + - that is an unqualified name for which name lookup either finds one or + more functions or finds nothing, or + - that is a terminal name in a using-declarator (9.9), in a declarator-id + (9.3.4), or in a type-only context other than a nested-name-specifier + (13.8). */ + /* If DECL is a template, then the name was a template-name. */ if (TREE_CODE (decl) == TEMPLATE_DECL) { *************** cp_parser_template_name (cp_parser* pars *** 17772,17782 **** } else { ! /* The standard does not explicitly indicate whether a name that ! names a set of overloaded declarations, some of which are ! templates, is a template-name. However, such a name should ! be a template-name; otherwise, there is no way to form a ! template-id for the overloaded templates. */ bool found = false; for (lkp_iterator iter (MAYBE_BASELINK_FUNCTIONS (decl)); --- 17788,17794 ---- } else { ! /* Look through an overload set for any templates. */ bool found = false; for (lkp_iterator iter (MAYBE_BASELINK_FUNCTIONS (decl)); *************** cp_parser_template_name (cp_parser* pars *** 17784,17799 **** if (TREE_CODE (*iter) == TEMPLATE_DECL) found = true; if (!found && (cxx_dialect > cxx17) ! && !scoped_p && cp_lexer_next_token_is (parser->lexer, CPP_LESS) && tag_type == none_type) { - /* [temp.names] says "A name is also considered to refer to a template - if it is an unqualified-id followed by a < and name lookup finds - either one or more functions or finds nothing." */ - /* The "more functions" case. Just use the OVERLOAD as normally. We don't use is_overloaded_fn here to avoid considering BASELINKs. */ --- 17796,17809 ---- if (TREE_CODE (*iter) == TEMPLATE_DECL) found = true; + /* "an unqualified name for which name lookup either finds one or more + functions or finds nothing". */ if (!found && (cxx_dialect > cxx17) ! && !scope && cp_lexer_next_token_is (parser->lexer, CPP_LESS) && tag_type == none_type) { /* The "more functions" case. Just use the OVERLOAD as normally. We don't use is_overloaded_fn here to avoid considering BASELINKs. */ *************** cp_parser_template_name (cp_parser* pars *** 17806,17811 **** --- 17816,17828 ---- return identifier; } + /* "that follows the keyword template"..."in a type-only context" */ + if (!found && scope + && (template_keyword_p || tag_type != none_type) + && TYPE_P (scope) && dependent_type_p (scope) + && cp_parser_nth_token_starts_template_argument_list_p (parser, 1)) + return identifier; + if (!found) { /* The name does not name a template. */ *************** cp_parser_class_specifier_1 (cp_parser* *** 24967,24972 **** --- 24984,24990 ---- case CPP_OPEN_PAREN: case CPP_CLOSE_PAREN: case CPP_COMMA: + case CPP_SCOPE: want_semicolon = false; break; *************** cp_parser_lookup_name (cp_parser *parser *** 29419,29427 **** } else if (object_type) { /* Look up the name in the scope of the OBJECT_TYPE, unless the OBJECT_TYPE is not a class. */ ! if (CLASS_TYPE_P (object_type)) /* If the OBJECT_TYPE is a template specialization, it may be instantiated during name lookup. In that case, errors may be issued. Even if we rollback the current tentative --- 29437,29448 ---- } else if (object_type) { + bool dep = dependent_scope_p (object_type); + /* Look up the name in the scope of the OBJECT_TYPE, unless the OBJECT_TYPE is not a class. */ ! if (CLASS_TYPE_P (object_type) ! && !(dep && LAMBDA_TYPE_P (object_type))) /* If the OBJECT_TYPE is a template specialization, it may be instantiated during name lookup. In that case, errors may be issued. Even if we rollback the current tentative *************** class_decl_loc_t::add (cp_parser *parser *** 32308,32314 **** bool key_redundant = (!def_p && !decl_p && (decl == type_decl || TREE_CODE (decl) == TEMPLATE_DECL ! || TYPE_BEING_DEFINED (type))); if (key_redundant && class_key != class_type --- 32329,32336 ---- bool key_redundant = (!def_p && !decl_p && (decl == type_decl || TREE_CODE (decl) == TEMPLATE_DECL ! || (CLASS_TYPE_P (type) ! && TYPE_BEING_DEFINED (type)))); if (key_redundant && class_key != class_type *************** class_decl_loc_t::add (cp_parser *parser *** 32346,32352 **** } else { ! /* TYPE was previously defined in some unknown precompiled hdeader. Simply add a record of its definition at an unknown location and proceed below to add a reference to it at the current location. (Declarations in precompiled headers that are not definitions --- 32368,32374 ---- } else { ! /* TYPE was previously defined in some unknown precompiled header. Simply add a record of its definition at an unknown location and proceed below to add a reference to it at the current location. (Declarations in precompiled headers that are not definitions diff -Nrcpad gcc-11.3.0/gcc/cp/pt.c gcc-11.4.0/gcc/cp/pt.c *** gcc-11.3.0/gcc/cp/pt.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/cp/pt.c Mon May 29 08:46:29 2023 *************** determine_specialization (tree template_ *** 2524,2540 **** } /* It was a specialization of a template. */ ! targs = DECL_TI_ARGS (DECL_TEMPLATE_RESULT (TREE_VALUE (templates))); ! if (TMPL_ARGS_HAVE_MULTIPLE_LEVELS (targs)) ! { ! *targs_out = copy_node (targs); ! SET_TMPL_ARGS_LEVEL (*targs_out, ! TMPL_ARGS_DEPTH (*targs_out), ! TREE_PURPOSE (templates)); ! } ! else ! *targs_out = TREE_PURPOSE (templates); ! return TREE_VALUE (templates); } /* Returns a chain of parameter types, exactly like the SPEC_TYPES, --- 2524,2537 ---- } /* It was a specialization of a template. */ ! tree tmpl = TREE_VALUE (templates); ! *targs_out = add_outermost_template_args (tmpl, TREE_PURPOSE (templates)); ! ! /* Propagate the template's constraints to the declaration. */ ! if (tsk != tsk_template) ! set_constraints (decl, get_constraints (tmpl)); ! ! return tmpl; } /* Returns a chain of parameter types, exactly like the SPEC_TYPES, *************** process_partial_specialization (tree dec *** 5200,5207 **** && !get_partial_spec_bindings (maintmpl, maintmpl, specargs)) { auto_diagnostic_group d; ! if (permerror (input_location, "partial specialization %qD is not " ! "more specialized than", decl)) inform (DECL_SOURCE_LOCATION (maintmpl), "primary template %qD", maintmpl); } --- 5197,5205 ---- && !get_partial_spec_bindings (maintmpl, maintmpl, specargs)) { auto_diagnostic_group d; ! if (pedwarn (input_location, 0, ! "partial specialization %qD is not more specialized than", ! decl)) inform (DECL_SOURCE_LOCATION (maintmpl), "primary template %qD", maintmpl); } *************** uses_template_parms (tree t) *** 10889,10895 **** || uses_template_parms (TREE_CHAIN (t))); else if (TREE_CODE (t) == TYPE_DECL) dependent_p = dependent_type_p (TREE_TYPE (t)); ! else if (t == error_mark_node) dependent_p = false; else dependent_p = instantiation_dependent_expression_p (t); --- 10887,10893 ---- || uses_template_parms (TREE_CHAIN (t))); else if (TREE_CODE (t) == TYPE_DECL) dependent_p = dependent_type_p (TREE_TYPE (t)); ! else if (t == error_mark_node || TREE_CODE (t) == NAMESPACE_DECL) dependent_p = false; else dependent_p = instantiation_dependent_expression_p (t); *************** outermost_tinst_level (void) *** 11136,11141 **** --- 11134,11166 ---- return level; } + /* True iff T is a friend function declaration that is not itself a template + and is not defined in a class template. */ + + bool + non_templated_friend_p (tree t) + { + if (t && TREE_CODE (t) == FUNCTION_DECL + && DECL_UNIQUE_FRIEND_P (t)) + { + tree ti = DECL_TEMPLATE_INFO (t); + if (!ti) + return true; + /* DECL_FRIEND_CONTEXT is set for a friend defined in class. */ + if (DECL_FRIEND_CONTEXT (t)) + return false; + /* Non-templated friends in a class template are still represented with a + TEMPLATE_DECL; check that its primary template is the befriending + class. Note that DECL_PRIMARY_TEMPLATE is null for + template friend A::f(); */ + tree tmpl = TI_TEMPLATE (ti); + tree primary = DECL_PRIMARY_TEMPLATE (tmpl); + return (primary && primary != tmpl); + } + else + return false; + } + /* DECL is a friend FUNCTION_DECL or TEMPLATE_DECL. ARGS is the vector of template arguments, as for tsubst. *************** tsubst_friend_function (tree decl, tree *** 11236,11244 **** tree new_friend_template_info = DECL_TEMPLATE_INFO (new_friend); tree new_friend_result_template_info = NULL_TREE; bool new_friend_is_defn = ! (DECL_INITIAL (DECL_TEMPLATE_RESULT ! (template_for_substitution (new_friend))) ! != NULL_TREE); tree not_tmpl = new_friend; if (TREE_CODE (new_friend) == TEMPLATE_DECL) --- 11261,11270 ---- tree new_friend_template_info = DECL_TEMPLATE_INFO (new_friend); tree new_friend_result_template_info = NULL_TREE; bool new_friend_is_defn = ! (new_friend_template_info ! && (DECL_INITIAL (DECL_TEMPLATE_RESULT ! (template_for_substitution (new_friend))) ! != NULL_TREE)); tree not_tmpl = new_friend; if (TREE_CODE (new_friend) == TEMPLATE_DECL) *************** gen_elem_of_pack_expansion_instantiation *** 12641,12647 **** t = tsubst_expr (pattern, args, complain, in_decl, /*integral_constant_expression_p=*/false); else ! t = tsubst (pattern, args, complain, in_decl); /* If the Ith argument pack element is a pack expansion, then the Ith element resulting from the substituting is going to --- 12667,12679 ---- t = tsubst_expr (pattern, args, complain, in_decl, /*integral_constant_expression_p=*/false); else ! { ! t = tsubst (pattern, args, complain, in_decl); ! if (is_auto (t) && !ith_elem_is_expansion) ! /* When expanding the fake auto... pack expansion from add_capture, we ! need to mark that the expansion is no longer a pack. */ ! TEMPLATE_TYPE_PARAMETER_PACK (t) = false; ! } /* If the Ith argument pack element is a pack expansion, then the Ith element resulting from the substituting is going to *************** public: *** 12893,12909 **** /* List of local_specializations used within the pattern. */ tree extra; tsubst_flags_t complain; el_data (tsubst_flags_t c) : extra (NULL_TREE), complain (c) {} }; static tree ! extract_locals_r (tree *tp, int */*walk_subtrees*/, void *data_) { el_data &data = *reinterpret_cast(data_); tree *extra = &data.extra; tsubst_flags_t complain = data.complain; if (TYPE_P (*tp) && typedef_variant_p (*tp)) /* Remember local typedefs (85214). */ tp = &TYPE_NAME (*tp); --- 12925,12953 ---- /* List of local_specializations used within the pattern. */ tree extra; tsubst_flags_t complain; + /* True iff we don't want to walk into unevaluated contexts. */ + bool skip_unevaluated_operands = false; + /* The unevaluated contexts that we avoided walking. */ + auto_vec skipped_trees; el_data (tsubst_flags_t c) : extra (NULL_TREE), complain (c) {} }; static tree ! extract_locals_r (tree *tp, int *walk_subtrees, void *data_) { el_data &data = *reinterpret_cast(data_); tree *extra = &data.extra; tsubst_flags_t complain = data.complain; + if (data.skip_unevaluated_operands + && unevaluated_p (TREE_CODE (*tp))) + { + data.skipped_trees.safe_push (*tp); + *walk_subtrees = 0; + return NULL_TREE; + } + if (TYPE_P (*tp) && typedef_variant_p (*tp)) /* Remember local typedefs (85214). */ tp = &TYPE_NAME (*tp); *************** static tree *** 12995,13001 **** --- 13039,13058 ---- extract_local_specs (tree pattern, tsubst_flags_t complain) { el_data data (complain); + /* Walk the pattern twice, ignoring unevaluated operands the first time + around, so that if a local specialization appears in both an evaluated + and unevaluated context we prefer to process it in the evaluated context + (since e.g. process_outer_var_ref is a no-op inside an unevaluated + context). */ + data.skip_unevaluated_operands = true; cp_walk_tree (&pattern, extract_locals_r, &data, &data.visited); + /* Now walk the unevaluated contexts we skipped the first time around. */ + data.skip_unevaluated_operands = false; + for (tree t : data.skipped_trees) + { + data.visited.remove (t); + cp_walk_tree (&t, extract_locals_r, &data, &data.visited); + } return data.extra; } *************** tsubst_function_decl (tree t, tree args, *** 14037,14042 **** --- 14094,14103 ---- && !LAMBDA_FUNCTION_P (t)) return t; + /* A non-templated friend doesn't get DECL_TEMPLATE_INFO. */ + if (non_templated_friend_p (t)) + goto friend_case; + /* Calculate the most general template of which R is a specialization. */ gen_tmpl = most_general_template (DECL_TI_TEMPLATE (t)); *************** tsubst_function_decl (tree t, tree args, *** 14072,14078 **** /* This special case arises when we have something like this: template struct S { ! friend void f(int, double); }; Here, the DECL_TI_TEMPLATE for the friend declaration --- 14133,14139 ---- /* This special case arises when we have something like this: template struct S { ! friend void f(int, double); }; Here, the DECL_TI_TEMPLATE for the friend declaration *************** tsubst_function_decl (tree t, tree args, *** 14080,14085 **** --- 14141,14147 ---- tsubst_friend_function, and we want only to create a new decl (R) with appropriate types so that we can call determine_specialization. */ + friend_case: gen_tmpl = NULL_TREE; argvec = NULL_TREE; } *************** tsubst_function_decl (tree t, tree args, *** 14269,14275 **** /* If this is an instantiation of a member template, clone it. If it isn't, that'll be handled by clone_constructors_and_destructors. */ ! if (PRIMARY_TEMPLATE_P (gen_tmpl)) clone_cdtor (r, /*update_methods=*/false); } else if ((complain & tf_error) != 0 --- 14331,14337 ---- /* If this is an instantiation of a member template, clone it. If it isn't, that'll be handled by clone_constructors_and_destructors. */ ! if (gen_tmpl && PRIMARY_TEMPLATE_P (gen_tmpl)) clone_cdtor (r, /*update_methods=*/false); } else if ((complain & tf_error) != 0 *************** tsubst_decl (tree t, tree args, tsubst_f *** 15110,15115 **** --- 15172,15183 ---- { DECL_ORIGINAL_TYPE (r) = NULL_TREE; set_underlying_type (r); + + /* common_handle_aligned_attribute doesn't apply the alignment + to DECL_ORIGINAL_TYPE. */ + if (TYPE_USER_ALIGN (TREE_TYPE (t))) + TREE_TYPE (r) = build_aligned_type (TREE_TYPE (r), + TYPE_ALIGN (TREE_TYPE (t))); } layout_decl (r, 0); *************** tsubst_baselink (tree baselink, tree obj *** 16404,16410 **** tree binfo_type = BINFO_TYPE (BASELINK_BINFO (baselink)); binfo_type = tsubst (binfo_type, args, complain, in_decl); ! bool dependent_p = binfo_type != BINFO_TYPE (BASELINK_BINFO (baselink)); if (dependent_p) { --- 16472,16479 ---- tree binfo_type = BINFO_TYPE (BASELINK_BINFO (baselink)); binfo_type = tsubst (binfo_type, args, complain, in_decl); ! bool dependent_p = (binfo_type != BINFO_TYPE (BASELINK_BINFO (baselink)) ! || optype != BASELINK_OPTYPE (baselink)); if (dependent_p) { *************** tsubst_expr (tree t, tree args, tsubst_f *** 18508,18513 **** --- 18577,18587 ---- maybe_push_decl (decl); if (VAR_P (decl) + && DECL_LANG_SPECIFIC (decl) + && DECL_OMP_PRIVATIZED_MEMBER (decl)) + break; + + if (VAR_P (decl) && DECL_DECOMPOSITION_P (decl) && TREE_TYPE (pattern_decl) != error_mark_node) ndecl = tsubst_decomp_names (decl, pattern_decl, args, *************** unify_pack_expansion (tree tparms, tree *** 23410,23415 **** --- 23484,23491 ---- arguments if it is not otherwise deduced. */ if (cxx_dialect >= cxx20 && TREE_VEC_LENGTH (new_args) < TREE_VEC_LENGTH (old_args) + /* FIXME This isn't set properly for partial instantiations. */ + && TPARMS_PRIMARY_TEMPLATE (tparms) && builtin_guide_p (TPARMS_PRIMARY_TEMPLATE (tparms))) TREE_VEC_LENGTH (old_args) = TREE_VEC_LENGTH (new_args); if (!comp_template_args (old_args, new_args, *************** unify (tree tparms, tree targs, tree par *** 23928,23934 **** /* Now check whether the type of this parameter is still dependent, and give up if so. */ ++processing_template_decl; ! tparm = tsubst (tparm, targs, tf_none, NULL_TREE); --processing_template_decl; if (uses_template_parms (tparm)) return unify_success (explain_p); --- 24004,24010 ---- /* Now check whether the type of this parameter is still dependent, and give up if so. */ ++processing_template_decl; ! tparm = tsubst (TREE_TYPE (parm), targs, tf_none, NULL_TREE); --processing_template_decl; if (uses_template_parms (tparm)) return unify_success (explain_p); *************** rewrite_template_parm (tree olddecl, uns *** 28726,28732 **** const int depth = TMPL_ARGS_DEPTH (tsubst_args); tree ttargs = make_tree_vec (depth + 1); for (int i = 0; i < depth; ++i) ! TREE_VEC_ELT (ttargs, i) = TREE_VEC_ELT (tsubst_args, i); TREE_VEC_ELT (ttargs, depth) = template_parms_level_to_args (ttparms); // Substitute ttargs into ttparms to fix references to --- 28802,28808 ---- const int depth = TMPL_ARGS_DEPTH (tsubst_args); tree ttargs = make_tree_vec (depth + 1); for (int i = 0; i < depth; ++i) ! TREE_VEC_ELT (ttargs, i) = TMPL_ARGS_LEVEL (tsubst_args, i + 1); TREE_VEC_ELT (ttargs, depth) = template_parms_level_to_args (ttparms); // Substitute ttargs into ttparms to fix references to *************** rewrite_template_parm (tree olddecl, uns *** 28739,28746 **** ttparms = tsubst_template_parms_level (ttparms, ttargs, complain); // Finally, tack the adjusted parms onto tparms. ! ttparms = tree_cons (size_int (depth), ttparms, ! current_template_parms); DECL_TEMPLATE_PARMS (newdecl) = ttparms; } } --- 28815,28831 ---- ttparms = tsubst_template_parms_level (ttparms, ttargs, complain); // Finally, tack the adjusted parms onto tparms. ! ttparms = tree_cons (size_int (level + 1), ttparms, ! copy_node (current_template_parms)); ! // As with all template template parms, the parameter list captured ! // by this template template parm that corresponds to its own level ! // should be empty. This avoids infinite recursion when structurally ! // comparing two such rewritten template template parms (PR102479). ! gcc_assert (!TREE_VEC_LENGTH ! (TREE_VALUE (TREE_CHAIN (DECL_TEMPLATE_PARMS (olddecl))))); ! gcc_assert (TMPL_PARMS_DEPTH (TREE_CHAIN (ttparms)) == level); ! TREE_VALUE (TREE_CHAIN (ttparms)) = make_tree_vec (0); ! // All done. DECL_TEMPLATE_PARMS (newdecl) = ttparms; } } *************** alias_ctad_tweaks (tree tmpl, tree uguid *** 29238,29243 **** --- 29323,29333 ---- ++ndlen; tree gtparms = make_tree_vec (natparms + ndlen); + /* Set current_template_parms as in build_deduction_guide. */ + auto ctp = make_temp_override (current_template_parms); + current_template_parms = copy_node (DECL_TEMPLATE_PARMS (tmpl)); + TREE_VALUE (current_template_parms) = gtparms; + /* First copy over the parms of A. */ for (j = 0; j < natparms; ++j) TREE_VEC_ELT (gtparms, j) = TREE_VEC_ELT (atparms, j); diff -Nrcpad gcc-11.3.0/gcc/cp/semantics.c gcc-11.4.0/gcc/cp/semantics.c *** gcc-11.3.0/gcc/cp/semantics.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/cp/semantics.c Mon May 29 08:46:29 2023 *************** do_pushlevel (scope_kind sk) *** 655,661 **** /* Queue a cleanup. CLEANUP is an expression/statement to be executed when the current scope is exited. EH_ONLY is true when this is not ! meant to apply to normal control flow transfer. */ void push_cleanup (tree decl, tree cleanup, bool eh_only) --- 655,662 ---- /* Queue a cleanup. CLEANUP is an expression/statement to be executed when the current scope is exited. EH_ONLY is true when this is not ! meant to apply to normal control flow transfer. DECL is the VAR_DECL ! being cleaned up, if any, or null for temporaries or subobjects. */ void push_cleanup (tree decl, tree cleanup, bool eh_only) *************** finish_qualified_id_expr (tree qualifyin *** 2301,2307 **** /* If EXPR occurs as the operand of '&', use special handling that permits a pointer-to-member. */ ! if (address_p && done) { if (TREE_CODE (expr) == SCOPE_REF) expr = TREE_OPERAND (expr, 1); --- 2302,2309 ---- /* If EXPR occurs as the operand of '&', use special handling that permits a pointer-to-member. */ ! if (address_p && done ! && TREE_CODE (qualifying_class) != ENUMERAL_TYPE) { if (TREE_CODE (expr) == SCOPE_REF) expr = TREE_OPERAND (expr, 1); *************** finish_decltype_type (tree expr, bool id *** 10220,10226 **** } else if (processing_template_decl) { ! expr = instantiate_non_dependent_expr_sfinae (expr, complain); if (expr == error_mark_node) return error_mark_node; } --- 10222,10228 ---- } else if (processing_template_decl) { ! expr = instantiate_non_dependent_expr_sfinae (expr, complain|tf_decltype); if (expr == error_mark_node) return error_mark_node; } diff -Nrcpad gcc-11.3.0/gcc/cp/tree.c gcc-11.4.0/gcc/cp/tree.c *** gcc-11.3.0/gcc/cp/tree.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/cp/tree.c Mon May 29 08:46:29 2023 *************** record_has_unique_obj_representations (c *** 4641,4647 **** DECL_SIZE (field))) return false; } ! else if (DECL_C_BIT_FIELD (field)) { tree btype = DECL_BIT_FIELD_TYPE (field); if (!type_has_unique_obj_representations (btype)) --- 4641,4647 ---- DECL_SIZE (field))) return false; } ! else if (DECL_C_BIT_FIELD (field) && !DECL_UNNAMED_BIT_FIELD (field)) { tree btype = DECL_BIT_FIELD_TYPE (field); if (!type_has_unique_obj_representations (btype)) *************** record_has_unique_obj_representations (c *** 4652,4658 **** offset_int cur = 0; for (tree field = TYPE_FIELDS (t); field; field = DECL_CHAIN (field)) ! if (TREE_CODE (field) == FIELD_DECL) { offset_int fld = wi::to_offset (DECL_FIELD_OFFSET (field)); offset_int bitpos = wi::to_offset (DECL_FIELD_BIT_OFFSET (field)); --- 4652,4658 ---- offset_int cur = 0; for (tree field = TYPE_FIELDS (t); field; field = DECL_CHAIN (field)) ! if (TREE_CODE (field) == FIELD_DECL && !DECL_UNNAMED_BIT_FIELD (field)) { offset_int fld = wi::to_offset (DECL_FIELD_OFFSET (field)); offset_int bitpos = wi::to_offset (DECL_FIELD_BIT_OFFSET (field)); diff -Nrcpad gcc-11.3.0/gcc/cp/typeck.c gcc-11.4.0/gcc/cp/typeck.c *** gcc-11.3.0/gcc/cp/typeck.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/cp/typeck.c Mon May 29 08:46:29 2023 *************** cp_build_binary_op (const op_location_t *** 4926,4932 **** it was unsigned. */ tree stripped_op1 = tree_strip_any_location_wrapper (op1); shorten = ((TREE_CODE (op0) == NOP_EXPR ! && TYPE_UNSIGNED (TREE_TYPE (TREE_OPERAND (op0, 0)))) || (TREE_CODE (stripped_op1) == INTEGER_CST && ! integer_all_onesp (stripped_op1))); } --- 4926,4937 ---- it was unsigned. */ tree stripped_op1 = tree_strip_any_location_wrapper (op1); shorten = ((TREE_CODE (op0) == NOP_EXPR ! && INTEGRAL_TYPE_P (TREE_TYPE (TREE_OPERAND (op0, ! 0))) ! && TYPE_UNSIGNED (TREE_TYPE (TREE_OPERAND (op0, 0))) ! && (TYPE_PRECISION (TREE_TYPE (TREE_OPERAND (op0, ! 0))) ! < TYPE_PRECISION (type0))) || (TREE_CODE (stripped_op1) == INTEGER_CST && ! integer_all_onesp (stripped_op1))); } *************** cp_build_binary_op (const op_location_t *** 4962,4968 **** only if unsigned or if dividing by something we know != -1. */ tree stripped_op1 = tree_strip_any_location_wrapper (op1); shorten = ((TREE_CODE (op0) == NOP_EXPR ! && TYPE_UNSIGNED (TREE_TYPE (TREE_OPERAND (op0, 0)))) || (TREE_CODE (stripped_op1) == INTEGER_CST && ! integer_all_onesp (stripped_op1))); common = 1; --- 4967,4976 ---- only if unsigned or if dividing by something we know != -1. */ tree stripped_op1 = tree_strip_any_location_wrapper (op1); shorten = ((TREE_CODE (op0) == NOP_EXPR ! && INTEGRAL_TYPE_P (TREE_TYPE (TREE_OPERAND (op0, 0))) ! && TYPE_UNSIGNED (TREE_TYPE (TREE_OPERAND (op0, 0))) ! && (TYPE_PRECISION (TREE_TYPE (TREE_OPERAND (op0, 0))) ! < TYPE_PRECISION (type0))) || (TREE_CODE (stripped_op1) == INTEGER_CST && ! integer_all_onesp (stripped_op1))); common = 1; *************** cp_build_unary_op (enum tree_code code, *** 6741,6749 **** build_zero_cst (TREE_TYPE (arg)), complain); arg = perform_implicit_conversion (boolean_type_node, arg, complain); - val = invert_truthvalue_loc (location, arg); if (arg != error_mark_node) ! return val; errstring = _("in argument to unary !"); break; --- 6749,6761 ---- build_zero_cst (TREE_TYPE (arg)), complain); arg = perform_implicit_conversion (boolean_type_node, arg, complain); if (arg != error_mark_node) ! { ! val = invert_truthvalue_loc (location, arg); ! if (obvalue_p (val)) ! val = non_lvalue_loc (location, val); ! return val; ! } errstring = _("in argument to unary !"); break; *************** cp_build_modify_expr (location_t loc, tr *** 8769,8778 **** /* An expression of the form E1 op= E2. [expr.ass] says: "Such expressions are deprecated if E1 has volatile-qualified ! type." We warn here rather than in cp_genericize_r because for compound assignments we are supposed to warn even if the assignment is a discarded-value expression. */ ! if (TREE_THIS_VOLATILE (lhs) || CP_TYPE_VOLATILE_P (lhstype)) warning_at (loc, OPT_Wvolatile, "compound assignment with %-qualified left " "operand is deprecated"); --- 8781,8794 ---- /* An expression of the form E1 op= E2. [expr.ass] says: "Such expressions are deprecated if E1 has volatile-qualified ! type and op is not one of the bitwise operators |, &, ^." ! We warn here rather than in cp_genericize_r because for compound assignments we are supposed to warn even if the assignment is a discarded-value expression. */ ! if (modifycode != BIT_AND_EXPR ! && modifycode != BIT_IOR_EXPR ! && modifycode != BIT_XOR_EXPR ! && (TREE_THIS_VOLATILE (lhs) || CP_TYPE_VOLATILE_P (lhstype))) warning_at (loc, OPT_Wvolatile, "compound assignment with %-qualified left " "operand is deprecated"); *************** cp_build_modify_expr (location_t loc, tr *** 8887,8892 **** --- 8903,8910 ---- } /* Allow array assignment in compiler-generated code. */ + else if (DECL_P (lhs) && DECL_ARTIFICIAL (lhs)) + /* OK, used by coroutines (co-await-initlist1.C). */; else if (!current_function_decl || !DECL_DEFAULTED_FN (current_function_decl)) { *************** build_ptrmemfunc (tree type, tree pfn, i *** 9208,9225 **** if (n == error_mark_node) return error_mark_node; /* We don't have to do any conversion to convert a pointer-to-member to its own type. But, we don't want to just return a PTRMEM_CST if there's an explicit cast; that cast should make the expression an invalid template argument. */ ! if (TREE_CODE (pfn) != PTRMEM_CST) ! { ! if (same_type_p (to_type, pfn_type)) ! return pfn; ! else if (integer_zerop (n) && TREE_CODE (pfn) != CONSTRUCTOR) ! return build_reinterpret_cast (input_location, to_type, pfn, ! complain); ! } if (TREE_SIDE_EFFECTS (pfn)) pfn = save_expr (pfn); --- 9226,9240 ---- if (n == error_mark_node) return error_mark_node; + STRIP_ANY_LOCATION_WRAPPER (pfn); + /* We don't have to do any conversion to convert a pointer-to-member to its own type. But, we don't want to just return a PTRMEM_CST if there's an explicit cast; that cast should make the expression an invalid template argument. */ ! if (TREE_CODE (pfn) != PTRMEM_CST ! && same_type_p (to_type, pfn_type)) ! return pfn; if (TREE_SIDE_EFFECTS (pfn)) pfn = save_expr (pfn); *************** build_ptrmemfunc (tree type, tree pfn, i *** 9251,9257 **** /* Handle null pointer to member function conversions. */ if (null_ptr_cst_p (pfn)) { ! pfn = cp_build_c_cast (input_location, type, pfn, complain); return build_ptrmemfunc1 (to_type, integer_zero_node, pfn); --- 9266,9274 ---- /* Handle null pointer to member function conversions. */ if (null_ptr_cst_p (pfn)) { ! pfn = cp_build_c_cast (input_location, ! TYPE_PTRMEMFUNC_FN_TYPE_RAW (to_type), ! pfn, complain); return build_ptrmemfunc1 (to_type, integer_zero_node, pfn); diff -Nrcpad gcc-11.3.0/gcc/cse.c gcc-11.4.0/gcc/cse.c *** gcc-11.3.0/gcc/cse.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/cse.c Mon May 29 08:46:29 2023 *************** compute_const_anchors (rtx cst, *** 1190,1203 **** HOST_WIDE_INT *lower_base, HOST_WIDE_INT *lower_offs, HOST_WIDE_INT *upper_base, HOST_WIDE_INT *upper_offs) { ! HOST_WIDE_INT n = INTVAL (cst); *lower_base = n & ~(targetm.const_anchor - 1); ! if (*lower_base == n) return false; ! *upper_base = ! (n + (targetm.const_anchor - 1)) & ~(targetm.const_anchor - 1); *upper_offs = n - *upper_base; *lower_offs = n - *lower_base; return true; --- 1190,1203 ---- HOST_WIDE_INT *lower_base, HOST_WIDE_INT *lower_offs, HOST_WIDE_INT *upper_base, HOST_WIDE_INT *upper_offs) { ! unsigned HOST_WIDE_INT n = UINTVAL (cst); *lower_base = n & ~(targetm.const_anchor - 1); ! if ((unsigned HOST_WIDE_INT) *lower_base == n) return false; ! *upper_base = ((n + (targetm.const_anchor - 1)) ! & ~(targetm.const_anchor - 1)); *upper_offs = n - *upper_base; *lower_offs = n - *lower_base; return true; *************** insert_const_anchor (HOST_WIDE_INT ancho *** 1214,1220 **** rtx anchor_exp; rtx exp; ! anchor_exp = GEN_INT (anchor); hash = HASH (anchor_exp, mode); elt = lookup (anchor_exp, hash, mode); if (!elt) --- 1214,1220 ---- rtx anchor_exp; rtx exp; ! anchor_exp = gen_int_mode (anchor, mode); hash = HASH (anchor_exp, mode); elt = lookup (anchor_exp, hash, mode); if (!elt) diff -Nrcpad gcc-11.3.0/gcc/cselib.c gcc-11.4.0/gcc/cselib.c *** gcc-11.3.0/gcc/cselib.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/cselib.c Mon May 29 08:46:29 2023 *************** along with GCC; see the file COPYING3. *** 32,37 **** --- 32,38 ---- #include "dumpfile.h" #include "cselib.h" #include "function-abi.h" + #include "alias.h" /* A list of cselib_val structures. */ struct elt_list *************** rtx_equal_for_cselib_1 (rtx x, rtx y, ma *** 1157,1162 **** --- 1158,1232 ---- return 1; } + /* Wrapper for rtx_equal_for_cselib_p to determine whether a SET is + truly redundant, taking into account aliasing information. */ + bool + cselib_redundant_set_p (rtx set) + { + gcc_assert (GET_CODE (set) == SET); + rtx dest = SET_DEST (set); + if (cselib_reg_set_mode (dest) != GET_MODE (dest)) + return false; + + if (!rtx_equal_for_cselib_p (dest, SET_SRC (set))) + return false; + + while (GET_CODE (dest) == SUBREG + || GET_CODE (dest) == ZERO_EXTRACT + || GET_CODE (dest) == STRICT_LOW_PART) + dest = XEXP (dest, 0); + + if (!flag_strict_aliasing || !MEM_P (dest)) + return true; + + /* For a store we need to check that suppressing it will not change + the effective alias set. */ + rtx dest_addr = XEXP (dest, 0); + + /* Lookup the equivalents to the original dest (rather than just the + MEM). */ + cselib_val *src_val = cselib_lookup (SET_DEST (set), + GET_MODE (SET_DEST (set)), + 0, VOIDmode); + + if (src_val) + { + /* Walk the list of source equivalents to find the MEM accessing + the same location. */ + for (elt_loc_list *l = src_val->locs; l; l = l->next) + { + rtx src_equiv = l->loc; + while (GET_CODE (src_equiv) == SUBREG + || GET_CODE (src_equiv) == ZERO_EXTRACT + || GET_CODE (src_equiv) == STRICT_LOW_PART) + src_equiv = XEXP (src_equiv, 0); + + if (MEM_P (src_equiv)) + { + /* Match the MEMs by comparing the addresses. We can + only remove the later store if the earlier aliases at + least all the accesses of the later one. */ + if (rtx_equal_for_cselib_1 (dest_addr, XEXP (src_equiv, 0), + GET_MODE (dest), 0)) + return mems_same_for_tbaa_p (src_equiv, dest); + } + } + } + + /* We failed to find a recorded value in the cselib history, so try + the source of this set; this catches cases such as *p = *q when p + and q have the same value. */ + rtx src = SET_SRC (set); + while (GET_CODE (src) == SUBREG) + src = XEXP (src, 0); + + if (MEM_P (src) + && rtx_equal_for_cselib_1 (dest_addr, XEXP (src, 0), GET_MODE (dest), 0)) + return mems_same_for_tbaa_p (src, dest); + + return false; + } + /* Helper function for cselib_hash_rtx. Arguments like for cselib_hash_rtx, except that it hashes (plus:P x c). */ diff -Nrcpad gcc-11.3.0/gcc/cselib.h gcc-11.4.0/gcc/cselib.h *** gcc-11.3.0/gcc/cselib.h Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/cselib.h Mon May 29 08:46:29 2023 *************** extern void cselib_process_insn (rtx_ins *** 83,88 **** --- 83,89 ---- extern bool fp_setter_insn (rtx_insn *); extern machine_mode cselib_reg_set_mode (const_rtx); extern int rtx_equal_for_cselib_1 (rtx, rtx, machine_mode, int); + extern bool cselib_redundant_set_p (rtx); extern int references_value_p (const_rtx, int); extern rtx cselib_expand_value_rtx (rtx, bitmap, int); typedef rtx (*cselib_expand_callback)(rtx, bitmap, int, void *); diff -Nrcpad gcc-11.3.0/gcc/d/ChangeLog gcc-11.4.0/gcc/d/ChangeLog *** gcc-11.3.0/gcc/d/ChangeLog Thu Apr 21 07:59:16 2022 --- gcc-11.4.0/gcc/d/ChangeLog Mon May 29 08:46:50 2023 *************** *** 1,3 **** --- 1,114 ---- + 2023-05-29 Release Manager + + * GCC 11.4.0 released. + + 2023-03-14 Iain Buclaw + + Backported from master: + 2023-03-14 Iain Buclaw + + PR d/109108 + * decl.cc (get_symbol_decl): Set DECL_LAMBDA_FUNCTION_P on function + literals. + (start_function): Unconditionally unset DECL_EXTERNAL. + (set_linkage_for_decl): Give lambda functions one-only linkage. + + 2023-03-13 Iain Buclaw + + Backported from master: + 2023-03-13 Iain Buclaw + + * decl.cc (finish_thunk): Unset DECL_EXTERNAL on thunk. + (make_thunk): Set DECL_EXTERNAL on thunk, don't call build_decl_tree. + (finish_function): Call finish_thunk on forward referenced thunks. + + 2023-03-13 Iain Buclaw + + Backported from master: + 2023-03-13 Iain Buclaw + + * decl.cc (get_fndecl_result): New function. + (get_fndecl_arguments): New function. + (DeclVisitor::visit (FuncDeclaration *)): Adjust to call + get_fndecl_arguments. + (make_thunk): Adjust to call get_fndecl_arguments and + get_fndecl_result. + (start_function): Adjust to call get_fndecl_result. + + 2023-03-03 Iain Buclaw + + Backported from master: + 2023-03-03 Iain Buclaw + + PR d/108877 + * imports.cc (ImportVisitor::visit (EnumDeclaration *)): Call + make_import on TYPE_MAIN_VARIANT. + (ImportVisitor::visit (AggregateDeclaration *)): Likewise. + (ImportVisitor::visit (ClassDeclaration *)): Likewise. + + 2022-12-11 Iain Buclaw + + Backported from master: + 2022-12-11 Iain Buclaw + + PR d/108050 + * decl.cc (DeclVisitor::visit (Import *)): Handle build_import_decl + returning a TREE_LIST. + * imports.cc (ImportVisitor::visit (OverloadSet *)): New override. + + 2022-11-30 Iain Buclaw + + Backported from master: + 2022-11-30 Iain Buclaw + + PR d/107592 + * toir.cc (IRVisitor::push_unrolled_continue_label): New method. + (IRVisitor::pop_unrolled_continue_label): New method. + (IRVisitor::visit (UnrolledLoopStatement *)): Use them instead of + push_continue_label and pop_continue_label. + + 2022-08-16 Iain Buclaw + + Backported from master: + 2022-08-16 Iain Buclaw + + PR d/106638 + * gdc.texi: Update DIP links to point at upstream dlang/DIPs + repository. + + 2022-07-04 Iain Buclaw + + Backported from master: + 2022-06-29 Iain Buclaw + + PR d/106139 + * d-convert.cc (convert_expr): Handle casting from array to vector. + (convert_for_rvalue): Rewrite vector to array casts of the same + element type into a constructor. + (convert_for_assignment): Return calling convert_for_rvalue. + * dmd/expressionsem.c (ExpressionSemanticVisitor::visit): Run semantic + on vector expression after lowering. + * expr.cc (ExprVisitor::visit (VectorExp *)): Handle generating a + vector expression from a static array. + * toir.cc (IRVisitor::visit (ReturnStatement *)): Call + convert_for_rvalue on return value. + + 2022-06-15 Iain Buclaw + + Backported from master: + 2022-06-15 Iain Buclaw + + * typeinfo.cc (make_internal_typeinfo): Set TYPE_ARTIFICIAL. + + 2022-06-15 Iain Buclaw + + Backported from master: + 2021-12-01 Iain Buclaw + + * d-spec.cc (lang_specific_driver): Set SKIPOPT on -static-libstdc++ + and -static-libphobos only when target supports LD_STATIC_DYNAMIC. + Remove generate_option to re-add -static-libstdc++. + 2022-04-21 Release Manager * GCC 11.3.0 released. diff -Nrcpad gcc-11.3.0/gcc/d/d-convert.cc gcc-11.4.0/gcc/d/d-convert.cc *** gcc-11.3.0/gcc/d/d-convert.cc Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/d/d-convert.cc Mon May 29 08:46:29 2023 *************** convert_expr (tree exp, Type *etype, Typ *** 502,507 **** --- 502,516 ---- gcc_assert (totype->size () == etype->size ()); result = build_vconvert (build_ctype (totype), exp); } + else if (tbtype->ty == Tvector && tbtype->size () == ebtype->size ()) + { + /* Allow casting from array to vector as if its an unaligned load. */ + tree type = build_ctype (totype); + tree unaligned_type = build_variant_type_copy (type); + SET_TYPE_ALIGN (unaligned_type, 1 * BITS_PER_UNIT); + TYPE_USER_ALIGN (unaligned_type) = 1; + result = convert (type, build_vconvert (unaligned_type, exp)); + } else { error ("cannot cast expression of type %qs to type %qs", *************** convert_for_rvalue (tree expr, Type *ety *** 636,641 **** --- 645,683 ---- break; } + if (tbtype->ty == Tsarray + && ebtype->ty == Tsarray + && tbtype->nextOf ()->ty == ebtype->nextOf ()->ty + && INDIRECT_REF_P (expr) + && CONVERT_EXPR_CODE_P (TREE_CODE (TREE_OPERAND (expr, 0))) + && TREE_CODE (TREE_OPERAND (TREE_OPERAND (expr, 0), 0)) == ADDR_EXPR) + { + /* If expression is a vector that was casted to an array either by + explicit type cast or by taking the vector's `.array' value, strip the + reinterpret cast and build a constructor instead. */ + tree ptr = TREE_OPERAND (TREE_OPERAND (expr, 0), 0); + + if (VECTOR_TYPE_P (TREE_TYPE (TREE_TYPE (ptr)))) + { + /* Rewrite: `*(Array *)&vector' + into: `{ vector[0], vector[1], ... }' */ + tree array = d_save_expr (TREE_OPERAND (ptr, 0)); + array = build1 (VIEW_CONVERT_EXPR, TREE_TYPE (expr), array); + + uinteger_t dim = tbtype->isTypeSArray ()->dim->toUInteger (); + vec *elms = NULL; + for (uinteger_t i = 0; i < dim; i++) + { + tree index = size_int (i); + tree value = build4 (ARRAY_REF, TREE_TYPE (TREE_TYPE (array)), + array, index, NULL_TREE, NULL_TREE); + CONSTRUCTOR_APPEND_ELT (elms, index, value); + } + + return build_constructor (build_ctype (totype), elms); + } + } + return result ? result : convert_expr (expr, etype, totype); } *************** convert_for_assignment (tree expr, Type *** 696,702 **** return expr; } ! return convert_expr (expr, etype, totype); } /* Return a TREE representation of EXPR converted to represent --- 738,744 ---- return expr; } ! return convert_for_rvalue (expr, etype, totype); } /* Return a TREE representation of EXPR converted to represent diff -Nrcpad gcc-11.3.0/gcc/d/d-spec.cc gcc-11.4.0/gcc/d/d-spec.cc *** gcc-11.3.0/gcc/d/d-spec.cc Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/d/d-spec.cc Mon May 29 08:46:29 2023 *************** lang_specific_driver (cl_decoded_option *** 253,265 **** --- 253,275 ---- case OPT_static_libstdc__: saw_static_libcxx = true; + #ifdef HAVE_LD_STATIC_DYNAMIC + /* Remove -static-libstdc++ 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_static_libphobos: if (phobos_library != PHOBOS_NOLINK) phobos_library = PHOBOS_STATIC; + #ifdef HAVE_LD_STATIC_DYNAMIC + /* Remove -static-libphobos 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_libphobos: *************** lang_specific_driver (cl_decoded_option *** 460,466 **** #endif } ! if (saw_libcxx || need_stdcxx) { #ifdef HAVE_LD_STATIC_DYNAMIC if (saw_static_libcxx && !static_link) --- 470,476 ---- #endif } ! if (saw_libcxx || saw_static_libcxx || need_stdcxx) { #ifdef HAVE_LD_STATIC_DYNAMIC if (saw_static_libcxx && !static_link) *************** lang_specific_driver (cl_decoded_option *** 468,479 **** generate_option (OPT_Wl_, LD_STATIC_OPTION, 1, CL_DRIVER, &new_decoded_options[j++]); } - #else - /* Push the -static-libstdc++ option back onto the command so that - a target without LD_STATIC_DYNAMIC can use outfile substitution. */ - if (saw_static_libcxx && !static_link) - generate_option (OPT_static_libstdc__, NULL, 1, CL_DRIVER, - &new_decoded_options[j++]); #endif if (saw_libcxx) new_decoded_options[j++] = *saw_libcxx; --- 478,483 ---- diff -Nrcpad gcc-11.3.0/gcc/d/decl.cc gcc-11.4.0/gcc/d/decl.cc *** gcc-11.3.0/gcc/d/decl.cc Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/d/decl.cc Mon May 29 08:46:29 2023 *************** gcc_attribute_p (Dsymbol *decl) *** 116,121 **** --- 116,222 ---- return false; } + /* Return the DECL_RESULT for the function declaration DECL, create it if it + doesn't already exist. */ + + static tree + get_fndecl_result (FuncDeclaration *decl) + { + tree fndecl = get_symbol_decl (decl); + tree resdecl = DECL_RESULT (fndecl); + + if (resdecl != NULL_TREE) + return resdecl; + + resdecl = build_decl (make_location_t (decl->loc), RESULT_DECL, + NULL_TREE, TREE_TYPE (TREE_TYPE (fndecl))); + + DECL_ARTIFICIAL (resdecl) = 1; + DECL_IGNORED_P (resdecl) = 1; + DECL_CONTEXT (resdecl) = fndecl; + DECL_RESULT (fndecl) = resdecl; + return resdecl; + } + + /* Return the list of PARAM_DECLs for the function declaration DECL, create it + if it doesn't already exist. */ + + static tree + get_fndecl_arguments (FuncDeclaration *decl) + { + tree fndecl = get_symbol_decl (decl); + tree param_list = DECL_ARGUMENTS (fndecl); + + if (param_list != NULL_TREE) + return param_list; + + if (decl->fbody) + { + /* Handle special arguments first. */ + + /* `this' parameter: + For nested functions, D still generates a vthis, but it + should not be referenced in any expression. */ + if (decl->vthis) + { + tree parm_decl = get_symbol_decl (decl->vthis); + DECL_ARTIFICIAL (parm_decl) = 1; + TREE_READONLY (parm_decl) = 1; + + if (decl->vthis->type == Type::tvoidptr) + { + /* Replace generic pointer with back-end closure type + (this wins for gdb). */ + tree frame_type = FRAMEINFO_TYPE (get_frameinfo (decl)); + gcc_assert (frame_type != NULL_TREE); + TREE_TYPE (parm_decl) = build_pointer_type (frame_type); + } + + param_list = chainon (param_list, parm_decl); + } + + /* `_arguments' parameter. */ + if (decl->v_arguments) + { + tree parm_decl = get_symbol_decl (decl->v_arguments); + param_list = chainon (param_list, parm_decl); + } + + /* Now add on formal function parameters. */ + size_t n_parameters = decl->parameters ? decl->parameters->length : 0; + + for (size_t i = 0; i < n_parameters; i++) + { + VarDeclaration *param = (*decl->parameters)[i]; + tree parm_decl = get_symbol_decl (param); + /* Chain them in the correct order. */ + param_list = chainon (param_list, parm_decl); + } + } + else + { + /* Build parameters from the function type. */ + tree fntype = TREE_TYPE (fndecl); + + for (tree t = TYPE_ARG_TYPES (fntype); t; t = TREE_CHAIN (t)) + { + if (t == void_list_node) + break; + + tree param = build_decl (DECL_SOURCE_LOCATION (fndecl), + PARM_DECL, NULL_TREE, TREE_VALUE (t)); + DECL_ARG_TYPE (param) = TREE_TYPE (param); + DECL_ARTIFICIAL (param) = 1; + DECL_IGNORED_P (param) = 1; + DECL_CONTEXT (param) = fndecl; + param_list = chainon (param_list, param); + } + } + + DECL_ARGUMENTS (fndecl) = param_list; + return param_list; + } + /* Implements the visitor interface to lower all Declaration AST classes emitted from the D Front-end to GCC trees. All visit methods accept one parameter D, which holds the frontend AST *************** public: *** 197,204 **** tree name = (alias != NULL) ? get_identifier (alias->toChars ()) : NULL_TREE; ! debug_hooks->imported_module_or_decl (decl, name, context, ! false, false); } } else --- 298,313 ---- tree name = (alias != NULL) ? get_identifier (alias->toChars ()) : NULL_TREE; ! if (TREE_CODE (decl) != TREE_LIST) ! debug_hooks->imported_module_or_decl (decl, name, context, ! false, false); ! else ! { ! /* Overload sets return a list of imported decls. */ ! for (; decl != NULL_TREE; decl = TREE_CHAIN (decl)) ! debug_hooks->imported_module_or_decl (TREE_VALUE (decl), name, ! context, false, false); ! } } } else *************** public: *** 824,882 **** d->semanticRun = PASSobj; tree old_context = start_function (d); - tree parm_decl = NULL_TREE; - tree param_list = NULL_TREE; - - /* Special arguments... */ - - /* `this' parameter: - For nested functions, D still generates a vthis, but it - should not be referenced in any expression. */ - if (d->vthis) - { - parm_decl = get_symbol_decl (d->vthis); - DECL_ARTIFICIAL (parm_decl) = 1; - TREE_READONLY (parm_decl) = 1; - - if (d->vthis->type == Type::tvoidptr) - { - /* Replace generic pointer with back-end closure type - (this wins for gdb). */ - tree frame_type = FRAMEINFO_TYPE (get_frameinfo (d)); - gcc_assert (frame_type != NULL_TREE); - TREE_TYPE (parm_decl) = build_pointer_type (frame_type); - } - - param_list = chainon (param_list, parm_decl); - d_function_chain->static_chain = parm_decl; - } - - /* _arguments parameter. */ - if (d->v_arguments) - { - parm_decl = get_symbol_decl (d->v_arguments); - param_list = chainon (param_list, parm_decl); - } - - /* formal function parameters. */ - size_t n_parameters = d->parameters ? d->parameters->length : 0; - - for (size_t i = 0; i < n_parameters; i++) - { - VarDeclaration *param = (*d->parameters)[i]; - parm_decl = get_symbol_decl (param); - /* Chain them in the correct order. */ - param_list = chainon (param_list, parm_decl); - } - - DECL_ARGUMENTS (fndecl) = param_list; DECL_IN_UNITTEST_CONDITION_P (fndecl) = this->in_version_unittest_; rest_of_decl_compilation (fndecl, 1, 0); /* If this is a member function that nested (possibly indirectly) in another function, construct an expession for this member function's static chain by going through parent link of nested classes. */ if (d->isThis ()) { AggregateDeclaration *ad = d->isThis (); --- 933,949 ---- d->semanticRun = PASSobj; tree old_context = start_function (d); + tree param_list = get_fndecl_arguments (d); DECL_IN_UNITTEST_CONDITION_P (fndecl) = this->in_version_unittest_; rest_of_decl_compilation (fndecl, 1, 0); /* If this is a member function that nested (possibly indirectly) in another function, construct an expession for this member function's static chain by going through parent link of nested classes. */ + if (d->vthis) + d_function_chain->static_chain = get_symbol_decl (d->vthis); + if (d->isThis ()) { AggregateDeclaration *ad = d->isThis (); *************** public: *** 891,897 **** ad = pd->isAggregateDeclaration (); if (ad == NULL) { ! cfun->language->static_chain = this_tree; break; } } --- 958,964 ---- ad = pd->isAggregateDeclaration (); if (ad == NULL) { ! d_function_chain->static_chain = this_tree; break; } } *************** public: *** 952,958 **** var = build_address (var); tree init = build_call_expr (builtin_decl_explicit (BUILT_IN_VA_START), ! 2, var, parm_decl); declare_local_var (d->v_argptr); add_stmt (init); --- 1019,1025 ---- var = build_address (var); tree init = build_call_expr (builtin_decl_explicit (BUILT_IN_VA_START), ! 2, var, tree_last (param_list)); declare_local_var (d->v_argptr); add_stmt (init); *************** get_symbol_decl (Declaration *decl) *** 1253,1258 **** --- 1320,1331 ---- DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT (decl->csym) = 1; } + /* In [expression/function_literals], function literals (aka lambdas) + enable embedding anonymous functions and anonymous delegates directly + into expressions. They are defined in each referencing module. */ + if (fd->isFuncLiteralDeclaration ()) + DECL_SET_LAMBDA_FUNCTION (decl->csym, true); + /* Mark compiler generated functions as artificial. */ if (fd->generated) DECL_ARTIFICIAL (decl->csym) = 1; *************** finish_thunk (tree thunk, tree function) *** 1640,1645 **** --- 1713,1719 ---- TREE_ADDRESSABLE (function) = 1; TREE_USED (function) = 1; + DECL_EXTERNAL (thunk) = 0; if (flag_syntax_only) { *************** make_thunk (FuncDeclaration *decl, int o *** 1711,1753 **** if (!DECL_ARGUMENTS (function) || !DECL_RESULT (function)) { ! /* Compile the function body before generating the thunk, this is done ! even if the decl is external to the current module. */ ! if (decl->fbody) ! build_decl_tree (decl); ! else ! { ! /* Build parameters for functions that are not being compiled, ! so that they can be correctly cloned in finish_thunk. */ ! tree fntype = TREE_TYPE (function); ! tree params = NULL_TREE; ! ! for (tree t = TYPE_ARG_TYPES (fntype); t; t = TREE_CHAIN (t)) ! { ! if (t == void_list_node) ! break; ! ! tree param = build_decl (DECL_SOURCE_LOCATION (function), ! PARM_DECL, NULL_TREE, TREE_VALUE (t)); ! DECL_ARG_TYPE (param) = TREE_TYPE (param); ! DECL_ARTIFICIAL (param) = 1; ! DECL_IGNORED_P (param) = 1; ! DECL_CONTEXT (param) = function; ! params = chainon (params, param); ! } ! ! DECL_ARGUMENTS (function) = params; ! /* Also build the result decl, which is needed when force creating ! the thunk in gimple inside cgraph_node::expand_thunk. */ ! tree resdecl = build_decl (DECL_SOURCE_LOCATION (function), ! RESULT_DECL, NULL_TREE, ! TREE_TYPE (fntype)); ! DECL_ARTIFICIAL (resdecl) = 1; ! DECL_IGNORED_P (resdecl) = 1; ! DECL_CONTEXT (resdecl) = function; ! DECL_RESULT (function) = resdecl; ! } } /* Don't build the thunk if the compilation step failed. */ --- 1785,1798 ---- if (!DECL_ARGUMENTS (function) || !DECL_RESULT (function)) { ! /* Build parameters for functions that are not being compiled, ! so that they can be correctly cloned in finish_thunk. */ ! tree function = get_symbol_decl (decl); ! DECL_ARGUMENTS (function) = get_fndecl_arguments (decl); ! /* Also build the result decl, which is needed when force creating ! the thunk in gimple inside cgraph_node::expand_thunk. */ ! DECL_RESULT (function) = get_fndecl_result (decl); } /* Don't build the thunk if the compilation step failed. */ *************** make_thunk (FuncDeclaration *decl, int o *** 1773,1783 **** DECL_CONTEXT (thunk) = d_decl_context (decl); ! /* Thunks inherit the public access of the function they are targeting. ! Thunks are connected to the definitions of the functions, so thunks are ! not produced for external functions. */ TREE_PUBLIC (thunk) = TREE_PUBLIC (function); ! DECL_EXTERNAL (thunk) = DECL_EXTERNAL (function); /* Thunks are always addressable. */ TREE_ADDRESSABLE (thunk) = 1; --- 1818,1827 ---- DECL_CONTEXT (thunk) = d_decl_context (decl); ! /* Thunks inherit the public access of the function they are targeting. */ TREE_PUBLIC (thunk) = TREE_PUBLIC (function); ! /* The thunk has not been defined -- yet. */ ! DECL_EXTERNAL (thunk) = 1; /* Thunks are always addressable. */ TREE_ADDRESSABLE (thunk) = 1; *************** make_thunk (FuncDeclaration *decl, int o *** 1812,1817 **** --- 1856,1863 ---- d_keep (thunk); free (CONST_CAST (char *, ident)); + /* Thunks are connected to the definitions of the functions, so thunks are + not produced for external functions. */ if (!DECL_EXTERNAL (function)) finish_thunk (thunk, function); *************** start_function (FuncDeclaration *fd) *** 1833,1841 **** { tree fndecl = get_symbol_decl (fd); ! /* Function has been defined, check now whether we intend to send it to ! object file, or it really is extern. Such as inlinable functions from ! modules not in this compilation, or thunk aliases. */ TemplateInstance *ti = fd->isInstantiated (); if (ti && ti->needsCodegen ()) { --- 1879,1888 ---- { tree fndecl = get_symbol_decl (fd); ! /* Function has been defined. Whether we intend to send it to object file, or ! discard it has already been determined by set_linkage_for_decl. */ ! DECL_EXTERNAL (fndecl) = 0; ! TemplateInstance *ti = fd->isInstantiated (); if (ti && ti->needsCodegen ()) { *************** start_function (FuncDeclaration *fd) *** 1845,1858 **** warning (OPT_Wtemplates, "%s %qs instantiated", ti->kind (), ti->toPrettyChars (false)); } - - DECL_EXTERNAL (fndecl) = 0; - } - else - { - Module *md = fd->getModule (); - if (md && md->isRoot ()) - DECL_EXTERNAL (fndecl) = 0; } DECL_INITIAL (fndecl) = error_mark_node; --- 1892,1897 ---- *************** start_function (FuncDeclaration *fd) *** 1869,1882 **** /* Let GCC know the current scope is this function. */ current_function_decl = fndecl; ! tree restype = TREE_TYPE (TREE_TYPE (fndecl)); ! tree resdecl = build_decl (make_location_t (fd->loc), RESULT_DECL, ! NULL_TREE, restype); ! ! DECL_RESULT (fndecl) = resdecl; ! DECL_CONTEXT (resdecl) = fndecl; ! DECL_ARTIFICIAL (resdecl) = 1; ! DECL_IGNORED_P (resdecl) = 1; /* Initialize the RTL code for the function. */ allocate_struct_function (fndecl, false); --- 1908,1915 ---- /* Let GCC know the current scope is this function. */ current_function_decl = fndecl; ! /* Build the result decl before calling allocate_struct_function. */ ! DECL_RESULT (fndecl) = get_fndecl_result (fd); /* Initialize the RTL code for the function. */ allocate_struct_function (fndecl, false); *************** finish_function (tree old_context) *** 1943,1948 **** --- 1976,1985 ---- DECL_SAVED_TREE (fndecl) = bind; + /* Finish any forward referenced thunks for the function. */ + for (tree t = DECL_LANG_THUNKS (fndecl); t; t = DECL_CHAIN (t)) + finish_thunk (t, fndecl); + if (!errorcount && !global.errors) { /* Dump the D-specific tree IR. */ *************** set_linkage_for_decl (tree decl) *** 2375,2390 **** if (!TREE_PUBLIC (decl)) return; /* Don't need to give private or protected symbols a special linkage. */ if ((TREE_PRIVATE (decl) || TREE_PROTECTED (decl)) && !DECL_INSTANTIATED (decl)) return; - /* Functions declared as `pragma(inline, true)' can appear in multiple - translation units. */ - if (TREE_CODE (decl) == FUNCTION_DECL && DECL_DECLARED_INLINE_P (decl)) - return d_comdat_linkage (decl); - /* If all instantiations must go in COMDAT, give them that linkage. This also applies to other extern declarations, so that it is possible for them to override template declarations. */ --- 2412,2428 ---- if (!TREE_PUBLIC (decl)) return; + /* Function literals and functions declared as `pragma(inline, true)' can + appear in multiple translation units. */ + if (TREE_CODE (decl) == FUNCTION_DECL + && (DECL_DECLARED_INLINE_P (decl) || DECL_LAMBDA_FUNCTION_P (decl))) + return d_comdat_linkage (decl); + /* Don't need to give private or protected symbols a special linkage. */ if ((TREE_PRIVATE (decl) || TREE_PROTECTED (decl)) && !DECL_INSTANTIATED (decl)) return; /* If all instantiations must go in COMDAT, give them that linkage. This also applies to other extern declarations, so that it is possible for them to override template declarations. */ diff -Nrcpad gcc-11.3.0/gcc/d/dmd/expressionsem.c gcc-11.4.0/gcc/d/dmd/expressionsem.c *** gcc-11.3.0/gcc/d/dmd/expressionsem.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/d/dmd/expressionsem.c Mon May 29 08:46:29 2023 *************** public: *** 6330,6335 **** --- 6330,6336 ---- if (tob->ty == Tvector && t1b->ty != Tvector) { result = new VectorExp(exp->loc, exp->e1, exp->to); + result = expressionSemantic(result, sc); return; } diff -Nrcpad gcc-11.3.0/gcc/d/expr.cc gcc-11.4.0/gcc/d/expr.cc *** gcc-11.3.0/gcc/d/expr.cc Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/d/expr.cc Mon May 29 08:46:29 2023 *************** public: *** 3034,3047 **** void visit (VectorExp *e) { - tree type = build_ctype (e->type); - /* First handle array literal expressions. */ if (e->e1->op == TOKarrayliteral) { ArrayLiteralExp *ale = e->e1->isArrayLiteralExp (); vec *elms = NULL; bool constant_p = true; vec_safe_reserve (elms, ale->elements->length); for (size_t i = 0; i < ale->elements->length; i++) --- 3034,3046 ---- void visit (VectorExp *e) { /* First handle array literal expressions. */ if (e->e1->op == TOKarrayliteral) { ArrayLiteralExp *ale = e->e1->isArrayLiteralExp (); vec *elms = NULL; bool constant_p = true; + tree type = build_ctype (e->type); vec_safe_reserve (elms, ale->elements->length); for (size_t i = 0; i < ale->elements->length; i++) *************** public: *** 3061,3069 **** --- 3060,3075 ---- else this->result_ = build_constructor (type, elms); } + else if (e->e1->type->toBasetype ()->ty == Tsarray) + { + /* Build a vector representation from a static array. */ + this->result_ = convert_expr (build_expr (e->e1, this->constp_), + e->e1->type, e->type); + } else { /* Build constructor from single value. */ + tree type = build_ctype (e->type); tree value = d_convert (TREE_TYPE (type), build_expr (e->e1, this->constp_, true)); this->result_ = build_vector_from_val (type, value); diff -Nrcpad gcc-11.3.0/gcc/d/gdc.texi gcc-11.4.0/gcc/d/gdc.texi *** gcc-11.3.0/gcc/d/gdc.texi Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/d/gdc.texi Mon May 29 08:46:29 2023 *************** List information on all language changes *** 637,645 **** @item complex List all usages of complex or imaginary types. @item dip1000 ! Implements @uref{http://wiki.dlang.org/DIP1000} (experimental). @item dip25 ! Implements @uref{http://wiki.dlang.org/DIP25} (experimental). @item field List all non-mutable fields which occupy an object instance. @item nogc --- 637,647 ---- @item complex List all usages of complex or imaginary types. @item dip1000 ! Implements @uref{https://github.com/dlang/DIPs/blob/master/DIPs/other/DIP1000.md} ! (Scoped pointers). @item dip25 ! Implements @uref{https://github.com/dlang/DIPs/blob/master/DIPs/archive/DIP25.md} ! (Sealed references). @item field List all non-mutable fields which occupy an object instance. @item nogc diff -Nrcpad gcc-11.3.0/gcc/d/imports.cc gcc-11.4.0/gcc/d/imports.cc *** gcc-11.3.0/gcc/d/imports.cc Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/d/imports.cc Mon May 29 08:46:29 2023 *************** public: *** 97,108 **** tree type = build_ctype (d->type); /* Not all kinds of D enums create a TYPE_DECL. */ if (TREE_CODE (type) == ENUMERAL_TYPE) ! d->isym = this->make_import (TYPE_STUB_DECL (type)); } void visit (AggregateDeclaration *d) { tree type = build_ctype (d->type); d->isym = this->make_import (TYPE_STUB_DECL (type)); } --- 97,113 ---- tree type = build_ctype (d->type); /* Not all kinds of D enums create a TYPE_DECL. */ if (TREE_CODE (type) == ENUMERAL_TYPE) ! { ! type = TYPE_MAIN_VARIANT (type); ! d->isym = this->make_import (TYPE_STUB_DECL (type)); ! } ! } void visit (AggregateDeclaration *d) { tree type = build_ctype (d->type); + type = TYPE_MAIN_VARIANT (type); d->isym = this->make_import (TYPE_STUB_DECL (type)); } *************** public: *** 110,115 **** --- 115,121 ---- { /* Want the RECORD_TYPE, not POINTER_TYPE. */ tree type = TREE_TYPE (build_ctype (d->type)); + type = TYPE_MAIN_VARIANT (type); d->isym = this->make_import (TYPE_STUB_DECL (type)); } *************** public: *** 157,162 **** --- 163,182 ---- } } + /* Build IMPORTED_DECLs for all overloads in a set. */ + void visit (OverloadSet *d) + { + vec *tset = NULL; + + vec_alloc (tset, d->a.length); + + for (size_t i = 0; i < d->a.length; i++) + vec_safe_push (tset, build_import_decl (d->a[i])); + + d->isym = build_tree_list_vec (tset); + tset->truncate (0); + } + /* Function aliases are the same as alias symbols. */ void visit (FuncAliasDeclaration *d) { diff -Nrcpad gcc-11.3.0/gcc/d/toir.cc gcc-11.4.0/gcc/d/toir.cc *** gcc-11.3.0/gcc/d/toir.cc Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/d/toir.cc Mon May 29 08:46:29 2023 *************** public: *** 541,546 **** --- 541,568 ---- this->do_label (label); } + /* Generate and set a new continue label for the current unrolled loop. */ + + void push_unrolled_continue_label (UnrolledLoopStatement *s) + { + this->push_continue_label (s); + } + + /* Finish with the continue label for the unrolled loop. */ + + void pop_unrolled_continue_label (UnrolledLoopStatement *s) + { + Statement *stmt = s->getRelatedLabeled (); + d_label_entry *ent = d_function_chain->labels->get (stmt); + gcc_assert (ent != NULL && ent->bc_label == true); + + this->pop_continue_label (TREE_VEC_ELT (ent->label, bc_continue)); + + /* Remove the continue label from the label htab, as a new one must be + inserted at the end of every unrolled loop. */ + ent->label = TREE_VEC_ELT (ent->label, bc_break); + } + /* Visitor interfaces. */ *************** public: *** 1090,1095 **** --- 1112,1118 ---- /* Generate: ( = expr, return ); */ tree expr = build_expr_dtor (s->exp); tree init = stabilize_expr (&expr); + expr = convert_for_rvalue (expr, s->exp->type, type); expr = build_assign (INIT_EXPR, this->func_->shidden, expr); add_stmt (compound_expr (init, expr)); } *************** public: *** 1156,1164 **** if (statement != NULL) { ! tree lcontinue = this->push_continue_label (statement); this->build_stmt (statement); ! this->pop_continue_label (lcontinue); } } --- 1179,1187 ---- if (statement != NULL) { ! this->push_unrolled_continue_label (s); this->build_stmt (statement); ! this->pop_unrolled_continue_label (s); } } diff -Nrcpad gcc-11.3.0/gcc/d/typeinfo.cc gcc-11.4.0/gcc/d/typeinfo.cc *** gcc-11.3.0/gcc/d/typeinfo.cc Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/d/typeinfo.cc Mon May 29 08:46:29 2023 *************** make_internal_typeinfo (tinfo_kind tk, I *** 179,184 **** --- 179,185 ---- /* Create the TypeInfo type. */ tree type = make_node (RECORD_TYPE); + TYPE_ARTIFICIAL (type) = 1; finish_builtin_struct (type, ident->toChars (), fields, NULL_TREE); tinfo_types[tk] = type; diff -Nrcpad gcc-11.3.0/gcc/doc/cpp.1 gcc-11.4.0/gcc/doc/cpp.1 *** gcc-11.3.0/gcc/doc/cpp.1 Thu Apr 21 08:00:42 2022 --- gcc-11.4.0/gcc/doc/cpp.1 Mon May 29 08:50:36 2023 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 54,69 **** .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .if !\nF .nr F 0 ! .if \nF>0 \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 . \} .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. --- 54,73 ---- .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .nr rF 0 ! .if \n(.g .if rF .nr rF 1 ! .if (\n(rF:(\n(.g==0)) \{\ ! . if \nF \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 ! . \} . \} .\} + .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "CPP 1" ! .TH CPP 1 "2022-04-21" "gcc-11.3.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "CPP 1" ! .TH CPP 1 "2023-05-28" "gcc-11.4.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l *************** supported by the system's \f(CW\*(C`icon *** 489,497 **** .IP "\fB\-fwide\-exec\-charset=\fR\fIcharset\fR" 4 .IX Item "-fwide-exec-charset=charset" Set the wide execution character set, used for wide string and ! character constants. The default is \s-1UTF\-32\s0 or \s-1UTF\-16,\s0 whichever ! corresponds to the width of \f(CW\*(C`wchar_t\*(C'\fR. As with ! \&\fB\-fexec\-charset\fR, \fIcharset\fR can be any encoding supported by the system's \f(CW\*(C`iconv\*(C'\fR library routine; however, you will have problems with encodings that do not fit exactly in \f(CW\*(C`wchar_t\*(C'\fR. .IP "\fB\-finput\-charset=\fR\fIcharset\fR" 4 --- 493,502 ---- .IP "\fB\-fwide\-exec\-charset=\fR\fIcharset\fR" 4 .IX Item "-fwide-exec-charset=charset" Set the wide execution character set, used for wide string and ! character constants. The default is one of \s-1UTF\-32BE, UTF\-32LE, UTF\-16BE,\s0 ! or \s-1UTF\-16LE,\s0 whichever corresponds to the width of \f(CW\*(C`wchar_t\*(C'\fR and the ! big-endian or little-endian byte order being used for code generation. As ! with \fB\-fexec\-charset\fR, \fIcharset\fR can be any encoding supported by the system's \f(CW\*(C`iconv\*(C'\fR library routine; however, you will have problems with encodings that do not fit exactly in \f(CW\*(C`wchar_t\*(C'\fR. .IP "\fB\-finput\-charset=\fR\fIcharset\fR" 4 *************** time of the source or package and it sho *** 919,926 **** process. .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fIgpl\fR\|(7), \fIgfdl\fR\|(7), \fIfsf\-funding\fR\|(7), ! \&\fIgcc\fR\|(1), and the Info entries for \fIcpp\fR and \fIgcc\fR. .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 1987\-2021 Free Software Foundation, Inc. --- 924,931 ---- process. .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fBgpl\fR\|(7), \fBgfdl\fR\|(7), \fBfsf\-funding\fR\|(7), ! \&\fBgcc\fR\|(1), and the Info entries for \fIcpp\fR and \fIgcc\fR. .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 1987\-2021 Free Software Foundation, Inc. *************** Permission is granted to copy, distribut *** 929,935 **** under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation. A copy of the license is included in the ! man page \fIgfdl\fR\|(7). This manual contains no Invariant Sections. The Front-Cover Texts are (a) (see below), and the Back-Cover Texts are (b) (see below). .PP --- 934,940 ---- under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation. A copy of the license is included in the ! man page \fBgfdl\fR\|(7). This manual contains no Invariant Sections. The Front-Cover Texts are (a) (see below), and the Back-Cover Texts are (b) (see below). .PP diff -Nrcpad gcc-11.3.0/gcc/doc/cpp.info gcc-11.4.0/gcc/doc/cpp.info *** gcc-11.3.0/gcc/doc/cpp.info Thu Apr 21 08:20:53 2022 --- gcc-11.4.0/gcc/doc/cpp.info Mon May 29 09:02:37 2023 *************** *** 1,4 **** ! This is cpp.info, produced by makeinfo version 6.5 from cpp.texi. Copyright (C) 1987-2021 Free Software Foundation, Inc. --- 1,4 ---- ! This is cpp.info, produced by makeinfo version 6.8 from cpp.texi. Copyright (C) 1987-2021 Free Software Foundation, Inc. *************** single-letter options may _not_ be group *** 4350,4360 **** '-fwide-exec-charset=CHARSET' Set the wide execution character set, used for wide string and ! character constants. The default is UTF-32 or UTF-16, whichever ! corresponds to the width of 'wchar_t'. As with '-fexec-charset', ! CHARSET can be any encoding supported by the system's 'iconv' ! library routine; however, you will have problems with encodings ! that do not fit exactly in 'wchar_t'. '-finput-charset=CHARSET' Set the input character set, used for translation from the --- 4350,4362 ---- '-fwide-exec-charset=CHARSET' Set the wide execution character set, used for wide string and ! character constants. The default is one of UTF-32BE, UTF-32LE, ! UTF-16BE, or UTF-16LE, whichever corresponds to the width of ! 'wchar_t' and the big-endian or little-endian byte order being used ! for code generation. As with '-fexec-charset', CHARSET can be any ! encoding supported by the system's 'iconv' library routine; ! however, you will have problems with encodings that do not fit ! exactly in 'wchar_t'. '-finput-charset=CHARSET' Set the input character set, used for translation from the *************** without any initial '-' or '--'. *** 5276,5362 **** [index] * Menu: ! * A: Invocation. (line 336) ! * C: Invocation. (line 345) ! * CC: Invocation. (line 357) * CPATH: Environment Variables. (line 15) * CPLUS_INCLUDE_PATH: Environment Variables. (line 17) * C_INCLUDE_PATH: Environment Variables. (line 16) ! * D: Invocation. (line 44) ! * d: Invocation. (line 406) ! * dD: Invocation. (line 425) * DEPENDENCIES_OUTPUT: Environment Variables. ! (line 45) ! * dI: Invocation. (line 435) ! * dM: Invocation. (line 414) ! * dN: Invocation. (line 431) ! * dU: Invocation. (line 439) ! * fdebug-cpp: Invocation. (line 446) ! * fdirectives-only: Invocation. (line 231) ! * fdollars-in-identifiers: Invocation. (line 252) ! * fexec-charset: Invocation. (line 299) ! * fextended-identifiers: Invocation. (line 255) ! * finput-charset: Invocation. (line 312) ! * fmacro-prefix-map: Invocation. (line 290) ! * fmax-include-depth: Invocation. (line 264) ! * fno-canonical-system-headers: Invocation. (line 260) ! * fno-working-directory: Invocation. (line 322) ! * fpreprocessed: Invocation. (line 218) ! * ftabstop: Invocation. (line 267) ! * ftrack-macro-expansion: Invocation. (line 273) ! * fwide-exec-charset: Invocation. (line 304) ! * fworking-directory: Invocation. (line 322) ! * H: Invocation. (line 399) ! * I: Invocation. (line 457) ! * I-: Invocation. (line 511) ! * idirafter: Invocation. (line 457) ! * imacros: Invocation. (line 82) ! * imultilib: Invocation. (line 545) ! * include: Invocation. (line 71) ! * iprefix: Invocation. (line 527) ! * iquote: Invocation. (line 457) ! * isysroot: Invocation. (line 539) ! * isystem: Invocation. (line 457) ! * iwithprefix: Invocation. (line 533) ! * iwithprefixbefore: Invocation. (line 533) ! * M: Invocation. (line 103) ! * MD: Invocation. (line 198) ! * MF: Invocation. (line 137) ! * MG: Invocation. (line 148) ! * MM: Invocation. (line 128) ! * MMD: Invocation. (line 214) ! * Mno-modules: Invocation. (line 158) ! * MP: Invocation. (line 161) ! * MQ: Invocation. (line 188) ! * MT: Invocation. (line 173) ! * nostdinc: Invocation. (line 549) ! * nostdinc++: Invocation. (line 555) * OBJC_INCLUDE_PATH: Environment Variables. (line 18) ! * P: Invocation. (line 369) ! * pthread: Invocation. (line 96) ! * remap: Invocation. (line 395) * SOURCE_DATE_EPOCH: Environment Variables. ! (line 67) * SUNPRO_DEPENDENCIES: Environment Variables. ! (line 61) ! * traditional: Invocation. (line 377) ! * traditional-cpp: Invocation. (line 377) ! * trigraphs: Invocation. (line 386) ! * U: Invocation. (line 67) ! * undef: Invocation. (line 91) ! * Wcomment: Invocation. (line 561) ! * Wcomments: Invocation. (line 561) ! * Wendif-labels: Invocation. (line 605) ! * Wexpansion-to-defined: Invocation. (line 580) ! * Wno-endif-labels: Invocation. (line 605) ! * Wno-undef: Invocation. (line 576) ! * Wtrigraphs: Invocation. (line 566) ! * Wundef: Invocation. (line 576) ! * Wunused-macros: Invocation. (line 586)  File: cpp.info, Node: Concept Index, Prev: Option Index, Up: Top --- 5278,5364 ---- [index] * Menu: ! * A: Invocation. (line 337) ! * C: Invocation. (line 346) ! * CC: Invocation. (line 358) * CPATH: Environment Variables. (line 15) * CPLUS_INCLUDE_PATH: Environment Variables. (line 17) * C_INCLUDE_PATH: Environment Variables. (line 16) ! * D: Invocation. (line 43) ! * d: Invocation. (line 407) ! * dD: Invocation. (line 426) * DEPENDENCIES_OUTPUT: Environment Variables. ! (line 44) ! * dI: Invocation. (line 436) ! * dM: Invocation. (line 415) ! * dN: Invocation. (line 432) ! * dU: Invocation. (line 440) ! * fdebug-cpp: Invocation. (line 447) ! * fdirectives-only: Invocation. (line 230) ! * fdollars-in-identifiers: Invocation. (line 251) ! * fexec-charset: Invocation. (line 298) ! * fextended-identifiers: Invocation. (line 254) ! * finput-charset: Invocation. (line 313) ! * fmacro-prefix-map: Invocation. (line 289) ! * fmax-include-depth: Invocation. (line 263) ! * fno-canonical-system-headers: Invocation. (line 259) ! * fno-working-directory: Invocation. (line 323) ! * fpreprocessed: Invocation. (line 217) ! * ftabstop: Invocation. (line 266) ! * ftrack-macro-expansion: Invocation. (line 272) ! * fwide-exec-charset: Invocation. (line 303) ! * fworking-directory: Invocation. (line 323) ! * H: Invocation. (line 400) ! * I: Invocation. (line 458) ! * I-: Invocation. (line 512) ! * idirafter: Invocation. (line 458) ! * imacros: Invocation. (line 81) ! * imultilib: Invocation. (line 546) ! * include: Invocation. (line 70) ! * iprefix: Invocation. (line 528) ! * iquote: Invocation. (line 458) ! * isysroot: Invocation. (line 540) ! * isystem: Invocation. (line 458) ! * iwithprefix: Invocation. (line 534) ! * iwithprefixbefore: Invocation. (line 534) ! * M: Invocation. (line 102) ! * MD: Invocation. (line 197) ! * MF: Invocation. (line 136) ! * MG: Invocation. (line 147) ! * MM: Invocation. (line 127) ! * MMD: Invocation. (line 213) ! * Mno-modules: Invocation. (line 157) ! * MP: Invocation. (line 160) ! * MQ: Invocation. (line 187) ! * MT: Invocation. (line 172) ! * nostdinc: Invocation. (line 550) ! * nostdinc++: Invocation. (line 556) * OBJC_INCLUDE_PATH: Environment Variables. (line 18) ! * P: Invocation. (line 370) ! * pthread: Invocation. (line 95) ! * remap: Invocation. (line 396) * SOURCE_DATE_EPOCH: Environment Variables. ! (line 66) * SUNPRO_DEPENDENCIES: Environment Variables. ! (line 60) ! * traditional: Invocation. (line 378) ! * traditional-cpp: Invocation. (line 378) ! * trigraphs: Invocation. (line 387) ! * U: Invocation. (line 66) ! * undef: Invocation. (line 90) ! * Wcomment: Invocation. (line 562) ! * Wcomments: Invocation. (line 562) ! * Wendif-labels: Invocation. (line 606) ! * Wexpansion-to-defined: Invocation. (line 581) ! * Wno-endif-labels: Invocation. (line 606) ! * Wno-undef: Invocation. (line 577) ! * Wtrigraphs: Invocation. (line 567) ! * Wundef: Invocation. (line 577) ! * Wunused-macros: Invocation. (line 587)  File: cpp.info, Node: Concept Index, Prev: Option Index, Up: Top *************** Concept Index *** 5382,5393 **** * assertions, canceling: Obsolete Features. (line 59) * backslash-newline: Initial processing. (line 61) * block comments: Initial processing. (line 77) ! * C language, traditional: Invocation. (line 375) * C++ named operators: C++ Named Operators. (line 6) * character constants: Tokenization. (line 81) ! * character set, execution: Invocation. (line 299) ! * character set, input: Invocation. (line 312) ! * character set, wide execution: Invocation. (line 304) * command line: Invocation. (line 6) * commenting out code: Deleted Code. (line 6) * comments: Initial processing. (line 77) --- 5384,5395 ---- * assertions, canceling: Obsolete Features. (line 59) * backslash-newline: Initial processing. (line 61) * block comments: Initial processing. (line 77) ! * C language, traditional: Invocation. (line 376) * C++ named operators: C++ Named Operators. (line 6) * character constants: Tokenization. (line 81) ! * character set, execution: Invocation. (line 298) ! * character set, input: Invocation. (line 313) ! * character set, wide execution: Invocation. (line 303) * command line: Invocation. (line 6) * commenting out code: Deleted Code. (line 6) * comments: Initial processing. (line 77) *************** Concept Index *** 5401,5410 **** * controlling macro: Once-Only Headers. (line 35) * defined: Defined. (line 6) * dependencies for make as output: Environment Variables. ! (line 46) * dependencies for make as output <1>: Environment Variables. ! (line 62) ! * dependencies, make: Invocation. (line 103) * diagnostic: Diagnostics. (line 6) * digraphs: Tokenization. (line 100) * directive line: The preprocessing language. --- 5403,5412 ---- * controlling macro: Once-Only Headers. (line 35) * defined: Defined. (line 6) * dependencies for make as output: Environment Variables. ! (line 45) * dependencies for make as output <1>: Environment Variables. ! (line 61) ! * dependencies, make: Invocation. (line 102) * diagnostic: Diagnostics. (line 6) * digraphs: Tokenization. (line 100) * directive line: The preprocessing language. *************** Concept Index *** 5443,5449 **** * macros in include: Computed Includes. (line 6) * macros with arguments: Macro Arguments. (line 6) * macros with variable arguments: Variadic Macros. (line 6) ! * make: Invocation. (line 103) * manifest constants: Object-like Macros. (line 6) * named operators: C++ Named Operators. (line 6) * newlines in macro arguments: Newlines in Arguments. --- 5445,5451 ---- * macros in include: Computed Includes. (line 6) * macros with arguments: Macro Arguments. (line 6) * macros with variable arguments: Variadic Macros. (line 6) ! * make: Invocation. (line 102) * manifest constants: Object-like Macros. (line 6) * named operators: C++ Named Operators. (line 6) * newlines in macro arguments: Newlines in Arguments. *************** Concept Index *** 5451,5457 **** * null directive: Other Directives. (line 15) * numbers: Tokenization. (line 58) * object-like macro: Object-like Macros. (line 6) ! * options: Invocation. (line 43) * options, grouping: Invocation. (line 38) * other tokens: Tokenization. (line 114) * output format: Preprocessor Output. (line 12) --- 5453,5459 ---- * null directive: Other Directives. (line 15) * numbers: Tokenization. (line 58) * object-like macro: Object-like Macros. (line 6) ! * options: Invocation. (line 42) * options, grouping: Invocation. (line 38) * other tokens: Tokenization. (line 114) * output format: Preprocessor Output. (line 12) *************** Concept Index *** 5498,5504 **** * token concatenation: Concatenation. (line 6) * token pasting: Concatenation. (line 6) * tokens: Tokenization. (line 6) ! * traditional C language: Invocation. (line 375) * trigraphs: Initial processing. (line 32) * undefining macros: Undefining and Redefining Macros. (line 6) --- 5500,5506 ---- * token concatenation: Concatenation. (line 6) * token pasting: Concatenation. (line 6) * tokens: Tokenization. (line 6) ! * traditional C language: Invocation. (line 376) * trigraphs: Initial processing. (line 32) * undefining macros: Undefining and Redefining Macros. (line 6) *************** Node: Obsolete Features163124 *** 5584,5594 **** Node: Invocation165968 Ref: dashMF172003 Ref: fdollars-in-identifiers176665 ! Ref: Wtrigraphs190791 ! Node: Environment Variables192846 ! Node: GNU Free Documentation License196537 ! Node: Index of Directives221682 ! Node: Option Index223835 ! Node: Concept Index229937  End Tag Table --- 5586,5601 ---- Node: Invocation165968 Ref: dashMF172003 Ref: fdollars-in-identifiers176665 ! Ref: Wtrigraphs190911 ! Node: Environment Variables192966 ! Node: GNU Free Documentation License196657 ! Node: Index of Directives221802 ! Node: Option Index223955 ! Node: Concept Index230057  End Tag Table + +  + Local Variables: + coding: utf-8 + End: diff -Nrcpad gcc-11.3.0/gcc/doc/cppinternals.info gcc-11.4.0/gcc/doc/cppinternals.info *** gcc-11.3.0/gcc/doc/cppinternals.info Thu Apr 21 08:20:52 2022 --- gcc-11.4.0/gcc/doc/cppinternals.info Mon May 29 09:02:36 2023 *************** *** 1,4 **** ! This is cppinternals.info, produced by makeinfo version 6.5 from cppinternals.texi. INFO-DIR-SECTION Software development --- 1,4 ---- ! This is cppinternals.info, produced by makeinfo version 6.8 from cppinternals.texi. INFO-DIR-SECTION Software development *************** will be removed, so I'll not discuss it *** 137,143 **** The job of '_cpp_lex_direct' is simply to lex a token. It is not responsible for issues like directive handling, returning lookahead tokens directly, multiple-include optimization, or conditional block ! skipping. It necessarily has a minor ro^le to play in memory management of lexed lines. I discuss these issues in a separate section (*note Lexing a line::). --- 137,143 ---- The job of '_cpp_lex_direct' is simply to lex a token. It is not responsible for issues like directive handling, returning lookahead tokens directly, multiple-include optimization, or conditional block ! skipping. It necessarily has a minor rôle to play in memory management of lexed lines. I discuss these issues in a separate section (*note Lexing a line::). *************** Node: Files44873 *** 1039,1041 **** --- 1039,1046 ---- Node: Concept Index48339  End Tag Table + +  + Local Variables: + coding: utf-8 + End: diff -Nrcpad gcc-11.3.0/gcc/doc/cppopts.texi gcc-11.4.0/gcc/doc/cppopts.texi *** gcc-11.3.0/gcc/doc/cppopts.texi Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/doc/cppopts.texi Mon May 29 08:46:29 2023 *************** supported by the system's @code{iconv} l *** 318,326 **** @opindex fwide-exec-charset @cindex character set, wide execution Set the wide execution character set, used for wide string and ! character constants. The default is UTF-32 or UTF-16, whichever ! corresponds to the width of @code{wchar_t}. As with ! @option{-fexec-charset}, @var{charset} can be any encoding supported by the system's @code{iconv} library routine; however, you will have problems with encodings that do not fit exactly in @code{wchar_t}. --- 318,327 ---- @opindex fwide-exec-charset @cindex character set, wide execution Set the wide execution character set, used for wide string and ! character constants. The default is one of UTF-32BE, UTF-32LE, UTF-16BE, ! or UTF-16LE, whichever corresponds to the width of @code{wchar_t} and the ! big-endian or little-endian byte order being used for code generation. As ! with @option{-fexec-charset}, @var{charset} can be any encoding supported by the system's @code{iconv} library routine; however, you will have problems with encodings that do not fit exactly in @code{wchar_t}. diff -Nrcpad gcc-11.3.0/gcc/doc/extend.texi gcc-11.4.0/gcc/doc/extend.texi *** gcc-11.3.0/gcc/doc/extend.texi Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/doc/extend.texi Mon May 29 08:46:29 2023 *************** myprintf (FILE *f, const char *format, . *** 688,694 **** @end smallexample @end deftypefn ! @deftypefn {Built-in Function} {size_t} __builtin_va_arg_pack_len () This built-in function returns the number of anonymous arguments of an inline function. It can be used only in inline functions that are always inlined, never compiled as a separate function, such --- 688,694 ---- @end smallexample @end deftypefn ! @deftypefn {Built-in Function} {int} __builtin_va_arg_pack_len () This built-in function returns the number of anonymous arguments of an inline function. It can be used only in inline functions that are always inlined, never compiled as a separate function, such *************** The following attributes are supported o *** 2487,2493 **** @table @code @c Keep this table alphabetized by attribute name. Treat _ as space. ! @itemx access (@var{access-mode}, @var{ref-index}) @itemx access (@var{access-mode}, @var{ref-index}, @var{size-index}) The @code{access} attribute enables the detection of invalid or unsafe --- 2487,2493 ---- @table @code @c Keep this table alphabetized by attribute name. Treat _ as space. ! @item access (@var{access-mode}, @var{ref-index}) @itemx access (@var{access-mode}, @var{ref-index}, @var{size-index}) The @code{access} attribute enables the detection of invalid or unsafe diff -Nrcpad gcc-11.3.0/gcc/doc/fsf-funding.7 gcc-11.4.0/gcc/doc/fsf-funding.7 *** gcc-11.3.0/gcc/doc/fsf-funding.7 Thu Apr 21 08:00:42 2022 --- gcc-11.4.0/gcc/doc/fsf-funding.7 Mon May 29 08:50:36 2023 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 54,69 **** .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .if !\nF .nr F 0 ! .if \nF>0 \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 . \} .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. --- 54,73 ---- .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .nr rF 0 ! .if \n(.g .if rF .nr rF 1 ! .if (\n(rF:(\n(.g==0)) \{\ ! . if \nF \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 ! . \} . \} .\} + .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "FSF-FUNDING 7" ! .TH FSF-FUNDING 7 "2022-04-21" "gcc-11.3.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "FSF-FUNDING 7" ! .TH FSF-FUNDING 7 "2023-05-28" "gcc-11.4.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l *************** proper thing to do\*(R" when distributin *** 181,187 **** assure a steady flow of resources into making more free software. .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fIgpl\fR\|(7), \fIgfdl\fR\|(7). .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 1994 Free Software Foundation, Inc. --- 185,191 ---- assure a steady flow of resources into making more free software. .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fBgpl\fR\|(7), \fBgfdl\fR\|(7). .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 1994 Free Software Foundation, Inc. diff -Nrcpad gcc-11.3.0/gcc/doc/g++.1 gcc-11.4.0/gcc/doc/g++.1 *** gcc-11.3.0/gcc/doc/g++.1 Thu Apr 21 08:20:55 2022 --- gcc-11.4.0/gcc/doc/g++.1 Mon May 29 09:02:38 2023 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 54,69 **** .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .if !\nF .nr F 0 ! .if \nF>0 \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 . \} .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. --- 54,73 ---- .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .nr rF 0 ! .if \n(.g .if rF .nr rF 1 ! .if (\n(rF:(\n(.g==0)) \{\ ! . if \nF \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 ! . \} . \} .\} + .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "GCC 1" ! .TH GCC 1 "2022-04-21" "gcc-11.3.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "GCC 1" ! .TH GCC 1 "2023-05-28" "gcc-11.4.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l *************** See \s-1RS/6000\s0 and PowerPC Options. *** 1400,1406 **** \&\-m96bit\-long\-double \-mlong\-double\-64 \-mlong\-double\-80 \-mlong\-double\-128 \&\-mregparm=\fR\fInum\fR \fB\-msseregparm \&\-mveclibabi=\fR\fItype\fR \fB\-mvect8\-ret\-in\-mem ! \&\-mpc32 \-mpc64 \-mpc80 \-mstackrealign \&\-momit\-leaf\-frame\-pointer \-mno\-red\-zone \-mno\-tls\-direct\-seg\-refs \&\-mcmodel=\fR\fIcode-model\fR \fB\-mabi=\fR\fIname\fR \fB\-maddress\-mode=\fR\fImode\fR \&\fB\-m32 \-m64 \-mx32 \-m16 \-miamcu \-mlarge\-data\-threshold=\fR\fInum\fR --- 1404,1410 ---- \&\-m96bit\-long\-double \-mlong\-double\-64 \-mlong\-double\-80 \-mlong\-double\-128 \&\-mregparm=\fR\fInum\fR \fB\-msseregparm \&\-mveclibabi=\fR\fItype\fR \fB\-mvect8\-ret\-in\-mem ! \&\-mpc32 \-mpc64 \-mpc80 \-mdaz\-ftz \-mstackrealign \&\-momit\-leaf\-frame\-pointer \-mno\-red\-zone \-mno\-tls\-direct\-seg\-refs \&\-mcmodel=\fR\fIcode-model\fR \fB\-mabi=\fR\fIname\fR \fB\-maddress\-mode=\fR\fImode\fR \&\fB\-m32 \-m64 \-mx32 \-m16 \-miamcu \-mlarge\-data\-threshold=\fR\fInum\fR *************** This is useful if you need to make sure *** 4276,4283 **** be compiled with older versions of \s-1GCC.\s0 .IP "\fB\-freplace\-objc\-classes\fR" 4 .IX Item "-freplace-objc-classes" ! Emit a special marker instructing \fB\f(BIld\fB\|(1)\fR not to statically link in ! the resulting object file, and allow \fB\f(BIdyld\fB\|(1)\fR to load it in at run time instead. This is used in conjunction with the Fix-and-Continue debugging mode, where the object file in question may be recompiled and dynamically reloaded in the course of program execution, without the need --- 4280,4287 ---- be compiled with older versions of \s-1GCC.\s0 .IP "\fB\-freplace\-objc\-classes\fR" 4 .IX Item "-freplace-objc-classes" ! Emit a special marker instructing \fB\fBld\fB\|(1)\fR not to statically link in ! the resulting object file, and allow \fB\fBdyld\fB\|(1)\fR to load it in at run time instead. This is used in conjunction with the Fix-and-Continue debugging mode, where the object file in question may be recompiled and dynamically reloaded in the course of program execution, without the need *************** example of how this can happen: *** 6550,6556 **** .Sp If the value of \f(CW\*(C`y\*(C'\fR is always 1, 2 or 3, then \f(CW\*(C`x\*(C'\fR is always initialized, but \s-1GCC\s0 doesn't know this. To suppress the ! warning, you need to provide a default case with \fIassert\fR\|(0) or similar code. .Sp This option also warns when a non-volatile automatic variable might be --- 6554,6560 ---- .Sp If the value of \f(CW\*(C`y\*(C'\fR is always 1, 2 or 3, then \f(CW\*(C`x\*(C'\fR is always initialized, but \s-1GCC\s0 doesn't know this. To suppress the ! warning, you need to provide a default case with \fBassert\fR\|(0) or similar code. .Sp This option also warns when a non-volatile automatic variable might be *************** run-time callbacks. *** 13178,13184 **** Emit special instrumentation for accesses to volatiles. .IP "\fBtsan-instrument-func-entry-exit\fR" 4 .IX Item "tsan-instrument-func-entry-exit" ! Emit instrumentation calls to _\|\fI_tsan_func_entry()\fR and _\|\fI_tsan_func_exit()\fR. .IP "\fBmax-fsm-thread-path-insns\fR" 4 .IX Item "max-fsm-thread-path-insns" Maximum number of instructions to copy when duplicating blocks on a --- 13182,13188 ---- Emit special instrumentation for accesses to volatiles. .IP "\fBtsan-instrument-func-entry-exit\fR" 4 .IX Item "tsan-instrument-func-entry-exit" ! Emit instrumentation calls to _\|\fB_tsan_func_entry()\fR and _\|\fB_tsan_func_exit()\fR. .IP "\fBmax-fsm-thread-path-insns\fR" 4 .IX Item "max-fsm-thread-path-insns" Maximum number of instructions to copy when duplicating blocks on a *************** supported by the system's \f(CW\*(C`icon *** 14652,14660 **** .IP "\fB\-fwide\-exec\-charset=\fR\fIcharset\fR" 4 .IX Item "-fwide-exec-charset=charset" Set the wide execution character set, used for wide string and ! character constants. The default is \s-1UTF\-32\s0 or \s-1UTF\-16,\s0 whichever ! corresponds to the width of \f(CW\*(C`wchar_t\*(C'\fR. As with ! \&\fB\-fexec\-charset\fR, \fIcharset\fR can be any encoding supported by the system's \f(CW\*(C`iconv\*(C'\fR library routine; however, you will have problems with encodings that do not fit exactly in \f(CW\*(C`wchar_t\*(C'\fR. .IP "\fB\-finput\-charset=\fR\fIcharset\fR" 4 --- 14656,14665 ---- .IP "\fB\-fwide\-exec\-charset=\fR\fIcharset\fR" 4 .IX Item "-fwide-exec-charset=charset" Set the wide execution character set, used for wide string and ! character constants. The default is one of \s-1UTF\-32BE, UTF\-32LE, UTF\-16BE,\s0 ! or \s-1UTF\-16LE,\s0 whichever corresponds to the width of \f(CW\*(C`wchar_t\*(C'\fR and the ! big-endian or little-endian byte order being used for code generation. As ! with \fB\-fexec\-charset\fR, \fIcharset\fR can be any encoding supported by the system's \f(CW\*(C`iconv\*(C'\fR library routine; however, you will have problems with encodings that do not fit exactly in \f(CW\*(C`wchar_t\*(C'\fR. .IP "\fB\-finput\-charset=\fR\fIcharset\fR" 4 *************** performance of the code. Permissible va *** 17518,17524 **** \&\fBcortex\-a78\fR, \fBcortex\-a78ae\fR, \fBcortex\-a78c\fR, \&\fBares\fR, \fBexynos\-m1\fR, \fBemag\fR, \fBfalkor\fR, \&\fBneoverse\-512tvb\fR, \fBneoverse\-e1\fR, \fBneoverse\-n1\fR, ! \&\fBneoverse\-n2\fR, \fBneoverse\-v1\fR, \fBqdf24xx\fR, \&\fBsaphira\fR, \fBphecda\fR, \fBxgene1\fR, \fBvulcan\fR, \&\fBocteontx\fR, \fBocteontx81\fR, \fBocteontx83\fR, \&\fBocteontx2\fR, \fBocteontx2t98\fR, \fBocteontx2t96\fR --- 17523,17529 ---- \&\fBcortex\-a78\fR, \fBcortex\-a78ae\fR, \fBcortex\-a78c\fR, \&\fBares\fR, \fBexynos\-m1\fR, \fBemag\fR, \fBfalkor\fR, \&\fBneoverse\-512tvb\fR, \fBneoverse\-e1\fR, \fBneoverse\-n1\fR, ! \&\fBneoverse\-n2\fR, \fBneoverse\-v1\fR,\fBneoverse\-v2\fR, \fBqdf24xx\fR, \&\fBsaphira\fR, \fBphecda\fR, \fBxgene1\fR, \fBvulcan\fR, \&\fBocteontx\fR, \fBocteontx81\fR, \fBocteontx83\fR, \&\fBocteontx2\fR, \fBocteontx2t98\fR, \fBocteontx2t96\fR *************** performance of the code. Permissible va *** 17531,17537 **** \&\fBcortex\-a57.cortex\-a53\fR, \fBcortex\-a72.cortex\-a53\fR, \&\fBcortex\-a73.cortex\-a35\fR, \fBcortex\-a73.cortex\-a53\fR, \&\fBcortex\-a75.cortex\-a55\fR, \fBcortex\-a76.cortex\-a55\fR, ! \&\fBcortex\-r82\fR, \fBcortex\-x1\fR, \fBampere1\fR, \fBnative\fR. .Sp The values \fBcortex\-a57.cortex\-a53\fR, \fBcortex\-a72.cortex\-a53\fR, \&\fBcortex\-a73.cortex\-a35\fR, \fBcortex\-a73.cortex\-a53\fR, --- 17536,17543 ---- \&\fBcortex\-a57.cortex\-a53\fR, \fBcortex\-a72.cortex\-a53\fR, \&\fBcortex\-a73.cortex\-a35\fR, \fBcortex\-a73.cortex\-a53\fR, \&\fBcortex\-a75.cortex\-a55\fR, \fBcortex\-a76.cortex\-a55\fR, ! \&\fBcortex\-r82\fR, \fBcortex\-x1\fR, \fBampere1\fR, ! \&\fBampere1a\fR, \fBnative\fR. .Sp The values \fBcortex\-a57.cortex\-a53\fR, \fBcortex\-a72.cortex\-a53\fR, \&\fBcortex\-a73.cortex\-a35\fR, \fBcortex\-a73.cortex\-a53\fR, *************** are provided for backwards compatibility *** 21170,21176 **** .IP "\fB\-all_load\fR" 4 .IX Item "-all_load" Loads all members of static archive libraries. ! See man \fIld\fR\|(1) for more information. .IP "\fB\-arch_errors_fatal\fR" 4 .IX Item "-arch_errors_fatal" Cause the errors having to do with files that have the wrong architecture --- 21176,21182 ---- .IP "\fB\-all_load\fR" 4 .IX Item "-all_load" Loads all members of static archive libraries. ! See man \fBld\fR\|(1) for more information. .IP "\fB\-arch_errors_fatal\fR" 4 .IX Item "-arch_errors_fatal" Cause the errors having to do with files that have the wrong architecture *************** bind all undefined references when the f *** 21182,21192 **** .IP "\fB\-bundle\fR" 4 .IX Item "-bundle" Produce a Mach-o bundle format file. ! See man \fIld\fR\|(1) for more information. .IP "\fB\-bundle_loader\fR \fIexecutable\fR" 4 .IX Item "-bundle_loader executable" This option specifies the \fIexecutable\fR that will load the build ! output file being linked. See man \fIld\fR\|(1) for more information. .IP "\fB\-dynamiclib\fR" 4 .IX Item "-dynamiclib" When passed this option, \s-1GCC\s0 produces a dynamic library instead of --- 21188,21198 ---- .IP "\fB\-bundle\fR" 4 .IX Item "-bundle" Produce a Mach-o bundle format file. ! See man \fBld\fR\|(1) for more information. .IP "\fB\-bundle_loader\fR \fIexecutable\fR" 4 .IX Item "-bundle_loader executable" This option specifies the \fIexecutable\fR that will load the build ! output file being linked. See man \fBld\fR\|(1) for more information. .IP "\fB\-dynamiclib\fR" 4 .IX Item "-dynamiclib" When passed this option, \s-1GCC\s0 produces a dynamic library instead of *************** libraries assume that extended-precision *** 29679,29684 **** --- 29685,29697 ---- are enabled by default; routines in such libraries could suffer significant loss of accuracy, typically through so-called \*(L"catastrophic cancellation\*(R", when this option is used to set the precision to less than extended precision. + .IP "\fB\-mdaz\-ftz\fR" 4 + .IX Item "-mdaz-ftz" + The flush-to-zero (\s-1FTZ\s0) and denormals-are-zero (\s-1DAZ\s0) flags in the \s-1MXCSR\s0 register + are used to control floating-point calculations.SSE and \s-1AVX\s0 instructions + including scalar and vector instructions could benefit from enabling the \s-1FTZ\s0 + and \s-1DAZ\s0 flags when \fB\-mdaz\-ftz\fR is specified. Don't set \s-1FTZ/DAZ\s0 flags + when \fB\-mno\-daz\-ftz\fR is specified. .IP "\fB\-mstackrealign\fR" 4 .IX Item "-mstackrealign" Realign the stack at entry. On the x86, the \fB\-mstackrealign\fR *************** to subtle defects. Supplying them in ca *** 31089,31096 **** is innocuous. .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fIgpl\fR\|(7), \fIgfdl\fR\|(7), \fIfsf\-funding\fR\|(7), ! \&\fIcpp\fR\|(1), \fIgcov\fR\|(1), \fIas\fR\|(1), \fIld\fR\|(1), \fIgdb\fR\|(1), \fIdbx\fR\|(1) and the Info entries for \fIgcc\fR, \fIcpp\fR, \fIas\fR, \&\fIld\fR, \fIbinutils\fR and \fIgdb\fR. .SH "AUTHOR" --- 31102,31109 ---- is innocuous. .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fBgpl\fR\|(7), \fBgfdl\fR\|(7), \fBfsf\-funding\fR\|(7), ! \&\fBcpp\fR\|(1), \fBgcov\fR\|(1), \fBas\fR\|(1), \fBld\fR\|(1), \fBgdb\fR\|(1), \fBdbx\fR\|(1) and the Info entries for \fIgcc\fR, \fIcpp\fR, \fIas\fR, \&\fIld\fR, \fIbinutils\fR and \fIgdb\fR. .SH "AUTHOR" *************** any later version published by the Free *** 31108,31114 **** Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding Free Software\*(R", 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 \fIgfdl\fR\|(7) man page. .PP (a) The \s-1FSF\s0's Front-Cover Text is: .PP --- 31121,31127 ---- Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding Free Software\*(R", 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 \fBgfdl\fR\|(7) man page. .PP (a) The \s-1FSF\s0's Front-Cover Text is: .PP diff -Nrcpad gcc-11.3.0/gcc/doc/gcc.1 gcc-11.4.0/gcc/doc/gcc.1 *** gcc-11.3.0/gcc/doc/gcc.1 Thu Apr 21 08:20:55 2022 --- gcc-11.4.0/gcc/doc/gcc.1 Mon May 29 09:02:38 2023 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 54,69 **** .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .if !\nF .nr F 0 ! .if \nF>0 \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 . \} .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. --- 54,73 ---- .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .nr rF 0 ! .if \n(.g .if rF .nr rF 1 ! .if (\n(rF:(\n(.g==0)) \{\ ! . if \nF \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 ! . \} . \} .\} + .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "GCC 1" ! .TH GCC 1 "2022-04-21" "gcc-11.3.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "GCC 1" ! .TH GCC 1 "2023-05-28" "gcc-11.4.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l *************** See \s-1RS/6000\s0 and PowerPC Options. *** 1400,1406 **** \&\-m96bit\-long\-double \-mlong\-double\-64 \-mlong\-double\-80 \-mlong\-double\-128 \&\-mregparm=\fR\fInum\fR \fB\-msseregparm \&\-mveclibabi=\fR\fItype\fR \fB\-mvect8\-ret\-in\-mem ! \&\-mpc32 \-mpc64 \-mpc80 \-mstackrealign \&\-momit\-leaf\-frame\-pointer \-mno\-red\-zone \-mno\-tls\-direct\-seg\-refs \&\-mcmodel=\fR\fIcode-model\fR \fB\-mabi=\fR\fIname\fR \fB\-maddress\-mode=\fR\fImode\fR \&\fB\-m32 \-m64 \-mx32 \-m16 \-miamcu \-mlarge\-data\-threshold=\fR\fInum\fR --- 1404,1410 ---- \&\-m96bit\-long\-double \-mlong\-double\-64 \-mlong\-double\-80 \-mlong\-double\-128 \&\-mregparm=\fR\fInum\fR \fB\-msseregparm \&\-mveclibabi=\fR\fItype\fR \fB\-mvect8\-ret\-in\-mem ! \&\-mpc32 \-mpc64 \-mpc80 \-mdaz\-ftz \-mstackrealign \&\-momit\-leaf\-frame\-pointer \-mno\-red\-zone \-mno\-tls\-direct\-seg\-refs \&\-mcmodel=\fR\fIcode-model\fR \fB\-mabi=\fR\fIname\fR \fB\-maddress\-mode=\fR\fImode\fR \&\fB\-m32 \-m64 \-mx32 \-m16 \-miamcu \-mlarge\-data\-threshold=\fR\fInum\fR *************** This is useful if you need to make sure *** 4276,4283 **** be compiled with older versions of \s-1GCC.\s0 .IP "\fB\-freplace\-objc\-classes\fR" 4 .IX Item "-freplace-objc-classes" ! Emit a special marker instructing \fB\f(BIld\fB\|(1)\fR not to statically link in ! the resulting object file, and allow \fB\f(BIdyld\fB\|(1)\fR to load it in at run time instead. This is used in conjunction with the Fix-and-Continue debugging mode, where the object file in question may be recompiled and dynamically reloaded in the course of program execution, without the need --- 4280,4287 ---- be compiled with older versions of \s-1GCC.\s0 .IP "\fB\-freplace\-objc\-classes\fR" 4 .IX Item "-freplace-objc-classes" ! Emit a special marker instructing \fB\fBld\fB\|(1)\fR not to statically link in ! the resulting object file, and allow \fB\fBdyld\fB\|(1)\fR to load it in at run time instead. This is used in conjunction with the Fix-and-Continue debugging mode, where the object file in question may be recompiled and dynamically reloaded in the course of program execution, without the need *************** example of how this can happen: *** 6550,6556 **** .Sp If the value of \f(CW\*(C`y\*(C'\fR is always 1, 2 or 3, then \f(CW\*(C`x\*(C'\fR is always initialized, but \s-1GCC\s0 doesn't know this. To suppress the ! warning, you need to provide a default case with \fIassert\fR\|(0) or similar code. .Sp This option also warns when a non-volatile automatic variable might be --- 6554,6560 ---- .Sp If the value of \f(CW\*(C`y\*(C'\fR is always 1, 2 or 3, then \f(CW\*(C`x\*(C'\fR is always initialized, but \s-1GCC\s0 doesn't know this. To suppress the ! warning, you need to provide a default case with \fBassert\fR\|(0) or similar code. .Sp This option also warns when a non-volatile automatic variable might be *************** run-time callbacks. *** 13178,13184 **** Emit special instrumentation for accesses to volatiles. .IP "\fBtsan-instrument-func-entry-exit\fR" 4 .IX Item "tsan-instrument-func-entry-exit" ! Emit instrumentation calls to _\|\fI_tsan_func_entry()\fR and _\|\fI_tsan_func_exit()\fR. .IP "\fBmax-fsm-thread-path-insns\fR" 4 .IX Item "max-fsm-thread-path-insns" Maximum number of instructions to copy when duplicating blocks on a --- 13182,13188 ---- Emit special instrumentation for accesses to volatiles. .IP "\fBtsan-instrument-func-entry-exit\fR" 4 .IX Item "tsan-instrument-func-entry-exit" ! Emit instrumentation calls to _\|\fB_tsan_func_entry()\fR and _\|\fB_tsan_func_exit()\fR. .IP "\fBmax-fsm-thread-path-insns\fR" 4 .IX Item "max-fsm-thread-path-insns" Maximum number of instructions to copy when duplicating blocks on a *************** supported by the system's \f(CW\*(C`icon *** 14652,14660 **** .IP "\fB\-fwide\-exec\-charset=\fR\fIcharset\fR" 4 .IX Item "-fwide-exec-charset=charset" Set the wide execution character set, used for wide string and ! character constants. The default is \s-1UTF\-32\s0 or \s-1UTF\-16,\s0 whichever ! corresponds to the width of \f(CW\*(C`wchar_t\*(C'\fR. As with ! \&\fB\-fexec\-charset\fR, \fIcharset\fR can be any encoding supported by the system's \f(CW\*(C`iconv\*(C'\fR library routine; however, you will have problems with encodings that do not fit exactly in \f(CW\*(C`wchar_t\*(C'\fR. .IP "\fB\-finput\-charset=\fR\fIcharset\fR" 4 --- 14656,14665 ---- .IP "\fB\-fwide\-exec\-charset=\fR\fIcharset\fR" 4 .IX Item "-fwide-exec-charset=charset" Set the wide execution character set, used for wide string and ! character constants. The default is one of \s-1UTF\-32BE, UTF\-32LE, UTF\-16BE,\s0 ! or \s-1UTF\-16LE,\s0 whichever corresponds to the width of \f(CW\*(C`wchar_t\*(C'\fR and the ! big-endian or little-endian byte order being used for code generation. As ! with \fB\-fexec\-charset\fR, \fIcharset\fR can be any encoding supported by the system's \f(CW\*(C`iconv\*(C'\fR library routine; however, you will have problems with encodings that do not fit exactly in \f(CW\*(C`wchar_t\*(C'\fR. .IP "\fB\-finput\-charset=\fR\fIcharset\fR" 4 *************** performance of the code. Permissible va *** 17518,17524 **** \&\fBcortex\-a78\fR, \fBcortex\-a78ae\fR, \fBcortex\-a78c\fR, \&\fBares\fR, \fBexynos\-m1\fR, \fBemag\fR, \fBfalkor\fR, \&\fBneoverse\-512tvb\fR, \fBneoverse\-e1\fR, \fBneoverse\-n1\fR, ! \&\fBneoverse\-n2\fR, \fBneoverse\-v1\fR, \fBqdf24xx\fR, \&\fBsaphira\fR, \fBphecda\fR, \fBxgene1\fR, \fBvulcan\fR, \&\fBocteontx\fR, \fBocteontx81\fR, \fBocteontx83\fR, \&\fBocteontx2\fR, \fBocteontx2t98\fR, \fBocteontx2t96\fR --- 17523,17529 ---- \&\fBcortex\-a78\fR, \fBcortex\-a78ae\fR, \fBcortex\-a78c\fR, \&\fBares\fR, \fBexynos\-m1\fR, \fBemag\fR, \fBfalkor\fR, \&\fBneoverse\-512tvb\fR, \fBneoverse\-e1\fR, \fBneoverse\-n1\fR, ! \&\fBneoverse\-n2\fR, \fBneoverse\-v1\fR,\fBneoverse\-v2\fR, \fBqdf24xx\fR, \&\fBsaphira\fR, \fBphecda\fR, \fBxgene1\fR, \fBvulcan\fR, \&\fBocteontx\fR, \fBocteontx81\fR, \fBocteontx83\fR, \&\fBocteontx2\fR, \fBocteontx2t98\fR, \fBocteontx2t96\fR *************** performance of the code. Permissible va *** 17531,17537 **** \&\fBcortex\-a57.cortex\-a53\fR, \fBcortex\-a72.cortex\-a53\fR, \&\fBcortex\-a73.cortex\-a35\fR, \fBcortex\-a73.cortex\-a53\fR, \&\fBcortex\-a75.cortex\-a55\fR, \fBcortex\-a76.cortex\-a55\fR, ! \&\fBcortex\-r82\fR, \fBcortex\-x1\fR, \fBampere1\fR, \fBnative\fR. .Sp The values \fBcortex\-a57.cortex\-a53\fR, \fBcortex\-a72.cortex\-a53\fR, \&\fBcortex\-a73.cortex\-a35\fR, \fBcortex\-a73.cortex\-a53\fR, --- 17536,17543 ---- \&\fBcortex\-a57.cortex\-a53\fR, \fBcortex\-a72.cortex\-a53\fR, \&\fBcortex\-a73.cortex\-a35\fR, \fBcortex\-a73.cortex\-a53\fR, \&\fBcortex\-a75.cortex\-a55\fR, \fBcortex\-a76.cortex\-a55\fR, ! \&\fBcortex\-r82\fR, \fBcortex\-x1\fR, \fBampere1\fR, ! \&\fBampere1a\fR, \fBnative\fR. .Sp The values \fBcortex\-a57.cortex\-a53\fR, \fBcortex\-a72.cortex\-a53\fR, \&\fBcortex\-a73.cortex\-a35\fR, \fBcortex\-a73.cortex\-a53\fR, *************** are provided for backwards compatibility *** 21170,21176 **** .IP "\fB\-all_load\fR" 4 .IX Item "-all_load" Loads all members of static archive libraries. ! See man \fIld\fR\|(1) for more information. .IP "\fB\-arch_errors_fatal\fR" 4 .IX Item "-arch_errors_fatal" Cause the errors having to do with files that have the wrong architecture --- 21176,21182 ---- .IP "\fB\-all_load\fR" 4 .IX Item "-all_load" Loads all members of static archive libraries. ! See man \fBld\fR\|(1) for more information. .IP "\fB\-arch_errors_fatal\fR" 4 .IX Item "-arch_errors_fatal" Cause the errors having to do with files that have the wrong architecture *************** bind all undefined references when the f *** 21182,21192 **** .IP "\fB\-bundle\fR" 4 .IX Item "-bundle" Produce a Mach-o bundle format file. ! See man \fIld\fR\|(1) for more information. .IP "\fB\-bundle_loader\fR \fIexecutable\fR" 4 .IX Item "-bundle_loader executable" This option specifies the \fIexecutable\fR that will load the build ! output file being linked. See man \fIld\fR\|(1) for more information. .IP "\fB\-dynamiclib\fR" 4 .IX Item "-dynamiclib" When passed this option, \s-1GCC\s0 produces a dynamic library instead of --- 21188,21198 ---- .IP "\fB\-bundle\fR" 4 .IX Item "-bundle" Produce a Mach-o bundle format file. ! See man \fBld\fR\|(1) for more information. .IP "\fB\-bundle_loader\fR \fIexecutable\fR" 4 .IX Item "-bundle_loader executable" This option specifies the \fIexecutable\fR that will load the build ! output file being linked. See man \fBld\fR\|(1) for more information. .IP "\fB\-dynamiclib\fR" 4 .IX Item "-dynamiclib" When passed this option, \s-1GCC\s0 produces a dynamic library instead of *************** libraries assume that extended-precision *** 29679,29684 **** --- 29685,29697 ---- are enabled by default; routines in such libraries could suffer significant loss of accuracy, typically through so-called \*(L"catastrophic cancellation\*(R", when this option is used to set the precision to less than extended precision. + .IP "\fB\-mdaz\-ftz\fR" 4 + .IX Item "-mdaz-ftz" + The flush-to-zero (\s-1FTZ\s0) and denormals-are-zero (\s-1DAZ\s0) flags in the \s-1MXCSR\s0 register + are used to control floating-point calculations.SSE and \s-1AVX\s0 instructions + including scalar and vector instructions could benefit from enabling the \s-1FTZ\s0 + and \s-1DAZ\s0 flags when \fB\-mdaz\-ftz\fR is specified. Don't set \s-1FTZ/DAZ\s0 flags + when \fB\-mno\-daz\-ftz\fR is specified. .IP "\fB\-mstackrealign\fR" 4 .IX Item "-mstackrealign" Realign the stack at entry. On the x86, the \fB\-mstackrealign\fR *************** to subtle defects. Supplying them in ca *** 31089,31096 **** is innocuous. .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fIgpl\fR\|(7), \fIgfdl\fR\|(7), \fIfsf\-funding\fR\|(7), ! \&\fIcpp\fR\|(1), \fIgcov\fR\|(1), \fIas\fR\|(1), \fIld\fR\|(1), \fIgdb\fR\|(1), \fIdbx\fR\|(1) and the Info entries for \fIgcc\fR, \fIcpp\fR, \fIas\fR, \&\fIld\fR, \fIbinutils\fR and \fIgdb\fR. .SH "AUTHOR" --- 31102,31109 ---- is innocuous. .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fBgpl\fR\|(7), \fBgfdl\fR\|(7), \fBfsf\-funding\fR\|(7), ! \&\fBcpp\fR\|(1), \fBgcov\fR\|(1), \fBas\fR\|(1), \fBld\fR\|(1), \fBgdb\fR\|(1), \fBdbx\fR\|(1) and the Info entries for \fIgcc\fR, \fIcpp\fR, \fIas\fR, \&\fIld\fR, \fIbinutils\fR and \fIgdb\fR. .SH "AUTHOR" *************** any later version published by the Free *** 31108,31114 **** Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding Free Software\*(R", 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 \fIgfdl\fR\|(7) man page. .PP (a) The \s-1FSF\s0's Front-Cover Text is: .PP --- 31121,31127 ---- Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding Free Software\*(R", 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 \fBgfdl\fR\|(7) man page. .PP (a) The \s-1FSF\s0's Front-Cover Text is: .PP diff -Nrcpad gcc-11.3.0/gcc/doc/gcc.info gcc-11.4.0/gcc/doc/gcc.info *** gcc-11.3.0/gcc/doc/gcc.info Thu Apr 21 08:21:00 2022 --- gcc-11.4.0/gcc/doc/gcc.info Mon May 29 09:02:46 2023 *************** *** 1,4 **** ! This is gcc.info, produced by makeinfo version 6.5 from gcc.texi. Copyright (C) 1988-2021 Free Software Foundation, Inc. --- 1,4 ---- ! This is gcc.info, produced by makeinfo version 6.8 from gcc.texi. Copyright (C) 1988-2021 Free Software Foundation, Inc. *************** Copies published by the Free Software Fo *** 53,66 **** development.  ! File: gcc.info, Node: Top, Next: G++ and GCC Introduction ************ This manual documents how to use the GNU compilers, as well as their features and incompatibilities, and how to report bugs. It corresponds ! to the compilers (GCC) version 11.3.0. The internals of the GNU compilers, including how to port them to new targets and some information about how to write front ends for new languages, are documented in a separate manual. *Note Introduction: (gccint)Top. --- 53,66 ---- development.  ! File: gcc.info, Node: Top, Next: G++ and GCC, Up: (dir) Introduction ************ This manual documents how to use the GNU compilers, as well as their features and incompatibilities, and how to report bugs. It corresponds ! to the compilers (GCC) version 11.4.0. The internals of the GNU compilers, including how to port them to new targets and some information about how to write front ends for new languages, are documented in a separate manual. *Note Introduction: (gccint)Top. *************** _Machine-Dependent Options_ *** 1732,1738 **** -m96bit-long-double -mlong-double-64 -mlong-double-80 -mlong-double-128 -mregparm=NUM -msseregparm -mveclibabi=TYPE -mvect8-ret-in-mem ! -mpc32 -mpc64 -mpc80 -mstackrealign -momit-leaf-frame-pointer -mno-red-zone -mno-tls-direct-seg-refs -mcmodel=CODE-MODEL -mabi=NAME -maddress-mode=MODE -m32 -m64 -mx32 -m16 -miamcu -mlarge-data-threshold=NUM --- 1732,1738 ---- -m96bit-long-double -mlong-double-64 -mlong-double-80 -mlong-double-128 -mregparm=NUM -msseregparm -mveclibabi=TYPE -mvect8-ret-in-mem ! -mpc32 -mpc64 -mpc80 -mdaz-ftz -mstackrealign -momit-leaf-frame-pointer -mno-red-zone -mno-tls-direct-seg-refs -mcmodel=CODE-MODEL -mabi=NAME -maddress-mode=MODE -m32 -m64 -mx32 -m16 -miamcu -mlarge-data-threshold=NUM *************** Options::. Options to control preproces *** 14451,14461 **** '-fwide-exec-charset=CHARSET' Set the wide execution character set, used for wide string and ! character constants. The default is UTF-32 or UTF-16, whichever ! corresponds to the width of 'wchar_t'. As with '-fexec-charset', ! CHARSET can be any encoding supported by the system's 'iconv' ! library routine; however, you will have problems with encodings ! that do not fit exactly in 'wchar_t'. '-finput-charset=CHARSET' Set the input character set, used for translation from the --- 14451,14463 ---- '-fwide-exec-charset=CHARSET' Set the wide execution character set, used for wide string and ! character constants. The default is one of UTF-32BE, UTF-32LE, ! UTF-16BE, or UTF-16LE, whichever corresponds to the width of ! 'wchar_t' and the big-endian or little-endian byte order being used ! for code generation. As with '-fexec-charset', CHARSET can be any ! encoding supported by the system's 'iconv' library routine; ! however, you will have problems with encodings that do not fit ! exactly in 'wchar_t'. '-finput-charset=CHARSET' Set the input character set, used for translation from the *************** These options are defined for AArch64 im *** 17179,17194 **** 'cortex-a65ae', 'cortex-a34', 'cortex-a78', 'cortex-a78ae', 'cortex-a78c', 'ares', 'exynos-m1', 'emag', 'falkor', 'neoverse-512tvb', 'neoverse-e1', 'neoverse-n1', 'neoverse-n2', ! 'neoverse-v1', 'qdf24xx', 'saphira', 'phecda', 'xgene1', 'vulcan', ! 'octeontx', 'octeontx81', 'octeontx83', 'octeontx2', ! 'octeontx2t98', 'octeontx2t96' 'octeontx2t93', 'octeontx2f95', ! 'octeontx2f95n', 'octeontx2f95mm', 'a64fx', 'thunderx', ! 'thunderxt88', 'thunderxt88p1', 'thunderxt81', 'tsv110', ! 'thunderxt83', 'thunderx2t99', 'thunderx3t110', 'zeus', 'cortex-a57.cortex-a53', 'cortex-a72.cortex-a53', 'cortex-a73.cortex-a35', 'cortex-a73.cortex-a53', 'cortex-a75.cortex-a55', 'cortex-a76.cortex-a55', 'cortex-r82', ! 'cortex-x1', 'ampere1', 'native'. The values 'cortex-a57.cortex-a53', 'cortex-a72.cortex-a53', 'cortex-a73.cortex-a35', 'cortex-a73.cortex-a53', --- 17181,17196 ---- 'cortex-a65ae', 'cortex-a34', 'cortex-a78', 'cortex-a78ae', 'cortex-a78c', 'ares', 'exynos-m1', 'emag', 'falkor', 'neoverse-512tvb', 'neoverse-e1', 'neoverse-n1', 'neoverse-n2', ! 'neoverse-v1','neoverse-v2', 'qdf24xx', 'saphira', 'phecda', ! 'xgene1', 'vulcan', 'octeontx', 'octeontx81', 'octeontx83', ! 'octeontx2', 'octeontx2t98', 'octeontx2t96' 'octeontx2t93', ! 'octeontx2f95', 'octeontx2f95n', 'octeontx2f95mm', 'a64fx', ! 'thunderx', 'thunderxt88', 'thunderxt88p1', 'thunderxt81', ! 'tsv110', 'thunderxt83', 'thunderx2t99', 'thunderx3t110', 'zeus', 'cortex-a57.cortex-a53', 'cortex-a72.cortex-a53', 'cortex-a73.cortex-a35', 'cortex-a73.cortex-a53', 'cortex-a75.cortex-a55', 'cortex-a76.cortex-a55', 'cortex-r82', ! 'cortex-x1', 'ampere1', 'ampere1a', 'native'. The values 'cortex-a57.cortex-a53', 'cortex-a72.cortex-a53', 'cortex-a73.cortex-a35', 'cortex-a73.cortex-a53', *************** These options are defined for AVR implem *** 19275,19280 **** --- 19277,19283 ---- 'avr3' "Classic" devices with 16 KiB up to 64 KiB of program memory. + MCU = 'at76c711', 'at43usb355'. 'avr31' *************** These '-m' options are defined for the x *** 28123,28128 **** --- 28126,28140 ---- through so-called "catastrophic cancellation", when this option is used to set the precision to less than extended precision. + '-mdaz-ftz' + + The flush-to-zero (FTZ) and denormals-are-zero (DAZ) flags in the + MXCSR register are used to control floating-point calculations.SSE + and AVX instructions including scalar and vector instructions could + benefit from enabling the FTZ and DAZ flags when '-mdaz-ftz' is + specified. Don't set FTZ/DAZ flags when '-mno-daz-ftz' is + specified. + '-mstackrealign' Realign the stack at entry. On the x86, the '-mstackrealign' option generates an alternate prologue and epilogue that realigns *************** acting as mere forwarders for their argu *** 31781,31787 **** return r + s; } ! -- Built-in Function: size_t __builtin_va_arg_pack_len () This built-in function returns the number of anonymous arguments of an inline function. It can be used only in inline functions that are always inlined, never compiled as a separate function, such as --- 31793,31799 ---- return r + s; } ! -- Built-in Function: int __builtin_va_arg_pack_len () This built-in function returns the number of anonymous arguments of an inline function. It can be used only in inline functions that are always inlined, never compiled as a separate function, such as *************** vec_div (vector unsigned long long a, ve *** 51124,51131 **** in doubleword element 'i' of a is divided by the integer in doubleword element 'i' of b. The unique integer quotient is placed into the doubleword element 'i' of the vector returned. If an attempt is made to ! perform any of the divisions 0x8000_0000_0000_0000 ÷ -1 or ! ÷ 0 then the quotient is undefined. vector signed int vec_dive (vector signed int a, vector signed int b) --- 51136,51143 ---- in doubleword element 'i' of a is divided by the integer in doubleword element 'i' of b. The unique integer quotient is placed into the doubleword element 'i' of the vector returned. If an attempt is made to ! perform any of the divisions 0x8000_0000_0000_0000 ÷ -1 or ÷ ! 0 then the quotient is undefined. vector signed int vec_dive (vector signed int a, vector signed int b) *************** alphabetical order. *** 60673,60679 **** * Ralf Corsepius for SH testing and minor bug fixing. ! * Franc,ois-Xavier Coudert for contributions to GNU Fortran. * Stan Cox for care and feeding of the x86 port and lots of behind the scenes hacking. --- 60685,60691 ---- * Ralf Corsepius for SH testing and minor bug fixing. ! * François-Xavier Coudert for contributions to GNU Fortran. * Stan Cox for care and feeding of the x86 port and lots of behind the scenes hacking. *************** alphabetical order. *** 60716,60722 **** disbursement, configuration architecture, libio maintenance, and early math work. ! * Franc,ois Dumont for his work on libstdc++-v3, especially maintaining and improving 'debug-mode' and associative and unordered containers. --- 60728,60734 ---- disbursement, configuration architecture, libio maintenance, and early math work. ! * François Dumont for his work on libstdc++-v3, especially maintaining and improving 'debug-mode' and associative and unordered containers. *************** alphabetical order. *** 60975,60987 **** * Weiwen Liu for testing and various bug fixes. ! * Manuel Lo'pez-Iba'n~ez for improving '-Wconversion' and many other diagnostics fixes and improvements. * Dave Love for his ongoing work with the Fortran front end and runtime libraries. ! * Martin von Lo"wis for internal consistency checking infrastructure, various C++ improvements including namespace support, and tons of assistance with libstdc++/compiler merges. --- 60987,60999 ---- * Weiwen Liu for testing and various bug fixes. ! * Manuel López-Ibáñez for improving '-Wconversion' and many other diagnostics fixes and improvements. * Dave Love for his ongoing work with the Fortran front end and runtime libraries. ! * Martin von Löwis for internal consistency checking infrastructure, various C++ improvements including namespace support, and tons of assistance with libstdc++/compiler merges. *************** alphabetical order. *** 61173,61179 **** * Craig Rodrigues for processing tons of bug reports. ! * Ola Ro"nnerup for work on mt_alloc. * Gavin Romig-Koch for lots of behind the scenes MIPS work. --- 61185,61191 ---- * Craig Rodrigues for processing tons of bug reports. ! * Ola Rönnerup for work on mt_alloc. * Gavin Romig-Koch for lots of behind the scenes MIPS work. *************** alphabetical order. *** 61187,61193 **** * Paul Rubin wrote most of the preprocessor. ! * Pe'tur Runo'lfsson for major performance improvements in C++ formatted I/O and large file support in C++ filebuf. * Chip Salzenberg for libstdc++ patches and improvements to locales, --- 61199,61205 ---- * Paul Rubin wrote most of the preprocessor. ! * Pétur Runólfsson for major performance improvements in C++ formatted I/O and large file support in C++ filebuf. * Chip Salzenberg for libstdc++ patches and improvements to locales, *************** alphabetical order. *** 61208,61214 **** * William Schelter did most of the work on the Intel 80386 support. ! * Tobias Schlu"ter for work on GNU Fortran. * Bernd Schmidt for various code generation improvements and major work in the reload pass, serving as release manager for GCC 2.95.3, --- 61220,61226 ---- * William Schelter did most of the work on the Intel 80386 support. ! * Tobias Schlüter for work on GNU Fortran. * Bernd Schmidt for various code generation improvements and major work in the reload pass, serving as release manager for GCC 2.95.3, *************** contributions to testing: *** 61705,61711 **** * Robert A. French ! * Jo"rgen Freyh * Mark K. Gardner --- 61717,61723 ---- * Robert A. French ! * Jörgen Freyh * Mark K. Gardner *************** look up both forms. *** 61841,61847 **** * ###: Overall Options. (line 476) * 80387: x86 Options. (line 580) * A: Preprocessor Options. ! (line 335) * allowable_client: Darwin Options. (line 196) * all_load: Darwin Options. (line 110) * analyzer: Static Analyzer Options. --- 61853,61859 ---- * ###: Overall Options. (line 476) * 80387: x86 Options. (line 580) * A: Preprocessor Options. ! (line 337) * allowable_client: Darwin Options. (line 196) * all_load: Darwin Options. (line 110) * analyzer: Static Analyzer Options. *************** look up both forms. *** 61862,61871 **** * bundle_loader: Darwin Options. (line 127) * c: Overall Options. (line 169) * C: Preprocessor Options. ! (line 344) * c <1>: Link Options. (line 20) * CC: Preprocessor Options. ! (line 356) * client_name: Darwin Options. (line 196) * compatibility_version: Darwin Options. (line 196) * coverage: Instrumentation Options. --- 61874,61883 ---- * bundle_loader: Darwin Options. (line 127) * c: Overall Options. (line 169) * C: Preprocessor Options. ! (line 346) * c <1>: Link Options. (line 20) * CC: Preprocessor Options. ! (line 358) * client_name: Darwin Options. (line 196) * compatibility_version: Darwin Options. (line 196) * coverage: Instrumentation Options. *************** look up both forms. *** 61874,61899 **** * D: Preprocessor Options. (line 19) * d: Preprocessor Options. ! (line 410) * d <1>: Developer Options. (line 52) * da: Developer Options. (line 246) * dA: Developer Options. (line 249) * dD: Preprocessor Options. ! (line 434) * dD <1>: Developer Options. (line 253) * dead_strip: Darwin Options. (line 196) * dependency-file: Darwin Options. (line 196) * dH: Developer Options. (line 257) * dI: Preprocessor Options. ! (line 444) * dM: Preprocessor Options. ! (line 419) * dN: Preprocessor Options. ! (line 440) * dp: Developer Options. (line 260) * dP: Developer Options. (line 265) * dU: Preprocessor Options. ! (line 448) * dump-analyzer-exploded-nodes: Static Analyzer Options. (line 364) * dump-analyzer-exploded-nodes-2: Static Analyzer Options. --- 61886,61911 ---- * D: Preprocessor Options. (line 19) * d: Preprocessor Options. ! (line 412) * d <1>: Developer Options. (line 52) * da: Developer Options. (line 246) * dA: Developer Options. (line 249) * dD: Preprocessor Options. ! (line 436) * dD <1>: Developer Options. (line 253) * dead_strip: Darwin Options. (line 196) * dependency-file: Darwin Options. (line 196) * dH: Developer Options. (line 257) * dI: Preprocessor Options. ! (line 446) * dM: Preprocessor Options. ! (line 421) * dN: Preprocessor Options. ! (line 442) * dp: Developer Options. (line 260) * dP: Developer Options. (line 265) * dU: Preprocessor Options. ! (line 450) * dump-analyzer-exploded-nodes: Static Analyzer Options. (line 364) * dump-analyzer-exploded-nodes-2: Static Analyzer Options. *************** look up both forms. *** 61917,61926 **** * E: Overall Options. (line 190) * E <1>: Link Options. (line 20) * e: Link Options. (line 169) ! * EB: ARC Options. (line 597) * EB <1>: C-SKY Options. (line 29) * EB <2>: MIPS Options. (line 7) ! * EL: ARC Options. (line 606) * EL <1>: C-SKY Options. (line 31) * EL <2>: MIPS Options. (line 10) * entry: Link Options. (line 169) --- 61929,61938 ---- * E: Overall Options. (line 190) * E <1>: Link Options. (line 20) * e: Link Options. (line 169) ! * EB: ARC Options. (line 595) * EB <1>: C-SKY Options. (line 29) * EB <2>: MIPS Options. (line 7) ! * EL: ARC Options. (line 602) * EL <1>: C-SKY Options. (line 31) * EL <2>: MIPS Options. (line 10) * entry: Link Options. (line 169) *************** look up both forms. *** 61995,62001 **** (line 176) * fconcepts-ts: C++ Dialect Options. (line 176) ! * fcond-mismatch: C Dialect Options. (line 408) * fconserve-stack: Optimize Options. (line 958) * fconstant-string-class: Objective-C and Objective-C++ Dialect Options. (line 30) --- 62007,62013 ---- (line 176) * fconcepts-ts: C++ Dialect Options. (line 176) ! * fcond-mismatch: C Dialect Options. (line 406) * fconserve-stack: Optimize Options. (line 958) * fconstant-string-class: Objective-C and Objective-C++ Dialect Options. (line 30) *************** look up both forms. *** 62020,62026 **** * fdbg-cnt-list: Developer Options. (line 921) * fdce: Optimize Options. (line 575) * fdebug-cpp: Preprocessor Options. ! (line 455) * fdebug-prefix-map: Debugging Options. (line 142) * fdebug-types-section: Debugging Options. (line 204) * fdeclone-ctor-dtor: Optimize Options. (line 598) --- 62032,62038 ---- * fdbg-cnt-list: Developer Options. (line 921) * fdce: Optimize Options. (line 575) * fdebug-cpp: Preprocessor Options. ! (line 457) * fdebug-prefix-map: Debugging Options. (line 142) * fdebug-types-section: Debugging Options. (line 204) * fdeclone-ctor-dtor: Optimize Options. (line 598) *************** look up both forms. *** 62226,62232 **** (line 260) * fgnu-runtime: Objective-C and Objective-C++ Dialect Options. (line 39) ! * fgnu-tm: C Dialect Options. (line 365) * fgnu-unique: Code Gen Options. (line 162) * fgnu89-inline: C Dialect Options. (line 202) * fgraphite-identity: Optimize Options. (line 1257) --- 62238,62244 ---- (line 260) * fgnu-runtime: Objective-C and Objective-C++ Dialect Options. (line 39) ! * fgnu-tm: C Dialect Options. (line 363) * fgnu-unique: Code Gen Options. (line 162) * fgnu89-inline: C Dialect Options. (line 202) * fgraphite-identity: Optimize Options. (line 1257) *************** look up both forms. *** 62253,62259 **** * finline-limit: Optimize Options. (line 337) * finline-small-functions: Optimize Options. (line 284) * finput-charset: Preprocessor Options. ! (line 286) * finstrument-functions: Instrumentation Options. (line 792) * finstrument-functions <1>: Common Function Attributes. --- 62265,62271 ---- * finline-limit: Optimize Options. (line 337) * finline-small-functions: Optimize Options. (line 284) * finput-charset: Preprocessor Options. ! (line 288) * finstrument-functions: Instrumentation Options. (line 792) * finstrument-functions <1>: Common Function Attributes. *************** look up both forms. *** 62301,62309 **** * flang-info-module-cmi: C++ Dialect Options. (line 546) * flarge-source-files: Preprocessor Options. ! (line 495) * flat_namespace: Darwin Options. (line 196) ! * flax-vector-conversions: C Dialect Options. (line 413) * fleading-underscore: Code Gen Options. (line 482) * flifetime-dse: Optimize Options. (line 668) * flinker-output: Link Options. (line 25) --- 62313,62321 ---- * flang-info-module-cmi: C++ Dialect Options. (line 546) * flarge-source-files: Preprocessor Options. ! (line 497) * flat_namespace: Darwin Options. (line 196) ! * flax-vector-conversions: C Dialect Options. (line 411) * fleading-underscore: Code Gen Options. (line 482) * flifetime-dse: Optimize Options. (line 668) * flinker-output: Link Options. (line 25) *************** look up both forms. *** 62351,62357 **** * fmodulo-sched: Optimize Options. (line 409) * fmodulo-sched-allow-regmoves: Optimize Options. (line 414) * fmove-loop-invariants: Optimize Options. (line 2566) ! * fms-extensions: C Dialect Options. (line 380) * fms-extensions <1>: C++ Dialect Options. (line 324) * fms-extensions <2>: Unnamed Fields. (line 36) --- 62363,62369 ---- * fmodulo-sched: Optimize Options. (line 409) * fmodulo-sched-allow-regmoves: Optimize Options. (line 414) * fmove-loop-invariants: Optimize Options. (line 2566) ! * fms-extensions: C Dialect Options. (line 378) * fms-extensions <1>: C++ Dialect Options. (line 324) * fms-extensions <2>: Unnamed Fields. (line 36) *************** look up both forms. *** 62482,62488 **** (line 46) * fno-show-column: Diagnostic Message Formatting Options. (line 408) ! * fno-signed-bitfields: C Dialect Options. (line 446) * fno-signed-zeros: Optimize Options. (line 2361) * fno-stack-limit: Instrumentation Options. (line 704) --- 62494,62500 ---- (line 46) * fno-show-column: Diagnostic Message Formatting Options. (line 408) ! * fno-signed-bitfields: C Dialect Options. (line 444) * fno-signed-zeros: Optimize Options. (line 2361) * fno-stack-limit: Instrumentation Options. (line 704) *************** look up both forms. *** 62490,62496 **** (line 439) * fno-toplevel-reorder: Optimize Options. (line 1808) * fno-trapping-math: Optimize Options. (line 2371) ! * fno-unsigned-bitfields: C Dialect Options. (line 446) * fno-use-cxa-get-exception-ptr: C++ Dialect Options. (line 452) * fno-var-tracking-assignments: Debugging Options. (line 162) --- 62502,62508 ---- (line 439) * fno-toplevel-reorder: Optimize Options. (line 1808) * fno-trapping-math: Optimize Options. (line 2371) ! * fno-unsigned-bitfields: C Dialect Options. (line 444) * fno-use-cxa-get-exception-ptr: C++ Dialect Options. (line 452) * fno-var-tracking-assignments: Debugging Options. (line 162) *************** look up both forms. *** 62498,62504 **** * fno-weak: C++ Dialect Options. (line 514) * fno-working-directory: Preprocessor Options. ! (line 321) * fno-writable-relocated-rdata: x86 Windows Options. (line 53) * fno-zero-initialized-in-bss: Optimize Options. (line 446) --- 62510,62516 ---- * fno-weak: C++ Dialect Options. (line 514) * fno-working-directory: Preprocessor Options. ! (line 323) * fno-writable-relocated-rdata: x86 Windows Options. (line 53) * fno-zero-initialized-in-bss: Optimize Options. (line 446) *************** look up both forms. *** 62523,62531 **** (line 119) * fomit-frame-pointer: Optimize Options. (line 249) * fopenacc: C Dialect Options. (line 337) ! * fopenacc-dim: C Dialect Options. (line 346) ! * fopenmp: C Dialect Options. (line 352) ! * fopenmp-simd: C Dialect Options. (line 361) * foperator-names: C++ Dialect Options. (line 358) * fopt-info: Developer Options. (line 487) --- 62535,62543 ---- (line 119) * fomit-frame-pointer: Optimize Options. (line 249) * fopenacc: C Dialect Options. (line 337) ! * fopenacc-dim: C Dialect Options. (line 345) ! * fopenmp: C Dialect Options. (line 351) ! * fopenmp-simd: C Dialect Options. (line 359) * foperator-names: C++ Dialect Options. (line 358) * fopt-info: Developer Options. (line 487) *************** look up both forms. *** 62542,62550 **** * fpcc-struct-return: Code Gen Options. (line 175) * fpcc-struct-return <1>: Incompatibilities. (line 170) * fpch-deps: Preprocessor Options. ! (line 296) * fpch-preprocess: Preprocessor Options. ! (line 304) * fpeel-loops: Optimize Options. (line 2558) * fpeephole: Optimize Options. (line 1554) * fpeephole2: Optimize Options. (line 1554) --- 62554,62562 ---- * fpcc-struct-return: Code Gen Options. (line 175) * fpcc-struct-return <1>: Incompatibilities. (line 170) * fpch-deps: Preprocessor Options. ! (line 298) * fpch-preprocess: Preprocessor Options. ! (line 306) * fpeel-loops: Optimize Options. (line 2558) * fpeephole: Optimize Options. (line 1554) * fpeephole2: Optimize Options. (line 1554) *************** look up both forms. *** 62557,62563 **** * fPIC: Code Gen Options. (line 374) * fpie: Code Gen Options. (line 387) * fPIE: Code Gen Options. (line 387) ! * fplan9-extensions: C Dialect Options. (line 398) * fplan9-extensions <1>: Unnamed Fields. (line 43) * fplt: Code Gen Options. (line 396) * fplugin: Overall Options. (line 643) --- 62569,62575 ---- * fPIC: Code Gen Options. (line 374) * fpie: Code Gen Options. (line 387) * fPIE: Code Gen Options. (line 387) ! * fplan9-extensions: C Dialect Options. (line 396) * fplan9-extensions <1>: Unnamed Fields. (line 43) * fplt: Code Gen Options. (line 396) * fplugin: Overall Options. (line 643) *************** look up both forms. *** 62732,62740 **** * fshrink-wrap: Optimize Options. (line 916) * fshrink-wrap-separate: Optimize Options. (line 921) * fsignaling-nans: Optimize Options. (line 2406) ! * fsigned-bitfields: C Dialect Options. (line 446) * fsigned-bitfields <1>: Non-bugs. (line 57) ! * fsigned-char: C Dialect Options. (line 436) * fsigned-char <1>: Characters implementation. (line 31) * fsigned-zeros: Optimize Options. (line 2361) --- 62744,62752 ---- * fshrink-wrap: Optimize Options. (line 916) * fshrink-wrap-separate: Optimize Options. (line 921) * fsignaling-nans: Optimize Options. (line 2406) ! * fsigned-bitfields: C Dialect Options. (line 444) * fsigned-bitfields <1>: Non-bugs. (line 57) ! * fsigned-char: C Dialect Options. (line 434) * fsigned-char <1>: Characters implementation. (line 31) * fsigned-zeros: Optimize Options. (line 2361) *************** look up both forms. *** 62753,62759 **** * fsplit-wide-types-early: Optimize Options. (line 475) * fssa-backprop: Optimize Options. (line 1181) * fssa-phiopt: Optimize Options. (line 1187) ! * fsso-struct: C Dialect Options. (line 452) * fstack-check: Instrumentation Options. (line 647) * fstack-clash-protection: Instrumentation Options. --- 62765,62771 ---- * fsplit-wide-types-early: Optimize Options. (line 475) * fssa-backprop: Optimize Options. (line 1181) * fssa-phiopt: Optimize Options. (line 1187) ! * fsso-struct: C Dialect Options. (line 450) * fstack-check: Instrumentation Options. (line 647) * fstack-clash-protection: Instrumentation Options. *************** look up both forms. *** 62779,62788 **** * fstrict-enums: C++ Dialect Options. (line 409) * fstrict-overflow: Code Gen Options. (line 115) ! * fstrict-volatile-bitfields: Code Gen Options. (line 593) * fstrong-eval-order: C++ Dialect Options. (line 418) ! * fsync-libcalls: Code Gen Options. (line 625) * fsyntax-only: Warning Options. (line 14) * ftabstop: Preprocessor Options. (line 241) --- 62791,62800 ---- * fstrict-enums: C++ Dialect Options. (line 409) * fstrict-overflow: Code Gen Options. (line 115) ! * fstrict-volatile-bitfields: Code Gen Options. (line 592) * fstrong-eval-order: C++ Dialect Options. (line 418) ! * fsync-libcalls: Code Gen Options. (line 624) * fsyntax-only: Warning Options. (line 14) * ftabstop: Preprocessor Options. (line 241) *************** look up both forms. *** 62845,62855 **** * funroll-all-loops: Optimize Options. (line 2552) * funroll-loops: Optimize Options. (line 2542) * funsafe-math-optimizations: Optimize Options. (line 2304) ! * funsigned-bitfields: C Dialect Options. (line 446) * funsigned-bitfields <1>: Structures unions enumerations and bit-fields implementation. (line 17) * funsigned-bitfields <2>: Non-bugs. (line 57) ! * funsigned-char: C Dialect Options. (line 418) * funsigned-char <1>: Characters implementation. (line 31) * funswitch-loops: Optimize Options. (line 2576) --- 62857,62867 ---- * funroll-all-loops: Optimize Options. (line 2552) * funroll-loops: Optimize Options. (line 2542) * funsafe-math-optimizations: Optimize Options. (line 2304) ! * funsigned-bitfields: C Dialect Options. (line 444) * funsigned-bitfields <1>: Structures unions enumerations and bit-fields implementation. (line 17) * funsigned-bitfields <2>: Non-bugs. (line 57) ! * funsigned-char: C Dialect Options. (line 416) * funsigned-char <1>: Characters implementation. (line 31) * funswitch-loops: Optimize Options. (line 2576) *************** look up both forms. *** 62888,62894 **** * fwide-exec-charset: Preprocessor Options. (line 278) * fworking-directory: Preprocessor Options. ! (line 321) * fwrapv: Code Gen Options. (line 99) * fwrapv-pointer: Code Gen Options. (line 109) * fwritable-relocated-rdata: x86 Windows Options. --- 62900,62906 ---- * fwide-exec-charset: Preprocessor Options. (line 278) * fworking-directory: Preprocessor Options. ! (line 323) * fwrapv: Code Gen Options. (line 99) * fwrapv-pointer: Code Gen Options. (line 109) * fwritable-relocated-rdata: x86 Windows Options. *************** look up both forms. *** 62898,62904 **** * fzero-link: Objective-C and Objective-C++ Dialect Options. (line 140) * g: Debugging Options. (line 25) ! * G: ARC Options. (line 416) * G <1>: M32R/D Options. (line 57) * G <2>: MIPS Options. (line 460) * G <3>: Nios II Options. (line 9) --- 62910,62916 ---- * fzero-link: Objective-C and Objective-C++ Dialect Options. (line 140) * g: Debugging Options. (line 25) ! * G: ARC Options. (line 414) * G <1>: M32R/D Options. (line 57) * G <2>: MIPS Options. (line 460) * G <3>: Nios II Options. (line 9) *************** look up both forms. *** 62943,62949 **** * gxcoff+: Debugging Options. (line 83) * gz: Debugging Options. (line 329) * H: Preprocessor Options. ! (line 403) * headerpad_max_install_names: Darwin Options. (line 196) * help: Overall Options. (line 482) * I: Directory Options. (line 13) --- 62955,62961 ---- * gxcoff+: Debugging Options. (line 83) * gz: Debugging Options. (line 329) * H: Preprocessor Options. ! (line 405) * headerpad_max_install_names: Darwin Options. (line 196) * help: Overall Options. (line 482) * I: Directory Options. (line 13) *************** look up both forms. *** 62976,62983 **** * m1: SH Options. (line 9) * m10: PDP-11 Options. (line 29) * m128bit-long-double: x86 Options. (line 632) ! * m16: x86 Options. (line 1502) ! * m16-bit: CRIS Options. (line 63) * m16-bit <1>: NDS32 Options. (line 51) * m1reg-: Adapteva Epiphany Options. (line 131) --- 62988,62995 ---- * m1: SH Options. (line 9) * m10: PDP-11 Options. (line 29) * m128bit-long-double: x86 Options. (line 632) ! * m16: x86 Options. (line 1511) ! * m16-bit: CRIS Options. (line 62) * m16-bit <1>: NDS32 Options. (line 51) * m1reg-: Adapteva Epiphany Options. (line 131) *************** look up both forms. *** 62995,63010 **** * m32 <1>: SPARC Options. (line 315) * m32 <2>: TILE-Gx Options. (line 23) * m32 <3>: TILEPro Options. (line 13) ! * m32 <4>: x86 Options. (line 1502) ! * m32-bit: CRIS Options. (line 63) * m32bit-doubles: RL78 Options. (line 73) * m32bit-doubles <1>: RX Options. (line 10) * m32r: M32R/D Options. (line 15) * m32r2: M32R/D Options. (line 9) * m32rx: M32R/D Options. (line 12) * m340: MCore Options. (line 43) ! * m3dnow: x86 Options. (line 855) ! * m3dnowa: x86 Options. (line 856) * m3e: SH Options. (line 37) * m4: SH Options. (line 51) * m4-100: SH Options. (line 54) --- 63007,63022 ---- * m32 <1>: SPARC Options. (line 315) * m32 <2>: TILE-Gx Options. (line 23) * m32 <3>: TILEPro Options. (line 13) ! * m32 <4>: x86 Options. (line 1511) ! * m32-bit: CRIS Options. (line 62) * m32bit-doubles: RL78 Options. (line 73) * m32bit-doubles <1>: RX Options. (line 10) * m32r: M32R/D Options. (line 15) * m32r2: M32R/D Options. (line 9) * m32rx: M32R/D Options. (line 12) * m340: MCore Options. (line 43) ! * m3dnow: x86 Options. (line 864) ! * m3dnowa: x86 Options. (line 865) * m3e: SH Options. (line 37) * m4: SH Options. (line 51) * m4-100: SH Options. (line 54) *************** look up both forms. *** 63044,63050 **** (line 86) * m64 <3>: SPARC Options. (line 315) * m64 <4>: TILE-Gx Options. (line 23) ! * m64 <5>: x86 Options. (line 1502) * m64bit-doubles: RL78 Options. (line 73) * m64bit-doubles <1>: RX Options. (line 10) * m68000: M680x0 Options. (line 93) --- 63056,63062 ---- (line 86) * m64 <3>: SPARC Options. (line 315) * m64 <4>: TILE-Gx Options. (line 23) ! * m64 <5>: x86 Options. (line 1511) * m64bit-doubles: RL78 Options. (line 73) * m64bit-doubles <1>: RX Options. (line 10) * m68000: M680x0 Options. (line 93) *************** look up both forms. *** 63056,63063 **** * m68040: M680x0 Options. (line 117) * m68060: M680x0 Options. (line 126) * m68881: M680x0 Options. (line 194) ! * m8-bit: CRIS Options. (line 63) ! * m8bit-idiv: x86 Options. (line 1410) * m8byte-align: V850 Options. (line 170) * m96bit-long-double: x86 Options. (line 632) * mA6: ARC Options. (line 23) --- 63068,63075 ---- * m68040: M680x0 Options. (line 117) * m68060: M680x0 Options. (line 126) * m68881: M680x0 Options. (line 194) ! * m8-bit: CRIS Options. (line 62) ! * m8bit-idiv: x86 Options. (line 1419) * m8byte-align: V850 Options. (line 170) * m96bit-long-double: x86 Options. (line 632) * mA6: ARC Options. (line 23) *************** look up both forms. *** 63068,63074 **** * mabi <3>: RISC-V Options. (line 17) * mabi <4>: RS/6000 and PowerPC Options. (line 552) ! * mabi <5>: x86 Options. (line 1103) * mabi <6>: Xtensa Options. (line 103) * mabi=32: MIPS Options. (line 156) * mabi=64: MIPS Options. (line 156) --- 63080,63086 ---- * mabi <3>: RISC-V Options. (line 17) * mabi <4>: RS/6000 and PowerPC Options. (line 552) ! * mabi <5>: x86 Options. (line 1112) * mabi <6>: Xtensa Options. (line 103) * mabi=32: MIPS Options. (line 156) * mabi=64: MIPS Options. (line 156) *************** look up both forms. *** 63088,63111 **** * mabi=o64: MIPS Options. (line 156) * mabi=windowed: Xtensa Options. (line 115) * mabicalls: MIPS Options. (line 192) ! * mabm: x86 Options. (line 858) * mabort-on-noreturn: ARM Options. (line 751) * mabs=2008: MIPS Options. (line 300) * mabs=legacy: MIPS Options. (line 300) ! * mabsdata: AVR Options. (line 163) * mabsdiff: MeP Options. (line 7) * mac0: PDP-11 Options. (line 16) * macc-4: FRV Options. (line 139) * macc-8: FRV Options. (line 143) ! * maccumulate-args: AVR Options. (line 170) * maccumulate-outgoing-args: SH Options. (line 314) ! * maccumulate-outgoing-args <1>: x86 Options. (line 1147) ! * maddress-mode=long: x86 Options. (line 1552) ! * maddress-mode=short: x86 Options. (line 1557) * mads: RS/6000 and PowerPC Options. (line 614) ! * madx: x86 Options. (line 859) ! * maes: x86 Options. (line 836) * maix-struct-return: RS/6000 and PowerPC Options. (line 545) * maix32: RS/6000 and PowerPC Options. --- 63100,63123 ---- * mabi=o64: MIPS Options. (line 156) * mabi=windowed: Xtensa Options. (line 115) * mabicalls: MIPS Options. (line 192) ! * mabm: x86 Options. (line 867) * mabort-on-noreturn: ARM Options. (line 751) * mabs=2008: MIPS Options. (line 300) * mabs=legacy: MIPS Options. (line 300) ! * mabsdata: AVR Options. (line 162) * mabsdiff: MeP Options. (line 7) * mac0: PDP-11 Options. (line 16) * macc-4: FRV Options. (line 139) * macc-8: FRV Options. (line 143) ! * maccumulate-args: AVR Options. (line 169) * maccumulate-outgoing-args: SH Options. (line 314) ! * maccumulate-outgoing-args <1>: x86 Options. (line 1156) ! * maddress-mode=long: x86 Options. (line 1561) ! * maddress-mode=short: x86 Options. (line 1566) * mads: RS/6000 and PowerPC Options. (line 614) ! * madx: x86 Options. (line 868) ! * maes: x86 Options. (line 845) * maix-struct-return: RS/6000 and PowerPC Options. (line 545) * maix32: RS/6000 and PowerPC Options. *************** look up both forms. *** 63113,63119 **** * maix64: RS/6000 and PowerPC Options. (line 283) * malign-300: H8/300 Options. (line 41) ! * malign-call: ARC Options. (line 435) * malign-data: RISC-V Options. (line 151) * malign-data <1>: x86 Options. (line 672) * malign-double: x86 Options. (line 617) --- 63125,63131 ---- * maix64: RS/6000 and PowerPC Options. (line 283) * malign-300: H8/300 Options. (line 41) ! * malign-call: ARC Options. (line 433) * malign-data: RISC-V Options. (line 151) * malign-data <1>: x86 Options. (line 672) * malign-double: x86 Options. (line 617) *************** look up both forms. *** 63124,63130 **** (line 321) * malign-power: RS/6000 and PowerPC Options. (line 321) ! * malign-stringops: x86 Options. (line 1283) * mall-opts: MeP Options. (line 11) * malloc-cc: FRV Options. (line 31) * mallow-string-insns: RX Options. (line 150) --- 63136,63142 ---- (line 321) * malign-power: RS/6000 and PowerPC Options. (line 321) ! * malign-stringops: x86 Options. (line 1292) * mall-opts: MeP Options. (line 11) * malloc-cc: FRV Options. (line 31) * mallow-string-insns: RX Options. (line 150) *************** look up both forms. *** 63134,63142 **** * mam33: MN10300 Options. (line 17) * mam33-2: MN10300 Options. (line 24) * mam34: MN10300 Options. (line 27) ! * mamx-bf16: x86 Options. (line 896) ! * mamx-int8: x86 Options. (line 895) ! * mamx-tile: x86 Options. (line 894) * manchor: C-SKY Options. (line 126) * mandroid: GNU/Linux Options. (line 26) * mannotate-align: ARC Options. (line 382) --- 63146,63154 ---- * mam33: MN10300 Options. (line 17) * mam33-2: MN10300 Options. (line 24) * mam34: MN10300 Options. (line 27) ! * mamx-bf16: x86 Options. (line 905) ! * mamx-int8: x86 Options. (line 904) ! * mamx-tile: x86 Options. (line 903) * manchor: C-SKY Options. (line 126) * mandroid: GNU/Linux Options. (line 26) * mannotate-align: ARC Options. (line 382) *************** look up both forms. *** 63165,63172 **** * march <14>: x86 Options. (line 9) * march=: C-SKY Options. (line 9) * marclinux: ARC Options. (line 388) ! * marclinux_prof: ARC Options. (line 395) ! * margonaut: ARC Options. (line 593) * marm: ARM Options. (line 823) * mas100-syntax: RX Options. (line 76) * masm-hex: MSP430 Options. (line 9) --- 63177,63184 ---- * march <14>: x86 Options. (line 9) * march=: C-SKY Options. (line 9) * marclinux: ARC Options. (line 388) ! * marclinux_prof: ARC Options. (line 394) ! * margonaut: ARC Options. (line 591) * marm: ARM Options. (line 823) * mas100-syntax: RX Options. (line 76) * masm-hex: MSP430 Options. (line 9) *************** look up both forms. *** 63175,63207 **** * matomic: ARC Options. (line 155) * matomic-model=MODEL: SH Options. (line 193) * mauto-litpools: Xtensa Options. (line 60) ! * mauto-modify-reg: ARC Options. (line 438) * mauto-pic: IA-64 Options. (line 50) * maverage: MeP Options. (line 16) * mavoid-indexed-addresses: RS/6000 and PowerPC Options. (line 360) ! * mavx: x86 Options. (line 824) ! * mavx2: x86 Options. (line 825) ! * mavx256-split-unaligned-load: x86 Options. (line 1418) ! * mavx256-split-unaligned-store: x86 Options. (line 1418) ! * mavx5124fmaps: x86 Options. (line 888) ! * mavx5124vnniw: x86 Options. (line 891) ! * mavx512bf16: x86 Options. (line 875) ! * mavx512bitalg: x86 Options. (line 880) ! * mavx512bw: x86 Options. (line 831) ! * mavx512cd: x86 Options. (line 829) ! * mavx512dq: x86 Options. (line 832) ! * mavx512er: x86 Options. (line 828) ! * mavx512f: x86 Options. (line 826) ! * mavx512ifma: x86 Options. (line 833) ! * mavx512pf: x86 Options. (line 827) ! * mavx512vbmi: x86 Options. (line 834) ! * mavx512vbmi2: x86 Options. (line 874) ! * mavx512vl: x86 Options. (line 830) ! * mavx512vnni: x86 Options. (line 889) ! * mavx512vp2intersect: x86 Options. (line 887) ! * mavx512vpopcntdq: x86 Options. (line 886) ! * mavxvnni: x86 Options. (line 890) * max-vect-align: Adapteva Epiphany Options. (line 119) * mb: SH Options. (line 126) --- 63187,63219 ---- * matomic: ARC Options. (line 155) * matomic-model=MODEL: SH Options. (line 193) * mauto-litpools: Xtensa Options. (line 60) ! * mauto-modify-reg: ARC Options. (line 436) * mauto-pic: IA-64 Options. (line 50) * maverage: MeP Options. (line 16) * mavoid-indexed-addresses: RS/6000 and PowerPC Options. (line 360) ! * mavx: x86 Options. (line 833) ! * mavx2: x86 Options. (line 834) ! * mavx256-split-unaligned-load: x86 Options. (line 1427) ! * mavx256-split-unaligned-store: x86 Options. (line 1427) ! * mavx5124fmaps: x86 Options. (line 897) ! * mavx5124vnniw: x86 Options. (line 900) ! * mavx512bf16: x86 Options. (line 884) ! * mavx512bitalg: x86 Options. (line 889) ! * mavx512bw: x86 Options. (line 840) ! * mavx512cd: x86 Options. (line 838) ! * mavx512dq: x86 Options. (line 841) ! * mavx512er: x86 Options. (line 837) ! * mavx512f: x86 Options. (line 835) ! * mavx512ifma: x86 Options. (line 842) ! * mavx512pf: x86 Options. (line 836) ! * mavx512vbmi: x86 Options. (line 843) ! * mavx512vbmi2: x86 Options. (line 883) ! * mavx512vl: x86 Options. (line 839) ! * mavx512vnni: x86 Options. (line 898) ! * mavx512vp2intersect: x86 Options. (line 896) ! * mavx512vpopcntdq: x86 Options. (line 895) ! * mavxvnni: x86 Options. (line 899) * max-vect-align: Adapteva Epiphany Options. (line 119) * mb: SH Options. (line 126) *************** look up both forms. *** 63209,63223 **** (line 35) * mbarrel-shift-enabled: LM32 Options. (line 9) * mbarrel-shifter: ARC Options. (line 10) ! * mbarrel_shifter: ARC Options. (line 613) * mbase-addresses: MMIX Options. (line 53) * mbased=: MeP Options. (line 20) ! * mbbit-peephole: ARC Options. (line 441) * mbe8: ARM Options. (line 72) * mbig: RS/6000 and PowerPC Options. (line 440) * mbig-endian: AArch64 Options. (line 20) ! * mbig-endian <1>: ARC Options. (line 596) * mbig-endian <2>: ARM Options. (line 67) * mbig-endian <3>: C6X Options. (line 13) * mbig-endian <4>: C-SKY Options. (line 28) --- 63221,63235 ---- (line 35) * mbarrel-shift-enabled: LM32 Options. (line 9) * mbarrel-shifter: ARC Options. (line 10) ! * mbarrel_shifter: ARC Options. (line 608) * mbase-addresses: MMIX Options. (line 53) * mbased=: MeP Options. (line 20) ! * mbbit-peephole: ARC Options. (line 439) * mbe8: ARM Options. (line 72) * mbig: RS/6000 and PowerPC Options. (line 440) * mbig-endian: AArch64 Options. (line 20) ! * mbig-endian <1>: ARC Options. (line 594) * mbig-endian <2>: ARM Options. (line 67) * mbig-endian <3>: C6X Options. (line 13) * mbig-endian <4>: C-SKY Options. (line 28) *************** look up both forms. *** 63246,63257 **** (line 700) * mblock-move-inline-limit: RS/6000 and PowerPC Options. (line 688) ! * mbmi: x86 Options. (line 860) ! * mbmi2: x86 Options. (line 861) * mboard: OpenRISC Options. (line 9) * mbranch-cost: Adapteva Epiphany Options. (line 18) ! * mbranch-cost <1>: AVR Options. (line 185) * mbranch-cost <2>: MIPS Options. (line 785) * mbranch-cost <3>: RISC-V Options. (line 9) * mbranch-cost=: C-SKY Options. (line 159) --- 63258,63269 ---- (line 700) * mblock-move-inline-limit: RS/6000 and PowerPC Options. (line 688) ! * mbmi: x86 Options. (line 869) ! * mbmi2: x86 Options. (line 870) * mboard: OpenRISC Options. (line 9) * mbranch-cost: Adapteva Epiphany Options. (line 18) ! * mbranch-cost <1>: AVR Options. (line 184) * mbranch-cost <2>: MIPS Options. (line 785) * mbranch-cost <3>: RISC-V Options. (line 9) * mbranch-cost=: C-SKY Options. (line 159) *************** look up both forms. *** 63278,63289 **** (line 529) * mcall-linux: RS/6000 and PowerPC Options. (line 525) ! * mcall-ms2sysv-xlogues: x86 Options. (line 1123) * mcall-netbsd: RS/6000 and PowerPC Options. (line 533) * mcall-netbsd <1>: RS/6000 and PowerPC Options. (line 537) ! * mcall-prologues: AVR Options. (line 190) * mcall-sysv: RS/6000 and PowerPC Options. (line 507) * mcall-sysv-eabi: RS/6000 and PowerPC Options. --- 63290,63301 ---- (line 529) * mcall-linux: RS/6000 and PowerPC Options. (line 525) ! * mcall-ms2sysv-xlogues: x86 Options. (line 1132) * mcall-netbsd: RS/6000 and PowerPC Options. (line 533) * mcall-netbsd <1>: RS/6000 and PowerPC Options. (line 537) ! * mcall-prologues: AVR Options. (line 189) * mcall-sysv: RS/6000 and PowerPC Options. (line 507) * mcall-sysv-eabi: RS/6000 and PowerPC Options. *************** look up both forms. *** 63294,63332 **** * mcaller-copies: HPPA Options. (line 23) * mcaller-super-interworking: ARM Options. (line 859) * mcallgraph-data: MCore Options. (line 31) ! * mcase-vector-pcrel: ARC Options. (line 450) * mcbcond: SPARC Options. (line 260) * mcbranch-force-delay-slot: SH Options. (line 349) ! * mcc-init: CRIS Options. (line 41) * mccrt: C-SKY Options. (line 155) * mcfv4e: M680x0 Options. (line 169) * mcheck-zero-division: MIPS Options. (line 570) * mcix: DEC Alpha Options. (line 163) ! * mcld: x86 Options. (line 951) ! * mcldemote: x86 Options. (line 892) * mclear-hwcap: Solaris 2 Options. (line 9) ! * mclflushopt: x86 Options. (line 838) * mclip: MeP Options. (line 35) ! * mclwb: x86 Options. (line 839) ! * mclzero: x86 Options. (line 872) * mcmodel: NDS32 Options. (line 67) * mcmodel <1>: SPARC Options. (line 320) ! * mcmodel=kernel: x86 Options. (line 1536) * mcmodel=large: AArch64 Options. (line 45) * mcmodel=large <1>: RS/6000 and PowerPC Options. (line 131) * mcmodel=large <2>: TILE-Gx Options. (line 14) ! * mcmodel=large <3>: x86 Options. (line 1548) * mcmodel=medany: RISC-V Options. (line 129) * mcmodel=medium: RS/6000 and PowerPC Options. (line 126) ! * mcmodel=medium <1>: x86 Options. (line 1541) * mcmodel=medlow: RISC-V Options. (line 122) * mcmodel=small: AArch64 Options. (line 39) * mcmodel=small <1>: RS/6000 and PowerPC Options. (line 122) * mcmodel=small <2>: TILE-Gx Options. (line 9) ! * mcmodel=small <3>: x86 Options. (line 1530) * mcmodel=tiny: AArch64 Options. (line 34) * mcmov: NDS32 Options. (line 21) * mcmov <1>: OpenRISC Options. (line 45) --- 63306,63344 ---- * mcaller-copies: HPPA Options. (line 23) * mcaller-super-interworking: ARM Options. (line 859) * mcallgraph-data: MCore Options. (line 31) ! * mcase-vector-pcrel: ARC Options. (line 448) * mcbcond: SPARC Options. (line 260) * mcbranch-force-delay-slot: SH Options. (line 349) ! * mcc-init: CRIS Options. (line 40) * mccrt: C-SKY Options. (line 155) * mcfv4e: M680x0 Options. (line 169) * mcheck-zero-division: MIPS Options. (line 570) * mcix: DEC Alpha Options. (line 163) ! * mcld: x86 Options. (line 960) ! * mcldemote: x86 Options. (line 901) * mclear-hwcap: Solaris 2 Options. (line 9) ! * mclflushopt: x86 Options. (line 847) * mclip: MeP Options. (line 35) ! * mclwb: x86 Options. (line 848) ! * mclzero: x86 Options. (line 881) * mcmodel: NDS32 Options. (line 67) * mcmodel <1>: SPARC Options. (line 320) ! * mcmodel=kernel: x86 Options. (line 1545) * mcmodel=large: AArch64 Options. (line 45) * mcmodel=large <1>: RS/6000 and PowerPC Options. (line 131) * mcmodel=large <2>: TILE-Gx Options. (line 14) ! * mcmodel=large <3>: x86 Options. (line 1557) * mcmodel=medany: RISC-V Options. (line 129) * mcmodel=medium: RS/6000 and PowerPC Options. (line 126) ! * mcmodel=medium <1>: x86 Options. (line 1550) * mcmodel=medlow: RISC-V Options. (line 122) * mcmodel=small: AArch64 Options. (line 39) * mcmodel=small <1>: RS/6000 and PowerPC Options. (line 122) * mcmodel=small <2>: TILE-Gx Options. (line 9) ! * mcmodel=small <3>: x86 Options. (line 1539) * mcmodel=tiny: AArch64 Options. (line 34) * mcmov: NDS32 Options. (line 21) * mcmov <1>: OpenRISC Options. (line 45) *************** look up both forms. *** 63336,63348 **** (line 25) * mcmse: ARM Options. (line 951) * mcode-density: ARC Options. (line 163) ! * mcode-density-frame: ARC Options. (line 511) * mcode-readable: MIPS Options. (line 530) * mcode-region: MSP430 Options. (line 150) * mcompact-branches=always: MIPS Options. (line 804) * mcompact-branches=never: MIPS Options. (line 804) * mcompact-branches=optimal: MIPS Options. (line 804) ! * mcompact-casesi: ARC Options. (line 454) * mcompat-align-parm: RS/6000 and PowerPC Options. (line 899) * mcompress: FT32 Options. (line 26) --- 63348,63360 ---- (line 25) * mcmse: ARM Options. (line 951) * mcode-density: ARC Options. (line 163) ! * mcode-density-frame: ARC Options. (line 509) * mcode-readable: MIPS Options. (line 530) * mcode-region: MSP430 Options. (line 150) * mcompact-branches=always: MIPS Options. (line 804) * mcompact-branches=never: MIPS Options. (line 804) * mcompact-branches=optimal: MIPS Options. (line 804) ! * mcompact-casesi: ARC Options. (line 452) * mcompat-align-parm: RS/6000 and PowerPC Options. (line 899) * mcompress: FT32 Options. (line 26) *************** look up both forms. *** 63351,63357 **** * mconfig=: MeP Options. (line 39) * mconsole: x86 Windows Options. (line 9) ! * mconst-align: CRIS Options. (line 54) * mconst16: Xtensa Options. (line 10) * mconstant-gp: IA-64 Options. (line 46) * mconstpool: C-SKY Options. (line 143) --- 63363,63369 ---- * mconfig=: MeP Options. (line 39) * mconsole: x86 Windows Options. (line 9) ! * mconst-align: CRIS Options. (line 53) * mconst16: Xtensa Options. (line 10) * mconstant-gp: IA-64 Options. (line 46) * mconstpool: C-SKY Options. (line 143) *************** look up both forms. *** 63388,63394 **** * mcr16c: CR16 Options. (line 14) * mcr16cplus: CR16 Options. (line 14) * mcrc: MIPS Options. (line 416) ! * mcrc32: x86 Options. (line 1019) * mcrypto: RS/6000 and PowerPC Options. (line 178) * mcsync-anomaly: Blackfin Options. (line 57) --- 63400,63406 ---- * mcr16c: CR16 Options. (line 14) * mcr16cplus: CR16 Options. (line 14) * mcrc: MIPS Options. (line 416) ! * mcrc32: x86 Options. (line 1028) * mcrypto: RS/6000 and PowerPC Options. (line 178) * mcsync-anomaly: Blackfin Options. (line 57) *************** look up both forms. *** 63396,63408 **** * mctor-dtor: NDS32 Options. (line 81) * mcustom-fpu-cfg: Nios II Options. (line 259) * mcustom-INSN: Nios II Options. (line 139) ! * mcx16: x86 Options. (line 992) * MD: Preprocessor Options. (line 172) * mdalign: SH Options. (line 132) ! * mdata-align: CRIS Options. (line 54) * mdata-model: CR16 Options. (line 28) * mdata-region: MSP430 Options. (line 150) * mdc: MeP Options. (line 62) * mdebug: M32R/D Options. (line 69) * mdebug <1>: S/390 and zSeries Options. --- 63408,63421 ---- * mctor-dtor: NDS32 Options. (line 81) * mcustom-fpu-cfg: Nios II Options. (line 259) * mcustom-INSN: Nios II Options. (line 139) ! * mcx16: x86 Options. (line 1001) * MD: Preprocessor Options. (line 172) * mdalign: SH Options. (line 132) ! * mdata-align: CRIS Options. (line 53) * mdata-model: CR16 Options. (line 28) * mdata-region: MSP430 Options. (line 150) + * mdaz-ftz: x86 Options. (line 760) * mdc: MeP Options. (line 62) * mdebug: M32R/D Options. (line 69) * mdebug <1>: S/390 and zSeries Options. *************** look up both forms. *** 63429,63435 **** * mdlmzb: RS/6000 and PowerPC Options. (line 385) * mdmx: MIPS Options. (line 376) ! * mdouble: AVR Options. (line 195) * mdouble <1>: FRV Options. (line 48) * mdouble-float: C-SKY Options. (line 58) * mdouble-float <1>: MIPS Options. (line 288) --- 63442,63448 ---- * mdlmzb: RS/6000 and PowerPC Options. (line 385) * mdmx: MIPS Options. (line 376) ! * mdouble: AVR Options. (line 194) * mdouble <1>: FRV Options. (line 48) * mdouble-float: C-SKY Options. (line 58) * mdouble-float <1>: MIPS Options. (line 288) *************** look up both forms. *** 63437,63450 **** * mdpfp: ARC Options. (line 99) * mdpfp-compact: ARC Options. (line 100) * mdpfp-fast: ARC Options. (line 104) ! * mdpfp_compact: ARC Options. (line 616) ! * mdpfp_fast: ARC Options. (line 619) * mdsp: C-SKY Options. (line 102) * mdsp <1>: MIPS Options. (line 353) * mdsp-packa: ARC Options. (line 335) * mdspr2: MIPS Options. (line 359) ! * mdsp_packa: ARC Options. (line 622) ! * mdump-tune-features: x86 Options. (line 933) * mdvbf: ARC Options. (line 340) * mdwarf2-asm: IA-64 Options. (line 94) * mdword: FRV Options. (line 40) --- 63450,63463 ---- * mdpfp: ARC Options. (line 99) * mdpfp-compact: ARC Options. (line 100) * mdpfp-fast: ARC Options. (line 104) ! * mdpfp_compact: ARC Options. (line 611) ! * mdpfp_fast: ARC Options. (line 614) * mdsp: C-SKY Options. (line 102) * mdsp <1>: MIPS Options. (line 353) * mdsp-packa: ARC Options. (line 335) * mdspr2: MIPS Options. (line 359) ! * mdsp_packa: ARC Options. (line 617) ! * mdump-tune-features: x86 Options. (line 942) * mdvbf: ARC Options. (line 340) * mdwarf2-asm: IA-64 Options. (line 94) * mdword: FRV Options. (line 40) *************** look up both forms. *** 63452,63461 **** * mdynamic-no-pic: RS/6000 and PowerPC Options. (line 445) * mea: ARC Options. (line 112) ! * mEA: ARC Options. (line 625) * meabi: RS/6000 and PowerPC Options. (line 633) ! * mearly-cbranchsi: ARC Options. (line 476) * mearly-stop-bits: IA-64 Options. (line 100) * meb: MeP Options. (line 68) * meb <1>: Moxie Options. (line 7) --- 63465,63474 ---- * mdynamic-no-pic: RS/6000 and PowerPC Options. (line 445) * mea: ARC Options. (line 112) ! * mEA: ARC Options. (line 620) * meabi: RS/6000 and PowerPC Options. (line 633) ! * mearly-cbranchsi: ARC Options. (line 474) * mearly-stop-bits: IA-64 Options. (line 100) * meb: MeP Options. (line 68) * meb <1>: Moxie Options. (line 7) *************** look up both forms. *** 63466,63487 **** * mel <1>: Moxie Options. (line 11) * mel <2>: Nios II Options. (line 90) * mel <3>: Score Options. (line 12) ! * melf: CRIS Options. (line 79) * melf <1>: MMIX Options. (line 43) * melrw: C-SKY Options. (line 76) * memb: RS/6000 and PowerPC Options. (line 628) * membedded-data: MIPS Options. (line 517) * memregs=: M32C Options. (line 21) ! * menqcmd: x86 Options. (line 883) * mep: V850 Options. (line 16) * mepsilon: MMIX Options. (line 15) * mesa: S/390 and zSeries Options. (line 94) ! * metrax100: CRIS Options. (line 26) ! * metrax4: CRIS Options. (line 26) * meva: MIPS Options. (line 403) ! * mexpand-adddi: ARC Options. (line 479) * mexplicit-relocs: DEC Alpha Options. (line 176) * mexplicit-relocs <1>: MIPS Options. (line 561) * mexr: H8/300 Options. (line 28) --- 63479,63500 ---- * mel <1>: Moxie Options. (line 11) * mel <2>: Nios II Options. (line 90) * mel <3>: Score Options. (line 12) ! * melf: CRIS Options. (line 78) * melf <1>: MMIX Options. (line 43) * melrw: C-SKY Options. (line 76) * memb: RS/6000 and PowerPC Options. (line 628) * membedded-data: MIPS Options. (line 517) * memregs=: M32C Options. (line 21) ! * menqcmd: x86 Options. (line 892) * mep: V850 Options. (line 16) * mepsilon: MMIX Options. (line 15) * mesa: S/390 and zSeries Options. (line 94) ! * metrax100: CRIS Options. (line 25) ! * metrax4: CRIS Options. (line 25) * meva: MIPS Options. (line 403) ! * mexpand-adddi: ARC Options. (line 477) * mexplicit-relocs: DEC Alpha Options. (line 176) * mexplicit-relocs <1>: MIPS Options. (line 561) * mexr: H8/300 Options. (line 28) *************** look up both forms. *** 63492,63498 **** * mextern-sdata: MIPS Options. (line 480) * MF: Preprocessor Options. (line 111) ! * mf16c: x86 Options. (line 843) * mfancy-math-387: x86 Options. (line 607) * mfast-fp: Blackfin Options. (line 130) * mfast-indirect-calls: HPPA Options. (line 52) --- 63505,63511 ---- * mextern-sdata: MIPS Options. (line 480) * MF: Preprocessor Options. (line 111) ! * mf16c: x86 Options. (line 852) * mfancy-math-387: x86 Options. (line 607) * mfast-fp: Blackfin Options. (line 130) * mfast-indirect-calls: HPPA Options. (line 52) *************** look up both forms. *** 63502,63510 **** * mfdivdu: C-SKY Options. (line 64) * mfdpic: ARM Options. (line 966) * mfdpic <1>: FRV Options. (line 72) ! * mfentry: x86 Options. (line 1357) ! * mfentry-name: x86 Options. (line 1388) ! * mfentry-section: x86 Options. (line 1392) * mfix: DEC Alpha Options. (line 163) * mfix-24k: MIPS Options. (line 641) * mfix-and-continue: Darwin Options. (line 104) --- 63515,63523 ---- * mfdivdu: C-SKY Options. (line 64) * mfdpic: ARM Options. (line 966) * mfdpic <1>: FRV Options. (line 72) ! * mfentry: x86 Options. (line 1366) ! * mfentry-name: x86 Options. (line 1397) ! * mfentry-section: x86 Options. (line 1401) * mfix: DEC Alpha Options. (line 163) * mfix-24k: MIPS Options. (line 641) * mfix-and-continue: Darwin Options. (line 104) *************** look up both forms. *** 63542,63552 **** * mflush-func: MIPS Options. (line 776) * mflush-func=NAME: M32R/D Options. (line 93) * mflush-trap=NUMBER: M32R/D Options. (line 86) ! * mfma: x86 Options. (line 844) ! * mfma4: x86 Options. (line 847) * mfmaf: SPARC Options. (line 267) * mfmovd: SH Options. (line 148) ! * mforce-indirect-call: x86 Options. (line 1112) * mforce-no-pic: Xtensa Options. (line 41) * mfp-exceptions: MIPS Options. (line 824) * mfp-mode: Adapteva Epiphany Options. --- 63555,63565 ---- * mflush-func: MIPS Options. (line 776) * mflush-func=NAME: M32R/D Options. (line 93) * mflush-trap=NUMBER: M32R/D Options. (line 86) ! * mfma: x86 Options. (line 853) ! * mfma4: x86 Options. (line 856) * mfmaf: SPARC Options. (line 267) * mfmovd: SH Options. (line 148) ! * mforce-indirect-call: x86 Options. (line 1121) * mforce-no-pic: Xtensa Options. (line 41) * mfp-exceptions: MIPS Options. (line 824) * mfp-mode: Adapteva Epiphany Options. *************** look up both forms. *** 63571,63589 **** * mfpu <4>: Visium Options. (line 19) * mfpu=: C-SKY Options. (line 69) * mfpxx: MIPS Options. (line 264) ! * mfract-convert-truncate: AVR Options. (line 286) * mframe-header-opt: MIPS Options. (line 885) * mfriz: RS/6000 and PowerPC Options. (line 870) * mfsca: SH Options. (line 365) ! * mfsgsbase: x86 Options. (line 840) * mfsmuld: SPARC Options. (line 274) * mfsrra: SH Options. (line 374) * mft32b: FT32 Options. (line 23) * mfull-regs: NDS32 Options. (line 18) * mfull-toc: RS/6000 and PowerPC Options. (line 256) ! * mfunction-return: x86 Options. (line 1460) * mfused-madd: IA-64 Options. (line 88) * mfused-madd <1>: MIPS Options. (line 624) * mfused-madd <2>: RS/6000 and PowerPC Options. --- 63584,63602 ---- * mfpu <4>: Visium Options. (line 19) * mfpu=: C-SKY Options. (line 69) * mfpxx: MIPS Options. (line 264) ! * mfract-convert-truncate: AVR Options. (line 284) * mframe-header-opt: MIPS Options. (line 885) * mfriz: RS/6000 and PowerPC Options. (line 870) * mfsca: SH Options. (line 365) ! * mfsgsbase: x86 Options. (line 849) * mfsmuld: SPARC Options. (line 274) * mfsrra: SH Options. (line 374) * mft32b: FT32 Options. (line 23) * mfull-regs: NDS32 Options. (line 18) * mfull-toc: RS/6000 and PowerPC Options. (line 256) ! * mfunction-return: x86 Options. (line 1469) * mfused-madd: IA-64 Options. (line 88) * mfused-madd <1>: MIPS Options. (line 624) * mfused-madd <2>: RS/6000 and PowerPC Options. *************** look up both forms. *** 63592,63598 **** (line 183) * mfused-madd <4>: SH Options. (line 356) * mfused-madd <5>: Xtensa Options. (line 19) ! * mfxsr: x86 Options. (line 863) * MG: Preprocessor Options. (line 122) * mg: VAX Options. (line 17) --- 63605,63611 ---- (line 183) * mfused-madd <4>: SH Options. (line 356) * mfused-madd <5>: Xtensa Options. (line 19) ! * mfxsr: x86 Options. (line 872) * MG: Preprocessor Options. (line 122) * mg: VAX Options. (line 17) *************** look up both forms. *** 63600,63611 **** * mg13: RL78 Options. (line 62) * mg14: RL78 Options. (line 62) * mgas: HPPA Options. (line 75) ! * mgas-isr-prologues: AVR Options. (line 203) * mgcc-abi: V850 Options. (line 148) * mgeneral-regs-only: AArch64 Options. (line 24) * mgeneral-regs-only <1>: ARM Options. (line 57) ! * mgeneral-regs-only <2>: x86 Options. (line 1436) ! * mgfni: x86 Options. (line 876) * mghs: V850 Options. (line 127) * mginv: MIPS Options. (line 421) * mglibc: GNU/Linux Options. (line 9) --- 63613,63624 ---- * mg13: RL78 Options. (line 62) * mg14: RL78 Options. (line 62) * mgas: HPPA Options. (line 75) ! * mgas-isr-prologues: AVR Options. (line 202) * mgcc-abi: V850 Options. (line 148) * mgeneral-regs-only: AArch64 Options. (line 24) * mgeneral-regs-only <1>: ARM Options. (line 57) ! * mgeneral-regs-only <2>: x86 Options. (line 1445) ! * mgfni: x86 Options. (line 885) * mghs: V850 Options. (line 127) * mginv: MIPS Options. (line 421) * mglibc: GNU/Linux Options. (line 9) *************** look up both forms. *** 63651,63664 **** * mhard-mul: OpenRISC Options. (line 24) * mhard-quad-float: SPARC Options. (line 55) * mharden-sls: AArch64 Options. (line 297) ! * mharden-sls <1>: x86 Options. (line 1482) * mhardlit: MCore Options. (line 10) * mhigh-registers: C-SKY Options. (line 120) ! * mhle: x86 Options. (line 869) * mhotpatch: S/390 and zSeries Options. (line 218) * mhp-ld: HPPA Options. (line 123) ! * mhreset: x86 Options. (line 897) * mhtm: RS/6000 and PowerPC Options. (line 184) * mhtm <1>: S/390 and zSeries Options. --- 63664,63677 ---- * mhard-mul: OpenRISC Options. (line 24) * mhard-quad-float: SPARC Options. (line 55) * mharden-sls: AArch64 Options. (line 297) ! * mharden-sls <1>: x86 Options. (line 1491) * mhardlit: MCore Options. (line 10) * mhigh-registers: C-SKY Options. (line 120) ! * mhle: x86 Options. (line 878) * mhotpatch: S/390 and zSeries Options. (line 218) * mhp-ld: HPPA Options. (line 123) ! * mhreset: x86 Options. (line 906) * mhtm: RS/6000 and PowerPC Options. (line 184) * mhtm <1>: S/390 and zSeries Options. *************** look up both forms. *** 63667,63673 **** * mhw-mul: Nios II Options. (line 124) * mhw-mulx: Nios II Options. (line 124) * mhwmult=: MSP430 Options. (line 93) ! * miamcu: x86 Options. (line 1502) * micplb: Blackfin Options. (line 175) * mid-shared-library: Blackfin Options. (line 78) * mid-shared-library <1>: Blackfin Options. (line 85) --- 63680,63686 ---- * mhw-mul: Nios II Options. (line 124) * mhw-mulx: Nios II Options. (line 124) * mhwmult=: MSP430 Options. (line 93) ! * miamcu: x86 Options. (line 1511) * micplb: Blackfin Options. (line 175) * mid-shared-library: Blackfin Options. (line 78) * mid-shared-library <1>: Blackfin Options. (line 85) *************** look up both forms. *** 63679,63690 **** * milp32: IA-64 Options. (line 121) * mimadd: MIPS Options. (line 617) * mimpure-text: Solaris 2 Options. (line 15) ! * mincoming-stack-boundary: x86 Options. (line 790) ! * mindexed-loads: ARC Options. (line 483) ! * mindirect-branch: x86 Options. (line 1441) ! * mindirect-branch-cs-prefix: x86 Options. (line 1489) ! * mindirect-branch-register: x86 Options. (line 1479) ! * minline-all-stringops: x86 Options. (line 1288) * minline-float-divide-max-throughput: IA-64 Options. (line 58) * minline-float-divide-min-latency: IA-64 Options. (line 54) * minline-ic_invalidate: SH Options. (line 174) --- 63692,63703 ---- * milp32: IA-64 Options. (line 121) * mimadd: MIPS Options. (line 617) * mimpure-text: Solaris 2 Options. (line 15) ! * mincoming-stack-boundary: x86 Options. (line 799) ! * mindexed-loads: ARC Options. (line 481) ! * mindirect-branch: x86 Options. (line 1450) ! * mindirect-branch-cs-prefix: x86 Options. (line 1498) ! * mindirect-branch-register: x86 Options. (line 1488) ! * minline-all-stringops: x86 Options. (line 1297) * minline-float-divide-max-throughput: IA-64 Options. (line 58) * minline-float-divide-min-latency: IA-64 Options. (line 54) * minline-ic_invalidate: SH Options. (line 174) *************** look up both forms. *** 63695,63712 **** * minline-plt <1>: FRV Options. (line 81) * minline-sqrt-max-throughput: IA-64 Options. (line 80) * minline-sqrt-min-latency: IA-64 Options. (line 76) ! * minline-stringops-dynamically: x86 Options. (line 1296) * minrt: MSP430 Options. (line 115) * minrt <1>: PRU Options. (line 9) * minsert-sched-nops: RS/6000 and PowerPC Options. (line 485) ! * minstrument-return: x86 Options. (line 1376) * mint-register: RX Options. (line 100) * mint16: PDP-11 Options. (line 33) * mint32: CR16 Options. (line 22) * mint32 <1>: H8/300 Options. (line 38) * mint32 <2>: PDP-11 Options. (line 37) ! * mint8: AVR Options. (line 213) * minterlink-compressed: MIPS Options. (line 135) * minterlink-mips16: MIPS Options. (line 147) * mio-volatile: MeP Options. (line 74) --- 63708,63725 ---- * minline-plt <1>: FRV Options. (line 81) * minline-sqrt-max-throughput: IA-64 Options. (line 80) * minline-sqrt-min-latency: IA-64 Options. (line 76) ! * minline-stringops-dynamically: x86 Options. (line 1305) * minrt: MSP430 Options. (line 115) * minrt <1>: PRU Options. (line 9) * minsert-sched-nops: RS/6000 and PowerPC Options. (line 485) ! * minstrument-return: x86 Options. (line 1385) * mint-register: RX Options. (line 100) * mint16: PDP-11 Options. (line 33) * mint32: CR16 Options. (line 22) * mint32 <1>: H8/300 Options. (line 38) * mint32 <2>: PDP-11 Options. (line 37) ! * mint8: AVR Options. (line 211) * minterlink-compressed: MIPS Options. (line 135) * minterlink-mips16: MIPS Options. (line 147) * mio-volatile: MeP Options. (line 74) *************** look up both forms. *** 63739,63745 **** * mjump-in-delay: HPPA Options. (line 30) * mkernel: Darwin Options. (line 82) * mkernel <1>: eBPF Options. (line 13) ! * mkl: x86 Options. (line 898) * mknuthdiv: MMIX Options. (line 32) * ml: MeP Options. (line 78) * ml <1>: SH Options. (line 129) --- 63752,63758 ---- * mjump-in-delay: HPPA Options. (line 30) * mkernel: Darwin Options. (line 82) * mkernel <1>: eBPF Options. (line 13) ! * mkl: x86 Options. (line 907) * mknuthdiv: MMIX Options. (line 32) * ml: MeP Options. (line 78) * ml <1>: SH Options. (line 129) *************** look up both forms. *** 63757,63763 **** * mlittle: RS/6000 and PowerPC Options. (line 434) * mlittle-endian: AArch64 Options. (line 30) ! * mlittle-endian <1>: ARC Options. (line 605) * mlittle-endian <2>: ARM Options. (line 63) * mlittle-endian <3>: C6X Options. (line 16) * mlittle-endian <4>: C-SKY Options. (line 30) --- 63770,63776 ---- * mlittle: RS/6000 and PowerPC Options. (line 434) * mlittle-endian: AArch64 Options. (line 30) ! * mlittle-endian <1>: ARC Options. (line 601) * mlittle-endian <2>: ARM Options. (line 63) * mlittle-endian <3>: C6X Options. (line 16) * mlittle-endian <4>: C-SKY Options. (line 30) *************** look up both forms. *** 63779,63792 **** * mlock: ARC Options. (line 345) * mlong-calls: Adapteva Epiphany Options. (line 55) ! * mlong-calls <1>: ARC Options. (line 404) * mlong-calls <2>: ARM Options. (line 756) * mlong-calls <3>: Blackfin Options. (line 118) * mlong-calls <4>: FRV Options. (line 122) * mlong-calls <5>: HPPA Options. (line 136) * mlong-calls <6>: MIPS Options. (line 603) * mlong-calls <7>: V850 Options. (line 10) ! * mlong-double: AVR Options. (line 195) * mlong-double-128: S/390 and zSeries Options. (line 29) * mlong-double-128 <1>: x86 Options. (line 658) --- 63792,63805 ---- * mlock: ARC Options. (line 345) * mlong-calls: Adapteva Epiphany Options. (line 55) ! * mlong-calls <1>: ARC Options. (line 402) * mlong-calls <2>: ARM Options. (line 756) * mlong-calls <3>: Blackfin Options. (line 118) * mlong-calls <4>: FRV Options. (line 122) * mlong-calls <5>: HPPA Options. (line 136) * mlong-calls <6>: MIPS Options. (line 603) * mlong-calls <7>: V850 Options. (line 10) ! * mlong-double: AVR Options. (line 194) * mlong-double-128: S/390 and zSeries Options. (line 29) * mlong-double-128 <1>: x86 Options. (line 658) *************** look up both forms. *** 63813,63828 **** * mlow64k: Blackfin Options. (line 67) * mlp64: IA-64 Options. (line 121) * mlpc-width: ARC Options. (line 313) ! * mlra: ARC Options. (line 488) * mlra <1>: FT32 Options. (line 16) * mlra <2>: PDP-11 Options. (line 52) * mlra <3>: SPARC Options. (line 111) ! * mlra-priority-compact: ARC Options. (line 496) ! * mlra-priority-noncompact: ARC Options. (line 499) ! * mlra-priority-none: ARC Options. (line 493) ! * mlwp: x86 Options. (line 854) * mlxc1-sxc1: MIPS Options. (line 895) ! * mlzcnt: x86 Options. (line 862) * MM: Preprocessor Options. (line 102) * mm: MeP Options. (line 84) --- 63826,63841 ---- * mlow64k: Blackfin Options. (line 67) * mlp64: IA-64 Options. (line 121) * mlpc-width: ARC Options. (line 313) ! * mlra: ARC Options. (line 486) * mlra <1>: FT32 Options. (line 16) * mlra <2>: PDP-11 Options. (line 52) * mlra <3>: SPARC Options. (line 111) ! * mlra-priority-compact: ARC Options. (line 494) ! * mlra-priority-noncompact: ARC Options. (line 497) ! * mlra-priority-none: ARC Options. (line 491) ! * mlwp: x86 Options. (line 863) * mlxc1-sxc1: MIPS Options. (line 895) ! * mlzcnt: x86 Options. (line 871) * MM: Preprocessor Options. (line 102) * mm: MeP Options. (line 84) *************** look up both forms. *** 63830,63847 **** * mmac <1>: Score Options. (line 21) * mmac-24: ARC Options. (line 354) * mmac-d16: ARC Options. (line 350) ! * mmac_24: ARC Options. (line 628) ! * mmac_d16: ARC Options. (line 631) * mmad: MIPS Options. (line 612) * mmadd4: MIPS Options. (line 900) ! * mmain-is-OS_task: AVR Options. (line 219) * mmainkernel: Nvidia PTX Options. (line 18) * mmalloc64: VMS Options. (line 17) ! * mmanual-endbr: x86 Options. (line 1117) * mmax: DEC Alpha Options. (line 163) * mmax-constant-size: RX Options. (line 82) * mmax-inline-shift=: MSP430 Options. (line 134) ! * mmax-stack-frame: CRIS Options. (line 22) * mmcount-ra-address: MIPS Options. (line 872) * mmcu: AVR Options. (line 9) * mmcu <1>: MIPS Options. (line 399) --- 63843,63860 ---- * mmac <1>: Score Options. (line 21) * mmac-24: ARC Options. (line 354) * mmac-d16: ARC Options. (line 350) ! * mmac_24: ARC Options. (line 623) ! * mmac_d16: ARC Options. (line 626) * mmad: MIPS Options. (line 612) * mmadd4: MIPS Options. (line 900) ! * mmain-is-OS_task: AVR Options. (line 217) * mmainkernel: Nvidia PTX Options. (line 18) * mmalloc64: VMS Options. (line 17) ! * mmanual-endbr: x86 Options. (line 1126) * mmax: DEC Alpha Options. (line 163) * mmax-constant-size: RX Options. (line 82) * mmax-inline-shift=: MSP430 Options. (line 134) ! * mmax-stack-frame: CRIS Options. (line 21) * mmcount-ra-address: MIPS Options. (line 872) * mmcu: AVR Options. (line 9) * mmcu <1>: MIPS Options. (line 399) *************** look up both forms. *** 63850,63886 **** * MMD: Preprocessor Options. (line 188) * mmedia: FRV Options. (line 56) ! * mmedium-calls: ARC Options. (line 408) * mmemcpy: MicroBlaze Options. (line 13) * mmemcpy <1>: MIPS Options. (line 597) ! * mmemcpy-strategy=STRATEGY: x86 Options. (line 1318) * mmemory-latency: DEC Alpha Options. (line 268) * mmemory-model: SPARC Options. (line 348) ! * mmemset-strategy=STRATEGY: x86 Options. (line 1330) * mmfcrf: RS/6000 and PowerPC Options. (line 25) * mmicromips: MIPS Options. (line 387) ! * mmillicode: ARC Options. (line 502) * mminimal-toc: RS/6000 and PowerPC Options. (line 256) * mminmax: MeP Options. (line 87) ! * mmixed-code: ARC Options. (line 516) * mmma: RS/6000 and PowerPC Options. (line 944) ! * mmmx: x86 Options. (line 815) * mmodel=large: M32R/D Options. (line 33) * mmodel=medium: M32R/D Options. (line 27) * mmodel=small: M32R/D Options. (line 18) ! * mmovbe: x86 Options. (line 1011) ! * mmovdir64b: x86 Options. (line 882) ! * mmovdiri: x86 Options. (line 881) * mmp: C-SKY Options. (line 87) * mmpy: ARC Options. (line 117) * mmpy-option: ARC Options. (line 173) ! * mms-bitfields: x86 Options. (line 1163) * mmt: MIPS Options. (line 395) * mmul: RL78 Options. (line 15) ! * mmul-bug-workaround: CRIS Options. (line 31) * mmul.x: Moxie Options. (line 14) * mmul32x16: ARC Options. (line 121) * mmul64: ARC Options. (line 124) --- 63863,63899 ---- * MMD: Preprocessor Options. (line 188) * mmedia: FRV Options. (line 56) ! * mmedium-calls: ARC Options. (line 406) * mmemcpy: MicroBlaze Options. (line 13) * mmemcpy <1>: MIPS Options. (line 597) ! * mmemcpy-strategy=STRATEGY: x86 Options. (line 1327) * mmemory-latency: DEC Alpha Options. (line 268) * mmemory-model: SPARC Options. (line 348) ! * mmemset-strategy=STRATEGY: x86 Options. (line 1339) * mmfcrf: RS/6000 and PowerPC Options. (line 25) * mmicromips: MIPS Options. (line 387) ! * mmillicode: ARC Options. (line 500) * mminimal-toc: RS/6000 and PowerPC Options. (line 256) * mminmax: MeP Options. (line 87) ! * mmixed-code: ARC Options. (line 514) * mmma: RS/6000 and PowerPC Options. (line 944) ! * mmmx: x86 Options. (line 824) * mmodel=large: M32R/D Options. (line 33) * mmodel=medium: M32R/D Options. (line 27) * mmodel=small: M32R/D Options. (line 18) ! * mmovbe: x86 Options. (line 1020) ! * mmovdir64b: x86 Options. (line 891) ! * mmovdiri: x86 Options. (line 890) * mmp: C-SKY Options. (line 87) * mmpy: ARC Options. (line 117) * mmpy-option: ARC Options. (line 173) ! * mms-bitfields: x86 Options. (line 1172) * mmt: MIPS Options. (line 395) * mmul: RL78 Options. (line 15) ! * mmul-bug-workaround: CRIS Options. (line 30) * mmul.x: Moxie Options. (line 14) * mmul32x16: ARC Options. (line 121) * mmul64: ARC Options. (line 124) *************** look up both forms. *** 63889,63895 **** (line 378) * mmult: MeP Options. (line 90) * mmult-bug: MN10300 Options. (line 9) ! * mmultcost: ARC Options. (line 578) * mmulti-cond-exec: FRV Options. (line 215) * mmulticore: Blackfin Options. (line 139) * mmultiple: RS/6000 and PowerPC Options. --- 63902,63908 ---- (line 378) * mmult: MeP Options. (line 90) * mmult-bug: MN10300 Options. (line 9) ! * mmultcost: ARC Options. (line 576) * mmulti-cond-exec: FRV Options. (line 215) * mmulticore: Blackfin Options. (line 139) * mmultiple: RS/6000 and PowerPC Options. *************** look up both forms. *** 63900,63912 **** (line 138) * mmvme: RS/6000 and PowerPC Options. (line 609) ! * mmwait: x86 Options. (line 1025) ! * mmwaitx: x86 Options. (line 871) * mn: H8/300 Options. (line 20) ! * mn-flash: AVR Options. (line 224) * mnan=2008: MIPS Options. (line 320) * mnan=legacy: MIPS Options. (line 320) ! * mneeded: x86 Options. (line 1563) * mneon-for-64bits: ARM Options. (line 913) * mnested-cond-exec: FRV Options. (line 230) * mnewlib: OpenRISC Options. (line 13) --- 63913,63925 ---- (line 138) * mmvme: RS/6000 and PowerPC Options. (line 609) ! * mmwait: x86 Options. (line 1034) ! * mmwaitx: x86 Options. (line 880) * mn: H8/300 Options. (line 20) ! * mn-flash: AVR Options. (line 222) * mnan=2008: MIPS Options. (line 320) * mnan=legacy: MIPS Options. (line 320) ! * mneeded: x86 Options. (line 1572) * mneon-for-64bits: ARM Options. (line 913) * mnested-cond-exec: FRV Options. (line 230) * mnewlib: OpenRISC Options. (line 13) *************** look up both forms. *** 63919,63925 **** * mno-align-double: x86 Options. (line 617) * mno-align-int: M680x0 Options. (line 261) * mno-align-loops: M32R/D Options. (line 76) ! * mno-align-stringops: x86 Options. (line 1283) * mno-allow-string-insns: RX Options. (line 150) * mno-altivec: RS/6000 and PowerPC Options. (line 137) --- 63932,63938 ---- * mno-align-double: x86 Options. (line 617) * mno-align-int: M680x0 Options. (line 261) * mno-align-loops: M32R/D Options. (line 76) ! * mno-align-stringops: x86 Options. (line 1292) * mno-allow-string-insns: RX Options. (line 150) * mno-altivec: RS/6000 and PowerPC Options. (line 137) *************** look up both forms. *** 63938,63948 **** * mno-bitfield: M680x0 Options. (line 227) * mno-branch-likely: MIPS Options. (line 792) * mno-branch-predict: MMIX Options. (line 48) ! * mno-brcc: ARC Options. (line 444) * mno-bwx: DEC Alpha Options. (line 163) * mno-bypass-cache: Nios II Options. (line 103) * mno-cache-volatile: Nios II Options. (line 109) ! * mno-call-ms2sysv-xlogues: x86 Options. (line 1123) * mno-callgraph-data: MCore Options. (line 31) * mno-cbcond: SPARC Options. (line 260) * mno-check-zero-division: MIPS Options. (line 570) --- 63951,63961 ---- * mno-bitfield: M680x0 Options. (line 227) * mno-branch-likely: MIPS Options. (line 792) * mno-branch-predict: MMIX Options. (line 48) ! * mno-brcc: ARC Options. (line 442) * mno-bwx: DEC Alpha Options. (line 163) * mno-bypass-cache: Nios II Options. (line 103) * mno-cache-volatile: Nios II Options. (line 109) ! * mno-call-ms2sysv-xlogues: x86 Options. (line 1132) * mno-callgraph-data: MCore Options. (line 31) * mno-cbcond: SPARC Options. (line 260) * mno-check-zero-division: MIPS Options. (line 570) *************** look up both forms. *** 63951,63960 **** * mno-cmov: NDS32 Options. (line 24) * mno-cmpb: RS/6000 and PowerPC Options. (line 25) ! * mno-cond-exec: ARC Options. (line 458) * mno-cond-exec <1>: FRV Options. (line 194) * mno-cond-move: FRV Options. (line 166) ! * mno-const-align: CRIS Options. (line 54) * mno-const16: Xtensa Options. (line 10) * mno-crc: MIPS Options. (line 416) * mno-crt0: MN10300 Options. (line 43) --- 63964,63973 ---- * mno-cmov: NDS32 Options. (line 24) * mno-cmpb: RS/6000 and PowerPC Options. (line 25) ! * mno-cond-exec: ARC Options. (line 456) * mno-cond-exec <1>: FRV Options. (line 194) * mno-cond-move: FRV Options. (line 166) ! * mno-const-align: CRIS Options. (line 53) * mno-const16: Xtensa Options. (line 10) * mno-crc: MIPS Options. (line 416) * mno-crt0: MN10300 Options. (line 43) *************** look up both forms. *** 63963,63972 **** (line 178) * mno-csync-anomaly: Blackfin Options. (line 63) * mno-custom-INSN: Nios II Options. (line 139) ! * mno-data-align: CRIS Options. (line 54) * mno-debug: S/390 and zSeries Options. (line 144) ! * mno-default: x86 Options. (line 947) * mno-disable-callt: V850 Options. (line 92) * mno-div: M680x0 Options. (line 206) * mno-div <1>: MCore Options. (line 15) --- 63976,63985 ---- (line 178) * mno-csync-anomaly: Blackfin Options. (line 63) * mno-custom-INSN: Nios II Options. (line 139) ! * mno-data-align: CRIS Options. (line 53) * mno-debug: S/390 and zSeries Options. (line 144) ! * mno-default: x86 Options. (line 956) * mno-disable-callt: V850 Options. (line 92) * mno-div: M680x0 Options. (line 206) * mno-div <1>: MCore Options. (line 15) *************** look up both forms. *** 64062,64068 **** * mno-int32: PDP-11 Options. (line 33) * mno-interlink-compressed: MIPS Options. (line 135) * mno-interlink-mips16: MIPS Options. (line 147) ! * mno-interrupts: AVR Options. (line 227) * mno-isel: RS/6000 and PowerPC Options. (line 167) * mno-jsr: RX Options. (line 169) --- 64075,64081 ---- * mno-int32: PDP-11 Options. (line 33) * mno-interlink-compressed: MIPS Options. (line 135) * mno-interlink-mips16: MIPS Options. (line 147) ! * mno-interrupts: AVR Options. (line 225) * mno-isel: RS/6000 and PowerPC Options. (line 167) * mno-jsr: RX Options. (line 169) *************** look up both forms. *** 64109,64117 **** * Mno-modules: Preprocessor Options. (line 132) * mno-mpy: ARC Options. (line 117) ! * mno-ms-bitfields: x86 Options. (line 1163) * mno-mt: MIPS Options. (line 395) ! * mno-mul-bug-workaround: CRIS Options. (line 31) * mno-muladd: FRV Options. (line 68) * mno-mulhw: RS/6000 and PowerPC Options. (line 378) --- 64122,64130 ---- * Mno-modules: Preprocessor Options. (line 132) * mno-mpy: ARC Options. (line 117) ! * mno-ms-bitfields: x86 Options. (line 1172) * mno-mt: MIPS Options. (line 395) ! * mno-mul-bug-workaround: CRIS Options. (line 30) * mno-muladd: FRV Options. (line 68) * mno-mulhw: RS/6000 and PowerPC Options. (line 378) *************** look up both forms. *** 64162,64178 **** * mno-privileged: RS/6000 and PowerPC Options. (line 955) * mno-prolog-function: V850 Options. (line 23) ! * mno-prologue-epilogue: CRIS Options. (line 70) * mno-prototype: RS/6000 and PowerPC Options. (line 593) ! * mno-push-args: x86 Options. (line 1140) * mno-quad-memory: RS/6000 and PowerPC Options. (line 203) * mno-quad-memory-atomic: RS/6000 and PowerPC Options. (line 209) * mno-readonly-in-sdata: RS/6000 and PowerPC Options. (line 684) ! * mno-red-zone: x86 Options. (line 1522) * mno-register-names: IA-64 Options. (line 37) * mno-regnames: RS/6000 and PowerPC Options. (line 722) --- 64175,64191 ---- * mno-privileged: RS/6000 and PowerPC Options. (line 955) * mno-prolog-function: V850 Options. (line 23) ! * mno-prologue-epilogue: CRIS Options. (line 69) * mno-prototype: RS/6000 and PowerPC Options. (line 593) ! * mno-push-args: x86 Options. (line 1149) * mno-quad-memory: RS/6000 and PowerPC Options. (line 203) * mno-quad-memory-atomic: RS/6000 and PowerPC Options. (line 209) * mno-readonly-in-sdata: RS/6000 and PowerPC Options. (line 684) ! * mno-red-zone: x86 Options. (line 1531) * mno-register-names: IA-64 Options. (line 37) * mno-regnames: RS/6000 and PowerPC Options. (line 722) *************** look up both forms. *** 64200,64206 **** * mno-sched-prefer-non-control-spec-insns: IA-64 Options. (line 178) * mno-sched-prefer-non-data-spec-insns: IA-64 Options. (line 171) * mno-sched-prolog: ARM Options. (line 32) ! * mno-sdata: ARC Options. (line 422) * mno-sdata <1>: IA-64 Options. (line 42) * mno-sdata <2>: RS/6000 and PowerPC Options. (line 679) --- 64213,64219 ---- * mno-sched-prefer-non-control-spec-insns: IA-64 Options. (line 178) * mno-sched-prefer-non-data-spec-insns: IA-64 Options. (line 171) * mno-sched-prolog: ARM Options. (line 32) ! * mno-sdata: ARC Options. (line 420) * mno-sdata <1>: IA-64 Options. (line 42) * mno-sdata <2>: RS/6000 and PowerPC Options. (line 679) *************** look up both forms. *** 64208,64214 **** * mno-serialize-volatile: Xtensa Options. (line 35) * mno-setlb: MN10300 Options. (line 69) * mno-short: M680x0 Options. (line 222) ! * mno-side-effects: CRIS Options. (line 45) * mno-sim: RX Options. (line 71) * mno-single-exit: MMIX Options. (line 65) * mno-slow-bytes: MCore Options. (line 35) --- 64221,64227 ---- * mno-serialize-volatile: Xtensa Options. (line 35) * mno-setlb: MN10300 Options. (line 69) * mno-short: M680x0 Options. (line 222) ! * mno-side-effects: CRIS Options. (line 44) * mno-sim: RX Options. (line 71) * mno-single-exit: MMIX Options. (line 65) * mno-slow-bytes: MCore Options. (line 35) *************** look up both forms. *** 64223,64229 **** * mno-split-addresses: MIPS Options. (line 555) * mno-split-lohi: Adapteva Epiphany Options. (line 109) ! * mno-stack-align: CRIS Options. (line 54) * mno-stack-bias: SPARC Options. (line 372) * mno-std-struct-return: SPARC Options. (line 102) * mno-strict-align: AArch64 Options. (line 52) --- 64236,64242 ---- * mno-split-addresses: MIPS Options. (line 555) * mno-split-lohi: Adapteva Epiphany Options. (line 109) ! * mno-stack-align: CRIS Options. (line 53) * mno-stack-bias: SPARC Options. (line 372) * mno-std-struct-return: SPARC Options. (line 102) * mno-strict-align: AArch64 Options. (line 52) *************** look up both forms. *** 64264,64270 **** * mno-vis4b: SPARC Options. (line 251) * mno-vliw-branch: FRV Options. (line 208) * mno-volatile-asm-stop: IA-64 Options. (line 32) ! * mno-volatile-cache: ARC Options. (line 431) * mno-vrsave: RS/6000 and PowerPC Options. (line 153) * mno-vsx: RS/6000 and PowerPC Options. --- 64277,64283 ---- * mno-vis4b: SPARC Options. (line 251) * mno-vliw-branch: FRV Options. (line 208) * mno-volatile-asm-stop: IA-64 Options. (line 32) ! * mno-volatile-cache: ARC Options. (line 429) * mno-vrsave: RS/6000 and PowerPC Options. (line 153) * mno-vsx: RS/6000 and PowerPC Options. *************** look up both forms. *** 64289,64295 **** * mnomacsave: SH Options. (line 160) * mnop-fun-dllimport: x86 Windows Options. (line 22) ! * mnop-mcount: x86 Options. (line 1370) * mnopm: FT32 Options. (line 29) * mnops: Adapteva Epiphany Options. (line 26) --- 64302,64308 ---- * mnomacsave: SH Options. (line 160) * mnop-fun-dllimport: x86 Windows Options. (line 22) ! * mnop-mcount: x86 Options. (line 1379) * mnopm: FT32 Options. (line 29) * mnops: Adapteva Epiphany Options. (line 26) *************** look up both forms. *** 64297,64303 **** * modd-spreg: MIPS Options. (line 293) * momit-leaf-frame-pointer: AArch64 Options. (line 58) * momit-leaf-frame-pointer <1>: Blackfin Options. (line 43) ! * momit-leaf-frame-pointer <2>: x86 Options. (line 1334) * mone-byte-bool: Darwin Options. (line 90) * moptimize: Nvidia PTX Options. (line 22) * moptimize-membar: FRV Options. (line 244) --- 64310,64316 ---- * modd-spreg: MIPS Options. (line 293) * momit-leaf-frame-pointer: AArch64 Options. (line 58) * momit-leaf-frame-pointer <1>: Blackfin Options. (line 43) ! * momit-leaf-frame-pointer <2>: x86 Options. (line 1343) * mone-byte-bool: Darwin Options. (line 90) * moptimize: Nvidia PTX Options. (line 22) * moptimize-membar: FRV Options. (line 244) *************** look up both forms. *** 64317,64328 **** * mpc32: x86 Options. (line 739) * mpc64: x86 Options. (line 739) * mpc80: x86 Options. (line 739) ! * mpclmul: x86 Options. (line 837) ! * mpconfig: x86 Options. (line 845) * mpcrel: M680x0 Options. (line 272) * mpcrel <1>: RS/6000 and PowerPC Options. (line 932) ! * mpdebug: CRIS Options. (line 35) * mpe: RS/6000 and PowerPC Options. (line 310) * mpe-aligned-commons: x86 Windows Options. --- 64330,64341 ---- * mpc32: x86 Options. (line 739) * mpc64: x86 Options. (line 739) * mpc80: x86 Options. (line 739) ! * mpclmul: x86 Options. (line 846) ! * mpconfig: x86 Options. (line 854) * mpcrel: M680x0 Options. (line 272) * mpcrel <1>: RS/6000 and PowerPC Options. (line 932) ! * mpdebug: CRIS Options. (line 34) * mpe: RS/6000 and PowerPC Options. (line 310) * mpe-aligned-commons: x86 Windows Options. *************** look up both forms. *** 64331,64337 **** * mpic-data-is-text-relative <1>: MicroBlaze Options. (line 70) * mpic-register: ARM Options. (line 786) * mpid: RX Options. (line 117) ! * mpku: x86 Options. (line 873) * mplt: MIPS Options. (line 219) * mpltseq: RS/6000 and PowerPC Options. (line 765) --- 64344,64350 ---- * mpic-data-is-text-relative <1>: MicroBlaze Options. (line 70) * mpic-register: ARM Options. (line 786) * mpid: RX Options. (line 117) ! * mpku: x86 Options. (line 882) * mplt: MIPS Options. (line 219) * mpltseq: RS/6000 and PowerPC Options. (line 765) *************** look up both forms. *** 64340,64346 **** (line 878) * mpoke-function-name: ARM Options. (line 801) * mpopc: SPARC Options. (line 281) ! * mpopcnt: x86 Options. (line 857) * mpopcntb: RS/6000 and PowerPC Options. (line 25) * mpopcntd: RS/6000 and PowerPC Options. --- 64353,64359 ---- (line 878) * mpoke-function-name: ARM Options. (line 801) * mpopc: SPARC Options. (line 281) ! * mpopcnt: x86 Options. (line 866) * mpopcntb: RS/6000 and PowerPC Options. (line 25) * mpopcntd: RS/6000 and PowerPC Options. *************** look up both forms. *** 64360,64423 **** (line 25) * mpowerpc64: RS/6000 and PowerPC Options. (line 25) ! * mprefer-avx128: x86 Options. (line 971) * mprefer-short-insn-regs: Adapteva Epiphany Options. (line 13) ! * mprefer-vector-width: x86 Options. (line 975) * mprefergot: SH Options. (line 268) * mpreferred-stack-boundary: RISC-V Options. (line 88) ! * mpreferred-stack-boundary <1>: x86 Options. (line 769) ! * mprefetchwt1: x86 Options. (line 850) * mprefixed: RS/6000 and PowerPC Options. (line 938) * mpretend-cmove: SH Options. (line 383) ! * mprfchw: x86 Options. (line 848) * mprint-tune-info: ARM Options. (line 934) * mprioritize-restricted-insns: RS/6000 and PowerPC Options. (line 457) * mprivileged: RS/6000 and PowerPC Options. (line 955) * mprolog-function: V850 Options. (line 23) ! * mprologue-epilogue: CRIS Options. (line 70) * mprototype: RS/6000 and PowerPC Options. (line 593) ! * mptwrite: x86 Options. (line 841) * mpure-code: ARM Options. (line 944) ! * mpush-args: x86 Options. (line 1140) * mpushpop: C-SKY Options. (line 130) * MQ: Preprocessor Options. (line 162) ! * mq-class: ARC Options. (line 521) * mquad-memory: RS/6000 and PowerPC Options. (line 203) * mquad-memory-atomic: RS/6000 and PowerPC Options. (line 209) * mr0rel-sec: Nios II Options. (line 76) * mr10k-cache-barrier: MIPS Options. (line 714) ! * mRcq: ARC Options. (line 525) ! * mRcw: ARC Options. (line 529) ! * mrdpid: x86 Options. (line 849) ! * mrdrnd: x86 Options. (line 842) ! * mrdseed: x86 Options. (line 851) * mreadonly-in-sdata: RS/6000 and PowerPC Options. (line 684) * mrecip: RS/6000 and PowerPC Options. (line 785) ! * mrecip <1>: x86 Options. (line 1030) * mrecip-precision: RS/6000 and PowerPC Options. (line 842) * mrecip=opt: RS/6000 and PowerPC Options. (line 798) ! * mrecip=opt <1>: x86 Options. (line 1052) ! * mrecord-mcount: x86 Options. (line 1364) ! * mrecord-return: x86 Options. (line 1384) ! * mred-zone: x86 Options. (line 1522) * mreduced-regs: NDS32 Options. (line 15) * mregister-names: IA-64 Options. (line 37) * mregnames: RS/6000 and PowerPC Options. (line 722) * mregparm: x86 Options. (line 709) ! * mrelax: AVR Options. (line 231) * mrelax <1>: H8/300 Options. (line 9) * mrelax <2>: MN10300 Options. (line 46) * mrelax <3>: MSP430 Options. (line 88) --- 64373,64436 ---- (line 25) * mpowerpc64: RS/6000 and PowerPC Options. (line 25) ! * mprefer-avx128: x86 Options. (line 980) * mprefer-short-insn-regs: Adapteva Epiphany Options. (line 13) ! * mprefer-vector-width: x86 Options. (line 984) * mprefergot: SH Options. (line 268) * mpreferred-stack-boundary: RISC-V Options. (line 88) ! * mpreferred-stack-boundary <1>: x86 Options. (line 778) ! * mprefetchwt1: x86 Options. (line 859) * mprefixed: RS/6000 and PowerPC Options. (line 938) * mpretend-cmove: SH Options. (line 383) ! * mprfchw: x86 Options. (line 857) * mprint-tune-info: ARM Options. (line 934) * mprioritize-restricted-insns: RS/6000 and PowerPC Options. (line 457) * mprivileged: RS/6000 and PowerPC Options. (line 955) * mprolog-function: V850 Options. (line 23) ! * mprologue-epilogue: CRIS Options. (line 69) * mprototype: RS/6000 and PowerPC Options. (line 593) ! * mptwrite: x86 Options. (line 850) * mpure-code: ARM Options. (line 944) ! * mpush-args: x86 Options. (line 1149) * mpushpop: C-SKY Options. (line 130) * MQ: Preprocessor Options. (line 162) ! * mq-class: ARC Options. (line 519) * mquad-memory: RS/6000 and PowerPC Options. (line 203) * mquad-memory-atomic: RS/6000 and PowerPC Options. (line 209) * mr0rel-sec: Nios II Options. (line 76) * mr10k-cache-barrier: MIPS Options. (line 714) ! * mRcq: ARC Options. (line 523) ! * mRcw: ARC Options. (line 527) ! * mrdpid: x86 Options. (line 858) ! * mrdrnd: x86 Options. (line 851) ! * mrdseed: x86 Options. (line 860) * mreadonly-in-sdata: RS/6000 and PowerPC Options. (line 684) * mrecip: RS/6000 and PowerPC Options. (line 785) ! * mrecip <1>: x86 Options. (line 1039) * mrecip-precision: RS/6000 and PowerPC Options. (line 842) * mrecip=opt: RS/6000 and PowerPC Options. (line 798) ! * mrecip=opt <1>: x86 Options. (line 1061) ! * mrecord-mcount: x86 Options. (line 1373) ! * mrecord-return: x86 Options. (line 1393) ! * mred-zone: x86 Options. (line 1531) * mreduced-regs: NDS32 Options. (line 15) * mregister-names: IA-64 Options. (line 37) * mregnames: RS/6000 and PowerPC Options. (line 722) * mregparm: x86 Options. (line 709) ! * mrelax: AVR Options. (line 229) * mrelax <1>: H8/300 Options. (line 9) * mrelax <2>: MN10300 Options. (line 46) * mrelax <3>: MSP430 Options. (line 88) *************** look up both forms. *** 64439,64445 **** * mrgf-banked-regs: ARC Options. (line 304) * mrh850-abi: V850 Options. (line 127) * mrl78: RL78 Options. (line 62) ! * mrmw: AVR Options. (line 245) * mrop-protect: RS/6000 and PowerPC Options. (line 949) * mror: OpenRISC Options. (line 49) --- 64452,64458 ---- * mrgf-banked-regs: ARC Options. (line 304) * mrh850-abi: V850 Options. (line 127) * mrl78: RL78 Options. (line 62) ! * mrmw: AVR Options. (line 243) * mrop-protect: RS/6000 and PowerPC Options. (line 949) * mror: OpenRISC Options. (line 49) *************** look up both forms. *** 64450,64462 **** * mrtd <1>: x86 Options. (line 685) * mrtd <2>: x86 Function Attributes. (line 9) ! * mrtm: x86 Options. (line 868) * mrtp: VxWorks Options. (line 11) * mrtsc: ARC Options. (line 358) * ms: H8/300 Options. (line 17) * ms <1>: MeP Options. (line 100) * ms2600: H8/300 Options. (line 24) ! * msahf: x86 Options. (line 1001) * msatur: MeP Options. (line 105) * msave-acc-in-interrupts: RX Options. (line 109) * msave-mduc-in-interrupts: RL78 Options. (line 79) --- 64463,64475 ---- * mrtd <1>: x86 Options. (line 685) * mrtd <2>: x86 Function Attributes. (line 9) ! * mrtm: x86 Options. (line 877) * mrtp: VxWorks Options. (line 11) * mrtsc: ARC Options. (line 358) * ms: H8/300 Options. (line 17) * ms <1>: MeP Options. (line 100) * ms2600: H8/300 Options. (line 24) ! * msahf: x86 Options. (line 1010) * msatur: MeP Options. (line 105) * msave-acc-in-interrupts: RX Options. (line 109) * msave-mduc-in-interrupts: RL78 Options. (line 79) *************** look up both forms. *** 64489,64495 **** * mscore7: Score Options. (line 31) * mscore7d: Score Options. (line 35) * msda: V850 Options. (line 40) ! * msdata: ARC Options. (line 422) * msdata <1>: IA-64 Options. (line 42) * msdata <2>: RS/6000 and PowerPC Options. (line 666) --- 64502,64508 ---- * mscore7: Score Options. (line 31) * mscore7d: Score Options. (line 35) * msda: V850 Options. (line 40) ! * msdata: ARC Options. (line 420) * msdata <1>: IA-64 Options. (line 42) * msdata <2>: RS/6000 and PowerPC Options. (line 666) *************** look up both forms. *** 64517,64536 **** * msel-sched-dont-check-control-spec: IA-64 Options. (line 207) * msep-data: Blackfin Options. (line 107) * msep-data <1>: Blackfin Options. (line 113) ! * mserialize: x86 Options. (line 893) * mserialize-volatile: Xtensa Options. (line 35) * msetlb: MN10300 Options. (line 64) * msext: OpenRISC Options. (line 59) * msfimm: OpenRISC Options. (line 63) ! * msgx: x86 Options. (line 852) ! * msha: x86 Options. (line 835) * mshared-library-id: Blackfin Options. (line 100) * mshftimm: OpenRISC Options. (line 68) * mshort: M680x0 Options. (line 216) ! * mshort-calls: AVR Options. (line 249) * mshorten-memrefs: RISC-V Options. (line 108) ! * mshstk: x86 Options. (line 1015) ! * mside-effects: CRIS Options. (line 45) * msign-extend-enabled: LM32 Options. (line 18) * msign-return-address: AArch64 Options. (line 276) * msilicon-errata: MSP430 Options. (line 159) --- 64530,64549 ---- * msel-sched-dont-check-control-spec: IA-64 Options. (line 207) * msep-data: Blackfin Options. (line 107) * msep-data <1>: Blackfin Options. (line 113) ! * mserialize: x86 Options. (line 902) * mserialize-volatile: Xtensa Options. (line 35) * msetlb: MN10300 Options. (line 64) * msext: OpenRISC Options. (line 59) * msfimm: OpenRISC Options. (line 63) ! * msgx: x86 Options. (line 861) ! * msha: x86 Options. (line 844) * mshared-library-id: Blackfin Options. (line 100) * mshftimm: OpenRISC Options. (line 68) * mshort: M680x0 Options. (line 216) ! * mshort-calls: AVR Options. (line 247) * mshorten-memrefs: RISC-V Options. (line 108) ! * mshstk: x86 Options. (line 1024) ! * mside-effects: CRIS Options. (line 44) * msign-extend-enabled: LM32 Options. (line 18) * msign-return-address: AArch64 Options. (line 276) * msilicon-errata: MSP430 Options. (line 159) *************** look up both forms. *** 64557,64564 **** * msingle-pic-base <1>: RS/6000 and PowerPC Options. (line 451) * msio: HPPA Options. (line 105) ! * msize-level: ARC Options. (line 533) ! * mskip-rax-setup: x86 Options. (line 1397) * mslow-bytes: MCore Options. (line 35) * mslow-flash-data: ARM Options. (line 916) * msmall: MSP430 Options. (line 85) --- 64570,64577 ---- * msingle-pic-base <1>: RS/6000 and PowerPC Options. (line 451) * msio: HPPA Options. (line 105) ! * msize-level: ARC Options. (line 531) ! * mskip-rax-setup: x86 Options. (line 1406) * mslow-bytes: MCore Options. (line 35) * mslow-flash-data: ARM Options. (line 916) * msmall: MSP430 Options. (line 85) *************** look up both forms. *** 64599,64605 **** * msoft-mul: OpenRISC Options. (line 24) * msoft-quad-float: SPARC Options. (line 59) * msoft-stack: Nvidia PTX Options. (line 26) ! * msp8: AVR Options. (line 256) * mspace: V850 Options. (line 30) * mspace-regs: HPPA Options. (line 45) * mspecld-anomaly: Blackfin Options. (line 48) --- 64612,64618 ---- * msoft-mul: OpenRISC Options. (line 24) * msoft-quad-float: SPARC Options. (line 59) * msoft-stack: Nvidia PTX Options. (line 26) ! * msp8: AVR Options. (line 254) * mspace: V850 Options. (line 30) * mspace-regs: HPPA Options. (line 45) * mspecld-anomaly: Blackfin Options. (line 48) *************** look up both forms. *** 64607,64614 **** * mspfp: ARC Options. (line 132) * mspfp-compact: ARC Options. (line 133) * mspfp-fast: ARC Options. (line 137) ! * mspfp_compact: ARC Options. (line 634) ! * mspfp_fast: ARC Options. (line 637) * msplit: PDP-11 Options. (line 40) * msplit-addresses: MIPS Options. (line 555) * msplit-lohi: Adapteva Epiphany Options. --- 64620,64627 ---- * mspfp: ARC Options. (line 132) * mspfp-compact: ARC Options. (line 133) * mspfp-fast: ARC Options. (line 137) ! * mspfp_compact: ARC Options. (line 629) ! * mspfp_fast: ARC Options. (line 632) * msplit: PDP-11 Options. (line 40) * msplit-addresses: MIPS Options. (line 555) * msplit-lohi: Adapteva Epiphany Options. *************** look up both forms. *** 64616,64632 **** * msplit-vecmove-early: Adapteva Epiphany Options. (line 126) * msram-ecc: AMD GCN Options. (line 25) ! * msse: x86 Options. (line 816) ! * msse2: x86 Options. (line 817) ! * msse2avx: x86 Options. (line 1352) ! * msse3: x86 Options. (line 818) ! * msse4: x86 Options. (line 820) ! * msse4.1: x86 Options. (line 822) ! * msse4.2: x86 Options. (line 823) ! * msse4a: x86 Options. (line 821) * msseregparm: x86 Options. (line 720) ! * mssse3: x86 Options. (line 819) ! * mstack-align: CRIS Options. (line 54) * mstack-bias: SPARC Options. (line 372) * mstack-check-l1: Blackfin Options. (line 74) * mstack-guard: S/390 and zSeries Options. --- 64629,64645 ---- * msplit-vecmove-early: Adapteva Epiphany Options. (line 126) * msram-ecc: AMD GCN Options. (line 25) ! * msse: x86 Options. (line 825) ! * msse2: x86 Options. (line 826) ! * msse2avx: x86 Options. (line 1361) ! * msse3: x86 Options. (line 827) ! * msse4: x86 Options. (line 829) ! * msse4.1: x86 Options. (line 831) ! * msse4.2: x86 Options. (line 832) ! * msse4a: x86 Options. (line 830) * msseregparm: x86 Options. (line 720) ! * mssse3: x86 Options. (line 828) ! * mstack-align: CRIS Options. (line 53) * mstack-bias: SPARC Options. (line 372) * mstack-check-l1: Blackfin Options. (line 74) * mstack-guard: S/390 and zSeries Options. *************** look up both forms. *** 64638,64671 **** * mstack-protector-guard <1>: RISC-V Options. (line 168) * mstack-protector-guard <2>: RS/6000 and PowerPC Options. (line 916) ! * mstack-protector-guard <3>: x86 Options. (line 1423) * mstack-protector-guard-offset: AArch64 Options. (line 64) * mstack-protector-guard-offset <1>: RISC-V Options. (line 168) * mstack-protector-guard-offset <2>: RS/6000 and PowerPC Options. (line 916) ! * mstack-protector-guard-offset <3>: x86 Options. (line 1423) * mstack-protector-guard-reg: AArch64 Options. (line 64) * mstack-protector-guard-reg <1>: RISC-V Options. (line 168) * mstack-protector-guard-reg <2>: RS/6000 and PowerPC Options. (line 916) ! * mstack-protector-guard-reg <3>: x86 Options. (line 1423) * mstack-protector-guard-symbol: RS/6000 and PowerPC Options. (line 916) * mstack-size: AMD GCN Options. (line 31) * mstack-size <1>: C-SKY Options. (line 150) * mstack-size <2>: S/390 and zSeries Options. (line 202) ! * mstackrealign: x86 Options. (line 760) * mstd-struct-return: SPARC Options. (line 102) * mstrict-align: AArch64 Options. (line 52) * mstrict-align <1>: M680x0 Options. (line 280) * mstrict-align <2>: RISC-V Options. (line 117) * mstrict-align <3>: RS/6000 and PowerPC Options. (line 403) ! * mstrict-X: AVR Options. (line 269) * mstring-compare-inline-limit: RS/6000 and PowerPC Options. (line 708) ! * mstringop-strategy=ALG: x86 Options. (line 1300) * mstructure-size-boundary: ARM Options. (line 735) * msubxc: SPARC Options. (line 288) * msv-mode: Visium Options. (line 52) --- 64651,64684 ---- * mstack-protector-guard <1>: RISC-V Options. (line 168) * mstack-protector-guard <2>: RS/6000 and PowerPC Options. (line 916) ! * mstack-protector-guard <3>: x86 Options. (line 1432) * mstack-protector-guard-offset: AArch64 Options. (line 64) * mstack-protector-guard-offset <1>: RISC-V Options. (line 168) * mstack-protector-guard-offset <2>: RS/6000 and PowerPC Options. (line 916) ! * mstack-protector-guard-offset <3>: x86 Options. (line 1432) * mstack-protector-guard-reg: AArch64 Options. (line 64) * mstack-protector-guard-reg <1>: RISC-V Options. (line 168) * mstack-protector-guard-reg <2>: RS/6000 and PowerPC Options. (line 916) ! * mstack-protector-guard-reg <3>: x86 Options. (line 1432) * mstack-protector-guard-symbol: RS/6000 and PowerPC Options. (line 916) * mstack-size: AMD GCN Options. (line 31) * mstack-size <1>: C-SKY Options. (line 150) * mstack-size <2>: S/390 and zSeries Options. (line 202) ! * mstackrealign: x86 Options. (line 769) * mstd-struct-return: SPARC Options. (line 102) * mstrict-align: AArch64 Options. (line 52) * mstrict-align <1>: M680x0 Options. (line 280) * mstrict-align <2>: RISC-V Options. (line 117) * mstrict-align <3>: RS/6000 and PowerPC Options. (line 403) ! * mstrict-X: AVR Options. (line 267) * mstring-compare-inline-limit: RS/6000 and PowerPC Options. (line 708) ! * mstringop-strategy=ALG: x86 Options. (line 1309) * mstructure-size-boundary: ARM Options. (line 735) * msubxc: SPARC Options. (line 288) * msv-mode: Visium Options. (line 52) *************** look up both forms. *** 64682,64707 **** (line 147) * mtarget-align: Xtensa Options. (line 74) * mtas: SH Options. (line 259) ! * mtbm: x86 Options. (line 870) * mtda: V850 Options. (line 34) * mtelephony: ARC Options. (line 368) * mtext-section-literals: Xtensa Options. (line 47) * mtf: MeP Options. (line 121) * mthread: x86 Windows Options. (line 26) ! * mthreads: x86 Options. (line 1155) * mthumb: ARM Options. (line 823) * mthumb-interwork: ARM Options. (line 24) * mtiny-printf: MSP430 Options. (line 122) ! * mtiny-stack: AVR Options. (line 283) * mtiny=: MeP Options. (line 125) * mTLS: FRV Options. (line 90) * mtls: FRV Options. (line 94) * mtls-dialect: ARM Options. (line 875) ! * mtls-dialect <1>: x86 Options. (line 1133) * mtls-dialect=desc: AArch64 Options. (line 77) * mtls-dialect=traditional: AArch64 Options. (line 81) ! * mtls-direct-seg-refs: x86 Options. (line 1342) * mtls-markers: RS/6000 and PowerPC Options. (line 777) * mtls-size: AArch64 Options. (line 85) --- 64695,64720 ---- (line 147) * mtarget-align: Xtensa Options. (line 74) * mtas: SH Options. (line 259) ! * mtbm: x86 Options. (line 879) * mtda: V850 Options. (line 34) * mtelephony: ARC Options. (line 368) * mtext-section-literals: Xtensa Options. (line 47) * mtf: MeP Options. (line 121) * mthread: x86 Windows Options. (line 26) ! * mthreads: x86 Options. (line 1164) * mthumb: ARM Options. (line 823) * mthumb-interwork: ARM Options. (line 24) * mtiny-printf: MSP430 Options. (line 122) ! * mtiny-stack: AVR Options. (line 281) * mtiny=: MeP Options. (line 125) * mTLS: FRV Options. (line 90) * mtls: FRV Options. (line 94) * mtls-dialect: ARM Options. (line 875) ! * mtls-dialect <1>: x86 Options. (line 1142) * mtls-dialect=desc: AArch64 Options. (line 77) * mtls-dialect=traditional: AArch64 Options. (line 81) ! * mtls-direct-seg-refs: x86 Options. (line 1351) * mtls-markers: RS/6000 and PowerPC Options. (line 777) * mtls-size: AArch64 Options. (line 85) *************** look up both forms. *** 64722,64734 **** (line 541) * mtrap-precision: DEC Alpha Options. (line 109) * mtrust: C-SKY Options. (line 99) ! * mtsxldtrk: x86 Options. (line 885) * mtune: AArch64 Options. (line 186) * mtune <1>: AMD GCN Options. (line 10) ! * mtune <2>: ARC Options. (line 554) ! * mtune <3>: ARC Options. (line 640) * mtune <4>: ARM Options. (line 571) ! * mtune <5>: CRIS Options. (line 16) * mtune <6>: DEC Alpha Options. (line 259) * mtune <7>: IA-64 Options. (line 116) * mtune <8>: M680x0 Options. (line 68) --- 64735,64747 ---- (line 541) * mtrap-precision: DEC Alpha Options. (line 109) * mtrust: C-SKY Options. (line 99) ! * mtsxldtrk: x86 Options. (line 894) * mtune: AArch64 Options. (line 186) * mtune <1>: AMD GCN Options. (line 10) ! * mtune <2>: ARC Options. (line 552) ! * mtune <3>: ARC Options. (line 635) * mtune <4>: ARM Options. (line 571) ! * mtune <5>: CRIS Options. (line 15) * mtune <6>: DEC Alpha Options. (line 259) * mtune <7>: IA-64 Options. (line 116) * mtune <8>: M680x0 Options. (line 68) *************** look up both forms. *** 64742,64759 **** * mtune <14>: SPARC Options. (line 199) * mtune <15>: Visium Options. (line 47) * mtune <16>: x86 Options. (line 458) ! * mtune-ctrl=FEATURE-LIST: x86 Options. (line 938) * muclibc: GNU/Linux Options. (line 14) ! * muintr: x86 Options. (line 884) * muls: Score Options. (line 18) ! * multcost: ARC Options. (line 645) * multcost=NUMBER: SH Options. (line 281) * multilib-library-pic: FRV Options. (line 110) * multiply-enabled: LM32 Options. (line 15) * multiply_defined: Darwin Options. (line 196) * multiply_defined_unused: Darwin Options. (line 196) * multi_module: Darwin Options. (line 196) ! * munalign-prob-threshold: ARC Options. (line 582) * munaligned-access: ARM Options. (line 900) * munaligned-doubles: SPARC Options. (line 73) * municode: x86 Windows Options. --- 64755,64772 ---- * mtune <14>: SPARC Options. (line 199) * mtune <15>: Visium Options. (line 47) * mtune <16>: x86 Options. (line 458) ! * mtune-ctrl=FEATURE-LIST: x86 Options. (line 947) * muclibc: GNU/Linux Options. (line 14) ! * muintr: x86 Options. (line 893) * muls: Score Options. (line 18) ! * multcost: ARC Options. (line 640) * multcost=NUMBER: SH Options. (line 281) * multilib-library-pic: FRV Options. (line 110) * multiply-enabled: LM32 Options. (line 15) * multiply_defined: Darwin Options. (line 196) * multiply_defined_unused: Darwin Options. (line 196) * multi_module: Darwin Options. (line 196) ! * munalign-prob-threshold: ARC Options. (line 580) * munaligned-access: ARM Options. (line 900) * munaligned-doubles: SPARC Options. (line 73) * municode: x86 Windows Options. *************** look up both forms. *** 64779,64789 **** * mv850e3v5: V850 Options. (line 52) * mv850es: V850 Options. (line 75) * mv8plus: SPARC Options. (line 214) ! * mvaes: x86 Options. (line 877) * mvdsp: C-SKY Options. (line 104) * mveclibabi: RS/6000 and PowerPC Options. (line 851) ! * mveclibabi <1>: x86 Options. (line 1081) * mvect-double: Adapteva Epiphany Options. (line 115) * mvect8-ret-in-mem: x86 Options. (line 730) --- 64792,64802 ---- * mv850e3v5: V850 Options. (line 52) * mv850es: V850 Options. (line 75) * mv8plus: SPARC Options. (line 214) ! * mvaes: x86 Options. (line 886) * mvdsp: C-SKY Options. (line 104) * mveclibabi: RS/6000 and PowerPC Options. (line 851) ! * mveclibabi <1>: x86 Options. (line 1090) * mvect-double: Adapteva Epiphany Options. (line 115) * mvect8-ret-in-mem: x86 Options. (line 730) *************** look up both forms. *** 64798,64806 **** * mvliw-branch: FRV Options. (line 201) * mvms-return-codes: VMS Options. (line 9) * mvolatile-asm-stop: IA-64 Options. (line 32) ! * mvolatile-cache: ARC Options. (line 427) ! * mvolatile-cache <1>: ARC Options. (line 431) ! * mvpclmulqdq: x86 Options. (line 879) * mvr4130-align: MIPS Options. (line 834) * mvrsave: RS/6000 and PowerPC Options. (line 153) --- 64811,64819 ---- * mvliw-branch: FRV Options. (line 201) * mvms-return-codes: VMS Options. (line 9) * mvolatile-asm-stop: IA-64 Options. (line 32) ! * mvolatile-cache: ARC Options. (line 425) ! * mvolatile-cache <1>: ARC Options. (line 429) ! * mvpclmulqdq: x86 Options. (line 888) * mvr4130-align: MIPS Options. (line 834) * mvrsave: RS/6000 and PowerPC Options. (line 153) *************** look up both forms. *** 64810,64817 **** (line 112) * mvxworks: RS/6000 and PowerPC Options. (line 624) ! * mvzeroupper: x86 Options. (line 965) ! * mwaitpkg: x86 Options. (line 878) * mwarn-devices-csv: MSP430 Options. (line 168) * mwarn-dynamicstack: S/390 and zSeries Options. (line 196) --- 64823,64830 ---- (line 112) * mvxworks: RS/6000 and PowerPC Options. (line 624) ! * mvzeroupper: x86 Options. (line 974) ! * mwaitpkg: x86 Options. (line 887) * mwarn-devices-csv: MSP430 Options. (line 168) * mwarn-dynamicstack: S/390 and zSeries Options. (line 196) *************** look up both forms. *** 64819,64833 **** (line 188) * mwarn-mcu: MSP430 Options. (line 65) * mwarn-multiple-fast-interrupts: RX Options. (line 143) ! * mwbnoinvd: x86 Options. (line 846) * mwide-bitfields: MCore Options. (line 23) ! * mwidekl: x86 Options. (line 899) * mwin32: x86 Windows Options. (line 35) * mwindows: x86 Windows Options. (line 41) * mword-relocations: ARM Options. (line 886) ! * mx32: x86 Options. (line 1502) * mxgot: M680x0 Options. (line 312) * mxgot <1>: MIPS Options. (line 229) * mxl-barrel-shift: MicroBlaze Options. (line 32) --- 64832,64846 ---- (line 188) * mwarn-mcu: MSP430 Options. (line 65) * mwarn-multiple-fast-interrupts: RX Options. (line 143) ! * mwbnoinvd: x86 Options. (line 855) * mwide-bitfields: MCore Options. (line 23) ! * mwidekl: x86 Options. (line 908) * mwin32: x86 Windows Options. (line 35) * mwindows: x86 Windows Options. (line 41) * mword-relocations: ARM Options. (line 886) ! * mx32: x86 Options. (line 1511) * mxgot: M680x0 Options. (line 312) * mxgot <1>: MIPS Options. (line 229) * mxl-barrel-shift: MicroBlaze Options. (line 32) *************** look up both forms. *** 64843,64854 **** * mxl-soft-mul: MicroBlaze Options. (line 26) * mxl-stack-check: MicroBlaze Options. (line 41) * mxnack: AMD GCN Options. (line 38) ! * mxop: x86 Options. (line 853) * mxpa: MIPS Options. (line 411) ! * mxsave: x86 Options. (line 864) ! * mxsavec: x86 Options. (line 866) ! * mxsaveopt: x86 Options. (line 865) ! * mxsaves: x86 Options. (line 867) * mxy: ARC Options. (line 373) * myellowknife: RS/6000 and PowerPC Options. (line 619) --- 64856,64867 ---- * mxl-soft-mul: MicroBlaze Options. (line 26) * mxl-stack-check: MicroBlaze Options. (line 41) * mxnack: AMD GCN Options. (line 38) ! * mxop: x86 Options. (line 862) * mxpa: MIPS Options. (line 411) ! * mxsave: x86 Options. (line 873) ! * mxsavec: x86 Options. (line 875) ! * mxsaveopt: x86 Options. (line 874) ! * mxsaves: x86 Options. (line 876) * mxy: ARC Options. (line 373) * myellowknife: RS/6000 and PowerPC Options. (line 619) *************** look up both forms. *** 64864,64877 **** (line 959) * no-canonical-prefixes: Directory Options. (line 164) * no-integrated-cpp: Preprocessor Options. ! (line 483) * no-pie: Link Options. (line 181) * no-sysroot-suffix: Directory Options. (line 183) * noall_load: Darwin Options. (line 196) * nocpp: MIPS Options. (line 636) * nodefaultlibs: Link Options. (line 119) ! * nodevicelib: AVR Options. (line 290) ! * nodevicespecs: AVR Options. (line 293) * nofixprebinding: Darwin Options. (line 196) * nofpu: RX Options. (line 17) * nolibc: Link Options. (line 131) --- 64877,64890 ---- (line 959) * no-canonical-prefixes: Directory Options. (line 164) * no-integrated-cpp: Preprocessor Options. ! (line 485) * no-pie: Link Options. (line 181) * no-sysroot-suffix: Directory Options. (line 183) * noall_load: Darwin Options. (line 196) * nocpp: MIPS Options. (line 636) * nodefaultlibs: Link Options. (line 119) ! * nodevicelib: AVR Options. (line 288) ! * nodevicespecs: AVR Options. (line 291) * nofixprebinding: Darwin Options. (line 196) * nofpu: RX Options. (line 17) * nolibc: Link Options. (line 131) *************** look up both forms. *** 64899,64905 **** * p: Instrumentation Options. (line 20) * P: Preprocessor Options. ! (line 368) * p <1>: Common Function Attributes. (line 794) * pagezero_size: Darwin Options. (line 196) --- 64912,64918 ---- * p: Instrumentation Options. (line 20) * P: Preprocessor Options. ! (line 370) * p <1>: Common Function Attributes. (line 794) * pagezero_size: Darwin Options. (line 196) *************** look up both forms. *** 64949,64955 **** * rdynamic: Link Options. (line 203) * read_only_relocs: Darwin Options. (line 196) * remap: Preprocessor Options. ! (line 399) * S: Overall Options. (line 180) * S <1>: Link Options. (line 20) * s: Link Options. (line 210) --- 64962,64968 ---- * rdynamic: Link Options. (line 203) * read_only_relocs: Darwin Options. (line 196) * remap: Preprocessor Options. ! (line 401) * S: Overall Options. (line 180) * S <1>: Link Options. (line 20) * s: Link Options. (line 210) *************** look up both forms. *** 64975,64982 **** * shared-libgcc: Link Options. (line 227) * short-calls: Adapteva Epiphany Options. (line 61) ! * sim: CRIS Options. (line 82) ! * sim2: CRIS Options. (line 87) * single_module: Darwin Options. (line 196) * specs: Overall Options. (line 615) * static: Link Options. (line 214) --- 64988,64995 ---- * shared-libgcc: Link Options. (line 227) * short-calls: Adapteva Epiphany Options. (line 61) ! * sim: CRIS Options. (line 81) ! * sim2: CRIS Options. (line 86) * single_module: Darwin Options. (line 196) * specs: Overall Options. (line 615) * static: Link Options. (line 214) *************** look up both forms. *** 65006,65017 **** * tno-android-cc: GNU/Linux Options. (line 36) * tno-android-ld: GNU/Linux Options. (line 40) * traditional: Preprocessor Options. ! (line 375) * traditional <1>: Incompatibilities. (line 6) * traditional-cpp: Preprocessor Options. ! (line 375) * trigraphs: Preprocessor Options. ! (line 385) * twolevel_namespace: Darwin Options. (line 196) * U: Preprocessor Options. (line 42) --- 65019,65030 ---- * tno-android-cc: GNU/Linux Options. (line 36) * tno-android-ld: GNU/Linux Options. (line 40) * traditional: Preprocessor Options. ! (line 377) * traditional <1>: Incompatibilities. (line 6) * traditional-cpp: Preprocessor Options. ! (line 377) * trigraphs: Preprocessor Options. ! (line 387) * twolevel_namespace: Darwin Options. (line 196) * U: Preprocessor Options. (line 42) *************** look up both forms. *** 65033,65039 **** * Wabi-tag: C++ Dialect Options. (line 565) * Wabsolute-value: Warning Options. (line 2275) ! * Waddr-space-convert: AVR Options. (line 308) * Waddress: Warning Options. (line 2631) * Waddress-of-packed-member: Warning Options. (line 2644) * Waggregate-return: Warning Options. (line 2672) --- 65046,65052 ---- * Wabi-tag: C++ Dialect Options. (line 565) * Wabsolute-value: Warning Options. (line 2275) ! * Waddr-space-convert: AVR Options. (line 306) * Waddress: Warning Options. (line 2631) * Waddress-of-packed-member: Warning Options. (line 2644) * Waggregate-return: Warning Options. (line 2672) *************** look up both forms. *** 65263,65269 **** * Wmissing-parameter-type: Warning Options. (line 2733) * Wmissing-profile: Warning Options. (line 889) * Wmissing-prototypes: Warning Options. (line 2741) ! * Wmisspelled-isr: AVR Options. (line 313) * Wmultichar: Warning Options. (line 2791) * Wmultiple-inheritance: C++ Dialect Options. (line 1064) --- 65276,65282 ---- * Wmissing-parameter-type: Warning Options. (line 2733) * Wmissing-profile: Warning Options. (line 889) * Wmissing-prototypes: Warning Options. (line 2741) ! * Wmisspelled-isr: AVR Options. (line 311) * Wmultichar: Warning Options. (line 2791) * Wmultiple-inheritance: C++ Dialect Options. (line 1064) *************** look up both forms. *** 65275,65281 **** * Wnested-externs: Warning Options. (line 2959) * Wno-abi: Warning Options. (line 260) * Wno-absolute-value: Warning Options. (line 2275) ! * Wno-addr-space-convert: AVR Options. (line 308) * Wno-address: Warning Options. (line 2631) * Wno-address-of-packed-member: Warning Options. (line 2644) * Wno-aggregate-return: Warning Options. (line 2672) --- 65288,65294 ---- * Wnested-externs: Warning Options. (line 2959) * Wno-abi: Warning Options. (line 260) * Wno-absolute-value: Warning Options. (line 2275) ! * Wno-addr-space-convert: AVR Options. (line 306) * Wno-address: Warning Options. (line 2631) * Wno-address-of-packed-member: Warning Options. (line 2644) * Wno-aggregate-return: Warning Options. (line 2672) *************** look up both forms. *** 65489,65495 **** * Wno-missing-parameter-type: Warning Options. (line 2733) * Wno-missing-profile: Warning Options. (line 889) * Wno-missing-prototypes: Warning Options. (line 2741) ! * Wno-misspelled-isr: AVR Options. (line 313) * Wno-multichar: Warning Options. (line 2791) * Wno-multiple-inheritance: C++ Dialect Options. (line 1064) --- 65502,65508 ---- * Wno-missing-parameter-type: Warning Options. (line 2733) * Wno-missing-profile: Warning Options. (line 889) * Wno-missing-prototypes: Warning Options. (line 2741) ! * Wno-misspelled-isr: AVR Options. (line 311) * Wno-multichar: Warning Options. (line 2791) * Wno-multiple-inheritance: C++ Dialect Options. (line 1064) *************** look up both forms. *** 65697,65703 **** * Woverride-init: Warning Options. (line 2869) * Woverride-init-side-effects: Warning Options. (line 2877) * Wp: Preprocessor Options. ! (line 463) * Wpacked: Warning Options. (line 2882) * Wpacked-bitfield-compat: Warning Options. (line 2899) * Wpacked-not-aligned: Warning Options. (line 2916) --- 65710,65716 ---- * Woverride-init: Warning Options. (line 2869) * Woverride-init-side-effects: Warning Options. (line 2877) * Wp: Preprocessor Options. ! (line 465) * Wpacked: Warning Options. (line 2882) * Wpacked-bitfield-compat: Warning Options. (line 2899) * Wpacked-not-aligned: Warning Options. (line 2916) *************** look up both forms. *** 65855,65861 **** * Xbind-now: VxWorks Options. (line 30) * Xlinker: Link Options. (line 317) * Xpreprocessor: Preprocessor Options. ! (line 474) * Ym: System V Options. (line 26) * YP: System V Options. (line 22) * z: Link Options. (line 348) --- 65868,65874 ---- * Xbind-now: VxWorks Options. (line 30) * Xlinker: Link Options. (line 317) * Xpreprocessor: Preprocessor Options. ! (line 476) * Ym: System V Options. (line 26) * YP: System V Options. (line 22) * z: Link Options. (line 348) *************** Keyword Index *** 66334,66340 **** * __far M32C Named Address Spaces: Named Address Spaces. (line 153) * __far RL78 Named Address Spaces: Named Address Spaces. ! (line 162) * __flash AVR Named Address Spaces: Named Address Spaces. (line 44) * __flash1 AVR Named Address Spaces: Named Address Spaces. --- 66347,66353 ---- * __far M32C Named Address Spaces: Named Address Spaces. (line 153) * __far RL78 Named Address Spaces: Named Address Spaces. ! (line 161) * __flash AVR Named Address Spaces: Named Address Spaces. (line 44) * __flash1 AVR Named Address Spaces: Named Address Spaces. *************** Keyword Index *** 66360,66368 **** * __PRETTY_FUNCTION__ identifier: Function Names. (line 6) * __real__ keyword: Complex. (line 31) * __seg_fs x86 named address space: Named Address Spaces. ! (line 175) * __seg_gs x86 named address space: Named Address Spaces. ! (line 175) * __STDC_HOSTED__: Standards. (line 13) * __sync_add_and_fetch: __sync Builtins. (line 72) * __sync_and_and_fetch: __sync Builtins. (line 72) --- 66373,66381 ---- * __PRETTY_FUNCTION__ identifier: Function Names. (line 6) * __real__ keyword: Complex. (line 31) * __seg_fs x86 named address space: Named Address Spaces. ! (line 174) * __seg_gs x86 named address space: Named Address Spaces. ! (line 174) * __STDC_HOSTED__: Standards. (line 13) * __sync_add_and_fetch: __sync Builtins. (line 72) * __sync_and_and_fetch: __sync Builtins. (line 72) *************** Keyword Index *** 66543,66549 **** * C intermediate output, nonexistent: G++ and GCC. (line 34) * C language extensions: C Extensions. (line 6) * C language, traditional: Preprocessor Options. ! (line 373) * C standard: Standards. (line 13) * C standards: Standards. (line 13) * c++: Invoking G++. (line 14) --- 66556,66562 ---- * C intermediate output, nonexistent: G++ and GCC. (line 34) * C language extensions: C Extensions. (line 6) * C language, traditional: Preprocessor Options. ! (line 375) * C standard: Standards. (line 13) * C standards: Standards. (line 13) * c++: Invoking G++. (line 14) *************** Keyword Index *** 66633,66639 **** * character set, execution: Preprocessor Options. (line 273) * character set, input: Preprocessor Options. ! (line 286) * character set, input normalization: Warning Options. (line 2797) * character set, wide execution: Preprocessor Options. (line 278) --- 66646,66652 ---- * character set, execution: Preprocessor Options. (line 273) * character set, input: Preprocessor Options. ! (line 288) * character set, input normalization: Warning Options. (line 2797) * character set, wide execution: Preprocessor Options. (line 278) *************** Keyword Index *** 66772,66784 **** * declaring static data in C++: Static Definitions. (line 6) * defining static data in C++: Static Definitions. (line 6) * dependencies for make as output: Environment Variables. ! (line 173) * dependencies for make as output <1>: Environment Variables. ! (line 189) * dependencies, make: Preprocessor Options. (line 77) * DEPENDENCIES_OUTPUT: Environment Variables. ! (line 172) * dependent name lookup: Name lookup. (line 6) * deprecated enumerator attribute: Enumerator Attributes. (line 28) --- 66785,66797 ---- * declaring static data in C++: Static Definitions. (line 6) * defining static data in C++: Static Definitions. (line 6) * dependencies for make as output: Environment Variables. ! (line 172) * dependencies for make as output <1>: Environment Variables. ! (line 188) * dependencies, make: Preprocessor Options. (line 77) * DEPENDENCIES_OUTPUT: Environment Variables. ! (line 171) * dependent name lookup: Name lookup. (line 6) * deprecated enumerator attribute: Enumerator Attributes. (line 28) *************** Keyword Index *** 66840,66846 **** (line 9) * eightbit_data variable attribute, H8/300: H8/300 Variable Attributes. (line 9) ! * EIND: AVR Options. (line 319) * either function attribute, MSP430: MSP430 Function Attributes. (line 57) * either variable attribute, MSP430: MSP430 Variable Attributes. --- 66853,66859 ---- (line 9) * eightbit_data variable attribute, H8/300: H8/300 Variable Attributes. (line 9) ! * EIND: AVR Options. (line 317) * either function attribute, MSP430: MSP430 Function Attributes. (line 57) * either variable attribute, MSP430: MSP430 Variable Attributes. *************** Keyword Index *** 67130,67136 **** * increment operators: Bug Criteria. (line 17) * index: Other Builtins. (line 6) * indirect calls, ARC: ARC Function Attributes. ! (line 27) * indirect calls, ARM: ARM Function Attributes. (line 38) * indirect calls, Blackfin: Blackfin Function Attributes. --- 67143,67149 ---- * increment operators: Bug Criteria. (line 17) * index: Other Builtins. (line 6) * indirect calls, ARC: ARC Function Attributes. ! (line 26) * indirect calls, ARM: ARM Function Attributes. (line 38) * indirect calls, Blackfin: Blackfin Function Attributes. *************** Keyword Index *** 67277,67285 **** * j1f: Other Builtins. (line 6) * j1l: Other Builtins. (line 6) * jli_always function attribute, ARC: ARC Function Attributes. ! (line 44) * jli_fixed function attribute, ARC: ARC Function Attributes. ! (line 50) * jn: Other Builtins. (line 6) * jnf: Other Builtins. (line 6) * jnl: Other Builtins. (line 6) --- 67290,67298 ---- * j1f: Other Builtins. (line 6) * j1l: Other Builtins. (line 6) * jli_always function attribute, ARC: ARC Function Attributes. ! (line 43) * jli_fixed function attribute, ARC: ARC Function Attributes. ! (line 49) * jn: Other Builtins. (line 6) * jnf: Other Builtins. (line 6) * jnl: Other Builtins. (line 6) *************** Keyword Index *** 67396,67402 **** * longjmp incompatibilities: Incompatibilities. (line 39) * longjmp warnings: Warning Options. (line 1334) * long_call function attribute, ARC: ARC Function Attributes. ! (line 27) * long_call function attribute, ARM: ARM Function Attributes. (line 38) * long_call function attribute, Epiphany: Epiphany Function Attributes. --- 67409,67415 ---- * longjmp incompatibilities: Incompatibilities. (line 39) * longjmp warnings: Warning Options. (line 1334) * long_call function attribute, ARC: ARC Function Attributes. ! (line 26) * long_call function attribute, ARM: ARM Function Attributes. (line 38) * long_call function attribute, Epiphany: Epiphany Function Attributes. *************** Keyword Index *** 67438,67444 **** (line 234) * MCore options: MCore Options. (line 6) * medium_call function attribute, ARC: ARC Function Attributes. ! (line 27) * member fns, automatically inline: Inline. (line 68) * memchr: Other Builtins. (line 6) * memcmp: Other Builtins. (line 6) --- 67451,67457 ---- (line 234) * MCore options: MCore Options. (line 6) * medium_call function attribute, ARC: ARC Function Attributes. ! (line 26) * member fns, automatically inline: Inline. (line 68) * memchr: Other Builtins. (line 6) * memcmp: Other Builtins. (line 6) *************** Keyword Index *** 67501,67507 **** * multiprecision arithmetic: Long Long. (line 6) * n in constraint: Simple Constraints. (line 73) * naked function attribute, ARC: ARC Function Attributes. ! (line 59) * naked function attribute, ARM: ARM Function Attributes. (line 48) * naked function attribute, AVR: AVR Function Attributes. --- 67514,67520 ---- * multiprecision arithmetic: Long Long. (line 6) * n in constraint: Simple Constraints. (line 73) * naked function attribute, ARC: ARC Function Attributes. ! (line 58) * naked function attribute, ARM: ARM Function Attributes. (line 48) * naked function attribute, AVR: AVR Function Attributes. *************** Keyword Index *** 67649,67657 **** * omitted middle-operands: Conditionals. (line 6) * open coding: Inline. (line 6) * OpenACC accelerator programming: C Dialect Options. (line 337) ! * OpenACC accelerator programming <1>: C Dialect Options. (line 346) ! * OpenMP parallel: C Dialect Options. (line 352) ! * OpenMP SIMD: C Dialect Options. (line 361) * OpenRISC Options: OpenRISC Options. (line 6) * operand constraints, asm: Constraints. (line 6) * optimize function attribute: Common Function Attributes. --- 67662,67670 ---- * omitted middle-operands: Conditionals. (line 6) * open coding: Inline. (line 6) * OpenACC accelerator programming: C Dialect Options. (line 337) ! * OpenACC accelerator programming <1>: C Dialect Options. (line 345) ! * OpenMP parallel: C Dialect Options. (line 351) ! * OpenMP SIMD: C Dialect Options. (line 359) * OpenRISC Options: OpenRISC Options. (line 6) * operand constraints, asm: Constraints. (line 6) * optimize function attribute: Common Function Attributes. *************** Keyword Index *** 67815,67824 **** * r fixed-suffix: Fixed-Point. (line 6) * R fixed-suffix: Fixed-Point. (line 6) * r in constraint: Simple Constraints. (line 64) ! * RAMPD: AVR Options. (line 430) ! * RAMPX: AVR Options. (line 430) ! * RAMPY: AVR Options. (line 430) ! * RAMPZ: AVR Options. (line 430) * range1 GCC_COLORS capability: Diagnostic Message Formatting Options. (line 107) * range2 GCC_COLORS capability: Diagnostic Message Formatting Options. --- 67828,67837 ---- * r fixed-suffix: Fixed-Point. (line 6) * R fixed-suffix: Fixed-Point. (line 6) * r in constraint: Simple Constraints. (line 64) ! * RAMPD: AVR Options. (line 428) ! * RAMPX: AVR Options. (line 428) ! * RAMPY: AVR Options. (line 428) ! * RAMPZ: AVR Options. (line 428) * range1 GCC_COLORS capability: Diagnostic Message Formatting Options. (line 107) * range2 GCC_COLORS capability: Diagnostic Message Formatting Options. *************** Keyword Index *** 67930,67936 **** * section variable attribute: Common Variable Attributes. (line 292) * secure_call function attribute, ARC: ARC Function Attributes. ! (line 54) * selectany variable attribute: Microsoft Windows Variable Attributes. (line 16) * sentinel function attribute: Common Function Attributes. --- 67943,67949 ---- * section variable attribute: Common Variable Attributes. (line 292) * secure_call function attribute, ARC: ARC Function Attributes. ! (line 53) * selectany variable attribute: Microsoft Windows Variable Attributes. (line 16) * sentinel function attribute: Common Function Attributes. *************** Keyword Index *** 67948,67954 **** * shortcall function attribute, PowerPC: PowerPC Function Attributes. (line 10) * short_call function attribute, ARC: ARC Function Attributes. ! (line 27) * short_call function attribute, ARM: ARM Function Attributes. (line 38) * short_call function attribute, Epiphany: Epiphany Function Attributes. --- 67961,67967 ---- * shortcall function attribute, PowerPC: PowerPC Function Attributes. (line 10) * short_call function attribute, ARC: ARC Function Attributes. ! (line 26) * short_call function attribute, ARM: ARM Function Attributes. (line 38) * short_call function attribute, Epiphany: Epiphany Function Attributes. *************** Keyword Index *** 67973,67979 **** * significand: Other Builtins. (line 6) * significandf: Other Builtins. (line 6) * significandl: Other Builtins. (line 6) ! * SIMD: C Dialect Options. (line 361) * simd function attribute: Common Function Attributes. (line 1136) * simple constraints: Simple Constraints. (line 6) --- 67986,67992 ---- * significand: Other Builtins. (line 6) * significandf: Other Builtins. (line 6) * significandl: Other Builtins. (line 6) ! * SIMD: C Dialect Options. (line 359) * simd function attribute: Common Function Attributes. (line 1136) * simple constraints: Simple Constraints. (line 6) *************** Keyword Index *** 67994,68000 **** * snprintf: Other Builtins. (line 6) * Solaris 2 options: Solaris 2 Options. (line 6) * SOURCE_DATE_EPOCH: Environment Variables. ! (line 194) * SPARC options: SPARC Options. (line 6) * Spec Files: Spec Files. (line 6) * specified registers: Explicit Register Variables. --- 68007,68013 ---- * snprintf: Other Builtins. (line 6) * Solaris 2 options: Solaris 2 Options. (line 6) * SOURCE_DATE_EPOCH: Environment Variables. ! (line 193) * SPARC options: SPARC Options. (line 6) * Spec Files: Spec Files. (line 6) * specified registers: Explicit Register Variables. *************** Keyword Index *** 68062,68068 **** * subscripting and function values: Subscripting. (line 6) * suffixes for C++ source: Invoking G++. (line 6) * SUNPRO_DEPENDENCIES: Environment Variables. ! (line 188) * suppressing warnings: Warning Options. (line 6) * surprises in C++: C++ Misunderstandings. (line 6) --- 68075,68081 ---- * subscripting and function values: Subscripting. (line 6) * suffixes for C++ source: Invoking G++. (line 6) * SUNPRO_DEPENDENCIES: Environment Variables. ! (line 187) * suppressing warnings: Warning Options. (line 6) * surprises in C++: C++ Misunderstandings. (line 6) *************** Keyword Index *** 68395,68401 **** * towlower: Other Builtins. (line 6) * towupper: Other Builtins. (line 6) * traditional C language: Preprocessor Options. ! (line 373) * transparent_union type attribute: Common Type Attributes. (line 357) * trapa_handler function attribute, SH: SH Function Attributes. --- 68408,68414 ---- * towlower: Other Builtins. (line 6) * towupper: Other Builtins. (line 6) * traditional C language: Preprocessor Options. ! (line 375) * transparent_union type attribute: Common Type Attributes. (line 357) * trapa_handler function attribute, SH: SH Function Attributes. *************** Keyword Index *** 68627,68633 **** * X in constraint: Simple Constraints. (line 122) * X3.159-1989: Standards. (line 13) * x86 named address spaces: Named Address Spaces. ! (line 170) * x86 Options: x86 Options. (line 6) * x86 Windows Options: x86 Windows Options. (line 6) --- 68640,68646 ---- * X in constraint: Simple Constraints. (line 122) * X3.159-1989: Standards. (line 13) * x86 named address spaces: Named Address Spaces. ! (line 169) * x86 Options: x86 Options. (line 6) * x86 Windows Options: x86 Windows Options. (line 6) *************** Keyword Index *** 68654,69091 ****  Tag Table: Node: Top2135 ! Node: G++ and GCC4093 ! Node: Standards6153 ! Node: Invoking GCC20209 ! Node: Option Summary25436 ! Node: Overall Options82543 ! Node: Invoking G++110123 ! Node: C Dialect Options111646 ! Node: C++ Dialect Options131304 ! Node: Objective-C and Objective-C++ Dialect Options189324 ! Node: Diagnostic Message Formatting Options201071 ! Node: Warning Options229856 ! Ref: Wtrigraphs331364 ! Node: Static Analyzer Options368951 ! Node: Debugging Options385732 ! Node: Optimize Options405680 ! Ref: Type-punning476019 ! Node: Instrumentation Options591425 ! Node: Preprocessor Options635072 ! Ref: dashMF639919 ! Ref: fdollars-in-identifiers644581 ! Node: Assembler Options657786 ! Node: Link Options658477 ! Ref: Link Options-Footnote-1675353 ! Node: Directory Options675689 ! Node: Code Gen Options684092 ! Node: Developer Options712604 ! Node: Submodel Options753989 ! Node: AArch64 Options755799 ! Ref: aarch64-feature-modifiers771121 ! Node: Adapteva Epiphany Options776357 ! Node: AMD GCN Options782309 ! Node: ARC Options783872 ! Node: ARM Options805098 ! Node: AVR Options846284 ! Node: Blackfin Options872806 ! Node: C6X Options880698 ! Node: CRIS Options882241 ! Node: CR16 Options885425 ! Node: C-SKY Options886337 ! Node: Darwin Options892064 ! Node: DEC Alpha Options899505 ! Node: eBPF Options911121 ! Node: FR30 Options912403 ! Node: FT32 Options912963 ! Node: FRV Options913909 ! Node: GNU/Linux Options920673 ! Node: H8/300 Options922054 ! Node: HPPA Options923506 ! Node: IA-64 Options933038 ! Node: LM32 Options941166 ! Node: M32C Options941689 ! Node: M32R/D Options942962 ! Node: M680x0 Options946507 ! Node: MCore Options960582 ! Node: MeP Options962084 ! Node: MicroBlaze Options966044 ! Node: MIPS Options969134 ! Node: MMIX Options1005673 ! Node: MN10300 Options1008150 ! Node: Moxie Options1010693 ! Node: MSP430 Options1011180 ! Node: NDS32 Options1018941 ! Node: Nios II Options1021111 ! Node: Nvidia PTX Options1034327 ! Node: OpenRISC Options1036836 ! Node: PDP-11 Options1039356 ! Node: picoChip Options1040605 ! Node: PowerPC Options1042743 ! Node: PRU Options1042963 ! Node: RISC-V Options1045172 ! Node: RL78 Options1052824 ! Node: RS/6000 and PowerPC Options1056599 ! Node: RX Options1098115 ! Node: S/390 and zSeries Options1106717 ! Node: Score Options1117517 ! Node: SH Options1118366 ! Node: Solaris 2 Options1133506 ! Node: SPARC Options1134744 ! Node: System V Options1150396 ! Node: TILE-Gx Options1151224 ! Node: TILEPro Options1152242 ! Node: V850 Options1152746 ! Node: VAX Options1159433 ! Node: Visium Options1159971 ! Node: VMS Options1162279 ! Node: VxWorks Options1163095 ! Node: x86 Options1164247 ! Node: x86 Windows Options1230658 ! Node: Xstormy16 Options1233463 ! Node: Xtensa Options1233757 ! Node: zSeries Options1239893 ! Node: Spec Files1240089 ! Node: Environment Variables1266168 ! Node: Precompiled Headers1275601 ! Node: C++ Modules1281810 ! Ref: C++ Modules-Footnote-11287949 ! Node: C++ Module Mapper1288202 ! Node: C++ Module Preprocessing1293355 ! Node: C++ Compiled Module Interface1295184 ! Ref: C++ Compiled Module Interface-Footnote-11298568 ! Ref: C++ Compiled Module Interface-Footnote-21298657 ! Node: C Implementation1298713 ! Node: Translation implementation1300403 ! Node: Environment implementation1300994 ! Node: Identifiers implementation1301548 ! Node: Characters implementation1302634 ! Node: Integers implementation1306284 ! Node: Floating point implementation1308333 ! Node: Arrays and pointers implementation1311396 ! Ref: Arrays and pointers implementation-Footnote-11312856 ! Node: Hints implementation1312982 ! Node: Structures unions enumerations and bit-fields implementation1314477 ! Node: Qualifiers implementation1316701 ! Node: Declarators implementation1318762 ! Node: Statements implementation1319103 ! Node: Preprocessing directives implementation1319429 ! Node: Library functions implementation1321750 ! Node: Architecture implementation1322399 ! Node: Locale-specific behavior implementation1324044 ! Node: C++ Implementation1324349 ! Node: Conditionally-supported behavior1325632 ! Node: Exception handling1326249 ! Node: C Extensions1326716 ! Node: Statement Exprs1331939 ! Node: Local Labels1337311 ! Node: Labels as Values1340284 ! Ref: Labels as Values-Footnote-11342811 ! Node: Nested Functions1342996 ! Node: Nonlocal Gotos1346950 ! Node: Constructing Calls1349216 ! Node: Typeof1353931 ! Node: Conditionals1357860 ! Node: __int1281358749 ! Node: Long Long1359274 ! Node: Complex1360765 ! Node: Floating Types1363533 ! Node: Half-Precision1367000 ! Node: Decimal Float1369411 ! Node: Hex Floats1371265 ! Node: Fixed-Point1372339 ! Node: Named Address Spaces1375597 ! Ref: AVR Named Address Spaces1376278 ! Node: Zero Length1382890 ! Node: Empty Structures1387071 ! Node: Variable Length1387477 ! Node: Variadic Macros1390195 ! Node: Escaped Newlines1392573 ! Node: Subscripting1393434 ! Node: Pointer Arith1394159 ! Node: Variadic Pointer Args1394736 ! Node: Pointers to Arrays1395461 ! Node: Initializers1396214 ! Node: Compound Literals1396715 ! Node: Designated Inits1400282 ! Node: Case Ranges1404206 ! Node: Cast to Union1404887 ! Node: Mixed Labels and Declarations1406621 ! Node: Function Attributes1407258 ! Node: Common Function Attributes1411725 ! Ref: Common Function Attributes-Footnote-11485600 ! Node: AArch64 Function Attributes1485917 ! Node: AMD GCN Function Attributes1492111 ! Node: ARC Function Attributes1495164 ! Node: ARM Function Attributes1498101 ! Node: AVR Function Attributes1503240 ! Node: Blackfin Function Attributes1507775 ! Node: BPF Function Attributes1510272 ! Node: CR16 Function Attributes1510860 ! Node: C-SKY Function Attributes1511379 ! Node: Epiphany Function Attributes1512678 ! Node: H8/300 Function Attributes1515433 ! Node: IA-64 Function Attributes1516631 ! Node: M32C Function Attributes1517673 ! Node: M32R/D Function Attributes1520011 ! Node: m68k Function Attributes1521485 ! Node: MCORE Function Attributes1522429 ! Node: MeP Function Attributes1523240 ! Node: MicroBlaze Function Attributes1524541 ! Node: Microsoft Windows Function Attributes1526048 ! Node: MIPS Function Attributes1530617 ! Node: MSP430 Function Attributes1536235 ! Node: NDS32 Function Attributes1540314 ! Node: Nios II Function Attributes1542738 ! Node: Nvidia PTX Function Attributes1544035 ! Node: PowerPC Function Attributes1544650 ! Node: RISC-V Function Attributes1551424 ! Node: RL78 Function Attributes1552840 ! Node: RX Function Attributes1554079 ! Node: S/390 Function Attributes1556626 ! Node: SH Function Attributes1558454 ! Node: Symbian OS Function Attributes1561882 ! Node: V850 Function Attributes1562218 ! Node: Visium Function Attributes1562763 ! Node: x86 Function Attributes1563291 ! Node: Xstormy16 Function Attributes1587093 ! Node: Variable Attributes1587600 ! Node: Common Variable Attributes1589133 ! Node: ARC Variable Attributes1609598 ! Node: AVR Variable Attributes1609980 ! Node: Blackfin Variable Attributes1615142 ! Node: H8/300 Variable Attributes1616000 ! Node: IA-64 Variable Attributes1617073 ! Node: M32R/D Variable Attributes1617824 ! Node: MeP Variable Attributes1618607 ! Node: Microsoft Windows Variable Attributes1620700 ! Node: MSP430 Variable Attributes1623153 ! Node: Nvidia PTX Variable Attributes1624367 ! Node: PowerPC Variable Attributes1624984 ! Node: RL78 Variable Attributes1625541 ! Node: V850 Variable Attributes1625960 ! Node: x86 Variable Attributes1626593 ! Node: Xstormy16 Variable Attributes1627649 ! Node: Type Attributes1628219 ! Node: Common Type Attributes1629883 ! Node: ARC Type Attributes1651640 ! Node: ARM Type Attributes1652112 ! Node: MeP Type Attributes1652894 ! Node: PowerPC Type Attributes1653296 ! Node: x86 Type Attributes1654285 ! Node: Label Attributes1655277 ! Node: Enumerator Attributes1657304 ! Node: Statement Attributes1658623 ! Node: Attribute Syntax1660106 ! Node: Function Prototypes1671364 ! Node: C++ Comments1673144 ! Node: Dollar Signs1673663 ! Node: Character Escapes1674128 ! Node: Alignment1674412 ! Node: Inline1676065 ! Node: Volatiles1680882 ! Node: Using Assembly Language with C1683781 ! Node: Basic Asm1685018 ! Node: Extended Asm1690468 ! Ref: Volatile1694582 ! Ref: AssemblerTemplate1698695 ! Ref: OutputOperands1702935 ! Ref: FlagOutputOperands1709898 ! Ref: InputOperands1712845 ! Ref: Clobbers and Scratch Registers1717113 ! Ref: GotoLabels1725754 ! Ref: x86Operandmodifiers1729377 ! Ref: x86floatingpointasmoperands1734193 ! Ref: msp430Operandmodifiers1737522 ! Node: Constraints1739180 ! Node: Simple Constraints1740286 ! Node: Multi-Alternative1747600 ! Node: Modifiers1749275 ! Node: Machine Constraints1752074 ! Node: Asm Labels1808299 ! Node: Explicit Register Variables1809919 ! Ref: Explicit Reg Vars1810133 ! Node: Global Register Variables1810742 ! Ref: Global Reg Vars1810950 ! Node: Local Register Variables1815732 ! Ref: Local Reg Vars1815952 ! Node: Size of an asm1819580 ! Node: Alternate Keywords1821058 ! Node: Incomplete Enums1822563 ! Node: Function Names1823320 ! Node: Return Address1825224 ! Node: Vector Extensions1829811 ! Node: Offsetof1839576 ! Node: __sync Builtins1840409 ! Node: __atomic Builtins1846852 ! Node: Integer Overflow Builtins1860477 ! Node: x86 specific memory model extensions for transactional memory1866960 ! Node: Object Size Checking1868226 ! Node: Other Builtins1874482 ! Node: Target Builtins1926130 ! Node: AArch64 Built-in Functions1927905 ! Node: Alpha Built-in Functions1928593 ! Node: Altera Nios II Built-in Functions1931641 ! Node: ARC Built-in Functions1936010 ! Node: ARC SIMD Built-in Functions1941222 ! Node: ARM iWMMXt Built-in Functions1950118 ! Node: ARM C Language Extensions (ACLE)1957114 ! Node: ARM Floating Point Status and Control Intrinsics1958391 ! Node: ARM ARMv8-M Security Extensions1958876 ! Node: AVR Built-in Functions1960156 ! Node: Blackfin Built-in Functions1963917 ! Node: BPF Built-in Functions1964535 ! Node: FR-V Built-in Functions1965435 ! Node: Argument Types1966298 ! Node: Directly-mapped Integer Functions1968052 ! Node: Directly-mapped Media Functions1969136 ! Node: Raw read/write Functions1977342 ! Node: Other Built-in Functions1978250 ! Node: MIPS DSP Built-in Functions1979436 ! Node: MIPS Paired-Single Support1991933 ! Node: MIPS Loongson Built-in Functions1993432 ! Node: Paired-Single Arithmetic1999954 ! Node: Paired-Single Built-in Functions2000902 ! Node: MIPS-3D Built-in Functions2003569 ! Node: MIPS SIMD Architecture (MSA) Support2008963 ! Node: MIPS SIMD Architecture Built-in Functions2011803 ! Node: Other MIPS Built-in Functions2038657 ! Node: MSP430 Built-in Functions2039666 ! Node: NDS32 Built-in Functions2041067 ! Node: picoChip Built-in Functions2042360 ! Node: Basic PowerPC Built-in Functions2043709 ! Node: Basic PowerPC Built-in Functions Available on all Configurations2044567 ! Node: Basic PowerPC Built-in Functions Available on ISA 2.052053076 ! Node: Basic PowerPC Built-in Functions Available on ISA 2.062057911 ! Node: Basic PowerPC Built-in Functions Available on ISA 2.072059991 ! Node: Basic PowerPC Built-in Functions Available on ISA 3.02060845 ! Node: Basic PowerPC Built-in Functions Available on ISA 3.12067823 ! Node: PowerPC AltiVec/VSX Built-in Functions2071036 ! Node: PowerPC AltiVec Built-in Functions on ISA 2.052079105 ! Node: PowerPC AltiVec Built-in Functions Available on ISA 2.062104505 ! Node: PowerPC AltiVec Built-in Functions Available on ISA 2.072111571 ! Node: PowerPC AltiVec Built-in Functions Available on ISA 3.02121381 ! Node: PowerPC AltiVec Built-in Functions Available on ISA 3.12137098 ! Node: PowerPC Hardware Transactional Memory Built-in Functions2170321 ! Node: PowerPC Atomic Memory Operation Functions2178836 ! Node: PowerPC Matrix-Multiply Assist Built-in Functions2181399 ! Node: PRU Built-in Functions2187524 ! Node: RISC-V Built-in Functions2188712 ! Node: RX Built-in Functions2189123 ! Node: S/390 System z Built-in Functions2193125 ! Node: SH Built-in Functions2198355 ! Node: SPARC VIS Built-in Functions2200083 ! Node: TI C6X Built-in Functions2208614 ! Node: TILE-Gx Built-in Functions2209645 ! Node: TILEPro Built-in Functions2210764 ! Node: x86 Built-in Functions2211864 ! Node: x86 transactional memory intrinsics2275944 ! Node: x86 control-flow protection intrinsics2279211 ! Node: Target Format Checks2280982 ! Node: Solaris Format Checks2281414 ! Node: Darwin Format Checks2281840 ! Node: Pragmas2282803 ! Node: AArch64 Pragmas2283744 ! Node: ARM Pragmas2284201 ! Node: M32C Pragmas2284828 ! Node: MeP Pragmas2285900 ! Node: PRU Pragmas2287952 ! Node: RS/6000 and PowerPC Pragmas2288530 ! Node: S/390 Pragmas2289270 ! Node: Darwin Pragmas2289836 ! Node: Solaris Pragmas2290889 ! Node: Symbol-Renaming Pragmas2292053 ! Node: Structure-Layout Pragmas2293690 ! Node: Weak Pragmas2295970 ! Node: Diagnostic Pragmas2296705 ! Node: Visibility Pragmas2300896 ! Node: Push/Pop Macro Pragmas2301581 ! Node: Function Specific Option Pragmas2302554 ! Node: Loop-Specific Pragmas2304520 ! Node: Unnamed Fields2306120 ! Node: Thread-Local2308317 ! Node: C99 Thread-Local Edits2310423 ! Node: C++98 Thread-Local Edits2312421 ! Node: Binary constants2315866 ! Node: C++ Extensions2316537 ! Node: C++ Volatiles2318167 ! Node: Restricted Pointers2320515 ! Node: Vague Linkage2322106 ! Node: C++ Interface2325729 ! Ref: C++ Interface-Footnote-12329526 ! Node: Template Instantiation2329664 ! Node: Bound member functions2335755 ! Node: C++ Attributes2337287 ! Node: Function Multiversioning2341359 ! Node: Type Traits2343166 ! Node: C++ Concepts2350116 ! Node: Deprecated Features2351622 ! Node: Backwards Compatibility2353447 ! Node: Objective-C2354519 ! Node: GNU Objective-C runtime API2355126 ! Node: Modern GNU Objective-C runtime API2356133 ! Node: Traditional GNU Objective-C runtime API2358569 ! Node: Executing code before main2359296 ! Node: What you can and what you cannot do in +load2362040 ! Node: Type encoding2364410 ! Node: Legacy type encoding2369551 ! Node: @encode2370641 ! Node: Method signatures2371186 ! Node: Garbage Collection2373178 ! Node: Constant string objects2375868 ! Node: compatibility_alias2378377 ! Node: Exceptions2379102 ! Node: Synchronization2381812 ! Node: Fast enumeration2382996 ! Node: Using fast enumeration2383308 ! Node: c99-like fast enumeration syntax2384519 ! Node: Fast enumeration details2385222 ! Node: Fast enumeration protocol2387562 ! Node: Messaging with the GNU Objective-C runtime2390714 ! Node: Dynamically registering methods2392086 ! Node: Forwarding hook2393777 ! Node: Compatibility2396817 ! Node: Gcov2403373 ! Node: Gcov Intro2403908 ! Node: Invoking Gcov2406626 ! Node: Gcov and Optimization2429492 ! Node: Gcov Data Files2433235 ! Node: Cross-profiling2434644 ! Node: Gcov-tool2436498 ! Node: Gcov-tool Intro2436923 ! Node: Invoking Gcov-tool2438893 ! Node: Gcov-dump2441471 ! Node: Gcov-dump Intro2441794 ! Node: Invoking Gcov-dump2442061 ! Node: lto-dump2442718 ! Node: lto-dump Intro2443017 ! Node: Invoking lto-dump2443267 ! Node: Trouble2444363 ! Node: Actual Bugs2445780 ! Node: Interoperation2446227 ! Node: Incompatibilities2453118 ! Node: Fixed Headers2461270 ! Node: Standard Libraries2462928 ! Node: Disappointments2464300 ! Node: C++ Misunderstandings2468659 ! Node: Static Definitions2469470 ! Node: Name lookup2470523 ! Ref: Name lookup-Footnote-12475304 ! Node: Temporaries2475493 ! Node: Copy Assignment2477469 ! Node: Non-bugs2479304 ! Node: Warnings and Errors2489810 ! Node: Bugs2491572 ! Node: Bug Criteria2492039 ! Node: Bug Reporting2494249 ! Node: Service2494467 ! Node: Contributing2495287 ! Node: Funding2496028 ! Node: GNU Project2498518 ! Node: Copying2499164 ! Node: GNU Free Documentation License2536672 ! Node: Contributors2561790 ! Node: Option Index2602763 ! Node: Keyword Index2892840  End Tag Table --- 68667,69109 ----  Tag Table: Node: Top2135 ! Node: G++ and GCC4105 ! Node: Standards6165 ! Node: Invoking GCC20221 ! Node: Option Summary25448 ! Node: Overall Options82564 ! Node: Invoking G++110144 ! Node: C Dialect Options111667 ! Node: C++ Dialect Options131325 ! Node: Objective-C and Objective-C++ Dialect Options189345 ! Node: Diagnostic Message Formatting Options201092 ! Node: Warning Options229877 ! Ref: Wtrigraphs331385 ! Node: Static Analyzer Options368972 ! Node: Debugging Options385753 ! Node: Optimize Options405701 ! Ref: Type-punning476040 ! Node: Instrumentation Options591446 ! Node: Preprocessor Options635093 ! Ref: dashMF639940 ! Ref: fdollars-in-identifiers644602 ! Node: Assembler Options657927 ! Node: Link Options658618 ! Ref: Link Options-Footnote-1675494 ! Node: Directory Options675830 ! Node: Code Gen Options684233 ! Node: Developer Options712745 ! Node: Submodel Options754130 ! Node: AArch64 Options755940 ! Ref: aarch64-feature-modifiers771288 ! Node: Adapteva Epiphany Options776524 ! Node: AMD GCN Options782476 ! Node: ARC Options784039 ! Node: ARM Options805265 ! Node: AVR Options846451 ! Node: Blackfin Options872974 ! Node: C6X Options880866 ! Node: CRIS Options882409 ! Node: CR16 Options885593 ! Node: C-SKY Options886505 ! Node: Darwin Options892232 ! Node: DEC Alpha Options899673 ! Node: eBPF Options911289 ! Node: FR30 Options912571 ! Node: FT32 Options913131 ! Node: FRV Options914077 ! Node: GNU/Linux Options920841 ! Node: H8/300 Options922222 ! Node: HPPA Options923674 ! Node: IA-64 Options933206 ! Node: LM32 Options941334 ! Node: M32C Options941857 ! Node: M32R/D Options943130 ! Node: M680x0 Options946675 ! Node: MCore Options960750 ! Node: MeP Options962252 ! Node: MicroBlaze Options966212 ! Node: MIPS Options969302 ! Node: MMIX Options1005841 ! Node: MN10300 Options1008318 ! Node: Moxie Options1010861 ! Node: MSP430 Options1011348 ! Node: NDS32 Options1019109 ! Node: Nios II Options1021279 ! Node: Nvidia PTX Options1034495 ! Node: OpenRISC Options1037004 ! Node: PDP-11 Options1039524 ! Node: picoChip Options1040773 ! Node: PowerPC Options1042911 ! Node: PRU Options1043131 ! Node: RISC-V Options1045340 ! Node: RL78 Options1052992 ! Node: RS/6000 and PowerPC Options1056767 ! Node: RX Options1098283 ! Node: S/390 and zSeries Options1106885 ! Node: Score Options1117685 ! Node: SH Options1118534 ! Node: Solaris 2 Options1133674 ! Node: SPARC Options1134912 ! Node: System V Options1150564 ! Node: TILE-Gx Options1151392 ! Node: TILEPro Options1152410 ! Node: V850 Options1152914 ! Node: VAX Options1159601 ! Node: Visium Options1160139 ! Node: VMS Options1162447 ! Node: VxWorks Options1163263 ! Node: x86 Options1164415 ! Node: x86 Windows Options1231205 ! Node: Xstormy16 Options1234010 ! Node: Xtensa Options1234304 ! Node: zSeries Options1240440 ! Node: Spec Files1240636 ! Node: Environment Variables1266715 ! Node: Precompiled Headers1276148 ! Node: C++ Modules1282357 ! Ref: C++ Modules-Footnote-11288496 ! Node: C++ Module Mapper1288749 ! Node: C++ Module Preprocessing1293902 ! Node: C++ Compiled Module Interface1295731 ! Ref: C++ Compiled Module Interface-Footnote-11299115 ! Ref: C++ Compiled Module Interface-Footnote-21299204 ! Node: C Implementation1299260 ! Node: Translation implementation1300950 ! Node: Environment implementation1301541 ! Node: Identifiers implementation1302095 ! Node: Characters implementation1303181 ! Node: Integers implementation1306831 ! Node: Floating point implementation1308880 ! Node: Arrays and pointers implementation1311943 ! Ref: Arrays and pointers implementation-Footnote-11313403 ! Node: Hints implementation1313529 ! Node: Structures unions enumerations and bit-fields implementation1315024 ! Node: Qualifiers implementation1317248 ! Node: Declarators implementation1319309 ! Node: Statements implementation1319650 ! Node: Preprocessing directives implementation1319976 ! Node: Library functions implementation1322297 ! Node: Architecture implementation1322946 ! Node: Locale-specific behavior implementation1324591 ! Node: C++ Implementation1324896 ! Node: Conditionally-supported behavior1326179 ! Node: Exception handling1326796 ! Node: C Extensions1327263 ! Node: Statement Exprs1332486 ! Node: Local Labels1337858 ! Node: Labels as Values1340831 ! Ref: Labels as Values-Footnote-11343358 ! Node: Nested Functions1343543 ! Node: Nonlocal Gotos1347497 ! Node: Constructing Calls1349763 ! Node: Typeof1354475 ! Node: Conditionals1358404 ! Node: __int1281359293 ! Node: Long Long1359818 ! Node: Complex1361309 ! Node: Floating Types1364077 ! Node: Half-Precision1367544 ! Node: Decimal Float1369955 ! Node: Hex Floats1371809 ! Node: Fixed-Point1372883 ! Node: Named Address Spaces1376141 ! Ref: AVR Named Address Spaces1376822 ! Node: Zero Length1383434 ! Node: Empty Structures1387615 ! Node: Variable Length1388021 ! Node: Variadic Macros1390739 ! Node: Escaped Newlines1393117 ! Node: Subscripting1393978 ! Node: Pointer Arith1394703 ! Node: Variadic Pointer Args1395280 ! Node: Pointers to Arrays1396005 ! Node: Initializers1396758 ! Node: Compound Literals1397259 ! Node: Designated Inits1400826 ! Node: Case Ranges1404750 ! Node: Cast to Union1405431 ! Node: Mixed Labels and Declarations1407165 ! Node: Function Attributes1407802 ! Node: Common Function Attributes1412269 ! Ref: Common Function Attributes-Footnote-11486144 ! Node: AArch64 Function Attributes1486461 ! Node: AMD GCN Function Attributes1492655 ! Node: ARC Function Attributes1495708 ! Node: ARM Function Attributes1498645 ! Node: AVR Function Attributes1503784 ! Node: Blackfin Function Attributes1508319 ! Node: BPF Function Attributes1510816 ! Node: CR16 Function Attributes1511404 ! Node: C-SKY Function Attributes1511923 ! Node: Epiphany Function Attributes1513222 ! Node: H8/300 Function Attributes1515977 ! Node: IA-64 Function Attributes1517175 ! Node: M32C Function Attributes1518217 ! Node: M32R/D Function Attributes1520555 ! Node: m68k Function Attributes1522029 ! Node: MCORE Function Attributes1522973 ! Node: MeP Function Attributes1523784 ! Node: MicroBlaze Function Attributes1525085 ! Node: Microsoft Windows Function Attributes1526592 ! Node: MIPS Function Attributes1531161 ! Node: MSP430 Function Attributes1536779 ! Node: NDS32 Function Attributes1540858 ! Node: Nios II Function Attributes1543282 ! Node: Nvidia PTX Function Attributes1544579 ! Node: PowerPC Function Attributes1545194 ! Node: RISC-V Function Attributes1551968 ! Node: RL78 Function Attributes1553384 ! Node: RX Function Attributes1554623 ! Node: S/390 Function Attributes1557170 ! Node: SH Function Attributes1558998 ! Node: Symbian OS Function Attributes1562426 ! Node: V850 Function Attributes1562762 ! Node: Visium Function Attributes1563307 ! Node: x86 Function Attributes1563835 ! Node: Xstormy16 Function Attributes1587637 ! Node: Variable Attributes1588144 ! Node: Common Variable Attributes1589677 ! Node: ARC Variable Attributes1610142 ! Node: AVR Variable Attributes1610524 ! Node: Blackfin Variable Attributes1615686 ! Node: H8/300 Variable Attributes1616544 ! Node: IA-64 Variable Attributes1617617 ! Node: M32R/D Variable Attributes1618368 ! Node: MeP Variable Attributes1619151 ! Node: Microsoft Windows Variable Attributes1621244 ! Node: MSP430 Variable Attributes1623697 ! Node: Nvidia PTX Variable Attributes1624911 ! Node: PowerPC Variable Attributes1625528 ! Node: RL78 Variable Attributes1626085 ! Node: V850 Variable Attributes1626504 ! Node: x86 Variable Attributes1627137 ! Node: Xstormy16 Variable Attributes1628193 ! Node: Type Attributes1628763 ! Node: Common Type Attributes1630427 ! Node: ARC Type Attributes1652184 ! Node: ARM Type Attributes1652656 ! Node: MeP Type Attributes1653438 ! Node: PowerPC Type Attributes1653840 ! Node: x86 Type Attributes1654829 ! Node: Label Attributes1655821 ! Node: Enumerator Attributes1657848 ! Node: Statement Attributes1659167 ! Node: Attribute Syntax1660650 ! Node: Function Prototypes1671908 ! Node: C++ Comments1673688 ! Node: Dollar Signs1674207 ! Node: Character Escapes1674672 ! Node: Alignment1674956 ! Node: Inline1676609 ! Node: Volatiles1681426 ! Node: Using Assembly Language with C1684325 ! Node: Basic Asm1685562 ! Node: Extended Asm1691012 ! Ref: Volatile1695126 ! Ref: AssemblerTemplate1699239 ! Ref: OutputOperands1703479 ! Ref: FlagOutputOperands1710442 ! Ref: InputOperands1713389 ! Ref: Clobbers and Scratch Registers1717657 ! Ref: GotoLabels1726298 ! Ref: x86Operandmodifiers1729921 ! Ref: x86floatingpointasmoperands1734737 ! Ref: msp430Operandmodifiers1738066 ! Node: Constraints1739724 ! Node: Simple Constraints1740830 ! Node: Multi-Alternative1748144 ! Node: Modifiers1749819 ! Node: Machine Constraints1752618 ! Node: Asm Labels1808843 ! Node: Explicit Register Variables1810463 ! Ref: Explicit Reg Vars1810677 ! Node: Global Register Variables1811286 ! Ref: Global Reg Vars1811494 ! Node: Local Register Variables1816276 ! Ref: Local Reg Vars1816496 ! Node: Size of an asm1820124 ! Node: Alternate Keywords1821602 ! Node: Incomplete Enums1823107 ! Node: Function Names1823864 ! Node: Return Address1825768 ! Node: Vector Extensions1830355 ! Node: Offsetof1840120 ! Node: __sync Builtins1840953 ! Node: __atomic Builtins1847396 ! Node: Integer Overflow Builtins1861021 ! Node: x86 specific memory model extensions for transactional memory1867504 ! Node: Object Size Checking1868770 ! Node: Other Builtins1875026 ! Node: Target Builtins1926674 ! Node: AArch64 Built-in Functions1928449 ! Node: Alpha Built-in Functions1929137 ! Node: Altera Nios II Built-in Functions1932185 ! Node: ARC Built-in Functions1936554 ! Node: ARC SIMD Built-in Functions1941766 ! Node: ARM iWMMXt Built-in Functions1950662 ! Node: ARM C Language Extensions (ACLE)1957658 ! Node: ARM Floating Point Status and Control Intrinsics1958935 ! Node: ARM ARMv8-M Security Extensions1959420 ! Node: AVR Built-in Functions1960700 ! Node: Blackfin Built-in Functions1964461 ! Node: BPF Built-in Functions1965079 ! Node: FR-V Built-in Functions1965979 ! Node: Argument Types1966842 ! Node: Directly-mapped Integer Functions1968596 ! Node: Directly-mapped Media Functions1969680 ! Node: Raw read/write Functions1977886 ! Node: Other Built-in Functions1978794 ! Node: MIPS DSP Built-in Functions1979980 ! Node: MIPS Paired-Single Support1992477 ! Node: MIPS Loongson Built-in Functions1993976 ! Node: Paired-Single Arithmetic2000498 ! Node: Paired-Single Built-in Functions2001446 ! Node: MIPS-3D Built-in Functions2004113 ! Node: MIPS SIMD Architecture (MSA) Support2009507 ! Node: MIPS SIMD Architecture Built-in Functions2012347 ! Node: Other MIPS Built-in Functions2039201 ! Node: MSP430 Built-in Functions2040210 ! Node: NDS32 Built-in Functions2041611 ! Node: picoChip Built-in Functions2042904 ! Node: Basic PowerPC Built-in Functions2044253 ! Node: Basic PowerPC Built-in Functions Available on all Configurations2045111 ! Node: Basic PowerPC Built-in Functions Available on ISA 2.052053620 ! Node: Basic PowerPC Built-in Functions Available on ISA 2.062058455 ! Node: Basic PowerPC Built-in Functions Available on ISA 2.072060535 ! Node: Basic PowerPC Built-in Functions Available on ISA 3.02061389 ! Node: Basic PowerPC Built-in Functions Available on ISA 3.12068367 ! Node: PowerPC AltiVec/VSX Built-in Functions2071580 ! Node: PowerPC AltiVec Built-in Functions on ISA 2.052079649 ! Node: PowerPC AltiVec Built-in Functions Available on ISA 2.062105049 ! Node: PowerPC AltiVec Built-in Functions Available on ISA 2.072112115 ! Node: PowerPC AltiVec Built-in Functions Available on ISA 3.02121925 ! Node: PowerPC AltiVec Built-in Functions Available on ISA 3.12137642 ! Node: PowerPC Hardware Transactional Memory Built-in Functions2170865 ! Node: PowerPC Atomic Memory Operation Functions2179380 ! Node: PowerPC Matrix-Multiply Assist Built-in Functions2181943 ! Node: PRU Built-in Functions2188068 ! Node: RISC-V Built-in Functions2189256 ! Node: RX Built-in Functions2189667 ! Node: S/390 System z Built-in Functions2193669 ! Node: SH Built-in Functions2198899 ! Node: SPARC VIS Built-in Functions2200627 ! Node: TI C6X Built-in Functions2209158 ! Node: TILE-Gx Built-in Functions2210189 ! Node: TILEPro Built-in Functions2211308 ! Node: x86 Built-in Functions2212408 ! Node: x86 transactional memory intrinsics2276488 ! Node: x86 control-flow protection intrinsics2279755 ! Node: Target Format Checks2281526 ! Node: Solaris Format Checks2281958 ! Node: Darwin Format Checks2282384 ! Node: Pragmas2283347 ! Node: AArch64 Pragmas2284288 ! Node: ARM Pragmas2284745 ! Node: M32C Pragmas2285372 ! Node: MeP Pragmas2286444 ! Node: PRU Pragmas2288496 ! Node: RS/6000 and PowerPC Pragmas2289074 ! Node: S/390 Pragmas2289814 ! Node: Darwin Pragmas2290380 ! Node: Solaris Pragmas2291433 ! Node: Symbol-Renaming Pragmas2292597 ! Node: Structure-Layout Pragmas2294234 ! Node: Weak Pragmas2296514 ! Node: Diagnostic Pragmas2297249 ! Node: Visibility Pragmas2301440 ! Node: Push/Pop Macro Pragmas2302125 ! Node: Function Specific Option Pragmas2303098 ! Node: Loop-Specific Pragmas2305064 ! Node: Unnamed Fields2306664 ! Node: Thread-Local2308861 ! Node: C99 Thread-Local Edits2310967 ! Node: C++98 Thread-Local Edits2312965 ! Node: Binary constants2316410 ! Node: C++ Extensions2317081 ! Node: C++ Volatiles2318711 ! Node: Restricted Pointers2321059 ! Node: Vague Linkage2322650 ! Node: C++ Interface2326273 ! Ref: C++ Interface-Footnote-12330070 ! Node: Template Instantiation2330208 ! Node: Bound member functions2336299 ! Node: C++ Attributes2337831 ! Node: Function Multiversioning2341903 ! Node: Type Traits2343710 ! Node: C++ Concepts2350660 ! Node: Deprecated Features2352166 ! Node: Backwards Compatibility2353991 ! Node: Objective-C2355063 ! Node: GNU Objective-C runtime API2355670 ! Node: Modern GNU Objective-C runtime API2356677 ! Node: Traditional GNU Objective-C runtime API2359113 ! Node: Executing code before main2359840 ! Node: What you can and what you cannot do in +load2362584 ! Node: Type encoding2364954 ! Node: Legacy type encoding2370095 ! Node: @encode2371185 ! Node: Method signatures2371730 ! Node: Garbage Collection2373722 ! Node: Constant string objects2376412 ! Node: compatibility_alias2378921 ! Node: Exceptions2379646 ! Node: Synchronization2382356 ! Node: Fast enumeration2383540 ! Node: Using fast enumeration2383852 ! Node: c99-like fast enumeration syntax2385063 ! Node: Fast enumeration details2385766 ! Node: Fast enumeration protocol2388106 ! Node: Messaging with the GNU Objective-C runtime2391258 ! Node: Dynamically registering methods2392630 ! Node: Forwarding hook2394321 ! Node: Compatibility2397361 ! Node: Gcov2403917 ! Node: Gcov Intro2404452 ! Node: Invoking Gcov2407170 ! Node: Gcov and Optimization2430036 ! Node: Gcov Data Files2433779 ! Node: Cross-profiling2435188 ! Node: Gcov-tool2437042 ! Node: Gcov-tool Intro2437467 ! Node: Invoking Gcov-tool2439437 ! Node: Gcov-dump2442015 ! Node: Gcov-dump Intro2442338 ! Node: Invoking Gcov-dump2442605 ! Node: lto-dump2443262 ! Node: lto-dump Intro2443561 ! Node: Invoking lto-dump2443811 ! Node: Trouble2444907 ! Node: Actual Bugs2446324 ! Node: Interoperation2446771 ! Node: Incompatibilities2453662 ! Node: Fixed Headers2461814 ! Node: Standard Libraries2463472 ! Node: Disappointments2464844 ! Node: C++ Misunderstandings2469203 ! Node: Static Definitions2470014 ! Node: Name lookup2471067 ! Ref: Name lookup-Footnote-12475848 ! Node: Temporaries2476037 ! Node: Copy Assignment2478013 ! Node: Non-bugs2479848 ! Node: Warnings and Errors2490354 ! Node: Bugs2492116 ! Node: Bug Criteria2492583 ! Node: Bug Reporting2494793 ! Node: Service2495011 ! Node: Contributing2495831 ! Node: Funding2496572 ! Node: GNU Project2499062 ! Node: Copying2499708 ! Node: GNU Free Documentation License2537216 ! Node: Contributors2562334 ! Node: Option Index2603307 ! Node: Keyword Index2893457  End Tag Table + +  + Local Variables: + coding: utf-8 + End: diff -Nrcpad gcc-11.3.0/gcc/doc/gccinstall.info gcc-11.4.0/gcc/doc/gccinstall.info *** gcc-11.3.0/gcc/doc/gccinstall.info Thu Apr 21 08:20:53 2022 --- gcc-11.4.0/gcc/doc/gccinstall.info Mon May 29 09:02:37 2023 *************** *** 1,4 **** ! This is gccinstall.info, produced by makeinfo version 6.5 from install.texi. Copyright (C) 1988-2021 Free Software Foundation, Inc. --- 1,4 ---- ! This is gccinstall.info, produced by makeinfo version 6.8 from install.texi. Copyright (C) 1988-2021 Free Software Foundation, Inc. *************** Concept Index *** 4877,4883 **** * Menu: * Binaries: Binaries. (line 6) ! * build_configargs: Configuration. (line 1758) * Configuration: Configuration. (line 6) * configurations supported by GCC: Configurations. (line 6) * Downloading GCC: Downloading the source. --- 4877,4883 ---- * Menu: * Binaries: Binaries. (line 6) ! * build_configargs: Configuration. (line 1757) * Configuration: Configuration. (line 6) * configurations supported by GCC: Configurations. (line 6) * Downloading GCC: Downloading the source. *************** Concept Index *** 4887,4893 **** * FDL, GNU Free Documentation License: GNU Free Documentation License. (line 6) * Host specific installation: Specific. (line 6) ! * host_configargs: Configuration. (line 1762) * Installing GCC: Binaries: Binaries. (line 6) * Installing GCC: Building: Building. (line 6) * Installing GCC: Configuration: Configuration. (line 6) --- 4887,4893 ---- * FDL, GNU Free Documentation License: GNU Free Documentation License. (line 6) * Host specific installation: Specific. (line 6) ! * host_configargs: Configuration. (line 1761) * Installing GCC: Binaries: Binaries. (line 6) * Installing GCC: Building: Building. (line 6) * Installing GCC: Configuration: Configuration. (line 6) *************** Concept Index *** 4897,4903 **** * Specific installation notes: Specific. (line 6) * Target specific installation: Specific. (line 6) * Target specific installation notes: Specific. (line 6) ! * target_configargs: Configuration. (line 1766) * Testing: Testing. (line 6) * Testsuite: Testing. (line 6) --- 4897,4903 ---- * Specific installation notes: Specific. (line 6) * Target specific installation: Specific. (line 6) * Target specific installation notes: Specific. (line 6) ! * target_configargs: Configuration. (line 1765) * Testing: Testing. (line 6) * Testsuite: Testing. (line 6) *************** Node: GNU Free Documentation License189 *** 5008,5010 **** --- 5008,5015 ---- Node: Concept Index214684  End Tag Table + +  + Local Variables: + coding: utf-8 + End: diff -Nrcpad gcc-11.3.0/gcc/doc/gccint.info gcc-11.4.0/gcc/doc/gccint.info *** gcc-11.3.0/gcc/doc/gccint.info Thu Apr 21 08:21:01 2022 --- gcc-11.4.0/gcc/doc/gccint.info Mon May 29 09:02:47 2023 *************** *** 1,4 **** ! This is gccint.info, produced by makeinfo version 6.5 from gccint.texi. Copyright (C) 1988-2021 Free Software Foundation, Inc. --- 1,4 ---- ! This is gccint.info, produced by makeinfo version 6.8 from gccint.texi. Copyright (C) 1988-2021 Free Software Foundation, Inc. *************** Copies published by the Free Software Fo *** 47,53 **** development.  ! File: gccint.info, Node: Top, Next: Contributing Introduction ************ --- 47,53 ---- development.  ! File: gccint.info, Node: Top, Next: Contributing, Up: (dir) Introduction ************ *************** Introduction *** 55,61 **** This manual documents the internals of the GNU compilers, including how to port them to new targets and some information about how to write front ends for new languages. It corresponds to the compilers (GCC) ! version 11.3.0. The use of the GNU compilers is documented in a separate manual. *Note Introduction: (gcc)Top. This manual is mainly a reference manual rather than a tutorial. It --- 55,61 ---- This manual documents the internals of the GNU compilers, including how to port them to new targets and some information about how to write front ends for new languages. It corresponds to the compilers (GCC) ! version 11.4.0. The use of the GNU compilers is documented in a separate manual. *Note Introduction: (gcc)Top. This manual is mainly a reference manual rather than a tutorial. It *************** File: gccint.info, Node: GIMPLE_CALL, *** 14083,14089 **** call needs no further simplification. All the call flags in 'call_expr' are copied over to the new 'GIMPLE_CALL'. ! -- GIMPLE function: gcall *gimple_build_call_vec (tree fn, 'vec' args) Identical to 'gimple_build_call' but the arguments are stored in a 'vec'. --- 14083,14089 ---- call needs no further simplification. All the call flags in 'call_expr' are copied over to the new 'GIMPLE_CALL'. ! -- GIMPLE function: gcall *gimple_build_call_vec (tree fn, vec args) Identical to 'gimple_build_call' but the arguments are stored in a 'vec'. *************** File: gccint.info, Node: GIMPLE_SWITCH, *** 14890,14896 **** ----------------------- -- GIMPLE function: gswitch *gimple_build_switch (tree index, tree ! default_label, 'vec' *args) Build a 'GIMPLE_SWITCH' statement. 'INDEX' is the index variable to switch on, and 'DEFAULT_LABEL' represents the default label. 'ARGS' is a vector of 'CASE_LABEL_EXPR' trees that contain the --- 14890,14896 ---- ----------------------- -- GIMPLE function: gswitch *gimple_build_switch (tree index, tree ! default_label, vec *args) Build a 'GIMPLE_SWITCH' statement. 'INDEX' is the index variable to switch on, and 'DEFAULT_LABEL' represents the default label. 'ARGS' is a vector of 'CASE_LABEL_EXPR' trees that contain the *************** alphabetical order. *** 48980,48986 **** * Ralf Corsepius for SH testing and minor bug fixing. ! * Franc,ois-Xavier Coudert for contributions to GNU Fortran. * Stan Cox for care and feeding of the x86 port and lots of behind the scenes hacking. --- 48980,48986 ---- * Ralf Corsepius for SH testing and minor bug fixing. ! * François-Xavier Coudert for contributions to GNU Fortran. * Stan Cox for care and feeding of the x86 port and lots of behind the scenes hacking. *************** alphabetical order. *** 49023,49029 **** disbursement, configuration architecture, libio maintenance, and early math work. ! * Franc,ois Dumont for his work on libstdc++-v3, especially maintaining and improving 'debug-mode' and associative and unordered containers. --- 49023,49029 ---- disbursement, configuration architecture, libio maintenance, and early math work. ! * François Dumont for his work on libstdc++-v3, especially maintaining and improving 'debug-mode' and associative and unordered containers. *************** alphabetical order. *** 49282,49294 **** * Weiwen Liu for testing and various bug fixes. ! * Manuel Lo'pez-Iba'n~ez for improving '-Wconversion' and many other diagnostics fixes and improvements. * Dave Love for his ongoing work with the Fortran front end and runtime libraries. ! * Martin von Lo"wis for internal consistency checking infrastructure, various C++ improvements including namespace support, and tons of assistance with libstdc++/compiler merges. --- 49282,49294 ---- * Weiwen Liu for testing and various bug fixes. ! * Manuel López-Ibáñez for improving '-Wconversion' and many other diagnostics fixes and improvements. * Dave Love for his ongoing work with the Fortran front end and runtime libraries. ! * Martin von Löwis for internal consistency checking infrastructure, various C++ improvements including namespace support, and tons of assistance with libstdc++/compiler merges. *************** alphabetical order. *** 49480,49486 **** * Craig Rodrigues for processing tons of bug reports. ! * Ola Ro"nnerup for work on mt_alloc. * Gavin Romig-Koch for lots of behind the scenes MIPS work. --- 49480,49486 ---- * Craig Rodrigues for processing tons of bug reports. ! * Ola Rönnerup for work on mt_alloc. * Gavin Romig-Koch for lots of behind the scenes MIPS work. *************** alphabetical order. *** 49494,49500 **** * Paul Rubin wrote most of the preprocessor. ! * Pe'tur Runo'lfsson for major performance improvements in C++ formatted I/O and large file support in C++ filebuf. * Chip Salzenberg for libstdc++ patches and improvements to locales, --- 49494,49500 ---- * Paul Rubin wrote most of the preprocessor. ! * Pétur Runólfsson for major performance improvements in C++ formatted I/O and large file support in C++ filebuf. * Chip Salzenberg for libstdc++ patches and improvements to locales, *************** alphabetical order. *** 49515,49521 **** * William Schelter did most of the work on the Intel 80386 support. ! * Tobias Schlu"ter for work on GNU Fortran. * Bernd Schmidt for various code generation improvements and major work in the reload pass, serving as release manager for GCC 2.95.3, --- 49515,49521 ---- * William Schelter did most of the work on the Intel 80386 support. ! * Tobias Schlüter for work on GNU Fortran. * Bernd Schmidt for various code generation improvements and major work in the reload pass, serving as release manager for GCC 2.95.3, *************** contributions to testing: *** 50012,50018 **** * Robert A. French ! * Jo"rgen Freyh * Mark K. Gardner --- 50012,50018 ---- * Robert A. French ! * Jörgen Freyh * Mark K. Gardner *************** Concept Index *** 50234,50276 **** * __absvsi2: Integer library routines. (line 105) * __addda3: Fixed-point fractional library routines. ! (line 52) * __adddf3: Soft float library routines. (line 22) * __adddq3: Fixed-point fractional library routines. ! (line 39) * __addha3: Fixed-point fractional library routines. ! (line 49) * __addhq3: Fixed-point fractional library routines. ! (line 37) * __addqq3: Fixed-point fractional library routines. ! (line 35) * __addsa3: Fixed-point fractional library routines. ! (line 51) * __addsf3: Soft float library routines. (line 21) * __addsq3: Fixed-point fractional library routines. ! (line 38) * __addta3: Fixed-point fractional library routines. ! (line 53) * __addtf3: Soft float library routines. (line 23) * __adduda3: Fixed-point fractional library routines. ! (line 59) * __addudq3: Fixed-point fractional library routines. ! (line 47) * __adduha3: Fixed-point fractional library routines. ! (line 55) * __adduhq3: Fixed-point fractional library routines. ! (line 43) * __adduqq3: Fixed-point fractional library routines. ! (line 41) * __addusa3: Fixed-point fractional library routines. ! (line 57) * __addusq3: Fixed-point fractional library routines. ! (line 45) * __adduta3: Fixed-point fractional library routines. ! (line 61) * __addvdi3: Integer library routines. (line 110) * __addvsi3: Integer library routines. --- 50234,50276 ---- * __absvsi2: Integer library routines. (line 105) * __addda3: Fixed-point fractional library routines. ! (line 44) * __adddf3: Soft float library routines. (line 22) * __adddq3: Fixed-point fractional library routines. ! (line 31) * __addha3: Fixed-point fractional library routines. ! (line 41) * __addhq3: Fixed-point fractional library routines. ! (line 29) * __addqq3: Fixed-point fractional library routines. ! (line 27) * __addsa3: Fixed-point fractional library routines. ! (line 43) * __addsf3: Soft float library routines. (line 21) * __addsq3: Fixed-point fractional library routines. ! (line 30) * __addta3: Fixed-point fractional library routines. ! (line 45) * __addtf3: Soft float library routines. (line 23) * __adduda3: Fixed-point fractional library routines. ! (line 51) * __addudq3: Fixed-point fractional library routines. ! (line 39) * __adduha3: Fixed-point fractional library routines. ! (line 47) * __adduhq3: Fixed-point fractional library routines. ! (line 35) * __adduqq3: Fixed-point fractional library routines. ! (line 33) * __addusa3: Fixed-point fractional library routines. ! (line 49) * __addusq3: Fixed-point fractional library routines. ! (line 37) * __adduta3: Fixed-point fractional library routines. ! (line 53) * __addvdi3: Integer library routines. (line 110) * __addvsi3: Integer library routines. *************** Concept Index *** 50278,50340 **** * __addxf3: Soft float library routines. (line 25) * __ashlda3: Fixed-point fractional library routines. ! (line 358) * __ashldi3: Integer library routines. (line 13) * __ashldq3: Fixed-point fractional library routines. ! (line 346) * __ashlha3: Fixed-point fractional library routines. ! (line 356) * __ashlhq3: Fixed-point fractional library routines. ! (line 344) * __ashlqq3: Fixed-point fractional library routines. ! (line 343) * __ashlsa3: Fixed-point fractional library routines. ! (line 357) * __ashlsi3: Integer library routines. (line 12) * __ashlsq3: Fixed-point fractional library routines. ! (line 345) * __ashlta3: Fixed-point fractional library routines. ! (line 359) * __ashlti3: Integer library routines. (line 14) * __ashluda3: Fixed-point fractional library routines. ! (line 365) * __ashludq3: Fixed-point fractional library routines. ! (line 354) * __ashluha3: Fixed-point fractional library routines. ! (line 361) * __ashluhq3: Fixed-point fractional library routines. ! (line 350) * __ashluqq3: Fixed-point fractional library routines. ! (line 348) * __ashlusa3: Fixed-point fractional library routines. ! (line 363) * __ashlusq3: Fixed-point fractional library routines. ! (line 352) * __ashluta3: Fixed-point fractional library routines. ! (line 367) * __ashrda3: Fixed-point fractional library routines. ! (line 378) * __ashrdi3: Integer library routines. (line 18) * __ashrdq3: Fixed-point fractional library routines. ! (line 374) * __ashrha3: Fixed-point fractional library routines. ! (line 376) * __ashrhq3: Fixed-point fractional library routines. ! (line 372) * __ashrqq3: Fixed-point fractional library routines. ! (line 371) * __ashrsa3: Fixed-point fractional library routines. ! (line 377) * __ashrsi3: Integer library routines. (line 17) * __ashrsq3: Fixed-point fractional library routines. ! (line 373) * __ashrta3: Fixed-point fractional library routines. ! (line 379) * __ashrti3: Integer library routines. (line 19) * __bid_adddd3: Decimal float library routines. --- 50278,50340 ---- * __addxf3: Soft float library routines. (line 25) * __ashlda3: Fixed-point fractional library routines. ! (line 350) * __ashldi3: Integer library routines. (line 13) * __ashldq3: Fixed-point fractional library routines. ! (line 338) * __ashlha3: Fixed-point fractional library routines. ! (line 348) * __ashlhq3: Fixed-point fractional library routines. ! (line 336) * __ashlqq3: Fixed-point fractional library routines. ! (line 335) * __ashlsa3: Fixed-point fractional library routines. ! (line 349) * __ashlsi3: Integer library routines. (line 12) * __ashlsq3: Fixed-point fractional library routines. ! (line 337) * __ashlta3: Fixed-point fractional library routines. ! (line 351) * __ashlti3: Integer library routines. (line 14) * __ashluda3: Fixed-point fractional library routines. ! (line 357) * __ashludq3: Fixed-point fractional library routines. ! (line 346) * __ashluha3: Fixed-point fractional library routines. ! (line 353) * __ashluhq3: Fixed-point fractional library routines. ! (line 342) * __ashluqq3: Fixed-point fractional library routines. ! (line 340) * __ashlusa3: Fixed-point fractional library routines. ! (line 355) * __ashlusq3: Fixed-point fractional library routines. ! (line 344) * __ashluta3: Fixed-point fractional library routines. ! (line 359) * __ashrda3: Fixed-point fractional library routines. ! (line 370) * __ashrdi3: Integer library routines. (line 18) * __ashrdq3: Fixed-point fractional library routines. ! (line 366) * __ashrha3: Fixed-point fractional library routines. ! (line 368) * __ashrhq3: Fixed-point fractional library routines. ! (line 364) * __ashrqq3: Fixed-point fractional library routines. ! (line 363) * __ashrsa3: Fixed-point fractional library routines. ! (line 369) * __ashrsi3: Integer library routines. (line 17) * __ashrsq3: Fixed-point fractional library routines. ! (line 365) * __ashrta3: Fixed-point fractional library routines. ! (line 371) * __ashrti3: Integer library routines. (line 19) * __bid_adddd3: Decimal float library routines. *************** Concept Index *** 50533,50579 **** * __clzti2: Integer library routines. (line 131) * __cmpda2: Fixed-point fractional library routines. ! (line 458) * __cmpdf2: Soft float library routines. (line 163) * __cmpdi2: Integer library routines. (line 86) * __cmpdq2: Fixed-point fractional library routines. ! (line 447) * __cmpha2: Fixed-point fractional library routines. ! (line 456) * __cmphq2: Fixed-point fractional library routines. ! (line 445) * __cmpqq2: Fixed-point fractional library routines. ! (line 444) * __cmpsa2: Fixed-point fractional library routines. ! (line 457) * __cmpsf2: Soft float library routines. (line 162) * __cmpsq2: Fixed-point fractional library routines. ! (line 446) * __cmpta2: Fixed-point fractional library routines. ! (line 459) * __cmptf2: Soft float library routines. (line 164) * __cmpti2: Integer library routines. (line 87) * __cmpuda2: Fixed-point fractional library routines. ! (line 464) * __cmpudq2: Fixed-point fractional library routines. ! (line 454) * __cmpuha2: Fixed-point fractional library routines. ! (line 461) * __cmpuhq2: Fixed-point fractional library routines. ! (line 451) * __cmpuqq2: Fixed-point fractional library routines. ! (line 449) * __cmpusa2: Fixed-point fractional library routines. ! (line 463) * __cmpusq2: Fixed-point fractional library routines. ! (line 452) * __cmputa2: Fixed-point fractional library routines. ! (line 466) * __CTOR_LIST__: Initialization. (line 25) * __ctzdi2: Integer library routines. (line 137) --- 50533,50579 ---- * __clzti2: Integer library routines. (line 131) * __cmpda2: Fixed-point fractional library routines. ! (line 450) * __cmpdf2: Soft float library routines. (line 163) * __cmpdi2: Integer library routines. (line 86) * __cmpdq2: Fixed-point fractional library routines. ! (line 439) * __cmpha2: Fixed-point fractional library routines. ! (line 448) * __cmphq2: Fixed-point fractional library routines. ! (line 437) * __cmpqq2: Fixed-point fractional library routines. ! (line 436) * __cmpsa2: Fixed-point fractional library routines. ! (line 449) * __cmpsf2: Soft float library routines. (line 162) * __cmpsq2: Fixed-point fractional library routines. ! (line 438) * __cmpta2: Fixed-point fractional library routines. ! (line 451) * __cmptf2: Soft float library routines. (line 164) * __cmpti2: Integer library routines. (line 87) * __cmpuda2: Fixed-point fractional library routines. ! (line 456) * __cmpudq2: Fixed-point fractional library routines. ! (line 446) * __cmpuha2: Fixed-point fractional library routines. ! (line 453) * __cmpuhq2: Fixed-point fractional library routines. ! (line 443) * __cmpuqq2: Fixed-point fractional library routines. ! (line 441) * __cmpusa2: Fixed-point fractional library routines. ! (line 455) * __cmpusq2: Fixed-point fractional library routines. ! (line 444) * __cmputa2: Fixed-point fractional library routines. ! (line 458) * __CTOR_LIST__: Initialization. (line 25) * __ctzdi2: Integer library routines. (line 137) *************** Concept Index *** 50582,50588 **** * __ctzti2: Integer library routines. (line 138) * __divda3: Fixed-point fractional library routines. ! (line 234) * __divdc3: Soft float library routines. (line 250) * __divdf3: Soft float library routines. --- 50582,50588 ---- * __ctzti2: Integer library routines. (line 138) * __divda3: Fixed-point fractional library routines. ! (line 226) * __divdc3: Soft float library routines. (line 250) * __divdf3: Soft float library routines. *************** Concept Index *** 50590,50604 **** * __divdi3: Integer library routines. (line 24) * __divdq3: Fixed-point fractional library routines. ! (line 229) * __divha3: Fixed-point fractional library routines. ! (line 231) * __divhq3: Fixed-point fractional library routines. ! (line 227) * __divqq3: Fixed-point fractional library routines. ! (line 225) * __divsa3: Fixed-point fractional library routines. ! (line 233) * __divsc3: Soft float library routines. (line 248) * __divsf3: Soft float library routines. --- 50590,50604 ---- * __divdi3: Integer library routines. (line 24) * __divdq3: Fixed-point fractional library routines. ! (line 221) * __divha3: Fixed-point fractional library routines. ! (line 223) * __divhq3: Fixed-point fractional library routines. ! (line 219) * __divqq3: Fixed-point fractional library routines. ! (line 217) * __divsa3: Fixed-point fractional library routines. ! (line 225) * __divsc3: Soft float library routines. (line 248) * __divsf3: Soft float library routines. *************** Concept Index *** 50606,50614 **** * __divsi3: Integer library routines. (line 23) * __divsq3: Fixed-point fractional library routines. ! (line 228) * __divta3: Fixed-point fractional library routines. ! (line 235) * __divtc3: Soft float library routines. (line 252) * __divtf3: Soft float library routines. --- 50606,50614 ---- * __divsi3: Integer library routines. (line 23) * __divsq3: Fixed-point fractional library routines. ! (line 220) * __divta3: Fixed-point fractional library routines. ! (line 227) * __divtc3: Soft float library routines. (line 252) * __divtf3: Soft float library routines. *************** Concept Index *** 50917,52169 **** * __floatuntixf: Soft float library routines. (line 153) * __fractdadf: Fixed-point fractional library routines. ! (line 643) * __fractdadi: Fixed-point fractional library routines. ! (line 640) * __fractdadq: Fixed-point fractional library routines. ! (line 623) * __fractdaha2: Fixed-point fractional library routines. ! (line 624) * __fractdahi: Fixed-point fractional library routines. ! (line 638) * __fractdahq: Fixed-point fractional library routines. ! (line 621) * __fractdaqi: Fixed-point fractional library routines. ! (line 637) * __fractdaqq: Fixed-point fractional library routines. ! (line 620) * __fractdasa2: Fixed-point fractional library routines. ! (line 625) * __fractdasf: Fixed-point fractional library routines. ! (line 642) * __fractdasi: Fixed-point fractional library routines. ! (line 639) * __fractdasq: Fixed-point fractional library routines. ! (line 622) * __fractdata2: Fixed-point fractional library routines. ! (line 626) * __fractdati: Fixed-point fractional library routines. ! (line 641) * __fractdauda: Fixed-point fractional library routines. ! (line 634) * __fractdaudq: Fixed-point fractional library routines. ! (line 630) * __fractdauha: Fixed-point fractional library routines. ! (line 632) * __fractdauhq: Fixed-point fractional library routines. ! (line 628) * __fractdauqq: Fixed-point fractional library routines. ! (line 627) * __fractdausa: Fixed-point fractional library routines. ! (line 633) * __fractdausq: Fixed-point fractional library routines. ! (line 629) * __fractdauta: Fixed-point fractional library routines. ! (line 635) * __fractdfda: Fixed-point fractional library routines. ! (line 1032) * __fractdfdq: Fixed-point fractional library routines. ! (line 1029) * __fractdfha: Fixed-point fractional library routines. ! (line 1030) * __fractdfhq: Fixed-point fractional library routines. ! (line 1027) * __fractdfqq: Fixed-point fractional library routines. ! (line 1026) * __fractdfsa: Fixed-point fractional library routines. ! (line 1031) * __fractdfsq: Fixed-point fractional library routines. ! (line 1028) * __fractdfta: Fixed-point fractional library routines. ! (line 1033) * __fractdfuda: Fixed-point fractional library routines. ! (line 1040) * __fractdfudq: Fixed-point fractional library routines. ! (line 1037) * __fractdfuha: Fixed-point fractional library routines. ! (line 1038) * __fractdfuhq: Fixed-point fractional library routines. ! (line 1035) * __fractdfuqq: Fixed-point fractional library routines. ! (line 1034) * __fractdfusa: Fixed-point fractional library routines. ! (line 1039) * __fractdfusq: Fixed-point fractional library routines. ! (line 1036) * __fractdfuta: Fixed-point fractional library routines. ! (line 1041) * __fractdida: Fixed-point fractional library routines. ! (line 982) * __fractdidq: Fixed-point fractional library routines. ! (line 979) * __fractdiha: Fixed-point fractional library routines. ! (line 980) * __fractdihq: Fixed-point fractional library routines. ! (line 977) * __fractdiqq: Fixed-point fractional library routines. ! (line 976) * __fractdisa: Fixed-point fractional library routines. ! (line 981) * __fractdisq: Fixed-point fractional library routines. ! (line 978) * __fractdita: Fixed-point fractional library routines. ! (line 983) * __fractdiuda: Fixed-point fractional library routines. ! (line 990) * __fractdiudq: Fixed-point fractional library routines. ! (line 987) * __fractdiuha: Fixed-point fractional library routines. ! (line 988) * __fractdiuhq: Fixed-point fractional library routines. ! (line 985) * __fractdiuqq: Fixed-point fractional library routines. ! (line 984) * __fractdiusa: Fixed-point fractional library routines. ! (line 989) * __fractdiusq: Fixed-point fractional library routines. ! (line 986) * __fractdiuta: Fixed-point fractional library routines. ! (line 991) * __fractdqda: Fixed-point fractional library routines. ! (line 551) * __fractdqdf: Fixed-point fractional library routines. ! (line 573) * __fractdqdi: Fixed-point fractional library routines. ! (line 570) * __fractdqha: Fixed-point fractional library routines. ! (line 549) * __fractdqhi: Fixed-point fractional library routines. ! (line 568) * __fractdqhq2: Fixed-point fractional library routines. ! (line 547) * __fractdqqi: Fixed-point fractional library routines. ! (line 567) * __fractdqqq2: Fixed-point fractional library routines. ! (line 546) * __fractdqsa: Fixed-point fractional library routines. ! (line 550) * __fractdqsf: Fixed-point fractional library routines. ! (line 572) * __fractdqsi: Fixed-point fractional library routines. ! (line 569) * __fractdqsq2: Fixed-point fractional library routines. ! (line 548) * __fractdqta: Fixed-point fractional library routines. ! (line 552) * __fractdqti: Fixed-point fractional library routines. - (line 571) - * __fractdquda: Fixed-point fractional library routines. (line 563) * __fractdqudq: Fixed-point fractional library routines. ! (line 558) * __fractdquha: Fixed-point fractional library routines. ! (line 560) * __fractdquhq: Fixed-point fractional library routines. ! (line 555) * __fractdquqq: Fixed-point fractional library routines. ! (line 553) * __fractdqusa: Fixed-point fractional library routines. ! (line 562) * __fractdqusq: Fixed-point fractional library routines. ! (line 556) * __fractdquta: Fixed-point fractional library routines. ! (line 565) * __fracthada2: Fixed-point fractional library routines. ! (line 579) * __fracthadf: Fixed-point fractional library routines. ! (line 597) * __fracthadi: Fixed-point fractional library routines. ! (line 594) * __fracthadq: Fixed-point fractional library routines. ! (line 577) * __fracthahi: Fixed-point fractional library routines. ! (line 592) * __fracthahq: Fixed-point fractional library routines. ! (line 575) * __fracthaqi: Fixed-point fractional library routines. ! (line 591) * __fracthaqq: Fixed-point fractional library routines. ! (line 574) * __fracthasa2: Fixed-point fractional library routines. ! (line 578) * __fracthasf: Fixed-point fractional library routines. ! (line 596) * __fracthasi: Fixed-point fractional library routines. ! (line 593) * __fracthasq: Fixed-point fractional library routines. ! (line 576) * __fracthata2: Fixed-point fractional library routines. ! (line 580) * __fracthati: Fixed-point fractional library routines. ! (line 595) * __fracthauda: Fixed-point fractional library routines. ! (line 588) * __fracthaudq: Fixed-point fractional library routines. ! (line 584) * __fracthauha: Fixed-point fractional library routines. ! (line 586) * __fracthauhq: Fixed-point fractional library routines. ! (line 582) * __fracthauqq: Fixed-point fractional library routines. ! (line 581) * __fracthausa: Fixed-point fractional library routines. ! (line 587) * __fracthausq: Fixed-point fractional library routines. ! (line 583) * __fracthauta: Fixed-point fractional library routines. ! (line 589) * __fracthida: Fixed-point fractional library routines. ! (line 950) * __fracthidq: Fixed-point fractional library routines. ! (line 947) * __fracthiha: Fixed-point fractional library routines. ! (line 948) * __fracthihq: Fixed-point fractional library routines. ! (line 945) * __fracthiqq: Fixed-point fractional library routines. ! (line 944) * __fracthisa: Fixed-point fractional library routines. ! (line 949) * __fracthisq: Fixed-point fractional library routines. ! (line 946) * __fracthita: Fixed-point fractional library routines. ! (line 951) * __fracthiuda: Fixed-point fractional library routines. ! (line 958) * __fracthiudq: Fixed-point fractional library routines. ! (line 955) * __fracthiuha: Fixed-point fractional library routines. ! (line 956) * __fracthiuhq: Fixed-point fractional library routines. ! (line 953) * __fracthiuqq: Fixed-point fractional library routines. ! (line 952) * __fracthiusa: Fixed-point fractional library routines. ! (line 957) * __fracthiusq: Fixed-point fractional library routines. ! (line 954) * __fracthiuta: Fixed-point fractional library routines. ! (line 959) * __fracthqda: Fixed-point fractional library routines. ! (line 505) * __fracthqdf: Fixed-point fractional library routines. ! (line 521) * __fracthqdi: Fixed-point fractional library routines. ! (line 518) * __fracthqdq2: Fixed-point fractional library routines. ! (line 502) * __fracthqha: Fixed-point fractional library routines. ! (line 503) * __fracthqhi: Fixed-point fractional library routines. ! (line 516) * __fracthqqi: Fixed-point fractional library routines. ! (line 515) * __fracthqqq2: Fixed-point fractional library routines. ! (line 500) * __fracthqsa: Fixed-point fractional library routines. ! (line 504) * __fracthqsf: Fixed-point fractional library routines. ! (line 520) * __fracthqsi: Fixed-point fractional library routines. ! (line 517) * __fracthqsq2: Fixed-point fractional library routines. ! (line 501) * __fracthqta: Fixed-point fractional library routines. ! (line 506) * __fracthqti: Fixed-point fractional library routines. ! (line 519) * __fracthquda: Fixed-point fractional library routines. ! (line 513) * __fracthqudq: Fixed-point fractional library routines. ! (line 510) * __fracthquha: Fixed-point fractional library routines. ! (line 511) * __fracthquhq: Fixed-point fractional library routines. ! (line 508) * __fracthquqq: Fixed-point fractional library routines. ! (line 507) * __fracthqusa: Fixed-point fractional library routines. ! (line 512) * __fracthqusq: Fixed-point fractional library routines. ! (line 509) * __fracthquta: Fixed-point fractional library routines. ! (line 514) * __fractqida: Fixed-point fractional library routines. ! (line 932) * __fractqidq: Fixed-point fractional library routines. ! (line 929) * __fractqiha: Fixed-point fractional library routines. ! (line 930) * __fractqihq: Fixed-point fractional library routines. ! (line 927) * __fractqiqq: Fixed-point fractional library routines. ! (line 926) * __fractqisa: Fixed-point fractional library routines. ! (line 931) * __fractqisq: Fixed-point fractional library routines. ! (line 928) * __fractqita: Fixed-point fractional library routines. ! (line 933) * __fractqiuda: Fixed-point fractional library routines. ! (line 941) * __fractqiudq: Fixed-point fractional library routines. ! (line 937) * __fractqiuha: Fixed-point fractional library routines. ! (line 939) * __fractqiuhq: Fixed-point fractional library routines. ! (line 935) * __fractqiuqq: Fixed-point fractional library routines. ! (line 934) * __fractqiusa: Fixed-point fractional library routines. ! (line 940) * __fractqiusq: Fixed-point fractional library routines. ! (line 936) * __fractqiuta: Fixed-point fractional library routines. ! (line 942) * __fractqqda: Fixed-point fractional library routines. ! (line 481) * __fractqqdf: Fixed-point fractional library routines. ! (line 499) * __fractqqdi: Fixed-point fractional library routines. ! (line 496) * __fractqqdq2: Fixed-point fractional library routines. ! (line 478) * __fractqqha: Fixed-point fractional library routines. ! (line 479) * __fractqqhi: Fixed-point fractional library routines. ! (line 494) * __fractqqhq2: Fixed-point fractional library routines. ! (line 476) * __fractqqqi: Fixed-point fractional library routines. ! (line 493) * __fractqqsa: Fixed-point fractional library routines. ! (line 480) * __fractqqsf: Fixed-point fractional library routines. ! (line 498) * __fractqqsi: Fixed-point fractional library routines. ! (line 495) * __fractqqsq2: Fixed-point fractional library routines. ! (line 477) * __fractqqta: Fixed-point fractional library routines. ! (line 482) * __fractqqti: Fixed-point fractional library routines. ! (line 497) * __fractqquda: Fixed-point fractional library routines. ! (line 490) * __fractqqudq: Fixed-point fractional library routines. ! (line 486) * __fractqquha: Fixed-point fractional library routines. ! (line 488) * __fractqquhq: Fixed-point fractional library routines. ! (line 484) * __fractqquqq: Fixed-point fractional library routines. ! (line 483) * __fractqqusa: Fixed-point fractional library routines. ! (line 489) * __fractqqusq: Fixed-point fractional library routines. ! (line 485) * __fractqquta: Fixed-point fractional library routines. ! (line 491) * __fractsada2: Fixed-point fractional library routines. ! (line 603) * __fractsadf: Fixed-point fractional library routines. ! (line 619) * __fractsadi: Fixed-point fractional library routines. ! (line 616) * __fractsadq: Fixed-point fractional library routines. ! (line 601) * __fractsaha2: Fixed-point fractional library routines. ! (line 602) * __fractsahi: Fixed-point fractional library routines. ! (line 614) * __fractsahq: Fixed-point fractional library routines. ! (line 599) * __fractsaqi: Fixed-point fractional library routines. ! (line 613) * __fractsaqq: Fixed-point fractional library routines. ! (line 598) * __fractsasf: Fixed-point fractional library routines. ! (line 618) * __fractsasi: Fixed-point fractional library routines. ! (line 615) * __fractsasq: Fixed-point fractional library routines. ! (line 600) * __fractsata2: Fixed-point fractional library routines. ! (line 604) * __fractsati: Fixed-point fractional library routines. ! (line 617) * __fractsauda: Fixed-point fractional library routines. ! (line 611) * __fractsaudq: Fixed-point fractional library routines. ! (line 608) * __fractsauha: Fixed-point fractional library routines. ! (line 609) * __fractsauhq: Fixed-point fractional library routines. ! (line 606) * __fractsauqq: Fixed-point fractional library routines. ! (line 605) * __fractsausa: Fixed-point fractional library routines. ! (line 610) * __fractsausq: Fixed-point fractional library routines. ! (line 607) * __fractsauta: Fixed-point fractional library routines. ! (line 612) * __fractsfda: Fixed-point fractional library routines. ! (line 1016) * __fractsfdq: Fixed-point fractional library routines. ! (line 1013) * __fractsfha: Fixed-point fractional library routines. ! (line 1014) * __fractsfhq: Fixed-point fractional library routines. ! (line 1011) * __fractsfqq: Fixed-point fractional library routines. ! (line 1010) * __fractsfsa: Fixed-point fractional library routines. ! (line 1015) * __fractsfsq: Fixed-point fractional library routines. ! (line 1012) * __fractsfta: Fixed-point fractional library routines. ! (line 1017) * __fractsfuda: Fixed-point fractional library routines. ! (line 1024) * __fractsfudq: Fixed-point fractional library routines. ! (line 1021) * __fractsfuha: Fixed-point fractional library routines. ! (line 1022) * __fractsfuhq: Fixed-point fractional library routines. ! (line 1019) * __fractsfuqq: Fixed-point fractional library routines. ! (line 1018) * __fractsfusa: Fixed-point fractional library routines. ! (line 1023) * __fractsfusq: Fixed-point fractional library routines. ! (line 1020) * __fractsfuta: Fixed-point fractional library routines. ! (line 1025) * __fractsida: Fixed-point fractional library routines. ! (line 966) * __fractsidq: Fixed-point fractional library routines. ! (line 963) * __fractsiha: Fixed-point fractional library routines. ! (line 964) * __fractsihq: Fixed-point fractional library routines. ! (line 961) * __fractsiqq: Fixed-point fractional library routines. ! (line 960) * __fractsisa: Fixed-point fractional library routines. ! (line 965) * __fractsisq: Fixed-point fractional library routines. ! (line 962) * __fractsita: Fixed-point fractional library routines. ! (line 967) * __fractsiuda: Fixed-point fractional library routines. ! (line 974) * __fractsiudq: Fixed-point fractional library routines. ! (line 971) * __fractsiuha: Fixed-point fractional library routines. ! (line 972) * __fractsiuhq: Fixed-point fractional library routines. ! (line 969) * __fractsiuqq: Fixed-point fractional library routines. ! (line 968) * __fractsiusa: Fixed-point fractional library routines. ! (line 973) * __fractsiusq: Fixed-point fractional library routines. ! (line 970) * __fractsiuta: Fixed-point fractional library routines. ! (line 975) * __fractsqda: Fixed-point fractional library routines. ! (line 527) * __fractsqdf: Fixed-point fractional library routines. ! (line 545) * __fractsqdi: Fixed-point fractional library routines. ! (line 542) * __fractsqdq2: Fixed-point fractional library routines. ! (line 524) * __fractsqha: Fixed-point fractional library routines. ! (line 525) * __fractsqhi: Fixed-point fractional library routines. ! (line 540) * __fractsqhq2: Fixed-point fractional library routines. ! (line 523) * __fractsqqi: Fixed-point fractional library routines. ! (line 539) * __fractsqqq2: Fixed-point fractional library routines. ! (line 522) * __fractsqsa: Fixed-point fractional library routines. ! (line 526) * __fractsqsf: Fixed-point fractional library routines. ! (line 544) * __fractsqsi: Fixed-point fractional library routines. ! (line 541) * __fractsqta: Fixed-point fractional library routines. ! (line 528) * __fractsqti: Fixed-point fractional library routines. ! (line 543) * __fractsquda: Fixed-point fractional library routines. ! (line 536) * __fractsqudq: Fixed-point fractional library routines. ! (line 532) * __fractsquha: Fixed-point fractional library routines. ! (line 534) * __fractsquhq: Fixed-point fractional library routines. ! (line 530) * __fractsquqq: Fixed-point fractional library routines. ! (line 529) * __fractsqusa: Fixed-point fractional library routines. ! (line 535) * __fractsqusq: Fixed-point fractional library routines. ! (line 531) * __fractsquta: Fixed-point fractional library routines. ! (line 537) * __fracttada2: Fixed-point fractional library routines. ! (line 650) * __fracttadf: Fixed-point fractional library routines. ! (line 671) * __fracttadi: Fixed-point fractional library routines. ! (line 668) * __fracttadq: Fixed-point fractional library routines. ! (line 647) * __fracttaha2: Fixed-point fractional library routines. ! (line 648) * __fracttahi: Fixed-point fractional library routines. ! (line 666) * __fracttahq: Fixed-point fractional library routines. ! (line 645) * __fracttaqi: Fixed-point fractional library routines. ! (line 665) * __fracttaqq: Fixed-point fractional library routines. ! (line 644) * __fracttasa2: Fixed-point fractional library routines. ! (line 649) * __fracttasf: Fixed-point fractional library routines. ! (line 670) * __fracttasi: Fixed-point fractional library routines. ! (line 667) * __fracttasq: Fixed-point fractional library routines. ! (line 646) * __fracttati: Fixed-point fractional library routines. - (line 669) - * __fracttauda: Fixed-point fractional library routines. (line 661) * __fracttaudq: Fixed-point fractional library routines. ! (line 656) * __fracttauha: Fixed-point fractional library routines. ! (line 658) * __fracttauhq: Fixed-point fractional library routines. ! (line 653) * __fracttauqq: Fixed-point fractional library routines. ! (line 651) * __fracttausa: Fixed-point fractional library routines. ! (line 660) * __fracttausq: Fixed-point fractional library routines. ! (line 654) * __fracttauta: Fixed-point fractional library routines. ! (line 663) * __fracttida: Fixed-point fractional library routines. ! (line 998) * __fracttidq: Fixed-point fractional library routines. ! (line 995) * __fracttiha: Fixed-point fractional library routines. ! (line 996) * __fracttihq: Fixed-point fractional library routines. ! (line 993) * __fracttiqq: Fixed-point fractional library routines. ! (line 992) * __fracttisa: Fixed-point fractional library routines. ! (line 997) * __fracttisq: Fixed-point fractional library routines. ! (line 994) * __fracttita: Fixed-point fractional library routines. ! (line 999) * __fracttiuda: Fixed-point fractional library routines. ! (line 1007) * __fracttiudq: Fixed-point fractional library routines. ! (line 1003) * __fracttiuha: Fixed-point fractional library routines. ! (line 1005) * __fracttiuhq: Fixed-point fractional library routines. ! (line 1001) * __fracttiuqq: Fixed-point fractional library routines. ! (line 1000) * __fracttiusa: Fixed-point fractional library routines. ! (line 1006) * __fracttiusq: Fixed-point fractional library routines. ! (line 1002) * __fracttiuta: Fixed-point fractional library routines. ! (line 1008) * __fractudada: Fixed-point fractional library routines. ! (line 865) * __fractudadf: Fixed-point fractional library routines. ! (line 888) * __fractudadi: Fixed-point fractional library routines. ! (line 885) * __fractudadq: Fixed-point fractional library routines. ! (line 861) * __fractudaha: Fixed-point fractional library routines. ! (line 863) * __fractudahi: Fixed-point fractional library routines. ! (line 883) * __fractudahq: Fixed-point fractional library routines. ! (line 859) * __fractudaqi: Fixed-point fractional library routines. ! (line 882) * __fractudaqq: Fixed-point fractional library routines. ! (line 858) * __fractudasa: Fixed-point fractional library routines. ! (line 864) * __fractudasf: Fixed-point fractional library routines. ! (line 887) * __fractudasi: Fixed-point fractional library routines. ! (line 884) * __fractudasq: Fixed-point fractional library routines. ! (line 860) * __fractudata: Fixed-point fractional library routines. ! (line 866) * __fractudati: Fixed-point fractional library routines. ! (line 886) * __fractudaudq: Fixed-point fractional library routines. ! (line 874) * __fractudauha2: Fixed-point fractional library routines. ! (line 876) * __fractudauhq: Fixed-point fractional library routines. ! (line 870) * __fractudauqq: Fixed-point fractional library routines. ! (line 868) * __fractudausa2: Fixed-point fractional library routines. ! (line 878) * __fractudausq: Fixed-point fractional library routines. ! (line 872) * __fractudauta2: Fixed-point fractional library routines. ! (line 880) * __fractudqda: Fixed-point fractional library routines. ! (line 772) * __fractudqdf: Fixed-point fractional library routines. ! (line 798) * __fractudqdi: Fixed-point fractional library routines. ! (line 794) * __fractudqdq: Fixed-point fractional library routines. ! (line 767) * __fractudqha: Fixed-point fractional library routines. ! (line 769) * __fractudqhi: Fixed-point fractional library routines. ! (line 792) * __fractudqhq: Fixed-point fractional library routines. ! (line 764) * __fractudqqi: Fixed-point fractional library routines. ! (line 790) * __fractudqqq: Fixed-point fractional library routines. ! (line 762) * __fractudqsa: Fixed-point fractional library routines. ! (line 771) * __fractudqsf: Fixed-point fractional library routines. ! (line 797) * __fractudqsi: Fixed-point fractional library routines. ! (line 793) * __fractudqsq: Fixed-point fractional library routines. ! (line 765) * __fractudqta: Fixed-point fractional library routines. ! (line 774) * __fractudqti: Fixed-point fractional library routines. ! (line 795) * __fractudquda: Fixed-point fractional library routines. ! (line 786) * __fractudquha: Fixed-point fractional library routines. ! (line 782) * __fractudquhq2: Fixed-point fractional library routines. ! (line 778) * __fractudquqq2: Fixed-point fractional library routines. ! (line 776) * __fractudqusa: Fixed-point fractional library routines. ! (line 784) * __fractudqusq2: Fixed-point fractional library routines. ! (line 780) * __fractudquta: Fixed-point fractional library routines. ! (line 788) * __fractuhada: Fixed-point fractional library routines. ! (line 806) * __fractuhadf: Fixed-point fractional library routines. ! (line 829) * __fractuhadi: Fixed-point fractional library routines. ! (line 826) * __fractuhadq: Fixed-point fractional library routines. ! (line 802) * __fractuhaha: Fixed-point fractional library routines. ! (line 804) * __fractuhahi: Fixed-point fractional library routines. ! (line 824) * __fractuhahq: Fixed-point fractional library routines. ! (line 800) * __fractuhaqi: Fixed-point fractional library routines. ! (line 823) * __fractuhaqq: Fixed-point fractional library routines. ! (line 799) * __fractuhasa: Fixed-point fractional library routines. ! (line 805) * __fractuhasf: Fixed-point fractional library routines. ! (line 828) * __fractuhasi: Fixed-point fractional library routines. ! (line 825) * __fractuhasq: Fixed-point fractional library routines. ! (line 801) * __fractuhata: Fixed-point fractional library routines. ! (line 807) * __fractuhati: Fixed-point fractional library routines. - (line 827) - * __fractuhauda2: Fixed-point fractional library routines. (line 819) * __fractuhaudq: Fixed-point fractional library routines. ! (line 815) * __fractuhauhq: Fixed-point fractional library routines. ! (line 811) * __fractuhauqq: Fixed-point fractional library routines. ! (line 809) * __fractuhausa2: Fixed-point fractional library routines. ! (line 817) * __fractuhausq: Fixed-point fractional library routines. ! (line 813) * __fractuhauta2: Fixed-point fractional library routines. ! (line 821) * __fractuhqda: Fixed-point fractional library routines. ! (line 709) * __fractuhqdf: Fixed-point fractional library routines. ! (line 730) * __fractuhqdi: Fixed-point fractional library routines. ! (line 727) * __fractuhqdq: Fixed-point fractional library routines. ! (line 706) * __fractuhqha: Fixed-point fractional library routines. ! (line 707) * __fractuhqhi: Fixed-point fractional library routines. ! (line 725) * __fractuhqhq: Fixed-point fractional library routines. ! (line 704) * __fractuhqqi: Fixed-point fractional library routines. ! (line 724) * __fractuhqqq: Fixed-point fractional library routines. ! (line 703) * __fractuhqsa: Fixed-point fractional library routines. ! (line 708) * __fractuhqsf: Fixed-point fractional library routines. ! (line 729) * __fractuhqsi: Fixed-point fractional library routines. ! (line 726) * __fractuhqsq: Fixed-point fractional library routines. ! (line 705) * __fractuhqta: Fixed-point fractional library routines. ! (line 710) * __fractuhqti: Fixed-point fractional library routines. - (line 728) - * __fractuhquda: Fixed-point fractional library routines. (line 720) * __fractuhqudq2: Fixed-point fractional library routines. ! (line 715) * __fractuhquha: Fixed-point fractional library routines. ! (line 717) * __fractuhquqq2: Fixed-point fractional library routines. ! (line 711) * __fractuhqusa: Fixed-point fractional library routines. ! (line 719) * __fractuhqusq2: Fixed-point fractional library routines. ! (line 713) * __fractuhquta: Fixed-point fractional library routines. ! (line 722) * __fractunsdadi: Fixed-point fractional library routines. ! (line 1562) * __fractunsdahi: Fixed-point fractional library routines. ! (line 1560) * __fractunsdaqi: Fixed-point fractional library routines. ! (line 1559) * __fractunsdasi: Fixed-point fractional library routines. ! (line 1561) * __fractunsdati: Fixed-point fractional library routines. ! (line 1563) * __fractunsdida: Fixed-point fractional library routines. ! (line 1714) * __fractunsdidq: Fixed-point fractional library routines. ! (line 1711) * __fractunsdiha: Fixed-point fractional library routines. ! (line 1712) * __fractunsdihq: Fixed-point fractional library routines. ! (line 1709) * __fractunsdiqq: Fixed-point fractional library routines. ! (line 1708) * __fractunsdisa: Fixed-point fractional library routines. ! (line 1713) * __fractunsdisq: Fixed-point fractional library routines. ! (line 1710) * __fractunsdita: Fixed-point fractional library routines. ! (line 1715) * __fractunsdiuda: Fixed-point fractional library routines. ! (line 1726) * __fractunsdiudq: Fixed-point fractional library routines. ! (line 1721) * __fractunsdiuha: Fixed-point fractional library routines. ! (line 1723) * __fractunsdiuhq: Fixed-point fractional library routines. ! (line 1718) * __fractunsdiuqq: Fixed-point fractional library routines. ! (line 1716) * __fractunsdiusa: Fixed-point fractional library routines. ! (line 1725) * __fractunsdiusq: Fixed-point fractional library routines. ! (line 1719) * __fractunsdiuta: Fixed-point fractional library routines. ! (line 1728) * __fractunsdqdi: Fixed-point fractional library routines. ! (line 1546) * __fractunsdqhi: Fixed-point fractional library routines. ! (line 1544) * __fractunsdqqi: Fixed-point fractional library routines. ! (line 1543) * __fractunsdqsi: Fixed-point fractional library routines. ! (line 1545) * __fractunsdqti: Fixed-point fractional library routines. ! (line 1547) * __fractunshadi: Fixed-point fractional library routines. ! (line 1552) * __fractunshahi: Fixed-point fractional library routines. ! (line 1550) * __fractunshaqi: Fixed-point fractional library routines. ! (line 1549) * __fractunshasi: Fixed-point fractional library routines. ! (line 1551) * __fractunshati: Fixed-point fractional library routines. ! (line 1553) * __fractunshida: Fixed-point fractional library routines. ! (line 1670) * __fractunshidq: Fixed-point fractional library routines. ! (line 1667) * __fractunshiha: Fixed-point fractional library routines. ! (line 1668) * __fractunshihq: Fixed-point fractional library routines. ! (line 1665) * __fractunshiqq: Fixed-point fractional library routines. ! (line 1664) * __fractunshisa: Fixed-point fractional library routines. ! (line 1669) * __fractunshisq: Fixed-point fractional library routines. ! (line 1666) * __fractunshita: Fixed-point fractional library routines. ! (line 1671) * __fractunshiuda: Fixed-point fractional library routines. ! (line 1682) * __fractunshiudq: Fixed-point fractional library routines. ! (line 1677) * __fractunshiuha: Fixed-point fractional library routines. ! (line 1679) * __fractunshiuhq: Fixed-point fractional library routines. ! (line 1674) * __fractunshiuqq: Fixed-point fractional library routines. ! (line 1672) * __fractunshiusa: Fixed-point fractional library routines. ! (line 1681) * __fractunshiusq: Fixed-point fractional library routines. ! (line 1675) * __fractunshiuta: Fixed-point fractional library routines. ! (line 1684) * __fractunshqdi: Fixed-point fractional library routines. ! (line 1536) * __fractunshqhi: Fixed-point fractional library routines. ! (line 1534) * __fractunshqqi: Fixed-point fractional library routines. ! (line 1533) * __fractunshqsi: Fixed-point fractional library routines. ! (line 1535) * __fractunshqti: Fixed-point fractional library routines. ! (line 1537) * __fractunsqida: Fixed-point fractional library routines. ! (line 1648) * __fractunsqidq: Fixed-point fractional library routines. ! (line 1645) * __fractunsqiha: Fixed-point fractional library routines. ! (line 1646) * __fractunsqihq: Fixed-point fractional library routines. ! (line 1643) * __fractunsqiqq: Fixed-point fractional library routines. ! (line 1642) * __fractunsqisa: Fixed-point fractional library routines. ! (line 1647) * __fractunsqisq: Fixed-point fractional library routines. ! (line 1644) * __fractunsqita: Fixed-point fractional library routines. ! (line 1649) * __fractunsqiuda: Fixed-point fractional library routines. ! (line 1660) * __fractunsqiudq: Fixed-point fractional library routines. ! (line 1655) * __fractunsqiuha: Fixed-point fractional library routines. ! (line 1657) * __fractunsqiuhq: Fixed-point fractional library routines. ! (line 1652) * __fractunsqiuqq: Fixed-point fractional library routines. ! (line 1650) * __fractunsqiusa: Fixed-point fractional library routines. ! (line 1659) * __fractunsqiusq: Fixed-point fractional library routines. ! (line 1653) * __fractunsqiuta: Fixed-point fractional library routines. ! (line 1662) * __fractunsqqdi: Fixed-point fractional library routines. ! (line 1531) * __fractunsqqhi: Fixed-point fractional library routines. ! (line 1529) * __fractunsqqqi: Fixed-point fractional library routines. ! (line 1528) * __fractunsqqsi: Fixed-point fractional library routines. ! (line 1530) * __fractunsqqti: Fixed-point fractional library routines. ! (line 1532) * __fractunssadi: Fixed-point fractional library routines. ! (line 1557) * __fractunssahi: Fixed-point fractional library routines. ! (line 1555) * __fractunssaqi: Fixed-point fractional library routines. ! (line 1554) * __fractunssasi: Fixed-point fractional library routines. ! (line 1556) * __fractunssati: Fixed-point fractional library routines. ! (line 1558) * __fractunssida: Fixed-point fractional library routines. ! (line 1692) * __fractunssidq: Fixed-point fractional library routines. ! (line 1689) * __fractunssiha: Fixed-point fractional library routines. ! (line 1690) * __fractunssihq: Fixed-point fractional library routines. ! (line 1687) * __fractunssiqq: Fixed-point fractional library routines. ! (line 1686) * __fractunssisa: Fixed-point fractional library routines. ! (line 1691) * __fractunssisq: Fixed-point fractional library routines. ! (line 1688) * __fractunssita: Fixed-point fractional library routines. ! (line 1693) * __fractunssiuda: Fixed-point fractional library routines. ! (line 1704) * __fractunssiudq: Fixed-point fractional library routines. ! (line 1699) * __fractunssiuha: Fixed-point fractional library routines. ! (line 1701) * __fractunssiuhq: Fixed-point fractional library routines. ! (line 1696) * __fractunssiuqq: Fixed-point fractional library routines. ! (line 1694) * __fractunssiusa: Fixed-point fractional library routines. ! (line 1703) * __fractunssiusq: Fixed-point fractional library routines. ! (line 1697) * __fractunssiuta: Fixed-point fractional library routines. ! (line 1706) * __fractunssqdi: Fixed-point fractional library routines. ! (line 1541) * __fractunssqhi: Fixed-point fractional library routines. ! (line 1539) * __fractunssqqi: Fixed-point fractional library routines. ! (line 1538) * __fractunssqsi: Fixed-point fractional library routines. ! (line 1540) * __fractunssqti: Fixed-point fractional library routines. ! (line 1542) * __fractunstadi: Fixed-point fractional library routines. ! (line 1567) * __fractunstahi: Fixed-point fractional library routines. ! (line 1565) * __fractunstaqi: Fixed-point fractional library routines. ! (line 1564) * __fractunstasi: Fixed-point fractional library routines. ! (line 1566) * __fractunstati: Fixed-point fractional library routines. ! (line 1568) * __fractunstida: Fixed-point fractional library routines. ! (line 1737) * __fractunstidq: Fixed-point fractional library routines. ! (line 1733) * __fractunstiha: Fixed-point fractional library routines. ! (line 1735) * __fractunstihq: Fixed-point fractional library routines. ! (line 1731) * __fractunstiqq: Fixed-point fractional library routines. ! (line 1730) * __fractunstisa: Fixed-point fractional library routines. ! (line 1736) * __fractunstisq: Fixed-point fractional library routines. ! (line 1732) * __fractunstita: Fixed-point fractional library routines. ! (line 1738) * __fractunstiuda: Fixed-point fractional library routines. ! (line 1752) * __fractunstiudq: Fixed-point fractional library routines. ! (line 1746) * __fractunstiuha: Fixed-point fractional library routines. ! (line 1748) * __fractunstiuhq: Fixed-point fractional library routines. ! (line 1742) * __fractunstiuqq: Fixed-point fractional library routines. ! (line 1740) * __fractunstiusa: Fixed-point fractional library routines. ! (line 1750) * __fractunstiusq: Fixed-point fractional library routines. ! (line 1744) * __fractunstiuta: Fixed-point fractional library routines. ! (line 1754) * __fractunsudadi: Fixed-point fractional library routines. ! (line 1628) * __fractunsudahi: Fixed-point fractional library routines. ! (line 1624) * __fractunsudaqi: Fixed-point fractional library routines. ! (line 1622) * __fractunsudasi: Fixed-point fractional library routines. ! (line 1626) * __fractunsudati: Fixed-point fractional library routines. ! (line 1630) * __fractunsudqdi: Fixed-point fractional library routines. ! (line 1602) * __fractunsudqhi: Fixed-point fractional library routines. ! (line 1598) * __fractunsudqqi: Fixed-point fractional library routines. ! (line 1596) * __fractunsudqsi: Fixed-point fractional library routines. ! (line 1600) * __fractunsudqti: Fixed-point fractional library routines. ! (line 1604) * __fractunsuhadi: Fixed-point fractional library routines. ! (line 1612) * __fractunsuhahi: Fixed-point fractional library routines. ! (line 1608) * __fractunsuhaqi: Fixed-point fractional library routines. ! (line 1606) * __fractunsuhasi: Fixed-point fractional library routines. ! (line 1610) * __fractunsuhati: Fixed-point fractional library routines. ! (line 1614) * __fractunsuhqdi: Fixed-point fractional library routines. ! (line 1583) * __fractunsuhqhi: Fixed-point fractional library routines. ! (line 1581) * __fractunsuhqqi: Fixed-point fractional library routines. ! (line 1580) * __fractunsuhqsi: Fixed-point fractional library routines. ! (line 1582) * __fractunsuhqti: Fixed-point fractional library routines. - (line 1584) - * __fractunsuqqdi: Fixed-point fractional library routines. (line 1576) * __fractunsuqqhi: Fixed-point fractional library routines. ! (line 1572) * __fractunsuqqqi: Fixed-point fractional library routines. ! (line 1570) * __fractunsuqqsi: Fixed-point fractional library routines. ! (line 1574) * __fractunsuqqti: Fixed-point fractional library routines. ! (line 1578) * __fractunsusadi: Fixed-point fractional library routines. ! (line 1619) * __fractunsusahi: Fixed-point fractional library routines. ! (line 1617) * __fractunsusaqi: Fixed-point fractional library routines. ! (line 1616) * __fractunsusasi: Fixed-point fractional library routines. ! (line 1618) * __fractunsusati: Fixed-point fractional library routines. ! (line 1620) * __fractunsusqdi: Fixed-point fractional library routines. ! (line 1592) * __fractunsusqhi: Fixed-point fractional library routines. ! (line 1588) * __fractunsusqqi: Fixed-point fractional library routines. ! (line 1586) * __fractunsusqsi: Fixed-point fractional library routines. ! (line 1590) * __fractunsusqti: Fixed-point fractional library routines. ! (line 1594) * __fractunsutadi: Fixed-point fractional library routines. ! (line 1638) * __fractunsutahi: Fixed-point fractional library routines. ! (line 1634) * __fractunsutaqi: Fixed-point fractional library routines. ! (line 1632) * __fractunsutasi: Fixed-point fractional library routines. ! (line 1636) * __fractunsutati: Fixed-point fractional library routines. ! (line 1640) * __fractuqqda: Fixed-point fractional library routines. ! (line 679) * __fractuqqdf: Fixed-point fractional library routines. ! (line 702) * __fractuqqdi: Fixed-point fractional library routines. ! (line 699) * __fractuqqdq: Fixed-point fractional library routines. ! (line 675) * __fractuqqha: Fixed-point fractional library routines. ! (line 677) * __fractuqqhi: Fixed-point fractional library routines. ! (line 697) * __fractuqqhq: Fixed-point fractional library routines. ! (line 673) * __fractuqqqi: Fixed-point fractional library routines. ! (line 696) * __fractuqqqq: Fixed-point fractional library routines. ! (line 672) * __fractuqqsa: Fixed-point fractional library routines. ! (line 678) * __fractuqqsf: Fixed-point fractional library routines. ! (line 701) * __fractuqqsi: Fixed-point fractional library routines. ! (line 698) * __fractuqqsq: Fixed-point fractional library routines. ! (line 674) * __fractuqqta: Fixed-point fractional library routines. ! (line 680) * __fractuqqti: Fixed-point fractional library routines. - (line 700) - * __fractuqquda: Fixed-point fractional library routines. (line 692) * __fractuqqudq2: Fixed-point fractional library routines. ! (line 686) * __fractuqquha: Fixed-point fractional library routines. ! (line 688) * __fractuqquhq2: Fixed-point fractional library routines. ! (line 682) * __fractuqqusa: Fixed-point fractional library routines. ! (line 690) * __fractuqqusq2: Fixed-point fractional library routines. ! (line 684) * __fractuqquta: Fixed-point fractional library routines. ! (line 694) * __fractusada: Fixed-point fractional library routines. ! (line 836) * __fractusadf: Fixed-point fractional library routines. ! (line 857) * __fractusadi: Fixed-point fractional library routines. ! (line 854) * __fractusadq: Fixed-point fractional library routines. ! (line 833) * __fractusaha: Fixed-point fractional library routines. ! (line 834) * __fractusahi: Fixed-point fractional library routines. ! (line 852) * __fractusahq: Fixed-point fractional library routines. ! (line 831) * __fractusaqi: Fixed-point fractional library routines. ! (line 851) * __fractusaqq: Fixed-point fractional library routines. ! (line 830) * __fractusasa: Fixed-point fractional library routines. ! (line 835) * __fractusasf: Fixed-point fractional library routines. ! (line 856) * __fractusasi: Fixed-point fractional library routines. ! (line 853) * __fractusasq: Fixed-point fractional library routines. ! (line 832) * __fractusata: Fixed-point fractional library routines. ! (line 837) * __fractusati: Fixed-point fractional library routines. - (line 855) - * __fractusauda2: Fixed-point fractional library routines. (line 847) * __fractusaudq: Fixed-point fractional library routines. ! (line 843) * __fractusauha2: Fixed-point fractional library routines. ! (line 845) * __fractusauhq: Fixed-point fractional library routines. ! (line 840) * __fractusauqq: Fixed-point fractional library routines. ! (line 838) * __fractusausq: Fixed-point fractional library routines. ! (line 841) * __fractusauta2: Fixed-point fractional library routines. ! (line 849) * __fractusqda: Fixed-point fractional library routines. ! (line 738) * __fractusqdf: Fixed-point fractional library routines. ! (line 761) * __fractusqdi: Fixed-point fractional library routines. ! (line 758) * __fractusqdq: Fixed-point fractional library routines. ! (line 734) * __fractusqha: Fixed-point fractional library routines. ! (line 736) * __fractusqhi: Fixed-point fractional library routines. ! (line 756) * __fractusqhq: Fixed-point fractional library routines. ! (line 732) * __fractusqqi: Fixed-point fractional library routines. ! (line 755) * __fractusqqq: Fixed-point fractional library routines. ! (line 731) * __fractusqsa: Fixed-point fractional library routines. ! (line 737) * __fractusqsf: Fixed-point fractional library routines. ! (line 760) * __fractusqsi: Fixed-point fractional library routines. ! (line 757) * __fractusqsq: Fixed-point fractional library routines. ! (line 733) * __fractusqta: Fixed-point fractional library routines. ! (line 739) * __fractusqti: Fixed-point fractional library routines. - (line 759) - * __fractusquda: Fixed-point fractional library routines. (line 751) * __fractusqudq2: Fixed-point fractional library routines. ! (line 745) * __fractusquha: Fixed-point fractional library routines. ! (line 747) * __fractusquhq2: Fixed-point fractional library routines. ! (line 743) * __fractusquqq2: Fixed-point fractional library routines. ! (line 741) * __fractusqusa: Fixed-point fractional library routines. ! (line 749) * __fractusquta: Fixed-point fractional library routines. ! (line 753) * __fractutada: Fixed-point fractional library routines. ! (line 899) * __fractutadf: Fixed-point fractional library routines. ! (line 925) * __fractutadi: Fixed-point fractional library routines. ! (line 921) * __fractutadq: Fixed-point fractional library routines. ! (line 894) * __fractutaha: Fixed-point fractional library routines. ! (line 896) * __fractutahi: Fixed-point fractional library routines. ! (line 919) * __fractutahq: Fixed-point fractional library routines. ! (line 891) * __fractutaqi: Fixed-point fractional library routines. ! (line 917) * __fractutaqq: Fixed-point fractional library routines. ! (line 889) * __fractutasa: Fixed-point fractional library routines. ! (line 898) * __fractutasf: Fixed-point fractional library routines. ! (line 924) * __fractutasi: Fixed-point fractional library routines. ! (line 920) * __fractutasq: Fixed-point fractional library routines. ! (line 892) * __fractutata: Fixed-point fractional library routines. ! (line 901) * __fractutati: Fixed-point fractional library routines. ! (line 922) * __fractutauda2: Fixed-point fractional library routines. ! (line 915) * __fractutaudq: Fixed-point fractional library routines. ! (line 909) * __fractutauha2: Fixed-point fractional library routines. ! (line 911) * __fractutauhq: Fixed-point fractional library routines. ! (line 905) * __fractutauqq: Fixed-point fractional library routines. ! (line 903) * __fractutausa2: Fixed-point fractional library routines. ! (line 913) * __fractutausq: Fixed-point fractional library routines. ! (line 907) * __gedf2: Soft float library routines. (line 205) * __gesf2: Soft float library routines. --- 50917,52169 ---- * __floatuntixf: Soft float library routines. (line 153) * __fractdadf: Fixed-point fractional library routines. ! (line 635) * __fractdadi: Fixed-point fractional library routines. ! (line 632) * __fractdadq: Fixed-point fractional library routines. ! (line 615) * __fractdaha2: Fixed-point fractional library routines. ! (line 616) * __fractdahi: Fixed-point fractional library routines. ! (line 630) * __fractdahq: Fixed-point fractional library routines. ! (line 613) * __fractdaqi: Fixed-point fractional library routines. ! (line 629) * __fractdaqq: Fixed-point fractional library routines. ! (line 612) * __fractdasa2: Fixed-point fractional library routines. ! (line 617) * __fractdasf: Fixed-point fractional library routines. ! (line 634) * __fractdasi: Fixed-point fractional library routines. ! (line 631) * __fractdasq: Fixed-point fractional library routines. ! (line 614) * __fractdata2: Fixed-point fractional library routines. ! (line 618) * __fractdati: Fixed-point fractional library routines. ! (line 633) * __fractdauda: Fixed-point fractional library routines. ! (line 626) * __fractdaudq: Fixed-point fractional library routines. ! (line 622) * __fractdauha: Fixed-point fractional library routines. ! (line 624) * __fractdauhq: Fixed-point fractional library routines. ! (line 620) * __fractdauqq: Fixed-point fractional library routines. ! (line 619) * __fractdausa: Fixed-point fractional library routines. ! (line 625) * __fractdausq: Fixed-point fractional library routines. ! (line 621) * __fractdauta: Fixed-point fractional library routines. ! (line 627) * __fractdfda: Fixed-point fractional library routines. ! (line 1024) * __fractdfdq: Fixed-point fractional library routines. ! (line 1021) * __fractdfha: Fixed-point fractional library routines. ! (line 1022) * __fractdfhq: Fixed-point fractional library routines. ! (line 1019) * __fractdfqq: Fixed-point fractional library routines. ! (line 1018) * __fractdfsa: Fixed-point fractional library routines. ! (line 1023) * __fractdfsq: Fixed-point fractional library routines. ! (line 1020) * __fractdfta: Fixed-point fractional library routines. ! (line 1025) * __fractdfuda: Fixed-point fractional library routines. ! (line 1032) * __fractdfudq: Fixed-point fractional library routines. ! (line 1029) * __fractdfuha: Fixed-point fractional library routines. ! (line 1030) * __fractdfuhq: Fixed-point fractional library routines. ! (line 1027) * __fractdfuqq: Fixed-point fractional library routines. ! (line 1026) * __fractdfusa: Fixed-point fractional library routines. ! (line 1031) * __fractdfusq: Fixed-point fractional library routines. ! (line 1028) * __fractdfuta: Fixed-point fractional library routines. ! (line 1033) * __fractdida: Fixed-point fractional library routines. ! (line 974) * __fractdidq: Fixed-point fractional library routines. ! (line 971) * __fractdiha: Fixed-point fractional library routines. ! (line 972) * __fractdihq: Fixed-point fractional library routines. ! (line 969) * __fractdiqq: Fixed-point fractional library routines. ! (line 968) * __fractdisa: Fixed-point fractional library routines. ! (line 973) * __fractdisq: Fixed-point fractional library routines. ! (line 970) * __fractdita: Fixed-point fractional library routines. ! (line 975) * __fractdiuda: Fixed-point fractional library routines. ! (line 982) * __fractdiudq: Fixed-point fractional library routines. ! (line 979) * __fractdiuha: Fixed-point fractional library routines. ! (line 980) * __fractdiuhq: Fixed-point fractional library routines. ! (line 977) * __fractdiuqq: Fixed-point fractional library routines. ! (line 976) * __fractdiusa: Fixed-point fractional library routines. ! (line 981) * __fractdiusq: Fixed-point fractional library routines. ! (line 978) * __fractdiuta: Fixed-point fractional library routines. ! (line 983) * __fractdqda: Fixed-point fractional library routines. ! (line 543) * __fractdqdf: Fixed-point fractional library routines. ! (line 565) * __fractdqdi: Fixed-point fractional library routines. ! (line 562) * __fractdqha: Fixed-point fractional library routines. ! (line 541) * __fractdqhi: Fixed-point fractional library routines. ! (line 560) * __fractdqhq2: Fixed-point fractional library routines. ! (line 539) * __fractdqqi: Fixed-point fractional library routines. ! (line 559) * __fractdqqq2: Fixed-point fractional library routines. ! (line 538) * __fractdqsa: Fixed-point fractional library routines. ! (line 542) * __fractdqsf: Fixed-point fractional library routines. ! (line 564) * __fractdqsi: Fixed-point fractional library routines. ! (line 561) * __fractdqsq2: Fixed-point fractional library routines. ! (line 540) * __fractdqta: Fixed-point fractional library routines. ! (line 544) * __fractdqti: Fixed-point fractional library routines. (line 563) + * __fractdquda: Fixed-point fractional library routines. + (line 555) * __fractdqudq: Fixed-point fractional library routines. ! (line 550) * __fractdquha: Fixed-point fractional library routines. ! (line 552) * __fractdquhq: Fixed-point fractional library routines. ! (line 547) * __fractdquqq: Fixed-point fractional library routines. ! (line 545) * __fractdqusa: Fixed-point fractional library routines. ! (line 554) * __fractdqusq: Fixed-point fractional library routines. ! (line 548) * __fractdquta: Fixed-point fractional library routines. ! (line 557) * __fracthada2: Fixed-point fractional library routines. ! (line 571) * __fracthadf: Fixed-point fractional library routines. ! (line 589) * __fracthadi: Fixed-point fractional library routines. ! (line 586) * __fracthadq: Fixed-point fractional library routines. ! (line 569) * __fracthahi: Fixed-point fractional library routines. ! (line 584) * __fracthahq: Fixed-point fractional library routines. ! (line 567) * __fracthaqi: Fixed-point fractional library routines. ! (line 583) * __fracthaqq: Fixed-point fractional library routines. ! (line 566) * __fracthasa2: Fixed-point fractional library routines. ! (line 570) * __fracthasf: Fixed-point fractional library routines. ! (line 588) * __fracthasi: Fixed-point fractional library routines. ! (line 585) * __fracthasq: Fixed-point fractional library routines. ! (line 568) * __fracthata2: Fixed-point fractional library routines. ! (line 572) * __fracthati: Fixed-point fractional library routines. ! (line 587) * __fracthauda: Fixed-point fractional library routines. ! (line 580) * __fracthaudq: Fixed-point fractional library routines. ! (line 576) * __fracthauha: Fixed-point fractional library routines. ! (line 578) * __fracthauhq: Fixed-point fractional library routines. ! (line 574) * __fracthauqq: Fixed-point fractional library routines. ! (line 573) * __fracthausa: Fixed-point fractional library routines. ! (line 579) * __fracthausq: Fixed-point fractional library routines. ! (line 575) * __fracthauta: Fixed-point fractional library routines. ! (line 581) * __fracthida: Fixed-point fractional library routines. ! (line 942) * __fracthidq: Fixed-point fractional library routines. ! (line 939) * __fracthiha: Fixed-point fractional library routines. ! (line 940) * __fracthihq: Fixed-point fractional library routines. ! (line 937) * __fracthiqq: Fixed-point fractional library routines. ! (line 936) * __fracthisa: Fixed-point fractional library routines. ! (line 941) * __fracthisq: Fixed-point fractional library routines. ! (line 938) * __fracthita: Fixed-point fractional library routines. ! (line 943) * __fracthiuda: Fixed-point fractional library routines. ! (line 950) * __fracthiudq: Fixed-point fractional library routines. ! (line 947) * __fracthiuha: Fixed-point fractional library routines. ! (line 948) * __fracthiuhq: Fixed-point fractional library routines. ! (line 945) * __fracthiuqq: Fixed-point fractional library routines. ! (line 944) * __fracthiusa: Fixed-point fractional library routines. ! (line 949) * __fracthiusq: Fixed-point fractional library routines. ! (line 946) * __fracthiuta: Fixed-point fractional library routines. ! (line 951) * __fracthqda: Fixed-point fractional library routines. ! (line 497) * __fracthqdf: Fixed-point fractional library routines. ! (line 513) * __fracthqdi: Fixed-point fractional library routines. ! (line 510) * __fracthqdq2: Fixed-point fractional library routines. ! (line 494) * __fracthqha: Fixed-point fractional library routines. ! (line 495) * __fracthqhi: Fixed-point fractional library routines. ! (line 508) * __fracthqqi: Fixed-point fractional library routines. ! (line 507) * __fracthqqq2: Fixed-point fractional library routines. ! (line 492) * __fracthqsa: Fixed-point fractional library routines. ! (line 496) * __fracthqsf: Fixed-point fractional library routines. ! (line 512) * __fracthqsi: Fixed-point fractional library routines. ! (line 509) * __fracthqsq2: Fixed-point fractional library routines. ! (line 493) * __fracthqta: Fixed-point fractional library routines. ! (line 498) * __fracthqti: Fixed-point fractional library routines. ! (line 511) * __fracthquda: Fixed-point fractional library routines. ! (line 505) * __fracthqudq: Fixed-point fractional library routines. ! (line 502) * __fracthquha: Fixed-point fractional library routines. ! (line 503) * __fracthquhq: Fixed-point fractional library routines. ! (line 500) * __fracthquqq: Fixed-point fractional library routines. ! (line 499) * __fracthqusa: Fixed-point fractional library routines. ! (line 504) * __fracthqusq: Fixed-point fractional library routines. ! (line 501) * __fracthquta: Fixed-point fractional library routines. ! (line 506) * __fractqida: Fixed-point fractional library routines. ! (line 924) * __fractqidq: Fixed-point fractional library routines. ! (line 921) * __fractqiha: Fixed-point fractional library routines. ! (line 922) * __fractqihq: Fixed-point fractional library routines. ! (line 919) * __fractqiqq: Fixed-point fractional library routines. ! (line 918) * __fractqisa: Fixed-point fractional library routines. ! (line 923) * __fractqisq: Fixed-point fractional library routines. ! (line 920) * __fractqita: Fixed-point fractional library routines. ! (line 925) * __fractqiuda: Fixed-point fractional library routines. ! (line 933) * __fractqiudq: Fixed-point fractional library routines. ! (line 929) * __fractqiuha: Fixed-point fractional library routines. ! (line 931) * __fractqiuhq: Fixed-point fractional library routines. ! (line 927) * __fractqiuqq: Fixed-point fractional library routines. ! (line 926) * __fractqiusa: Fixed-point fractional library routines. ! (line 932) * __fractqiusq: Fixed-point fractional library routines. ! (line 928) * __fractqiuta: Fixed-point fractional library routines. ! (line 934) * __fractqqda: Fixed-point fractional library routines. ! (line 473) * __fractqqdf: Fixed-point fractional library routines. ! (line 491) * __fractqqdi: Fixed-point fractional library routines. ! (line 488) * __fractqqdq2: Fixed-point fractional library routines. ! (line 470) * __fractqqha: Fixed-point fractional library routines. ! (line 471) * __fractqqhi: Fixed-point fractional library routines. ! (line 486) * __fractqqhq2: Fixed-point fractional library routines. ! (line 468) * __fractqqqi: Fixed-point fractional library routines. ! (line 485) * __fractqqsa: Fixed-point fractional library routines. ! (line 472) * __fractqqsf: Fixed-point fractional library routines. ! (line 490) * __fractqqsi: Fixed-point fractional library routines. ! (line 487) * __fractqqsq2: Fixed-point fractional library routines. ! (line 469) * __fractqqta: Fixed-point fractional library routines. ! (line 474) * __fractqqti: Fixed-point fractional library routines. ! (line 489) * __fractqquda: Fixed-point fractional library routines. ! (line 482) * __fractqqudq: Fixed-point fractional library routines. ! (line 478) * __fractqquha: Fixed-point fractional library routines. ! (line 480) * __fractqquhq: Fixed-point fractional library routines. ! (line 476) * __fractqquqq: Fixed-point fractional library routines. ! (line 475) * __fractqqusa: Fixed-point fractional library routines. ! (line 481) * __fractqqusq: Fixed-point fractional library routines. ! (line 477) * __fractqquta: Fixed-point fractional library routines. ! (line 483) * __fractsada2: Fixed-point fractional library routines. ! (line 595) * __fractsadf: Fixed-point fractional library routines. ! (line 611) * __fractsadi: Fixed-point fractional library routines. ! (line 608) * __fractsadq: Fixed-point fractional library routines. ! (line 593) * __fractsaha2: Fixed-point fractional library routines. ! (line 594) * __fractsahi: Fixed-point fractional library routines. ! (line 606) * __fractsahq: Fixed-point fractional library routines. ! (line 591) * __fractsaqi: Fixed-point fractional library routines. ! (line 605) * __fractsaqq: Fixed-point fractional library routines. ! (line 590) * __fractsasf: Fixed-point fractional library routines. ! (line 610) * __fractsasi: Fixed-point fractional library routines. ! (line 607) * __fractsasq: Fixed-point fractional library routines. ! (line 592) * __fractsata2: Fixed-point fractional library routines. ! (line 596) * __fractsati: Fixed-point fractional library routines. ! (line 609) * __fractsauda: Fixed-point fractional library routines. ! (line 603) * __fractsaudq: Fixed-point fractional library routines. ! (line 600) * __fractsauha: Fixed-point fractional library routines. ! (line 601) * __fractsauhq: Fixed-point fractional library routines. ! (line 598) * __fractsauqq: Fixed-point fractional library routines. ! (line 597) * __fractsausa: Fixed-point fractional library routines. ! (line 602) * __fractsausq: Fixed-point fractional library routines. ! (line 599) * __fractsauta: Fixed-point fractional library routines. ! (line 604) * __fractsfda: Fixed-point fractional library routines. ! (line 1008) * __fractsfdq: Fixed-point fractional library routines. ! (line 1005) * __fractsfha: Fixed-point fractional library routines. ! (line 1006) * __fractsfhq: Fixed-point fractional library routines. ! (line 1003) * __fractsfqq: Fixed-point fractional library routines. ! (line 1002) * __fractsfsa: Fixed-point fractional library routines. ! (line 1007) * __fractsfsq: Fixed-point fractional library routines. ! (line 1004) * __fractsfta: Fixed-point fractional library routines. ! (line 1009) * __fractsfuda: Fixed-point fractional library routines. ! (line 1016) * __fractsfudq: Fixed-point fractional library routines. ! (line 1013) * __fractsfuha: Fixed-point fractional library routines. ! (line 1014) * __fractsfuhq: Fixed-point fractional library routines. ! (line 1011) * __fractsfuqq: Fixed-point fractional library routines. ! (line 1010) * __fractsfusa: Fixed-point fractional library routines. ! (line 1015) * __fractsfusq: Fixed-point fractional library routines. ! (line 1012) * __fractsfuta: Fixed-point fractional library routines. ! (line 1017) * __fractsida: Fixed-point fractional library routines. ! (line 958) * __fractsidq: Fixed-point fractional library routines. ! (line 955) * __fractsiha: Fixed-point fractional library routines. ! (line 956) * __fractsihq: Fixed-point fractional library routines. ! (line 953) * __fractsiqq: Fixed-point fractional library routines. ! (line 952) * __fractsisa: Fixed-point fractional library routines. ! (line 957) * __fractsisq: Fixed-point fractional library routines. ! (line 954) * __fractsita: Fixed-point fractional library routines. ! (line 959) * __fractsiuda: Fixed-point fractional library routines. ! (line 966) * __fractsiudq: Fixed-point fractional library routines. ! (line 963) * __fractsiuha: Fixed-point fractional library routines. ! (line 964) * __fractsiuhq: Fixed-point fractional library routines. ! (line 961) * __fractsiuqq: Fixed-point fractional library routines. ! (line 960) * __fractsiusa: Fixed-point fractional library routines. ! (line 965) * __fractsiusq: Fixed-point fractional library routines. ! (line 962) * __fractsiuta: Fixed-point fractional library routines. ! (line 967) * __fractsqda: Fixed-point fractional library routines. ! (line 519) * __fractsqdf: Fixed-point fractional library routines. ! (line 537) * __fractsqdi: Fixed-point fractional library routines. ! (line 534) * __fractsqdq2: Fixed-point fractional library routines. ! (line 516) * __fractsqha: Fixed-point fractional library routines. ! (line 517) * __fractsqhi: Fixed-point fractional library routines. ! (line 532) * __fractsqhq2: Fixed-point fractional library routines. ! (line 515) * __fractsqqi: Fixed-point fractional library routines. ! (line 531) * __fractsqqq2: Fixed-point fractional library routines. ! (line 514) * __fractsqsa: Fixed-point fractional library routines. ! (line 518) * __fractsqsf: Fixed-point fractional library routines. ! (line 536) * __fractsqsi: Fixed-point fractional library routines. ! (line 533) * __fractsqta: Fixed-point fractional library routines. ! (line 520) * __fractsqti: Fixed-point fractional library routines. ! (line 535) * __fractsquda: Fixed-point fractional library routines. ! (line 528) * __fractsqudq: Fixed-point fractional library routines. ! (line 524) * __fractsquha: Fixed-point fractional library routines. ! (line 526) * __fractsquhq: Fixed-point fractional library routines. ! (line 522) * __fractsquqq: Fixed-point fractional library routines. ! (line 521) * __fractsqusa: Fixed-point fractional library routines. ! (line 527) * __fractsqusq: Fixed-point fractional library routines. ! (line 523) * __fractsquta: Fixed-point fractional library routines. ! (line 529) * __fracttada2: Fixed-point fractional library routines. ! (line 642) * __fracttadf: Fixed-point fractional library routines. ! (line 663) * __fracttadi: Fixed-point fractional library routines. ! (line 660) * __fracttadq: Fixed-point fractional library routines. ! (line 639) * __fracttaha2: Fixed-point fractional library routines. ! (line 640) * __fracttahi: Fixed-point fractional library routines. ! (line 658) * __fracttahq: Fixed-point fractional library routines. ! (line 637) * __fracttaqi: Fixed-point fractional library routines. ! (line 657) * __fracttaqq: Fixed-point fractional library routines. ! (line 636) * __fracttasa2: Fixed-point fractional library routines. ! (line 641) * __fracttasf: Fixed-point fractional library routines. ! (line 662) * __fracttasi: Fixed-point fractional library routines. ! (line 659) * __fracttasq: Fixed-point fractional library routines. ! (line 638) * __fracttati: Fixed-point fractional library routines. (line 661) + * __fracttauda: Fixed-point fractional library routines. + (line 653) * __fracttaudq: Fixed-point fractional library routines. ! (line 648) * __fracttauha: Fixed-point fractional library routines. ! (line 650) * __fracttauhq: Fixed-point fractional library routines. ! (line 645) * __fracttauqq: Fixed-point fractional library routines. ! (line 643) * __fracttausa: Fixed-point fractional library routines. ! (line 652) * __fracttausq: Fixed-point fractional library routines. ! (line 646) * __fracttauta: Fixed-point fractional library routines. ! (line 655) * __fracttida: Fixed-point fractional library routines. ! (line 990) * __fracttidq: Fixed-point fractional library routines. ! (line 987) * __fracttiha: Fixed-point fractional library routines. ! (line 988) * __fracttihq: Fixed-point fractional library routines. ! (line 985) * __fracttiqq: Fixed-point fractional library routines. ! (line 984) * __fracttisa: Fixed-point fractional library routines. ! (line 989) * __fracttisq: Fixed-point fractional library routines. ! (line 986) * __fracttita: Fixed-point fractional library routines. ! (line 991) * __fracttiuda: Fixed-point fractional library routines. ! (line 999) * __fracttiudq: Fixed-point fractional library routines. ! (line 995) * __fracttiuha: Fixed-point fractional library routines. ! (line 997) * __fracttiuhq: Fixed-point fractional library routines. ! (line 993) * __fracttiuqq: Fixed-point fractional library routines. ! (line 992) * __fracttiusa: Fixed-point fractional library routines. ! (line 998) * __fracttiusq: Fixed-point fractional library routines. ! (line 994) * __fracttiuta: Fixed-point fractional library routines. ! (line 1000) * __fractudada: Fixed-point fractional library routines. ! (line 857) * __fractudadf: Fixed-point fractional library routines. ! (line 880) * __fractudadi: Fixed-point fractional library routines. ! (line 877) * __fractudadq: Fixed-point fractional library routines. ! (line 853) * __fractudaha: Fixed-point fractional library routines. ! (line 855) * __fractudahi: Fixed-point fractional library routines. ! (line 875) * __fractudahq: Fixed-point fractional library routines. ! (line 851) * __fractudaqi: Fixed-point fractional library routines. ! (line 874) * __fractudaqq: Fixed-point fractional library routines. ! (line 850) * __fractudasa: Fixed-point fractional library routines. ! (line 856) * __fractudasf: Fixed-point fractional library routines. ! (line 879) * __fractudasi: Fixed-point fractional library routines. ! (line 876) * __fractudasq: Fixed-point fractional library routines. ! (line 852) * __fractudata: Fixed-point fractional library routines. ! (line 858) * __fractudati: Fixed-point fractional library routines. ! (line 878) * __fractudaudq: Fixed-point fractional library routines. ! (line 866) * __fractudauha2: Fixed-point fractional library routines. ! (line 868) * __fractudauhq: Fixed-point fractional library routines. ! (line 862) * __fractudauqq: Fixed-point fractional library routines. ! (line 860) * __fractudausa2: Fixed-point fractional library routines. ! (line 870) * __fractudausq: Fixed-point fractional library routines. ! (line 864) * __fractudauta2: Fixed-point fractional library routines. ! (line 872) * __fractudqda: Fixed-point fractional library routines. ! (line 764) * __fractudqdf: Fixed-point fractional library routines. ! (line 790) * __fractudqdi: Fixed-point fractional library routines. ! (line 786) * __fractudqdq: Fixed-point fractional library routines. ! (line 759) * __fractudqha: Fixed-point fractional library routines. ! (line 761) * __fractudqhi: Fixed-point fractional library routines. ! (line 784) * __fractudqhq: Fixed-point fractional library routines. ! (line 756) * __fractudqqi: Fixed-point fractional library routines. ! (line 782) * __fractudqqq: Fixed-point fractional library routines. ! (line 754) * __fractudqsa: Fixed-point fractional library routines. ! (line 763) * __fractudqsf: Fixed-point fractional library routines. ! (line 789) * __fractudqsi: Fixed-point fractional library routines. ! (line 785) * __fractudqsq: Fixed-point fractional library routines. ! (line 757) * __fractudqta: Fixed-point fractional library routines. ! (line 766) * __fractudqti: Fixed-point fractional library routines. ! (line 787) * __fractudquda: Fixed-point fractional library routines. ! (line 778) * __fractudquha: Fixed-point fractional library routines. ! (line 774) * __fractudquhq2: Fixed-point fractional library routines. ! (line 770) * __fractudquqq2: Fixed-point fractional library routines. ! (line 768) * __fractudqusa: Fixed-point fractional library routines. ! (line 776) * __fractudqusq2: Fixed-point fractional library routines. ! (line 772) * __fractudquta: Fixed-point fractional library routines. ! (line 780) * __fractuhada: Fixed-point fractional library routines. ! (line 798) * __fractuhadf: Fixed-point fractional library routines. ! (line 821) * __fractuhadi: Fixed-point fractional library routines. ! (line 818) * __fractuhadq: Fixed-point fractional library routines. ! (line 794) * __fractuhaha: Fixed-point fractional library routines. ! (line 796) * __fractuhahi: Fixed-point fractional library routines. ! (line 816) * __fractuhahq: Fixed-point fractional library routines. ! (line 792) * __fractuhaqi: Fixed-point fractional library routines. ! (line 815) * __fractuhaqq: Fixed-point fractional library routines. ! (line 791) * __fractuhasa: Fixed-point fractional library routines. ! (line 797) * __fractuhasf: Fixed-point fractional library routines. ! (line 820) * __fractuhasi: Fixed-point fractional library routines. ! (line 817) * __fractuhasq: Fixed-point fractional library routines. ! (line 793) * __fractuhata: Fixed-point fractional library routines. ! (line 799) * __fractuhati: Fixed-point fractional library routines. (line 819) + * __fractuhauda2: Fixed-point fractional library routines. + (line 811) * __fractuhaudq: Fixed-point fractional library routines. ! (line 807) * __fractuhauhq: Fixed-point fractional library routines. ! (line 803) * __fractuhauqq: Fixed-point fractional library routines. ! (line 801) * __fractuhausa2: Fixed-point fractional library routines. ! (line 809) * __fractuhausq: Fixed-point fractional library routines. ! (line 805) * __fractuhauta2: Fixed-point fractional library routines. ! (line 813) * __fractuhqda: Fixed-point fractional library routines. ! (line 701) * __fractuhqdf: Fixed-point fractional library routines. ! (line 722) * __fractuhqdi: Fixed-point fractional library routines. ! (line 719) * __fractuhqdq: Fixed-point fractional library routines. ! (line 698) * __fractuhqha: Fixed-point fractional library routines. ! (line 699) * __fractuhqhi: Fixed-point fractional library routines. ! (line 717) * __fractuhqhq: Fixed-point fractional library routines. ! (line 696) * __fractuhqqi: Fixed-point fractional library routines. ! (line 716) * __fractuhqqq: Fixed-point fractional library routines. ! (line 695) * __fractuhqsa: Fixed-point fractional library routines. ! (line 700) * __fractuhqsf: Fixed-point fractional library routines. ! (line 721) * __fractuhqsi: Fixed-point fractional library routines. ! (line 718) * __fractuhqsq: Fixed-point fractional library routines. ! (line 697) * __fractuhqta: Fixed-point fractional library routines. ! (line 702) * __fractuhqti: Fixed-point fractional library routines. (line 720) + * __fractuhquda: Fixed-point fractional library routines. + (line 712) * __fractuhqudq2: Fixed-point fractional library routines. ! (line 707) * __fractuhquha: Fixed-point fractional library routines. ! (line 709) * __fractuhquqq2: Fixed-point fractional library routines. ! (line 703) * __fractuhqusa: Fixed-point fractional library routines. ! (line 711) * __fractuhqusq2: Fixed-point fractional library routines. ! (line 705) * __fractuhquta: Fixed-point fractional library routines. ! (line 714) * __fractunsdadi: Fixed-point fractional library routines. ! (line 1554) * __fractunsdahi: Fixed-point fractional library routines. ! (line 1552) * __fractunsdaqi: Fixed-point fractional library routines. ! (line 1551) * __fractunsdasi: Fixed-point fractional library routines. ! (line 1553) * __fractunsdati: Fixed-point fractional library routines. ! (line 1555) * __fractunsdida: Fixed-point fractional library routines. ! (line 1706) * __fractunsdidq: Fixed-point fractional library routines. ! (line 1703) * __fractunsdiha: Fixed-point fractional library routines. ! (line 1704) * __fractunsdihq: Fixed-point fractional library routines. ! (line 1701) * __fractunsdiqq: Fixed-point fractional library routines. ! (line 1700) * __fractunsdisa: Fixed-point fractional library routines. ! (line 1705) * __fractunsdisq: Fixed-point fractional library routines. ! (line 1702) * __fractunsdita: Fixed-point fractional library routines. ! (line 1707) * __fractunsdiuda: Fixed-point fractional library routines. ! (line 1718) * __fractunsdiudq: Fixed-point fractional library routines. ! (line 1713) * __fractunsdiuha: Fixed-point fractional library routines. ! (line 1715) * __fractunsdiuhq: Fixed-point fractional library routines. ! (line 1710) * __fractunsdiuqq: Fixed-point fractional library routines. ! (line 1708) * __fractunsdiusa: Fixed-point fractional library routines. ! (line 1717) * __fractunsdiusq: Fixed-point fractional library routines. ! (line 1711) * __fractunsdiuta: Fixed-point fractional library routines. ! (line 1720) * __fractunsdqdi: Fixed-point fractional library routines. ! (line 1538) * __fractunsdqhi: Fixed-point fractional library routines. ! (line 1536) * __fractunsdqqi: Fixed-point fractional library routines. ! (line 1535) * __fractunsdqsi: Fixed-point fractional library routines. ! (line 1537) * __fractunsdqti: Fixed-point fractional library routines. ! (line 1539) * __fractunshadi: Fixed-point fractional library routines. ! (line 1544) * __fractunshahi: Fixed-point fractional library routines. ! (line 1542) * __fractunshaqi: Fixed-point fractional library routines. ! (line 1541) * __fractunshasi: Fixed-point fractional library routines. ! (line 1543) * __fractunshati: Fixed-point fractional library routines. ! (line 1545) * __fractunshida: Fixed-point fractional library routines. ! (line 1662) * __fractunshidq: Fixed-point fractional library routines. ! (line 1659) * __fractunshiha: Fixed-point fractional library routines. ! (line 1660) * __fractunshihq: Fixed-point fractional library routines. ! (line 1657) * __fractunshiqq: Fixed-point fractional library routines. ! (line 1656) * __fractunshisa: Fixed-point fractional library routines. ! (line 1661) * __fractunshisq: Fixed-point fractional library routines. ! (line 1658) * __fractunshita: Fixed-point fractional library routines. ! (line 1663) * __fractunshiuda: Fixed-point fractional library routines. ! (line 1674) * __fractunshiudq: Fixed-point fractional library routines. ! (line 1669) * __fractunshiuha: Fixed-point fractional library routines. ! (line 1671) * __fractunshiuhq: Fixed-point fractional library routines. ! (line 1666) * __fractunshiuqq: Fixed-point fractional library routines. ! (line 1664) * __fractunshiusa: Fixed-point fractional library routines. ! (line 1673) * __fractunshiusq: Fixed-point fractional library routines. ! (line 1667) * __fractunshiuta: Fixed-point fractional library routines. ! (line 1676) * __fractunshqdi: Fixed-point fractional library routines. ! (line 1528) * __fractunshqhi: Fixed-point fractional library routines. ! (line 1526) * __fractunshqqi: Fixed-point fractional library routines. ! (line 1525) * __fractunshqsi: Fixed-point fractional library routines. ! (line 1527) * __fractunshqti: Fixed-point fractional library routines. ! (line 1529) * __fractunsqida: Fixed-point fractional library routines. ! (line 1640) * __fractunsqidq: Fixed-point fractional library routines. ! (line 1637) * __fractunsqiha: Fixed-point fractional library routines. ! (line 1638) * __fractunsqihq: Fixed-point fractional library routines. ! (line 1635) * __fractunsqiqq: Fixed-point fractional library routines. ! (line 1634) * __fractunsqisa: Fixed-point fractional library routines. ! (line 1639) * __fractunsqisq: Fixed-point fractional library routines. ! (line 1636) * __fractunsqita: Fixed-point fractional library routines. ! (line 1641) * __fractunsqiuda: Fixed-point fractional library routines. ! (line 1652) * __fractunsqiudq: Fixed-point fractional library routines. ! (line 1647) * __fractunsqiuha: Fixed-point fractional library routines. ! (line 1649) * __fractunsqiuhq: Fixed-point fractional library routines. ! (line 1644) * __fractunsqiuqq: Fixed-point fractional library routines. ! (line 1642) * __fractunsqiusa: Fixed-point fractional library routines. ! (line 1651) * __fractunsqiusq: Fixed-point fractional library routines. ! (line 1645) * __fractunsqiuta: Fixed-point fractional library routines. ! (line 1654) * __fractunsqqdi: Fixed-point fractional library routines. ! (line 1523) * __fractunsqqhi: Fixed-point fractional library routines. ! (line 1521) * __fractunsqqqi: Fixed-point fractional library routines. ! (line 1520) * __fractunsqqsi: Fixed-point fractional library routines. ! (line 1522) * __fractunsqqti: Fixed-point fractional library routines. ! (line 1524) * __fractunssadi: Fixed-point fractional library routines. ! (line 1549) * __fractunssahi: Fixed-point fractional library routines. ! (line 1547) * __fractunssaqi: Fixed-point fractional library routines. ! (line 1546) * __fractunssasi: Fixed-point fractional library routines. ! (line 1548) * __fractunssati: Fixed-point fractional library routines. ! (line 1550) * __fractunssida: Fixed-point fractional library routines. ! (line 1684) * __fractunssidq: Fixed-point fractional library routines. ! (line 1681) * __fractunssiha: Fixed-point fractional library routines. ! (line 1682) * __fractunssihq: Fixed-point fractional library routines. ! (line 1679) * __fractunssiqq: Fixed-point fractional library routines. ! (line 1678) * __fractunssisa: Fixed-point fractional library routines. ! (line 1683) * __fractunssisq: Fixed-point fractional library routines. ! (line 1680) * __fractunssita: Fixed-point fractional library routines. ! (line 1685) * __fractunssiuda: Fixed-point fractional library routines. ! (line 1696) * __fractunssiudq: Fixed-point fractional library routines. ! (line 1691) * __fractunssiuha: Fixed-point fractional library routines. ! (line 1693) * __fractunssiuhq: Fixed-point fractional library routines. ! (line 1688) * __fractunssiuqq: Fixed-point fractional library routines. ! (line 1686) * __fractunssiusa: Fixed-point fractional library routines. ! (line 1695) * __fractunssiusq: Fixed-point fractional library routines. ! (line 1689) * __fractunssiuta: Fixed-point fractional library routines. ! (line 1698) * __fractunssqdi: Fixed-point fractional library routines. ! (line 1533) * __fractunssqhi: Fixed-point fractional library routines. ! (line 1531) * __fractunssqqi: Fixed-point fractional library routines. ! (line 1530) * __fractunssqsi: Fixed-point fractional library routines. ! (line 1532) * __fractunssqti: Fixed-point fractional library routines. ! (line 1534) * __fractunstadi: Fixed-point fractional library routines. ! (line 1559) * __fractunstahi: Fixed-point fractional library routines. ! (line 1557) * __fractunstaqi: Fixed-point fractional library routines. ! (line 1556) * __fractunstasi: Fixed-point fractional library routines. ! (line 1558) * __fractunstati: Fixed-point fractional library routines. ! (line 1560) * __fractunstida: Fixed-point fractional library routines. ! (line 1729) * __fractunstidq: Fixed-point fractional library routines. ! (line 1725) * __fractunstiha: Fixed-point fractional library routines. ! (line 1727) * __fractunstihq: Fixed-point fractional library routines. ! (line 1723) * __fractunstiqq: Fixed-point fractional library routines. ! (line 1722) * __fractunstisa: Fixed-point fractional library routines. ! (line 1728) * __fractunstisq: Fixed-point fractional library routines. ! (line 1724) * __fractunstita: Fixed-point fractional library routines. ! (line 1730) * __fractunstiuda: Fixed-point fractional library routines. ! (line 1744) * __fractunstiudq: Fixed-point fractional library routines. ! (line 1738) * __fractunstiuha: Fixed-point fractional library routines. ! (line 1740) * __fractunstiuhq: Fixed-point fractional library routines. ! (line 1734) * __fractunstiuqq: Fixed-point fractional library routines. ! (line 1732) * __fractunstiusa: Fixed-point fractional library routines. ! (line 1742) * __fractunstiusq: Fixed-point fractional library routines. ! (line 1736) * __fractunstiuta: Fixed-point fractional library routines. ! (line 1746) * __fractunsudadi: Fixed-point fractional library routines. ! (line 1620) * __fractunsudahi: Fixed-point fractional library routines. ! (line 1616) * __fractunsudaqi: Fixed-point fractional library routines. ! (line 1614) * __fractunsudasi: Fixed-point fractional library routines. ! (line 1618) * __fractunsudati: Fixed-point fractional library routines. ! (line 1622) * __fractunsudqdi: Fixed-point fractional library routines. ! (line 1594) * __fractunsudqhi: Fixed-point fractional library routines. ! (line 1590) * __fractunsudqqi: Fixed-point fractional library routines. ! (line 1588) * __fractunsudqsi: Fixed-point fractional library routines. ! (line 1592) * __fractunsudqti: Fixed-point fractional library routines. ! (line 1596) * __fractunsuhadi: Fixed-point fractional library routines. ! (line 1604) * __fractunsuhahi: Fixed-point fractional library routines. ! (line 1600) * __fractunsuhaqi: Fixed-point fractional library routines. ! (line 1598) * __fractunsuhasi: Fixed-point fractional library routines. ! (line 1602) * __fractunsuhati: Fixed-point fractional library routines. ! (line 1606) * __fractunsuhqdi: Fixed-point fractional library routines. ! (line 1575) * __fractunsuhqhi: Fixed-point fractional library routines. ! (line 1573) * __fractunsuhqqi: Fixed-point fractional library routines. ! (line 1572) * __fractunsuhqsi: Fixed-point fractional library routines. ! (line 1574) * __fractunsuhqti: Fixed-point fractional library routines. (line 1576) + * __fractunsuqqdi: Fixed-point fractional library routines. + (line 1568) * __fractunsuqqhi: Fixed-point fractional library routines. ! (line 1564) * __fractunsuqqqi: Fixed-point fractional library routines. ! (line 1562) * __fractunsuqqsi: Fixed-point fractional library routines. ! (line 1566) * __fractunsuqqti: Fixed-point fractional library routines. ! (line 1570) * __fractunsusadi: Fixed-point fractional library routines. ! (line 1611) * __fractunsusahi: Fixed-point fractional library routines. ! (line 1609) * __fractunsusaqi: Fixed-point fractional library routines. ! (line 1608) * __fractunsusasi: Fixed-point fractional library routines. ! (line 1610) * __fractunsusati: Fixed-point fractional library routines. ! (line 1612) * __fractunsusqdi: Fixed-point fractional library routines. ! (line 1584) * __fractunsusqhi: Fixed-point fractional library routines. ! (line 1580) * __fractunsusqqi: Fixed-point fractional library routines. ! (line 1578) * __fractunsusqsi: Fixed-point fractional library routines. ! (line 1582) * __fractunsusqti: Fixed-point fractional library routines. ! (line 1586) * __fractunsutadi: Fixed-point fractional library routines. ! (line 1630) * __fractunsutahi: Fixed-point fractional library routines. ! (line 1626) * __fractunsutaqi: Fixed-point fractional library routines. ! (line 1624) * __fractunsutasi: Fixed-point fractional library routines. ! (line 1628) * __fractunsutati: Fixed-point fractional library routines. ! (line 1632) * __fractuqqda: Fixed-point fractional library routines. ! (line 671) * __fractuqqdf: Fixed-point fractional library routines. ! (line 694) * __fractuqqdi: Fixed-point fractional library routines. ! (line 691) * __fractuqqdq: Fixed-point fractional library routines. ! (line 667) * __fractuqqha: Fixed-point fractional library routines. ! (line 669) * __fractuqqhi: Fixed-point fractional library routines. ! (line 689) * __fractuqqhq: Fixed-point fractional library routines. ! (line 665) * __fractuqqqi: Fixed-point fractional library routines. ! (line 688) * __fractuqqqq: Fixed-point fractional library routines. ! (line 664) * __fractuqqsa: Fixed-point fractional library routines. ! (line 670) * __fractuqqsf: Fixed-point fractional library routines. ! (line 693) * __fractuqqsi: Fixed-point fractional library routines. ! (line 690) * __fractuqqsq: Fixed-point fractional library routines. ! (line 666) * __fractuqqta: Fixed-point fractional library routines. ! (line 672) * __fractuqqti: Fixed-point fractional library routines. (line 692) + * __fractuqquda: Fixed-point fractional library routines. + (line 684) * __fractuqqudq2: Fixed-point fractional library routines. ! (line 678) * __fractuqquha: Fixed-point fractional library routines. ! (line 680) * __fractuqquhq2: Fixed-point fractional library routines. ! (line 674) * __fractuqqusa: Fixed-point fractional library routines. ! (line 682) * __fractuqqusq2: Fixed-point fractional library routines. ! (line 676) * __fractuqquta: Fixed-point fractional library routines. ! (line 686) * __fractusada: Fixed-point fractional library routines. ! (line 828) * __fractusadf: Fixed-point fractional library routines. ! (line 849) * __fractusadi: Fixed-point fractional library routines. ! (line 846) * __fractusadq: Fixed-point fractional library routines. ! (line 825) * __fractusaha: Fixed-point fractional library routines. ! (line 826) * __fractusahi: Fixed-point fractional library routines. ! (line 844) * __fractusahq: Fixed-point fractional library routines. ! (line 823) * __fractusaqi: Fixed-point fractional library routines. ! (line 843) * __fractusaqq: Fixed-point fractional library routines. ! (line 822) * __fractusasa: Fixed-point fractional library routines. ! (line 827) * __fractusasf: Fixed-point fractional library routines. ! (line 848) * __fractusasi: Fixed-point fractional library routines. ! (line 845) * __fractusasq: Fixed-point fractional library routines. ! (line 824) * __fractusata: Fixed-point fractional library routines. ! (line 829) * __fractusati: Fixed-point fractional library routines. (line 847) + * __fractusauda2: Fixed-point fractional library routines. + (line 839) * __fractusaudq: Fixed-point fractional library routines. ! (line 835) * __fractusauha2: Fixed-point fractional library routines. ! (line 837) * __fractusauhq: Fixed-point fractional library routines. ! (line 832) * __fractusauqq: Fixed-point fractional library routines. ! (line 830) * __fractusausq: Fixed-point fractional library routines. ! (line 833) * __fractusauta2: Fixed-point fractional library routines. ! (line 841) * __fractusqda: Fixed-point fractional library routines. ! (line 730) * __fractusqdf: Fixed-point fractional library routines. ! (line 753) * __fractusqdi: Fixed-point fractional library routines. ! (line 750) * __fractusqdq: Fixed-point fractional library routines. ! (line 726) * __fractusqha: Fixed-point fractional library routines. ! (line 728) * __fractusqhi: Fixed-point fractional library routines. ! (line 748) * __fractusqhq: Fixed-point fractional library routines. ! (line 724) * __fractusqqi: Fixed-point fractional library routines. ! (line 747) * __fractusqqq: Fixed-point fractional library routines. ! (line 723) * __fractusqsa: Fixed-point fractional library routines. ! (line 729) * __fractusqsf: Fixed-point fractional library routines. ! (line 752) * __fractusqsi: Fixed-point fractional library routines. ! (line 749) * __fractusqsq: Fixed-point fractional library routines. ! (line 725) * __fractusqta: Fixed-point fractional library routines. ! (line 731) * __fractusqti: Fixed-point fractional library routines. (line 751) + * __fractusquda: Fixed-point fractional library routines. + (line 743) * __fractusqudq2: Fixed-point fractional library routines. ! (line 737) * __fractusquha: Fixed-point fractional library routines. ! (line 739) * __fractusquhq2: Fixed-point fractional library routines. ! (line 735) * __fractusquqq2: Fixed-point fractional library routines. ! (line 733) * __fractusqusa: Fixed-point fractional library routines. ! (line 741) * __fractusquta: Fixed-point fractional library routines. ! (line 745) * __fractutada: Fixed-point fractional library routines. ! (line 891) * __fractutadf: Fixed-point fractional library routines. ! (line 917) * __fractutadi: Fixed-point fractional library routines. ! (line 913) * __fractutadq: Fixed-point fractional library routines. ! (line 886) * __fractutaha: Fixed-point fractional library routines. ! (line 888) * __fractutahi: Fixed-point fractional library routines. ! (line 911) * __fractutahq: Fixed-point fractional library routines. ! (line 883) * __fractutaqi: Fixed-point fractional library routines. ! (line 909) * __fractutaqq: Fixed-point fractional library routines. ! (line 881) * __fractutasa: Fixed-point fractional library routines. ! (line 890) * __fractutasf: Fixed-point fractional library routines. ! (line 916) * __fractutasi: Fixed-point fractional library routines. ! (line 912) * __fractutasq: Fixed-point fractional library routines. ! (line 884) * __fractutata: Fixed-point fractional library routines. ! (line 893) * __fractutati: Fixed-point fractional library routines. ! (line 914) * __fractutauda2: Fixed-point fractional library routines. ! (line 907) * __fractutaudq: Fixed-point fractional library routines. ! (line 901) * __fractutauha2: Fixed-point fractional library routines. ! (line 903) * __fractutauhq: Fixed-point fractional library routines. ! (line 897) * __fractutauqq: Fixed-point fractional library routines. ! (line 895) * __fractutausa2: Fixed-point fractional library routines. ! (line 905) * __fractutausq: Fixed-point fractional library routines. ! (line 899) * __gedf2: Soft float library routines. (line 205) * __gesf2: Soft float library routines. *************** Concept Index *** 52189,52209 **** * __lshrti3: Integer library routines. (line 31) * __lshruda3: Fixed-point fractional library routines. ! (line 396) * __lshrudq3: Fixed-point fractional library routines. ! (line 390) * __lshruha3: Fixed-point fractional library routines. ! (line 392) * __lshruhq3: Fixed-point fractional library routines. ! (line 386) * __lshruqq3: Fixed-point fractional library routines. ! (line 384) * __lshrusa3: Fixed-point fractional library routines. ! (line 394) * __lshrusq3: Fixed-point fractional library routines. ! (line 388) * __lshruta3: Fixed-point fractional library routines. ! (line 398) * __ltdf2: Soft float library routines. (line 211) * __ltsf2: Soft float library routines. --- 52189,52209 ---- * __lshrti3: Integer library routines. (line 31) * __lshruda3: Fixed-point fractional library routines. ! (line 388) * __lshrudq3: Fixed-point fractional library routines. ! (line 382) * __lshruha3: Fixed-point fractional library routines. ! (line 384) * __lshruhq3: Fixed-point fractional library routines. ! (line 378) * __lshruqq3: Fixed-point fractional library routines. ! (line 376) * __lshrusa3: Fixed-point fractional library routines. ! (line 386) * __lshrusq3: Fixed-point fractional library routines. ! (line 380) * __lshruta3: Fixed-point fractional library routines. ! (line 390) * __ltdf2: Soft float library routines. (line 211) * __ltsf2: Soft float library routines. *************** Concept Index *** 52224,52230 **** * __morestack_segments: Miscellaneous routines. (line 44) * __mulda3: Fixed-point fractional library routines. ! (line 178) * __muldc3: Soft float library routines. (line 239) * __muldf3: Soft float library routines. --- 52224,52230 ---- * __morestack_segments: Miscellaneous routines. (line 44) * __mulda3: Fixed-point fractional library routines. ! (line 170) * __muldc3: Soft float library routines. (line 239) * __muldf3: Soft float library routines. *************** Concept Index *** 52232,52246 **** * __muldi3: Integer library routines. (line 42) * __muldq3: Fixed-point fractional library routines. ! (line 165) * __mulha3: Fixed-point fractional library routines. ! (line 175) * __mulhq3: Fixed-point fractional library routines. ! (line 163) * __mulqq3: Fixed-point fractional library routines. ! (line 161) * __mulsa3: Fixed-point fractional library routines. ! (line 177) * __mulsc3: Soft float library routines. (line 237) * __mulsf3: Soft float library routines. --- 52232,52246 ---- * __muldi3: Integer library routines. (line 42) * __muldq3: Fixed-point fractional library routines. ! (line 157) * __mulha3: Fixed-point fractional library routines. ! (line 167) * __mulhq3: Fixed-point fractional library routines. ! (line 155) * __mulqq3: Fixed-point fractional library routines. ! (line 153) * __mulsa3: Fixed-point fractional library routines. ! (line 169) * __mulsc3: Soft float library routines. (line 237) * __mulsf3: Soft float library routines. *************** Concept Index *** 52248,52256 **** * __mulsi3: Integer library routines. (line 41) * __mulsq3: Fixed-point fractional library routines. ! (line 164) * __multa3: Fixed-point fractional library routines. ! (line 179) * __multc3: Soft float library routines. (line 241) * __multf3: Soft float library routines. --- 52248,52256 ---- * __mulsi3: Integer library routines. (line 41) * __mulsq3: Fixed-point fractional library routines. ! (line 156) * __multa3: Fixed-point fractional library routines. ! (line 171) * __multc3: Soft float library routines. (line 241) * __multf3: Soft float library routines. *************** Concept Index *** 52258,52278 **** * __multi3: Integer library routines. (line 43) * __muluda3: Fixed-point fractional library routines. ! (line 185) * __muludq3: Fixed-point fractional library routines. ! (line 173) * __muluha3: Fixed-point fractional library routines. ! (line 181) * __muluhq3: Fixed-point fractional library routines. ! (line 169) * __muluqq3: Fixed-point fractional library routines. ! (line 167) * __mulusa3: Fixed-point fractional library routines. ! (line 183) * __mulusq3: Fixed-point fractional library routines. ! (line 171) * __muluta3: Fixed-point fractional library routines. ! (line 187) * __mulvdi3: Integer library routines. (line 114) * __mulvsi3: Integer library routines. --- 52258,52278 ---- * __multi3: Integer library routines. (line 43) * __muluda3: Fixed-point fractional library routines. ! (line 177) * __muludq3: Fixed-point fractional library routines. ! (line 165) * __muluha3: Fixed-point fractional library routines. ! (line 173) * __muluhq3: Fixed-point fractional library routines. ! (line 161) * __muluqq3: Fixed-point fractional library routines. ! (line 159) * __mulusa3: Fixed-point fractional library routines. ! (line 175) * __mulusq3: Fixed-point fractional library routines. ! (line 163) * __muluta3: Fixed-point fractional library routines. ! (line 179) * __mulvdi3: Integer library routines. (line 114) * __mulvsi3: Integer library routines. *************** Concept Index *** 52284,52330 **** * __nedf2: Soft float library routines. (line 199) * __negda2: Fixed-point fractional library routines. ! (line 306) * __negdf2: Soft float library routines. (line 55) * __negdi2: Integer library routines. (line 46) * __negdq2: Fixed-point fractional library routines. ! (line 296) * __negha2: Fixed-point fractional library routines. ! (line 304) * __neghq2: Fixed-point fractional library routines. ! (line 294) * __negqq2: Fixed-point fractional library routines. ! (line 293) * __negsa2: Fixed-point fractional library routines. ! (line 305) * __negsf2: Soft float library routines. (line 54) * __negsq2: Fixed-point fractional library routines. ! (line 295) * __negta2: Fixed-point fractional library routines. ! (line 307) * __negtf2: Soft float library routines. (line 56) * __negti2: Integer library routines. (line 47) * __neguda2: Fixed-point fractional library routines. ! (line 311) * __negudq2: Fixed-point fractional library routines. ! (line 302) * __neguha2: Fixed-point fractional library routines. ! (line 308) * __neguhq2: Fixed-point fractional library routines. ! (line 299) * __neguqq2: Fixed-point fractional library routines. ! (line 297) * __negusa2: Fixed-point fractional library routines. ! (line 310) * __negusq2: Fixed-point fractional library routines. ! (line 300) * __neguta2: Fixed-point fractional library routines. ! (line 313) * __negvdi2: Integer library routines. (line 118) * __negvsi2: Integer library routines. --- 52284,52330 ---- * __nedf2: Soft float library routines. (line 199) * __negda2: Fixed-point fractional library routines. ! (line 298) * __negdf2: Soft float library routines. (line 55) * __negdi2: Integer library routines. (line 46) * __negdq2: Fixed-point fractional library routines. ! (line 288) * __negha2: Fixed-point fractional library routines. ! (line 296) * __neghq2: Fixed-point fractional library routines. ! (line 286) * __negqq2: Fixed-point fractional library routines. ! (line 285) * __negsa2: Fixed-point fractional library routines. ! (line 297) * __negsf2: Soft float library routines. (line 54) * __negsq2: Fixed-point fractional library routines. ! (line 287) * __negta2: Fixed-point fractional library routines. ! (line 299) * __negtf2: Soft float library routines. (line 56) * __negti2: Integer library routines. (line 47) * __neguda2: Fixed-point fractional library routines. ! (line 303) * __negudq2: Fixed-point fractional library routines. ! (line 294) * __neguha2: Fixed-point fractional library routines. ! (line 300) * __neguhq2: Fixed-point fractional library routines. ! (line 291) * __neguqq2: Fixed-point fractional library routines. ! (line 289) * __negusa2: Fixed-point fractional library routines. ! (line 302) * __negusq2: Fixed-point fractional library routines. ! (line 292) * __neguta2: Fixed-point fractional library routines. ! (line 305) * __negvdi2: Integer library routines. (line 118) * __negvsi2: Integer library routines. *************** Concept Index *** 52356,53358 **** * __powixf2: Soft float library routines. (line 234) * __satfractdadq: Fixed-point fractional library routines. ! (line 1160) * __satfractdaha2: Fixed-point fractional library routines. ! (line 1161) * __satfractdahq: Fixed-point fractional library routines. ! (line 1158) * __satfractdaqq: Fixed-point fractional library routines. ! (line 1157) * __satfractdasa2: Fixed-point fractional library routines. ! (line 1162) * __satfractdasq: Fixed-point fractional library routines. ! (line 1159) * __satfractdata2: Fixed-point fractional library routines. ! (line 1163) * __satfractdauda: Fixed-point fractional library routines. ! (line 1173) * __satfractdaudq: Fixed-point fractional library routines. ! (line 1168) * __satfractdauha: Fixed-point fractional library routines. ! (line 1170) * __satfractdauhq: Fixed-point fractional library routines. ! (line 1166) * __satfractdauqq: Fixed-point fractional library routines. ! (line 1164) * __satfractdausa: Fixed-point fractional library routines. ! (line 1172) * __satfractdausq: Fixed-point fractional library routines. ! (line 1167) * __satfractdauta: Fixed-point fractional library routines. ! (line 1174) * __satfractdfda: Fixed-point fractional library routines. ! (line 1513) * __satfractdfdq: Fixed-point fractional library routines. ! (line 1510) * __satfractdfha: Fixed-point fractional library routines. ! (line 1511) * __satfractdfhq: Fixed-point fractional library routines. ! (line 1508) * __satfractdfqq: Fixed-point fractional library routines. ! (line 1507) * __satfractdfsa: Fixed-point fractional library routines. ! (line 1512) * __satfractdfsq: Fixed-point fractional library routines. ! (line 1509) * __satfractdfta: Fixed-point fractional library routines. ! (line 1514) * __satfractdfuda: Fixed-point fractional library routines. ! (line 1522) * __satfractdfudq: Fixed-point fractional library routines. ! (line 1518) * __satfractdfuha: Fixed-point fractional library routines. ! (line 1520) * __satfractdfuhq: Fixed-point fractional library routines. ! (line 1516) * __satfractdfuqq: Fixed-point fractional library routines. ! (line 1515) * __satfractdfusa: Fixed-point fractional library routines. ! (line 1521) * __satfractdfusq: Fixed-point fractional library routines. ! (line 1517) * __satfractdfuta: Fixed-point fractional library routines. ! (line 1523) * __satfractdida: Fixed-point fractional library routines. ! (line 1463) * __satfractdidq: Fixed-point fractional library routines. ! (line 1460) * __satfractdiha: Fixed-point fractional library routines. ! (line 1461) * __satfractdihq: Fixed-point fractional library routines. ! (line 1458) * __satfractdiqq: Fixed-point fractional library routines. ! (line 1457) * __satfractdisa: Fixed-point fractional library routines. ! (line 1462) * __satfractdisq: Fixed-point fractional library routines. ! (line 1459) * __satfractdita: Fixed-point fractional library routines. ! (line 1464) * __satfractdiuda: Fixed-point fractional library routines. ! (line 1471) * __satfractdiudq: Fixed-point fractional library routines. ! (line 1468) * __satfractdiuha: Fixed-point fractional library routines. ! (line 1469) * __satfractdiuhq: Fixed-point fractional library routines. ! (line 1466) * __satfractdiuqq: Fixed-point fractional library routines. ! (line 1465) * __satfractdiusa: Fixed-point fractional library routines. ! (line 1470) * __satfractdiusq: Fixed-point fractional library routines. ! (line 1467) * __satfractdiuta: Fixed-point fractional library routines. ! (line 1472) * __satfractdqda: Fixed-point fractional library routines. ! (line 1105) * __satfractdqha: Fixed-point fractional library routines. ! (line 1103) * __satfractdqhq2: Fixed-point fractional library routines. ! (line 1101) * __satfractdqqq2: Fixed-point fractional library routines. ! (line 1100) * __satfractdqsa: Fixed-point fractional library routines. ! (line 1104) * __satfractdqsq2: Fixed-point fractional library routines. ! (line 1102) * __satfractdqta: Fixed-point fractional library routines. ! (line 1106) * __satfractdquda: Fixed-point fractional library routines. ! (line 1117) * __satfractdqudq: Fixed-point fractional library routines. ! (line 1112) * __satfractdquha: Fixed-point fractional library routines. ! (line 1114) * __satfractdquhq: Fixed-point fractional library routines. ! (line 1109) * __satfractdquqq: Fixed-point fractional library routines. ! (line 1107) * __satfractdqusa: Fixed-point fractional library routines. ! (line 1116) * __satfractdqusq: Fixed-point fractional library routines. ! (line 1110) * __satfractdquta: Fixed-point fractional library routines. ! (line 1119) * __satfracthada2: Fixed-point fractional library routines. ! (line 1126) * __satfracthadq: Fixed-point fractional library routines. ! (line 1124) * __satfracthahq: Fixed-point fractional library routines. ! (line 1122) * __satfracthaqq: Fixed-point fractional library routines. ! (line 1121) * __satfracthasa2: Fixed-point fractional library routines. ! (line 1125) * __satfracthasq: Fixed-point fractional library routines. ! (line 1123) * __satfracthata2: Fixed-point fractional library routines. ! (line 1127) * __satfracthauda: Fixed-point fractional library routines. ! (line 1138) * __satfracthaudq: Fixed-point fractional library routines. ! (line 1133) * __satfracthauha: Fixed-point fractional library routines. ! (line 1135) * __satfracthauhq: Fixed-point fractional library routines. ! (line 1130) * __satfracthauqq: Fixed-point fractional library routines. ! (line 1128) * __satfracthausa: Fixed-point fractional library routines. ! (line 1137) * __satfracthausq: Fixed-point fractional library routines. ! (line 1131) * __satfracthauta: Fixed-point fractional library routines. ! (line 1140) * __satfracthida: Fixed-point fractional library routines. ! (line 1431) * __satfracthidq: Fixed-point fractional library routines. ! (line 1428) * __satfracthiha: Fixed-point fractional library routines. ! (line 1429) * __satfracthihq: Fixed-point fractional library routines. ! (line 1426) * __satfracthiqq: Fixed-point fractional library routines. ! (line 1425) * __satfracthisa: Fixed-point fractional library routines. ! (line 1430) * __satfracthisq: Fixed-point fractional library routines. ! (line 1427) * __satfracthita: Fixed-point fractional library routines. ! (line 1432) * __satfracthiuda: Fixed-point fractional library routines. ! (line 1439) * __satfracthiudq: Fixed-point fractional library routines. ! (line 1436) * __satfracthiuha: Fixed-point fractional library routines. ! (line 1437) * __satfracthiuhq: Fixed-point fractional library routines. ! (line 1434) * __satfracthiuqq: Fixed-point fractional library routines. ! (line 1433) * __satfracthiusa: Fixed-point fractional library routines. ! (line 1438) * __satfracthiusq: Fixed-point fractional library routines. ! (line 1435) * __satfracthiuta: Fixed-point fractional library routines. ! (line 1440) * __satfracthqda: Fixed-point fractional library routines. ! (line 1071) * __satfracthqdq2: Fixed-point fractional library routines. ! (line 1068) * __satfracthqha: Fixed-point fractional library routines. ! (line 1069) * __satfracthqqq2: Fixed-point fractional library routines. ! (line 1066) * __satfracthqsa: Fixed-point fractional library routines. ! (line 1070) * __satfracthqsq2: Fixed-point fractional library routines. ! (line 1067) * __satfracthqta: Fixed-point fractional library routines. ! (line 1072) * __satfracthquda: Fixed-point fractional library routines. ! (line 1079) * __satfracthqudq: Fixed-point fractional library routines. ! (line 1076) * __satfracthquha: Fixed-point fractional library routines. ! (line 1077) * __satfracthquhq: Fixed-point fractional library routines. ! (line 1074) * __satfracthquqq: Fixed-point fractional library routines. ! (line 1073) * __satfracthqusa: Fixed-point fractional library routines. ! (line 1078) * __satfracthqusq: Fixed-point fractional library routines. ! (line 1075) * __satfracthquta: Fixed-point fractional library routines. ! (line 1080) * __satfractqida: Fixed-point fractional library routines. ! (line 1409) * __satfractqidq: Fixed-point fractional library routines. ! (line 1406) * __satfractqiha: Fixed-point fractional library routines. ! (line 1407) * __satfractqihq: Fixed-point fractional library routines. ! (line 1404) * __satfractqiqq: Fixed-point fractional library routines. ! (line 1403) * __satfractqisa: Fixed-point fractional library routines. ! (line 1408) * __satfractqisq: Fixed-point fractional library routines. ! (line 1405) * __satfractqita: Fixed-point fractional library routines. ! (line 1410) * __satfractqiuda: Fixed-point fractional library routines. ! (line 1421) * __satfractqiudq: Fixed-point fractional library routines. ! (line 1416) * __satfractqiuha: Fixed-point fractional library routines. ! (line 1418) * __satfractqiuhq: Fixed-point fractional library routines. ! (line 1413) * __satfractqiuqq: Fixed-point fractional library routines. ! (line 1411) * __satfractqiusa: Fixed-point fractional library routines. ! (line 1420) * __satfractqiusq: Fixed-point fractional library routines. ! (line 1414) * __satfractqiuta: Fixed-point fractional library routines. ! (line 1423) * __satfractqqda: Fixed-point fractional library routines. ! (line 1050) * __satfractqqdq2: Fixed-point fractional library routines. ! (line 1047) * __satfractqqha: Fixed-point fractional library routines. ! (line 1048) * __satfractqqhq2: Fixed-point fractional library routines. ! (line 1045) * __satfractqqsa: Fixed-point fractional library routines. ! (line 1049) * __satfractqqsq2: Fixed-point fractional library routines. ! (line 1046) * __satfractqqta: Fixed-point fractional library routines. ! (line 1051) * __satfractqquda: Fixed-point fractional library routines. ! (line 1062) * __satfractqqudq: Fixed-point fractional library routines. ! (line 1057) * __satfractqquha: Fixed-point fractional library routines. ! (line 1059) * __satfractqquhq: Fixed-point fractional library routines. ! (line 1054) * __satfractqquqq: Fixed-point fractional library routines. ! (line 1052) * __satfractqqusa: Fixed-point fractional library routines. ! (line 1061) * __satfractqqusq: Fixed-point fractional library routines. ! (line 1055) * __satfractqquta: Fixed-point fractional library routines. ! (line 1064) * __satfractsada2: Fixed-point fractional library routines. ! (line 1147) * __satfractsadq: Fixed-point fractional library routines. ! (line 1145) * __satfractsaha2: Fixed-point fractional library routines. ! (line 1146) * __satfractsahq: Fixed-point fractional library routines. ! (line 1143) * __satfractsaqq: Fixed-point fractional library routines. ! (line 1142) * __satfractsasq: Fixed-point fractional library routines. ! (line 1144) * __satfractsata2: Fixed-point fractional library routines. ! (line 1148) * __satfractsauda: Fixed-point fractional library routines. ! (line 1155) * __satfractsaudq: Fixed-point fractional library routines. ! (line 1152) * __satfractsauha: Fixed-point fractional library routines. ! (line 1153) * __satfractsauhq: Fixed-point fractional library routines. ! (line 1150) * __satfractsauqq: Fixed-point fractional library routines. ! (line 1149) * __satfractsausa: Fixed-point fractional library routines. ! (line 1154) * __satfractsausq: Fixed-point fractional library routines. ! (line 1151) * __satfractsauta: Fixed-point fractional library routines. ! (line 1156) * __satfractsfda: Fixed-point fractional library routines. ! (line 1497) * __satfractsfdq: Fixed-point fractional library routines. ! (line 1494) * __satfractsfha: Fixed-point fractional library routines. ! (line 1495) * __satfractsfhq: Fixed-point fractional library routines. ! (line 1492) * __satfractsfqq: Fixed-point fractional library routines. ! (line 1491) * __satfractsfsa: Fixed-point fractional library routines. ! (line 1496) * __satfractsfsq: Fixed-point fractional library routines. ! (line 1493) * __satfractsfta: Fixed-point fractional library routines. ! (line 1498) * __satfractsfuda: Fixed-point fractional library routines. ! (line 1505) * __satfractsfudq: Fixed-point fractional library routines. ! (line 1502) * __satfractsfuha: Fixed-point fractional library routines. ! (line 1503) * __satfractsfuhq: Fixed-point fractional library routines. ! (line 1500) * __satfractsfuqq: Fixed-point fractional library routines. ! (line 1499) * __satfractsfusa: Fixed-point fractional library routines. ! (line 1504) * __satfractsfusq: Fixed-point fractional library routines. ! (line 1501) * __satfractsfuta: Fixed-point fractional library routines. ! (line 1506) * __satfractsida: Fixed-point fractional library routines. ! (line 1447) * __satfractsidq: Fixed-point fractional library routines. ! (line 1444) * __satfractsiha: Fixed-point fractional library routines. ! (line 1445) * __satfractsihq: Fixed-point fractional library routines. ! (line 1442) * __satfractsiqq: Fixed-point fractional library routines. ! (line 1441) * __satfractsisa: Fixed-point fractional library routines. ! (line 1446) * __satfractsisq: Fixed-point fractional library routines. ! (line 1443) * __satfractsita: Fixed-point fractional library routines. ! (line 1448) * __satfractsiuda: Fixed-point fractional library routines. ! (line 1455) * __satfractsiudq: Fixed-point fractional library routines. ! (line 1452) * __satfractsiuha: Fixed-point fractional library routines. ! (line 1453) * __satfractsiuhq: Fixed-point fractional library routines. ! (line 1450) * __satfractsiuqq: Fixed-point fractional library routines. ! (line 1449) * __satfractsiusa: Fixed-point fractional library routines. ! (line 1454) * __satfractsiusq: Fixed-point fractional library routines. ! (line 1451) * __satfractsiuta: Fixed-point fractional library routines. ! (line 1456) * __satfractsqda: Fixed-point fractional library routines. ! (line 1086) * __satfractsqdq2: Fixed-point fractional library routines. ! (line 1083) * __satfractsqha: Fixed-point fractional library routines. ! (line 1084) * __satfractsqhq2: Fixed-point fractional library routines. ! (line 1082) * __satfractsqqq2: Fixed-point fractional library routines. ! (line 1081) * __satfractsqsa: Fixed-point fractional library routines. ! (line 1085) * __satfractsqta: Fixed-point fractional library routines. ! (line 1087) * __satfractsquda: Fixed-point fractional library routines. ! (line 1097) * __satfractsqudq: Fixed-point fractional library routines. ! (line 1092) * __satfractsquha: Fixed-point fractional library routines. ! (line 1094) * __satfractsquhq: Fixed-point fractional library routines. ! (line 1090) * __satfractsquqq: Fixed-point fractional library routines. ! (line 1088) * __satfractsqusa: Fixed-point fractional library routines. ! (line 1096) * __satfractsqusq: Fixed-point fractional library routines. ! (line 1091) * __satfractsquta: Fixed-point fractional library routines. ! (line 1098) * __satfracttada2: Fixed-point fractional library routines. ! (line 1182) * __satfracttadq: Fixed-point fractional library routines. ! (line 1179) * __satfracttaha2: Fixed-point fractional library routines. ! (line 1180) * __satfracttahq: Fixed-point fractional library routines. ! (line 1177) * __satfracttaqq: Fixed-point fractional library routines. ! (line 1176) * __satfracttasa2: Fixed-point fractional library routines. ! (line 1181) * __satfracttasq: Fixed-point fractional library routines. ! (line 1178) * __satfracttauda: Fixed-point fractional library routines. ! (line 1193) * __satfracttaudq: Fixed-point fractional library routines. ! (line 1188) * __satfracttauha: Fixed-point fractional library routines. ! (line 1190) * __satfracttauhq: Fixed-point fractional library routines. ! (line 1185) * __satfracttauqq: Fixed-point fractional library routines. ! (line 1183) * __satfracttausa: Fixed-point fractional library routines. ! (line 1192) * __satfracttausq: Fixed-point fractional library routines. ! (line 1186) * __satfracttauta: Fixed-point fractional library routines. ! (line 1195) * __satfracttida: Fixed-point fractional library routines. ! (line 1479) * __satfracttidq: Fixed-point fractional library routines. ! (line 1476) * __satfracttiha: Fixed-point fractional library routines. ! (line 1477) * __satfracttihq: Fixed-point fractional library routines. ! (line 1474) * __satfracttiqq: Fixed-point fractional library routines. ! (line 1473) * __satfracttisa: Fixed-point fractional library routines. ! (line 1478) * __satfracttisq: Fixed-point fractional library routines. ! (line 1475) * __satfracttita: Fixed-point fractional library routines. ! (line 1480) * __satfracttiuda: Fixed-point fractional library routines. ! (line 1488) * __satfracttiudq: Fixed-point fractional library routines. ! (line 1484) * __satfracttiuha: Fixed-point fractional library routines. ! (line 1486) * __satfracttiuhq: Fixed-point fractional library routines. ! (line 1482) * __satfracttiuqq: Fixed-point fractional library routines. ! (line 1481) * __satfracttiusa: Fixed-point fractional library routines. ! (line 1487) * __satfracttiusq: Fixed-point fractional library routines. ! (line 1483) * __satfracttiuta: Fixed-point fractional library routines. ! (line 1489) * __satfractudada: Fixed-point fractional library routines. ! (line 1358) * __satfractudadq: Fixed-point fractional library routines. ! (line 1353) * __satfractudaha: Fixed-point fractional library routines. ! (line 1355) * __satfractudahq: Fixed-point fractional library routines. ! (line 1351) * __satfractudaqq: Fixed-point fractional library routines. ! (line 1349) * __satfractudasa: Fixed-point fractional library routines. ! (line 1357) * __satfractudasq: Fixed-point fractional library routines. ! (line 1352) * __satfractudata: Fixed-point fractional library routines. ! (line 1359) * __satfractudaudq: Fixed-point fractional library routines. ! (line 1367) * __satfractudauha2: Fixed-point fractional library routines. ! (line 1369) * __satfractudauhq: Fixed-point fractional library routines. ! (line 1363) * __satfractudauqq: Fixed-point fractional library routines. ! (line 1361) * __satfractudausa2: Fixed-point fractional library routines. ! (line 1371) * __satfractudausq: Fixed-point fractional library routines. ! (line 1365) * __satfractudauta2: Fixed-point fractional library routines. ! (line 1373) * __satfractudqda: Fixed-point fractional library routines. ! (line 1282) * __satfractudqdq: Fixed-point fractional library routines. ! (line 1277) * __satfractudqha: Fixed-point fractional library routines. ! (line 1279) * __satfractudqhq: Fixed-point fractional library routines. ! (line 1274) * __satfractudqqq: Fixed-point fractional library routines. ! (line 1272) * __satfractudqsa: Fixed-point fractional library routines. ! (line 1281) * __satfractudqsq: Fixed-point fractional library routines. ! (line 1275) * __satfractudqta: Fixed-point fractional library routines. ! (line 1284) * __satfractudquda: Fixed-point fractional library routines. ! (line 1296) * __satfractudquha: Fixed-point fractional library routines. ! (line 1292) * __satfractudquhq2: Fixed-point fractional library routines. ! (line 1288) * __satfractudquqq2: Fixed-point fractional library routines. ! (line 1286) * __satfractudqusa: Fixed-point fractional library routines. ! (line 1294) * __satfractudqusq2: Fixed-point fractional library routines. ! (line 1290) * __satfractudquta: Fixed-point fractional library routines. ! (line 1298) * __satfractuhada: Fixed-point fractional library routines. ! (line 1310) * __satfractuhadq: Fixed-point fractional library routines. ! (line 1305) * __satfractuhaha: Fixed-point fractional library routines. ! (line 1307) * __satfractuhahq: Fixed-point fractional library routines. ! (line 1302) * __satfractuhaqq: Fixed-point fractional library routines. ! (line 1300) * __satfractuhasa: Fixed-point fractional library routines. ! (line 1309) * __satfractuhasq: Fixed-point fractional library routines. ! (line 1303) * __satfractuhata: Fixed-point fractional library routines. ! (line 1312) * __satfractuhauda2: Fixed-point fractional library routines. ! (line 1324) * __satfractuhaudq: Fixed-point fractional library routines. ! (line 1320) * __satfractuhauhq: Fixed-point fractional library routines. ! (line 1316) * __satfractuhauqq: Fixed-point fractional library routines. ! (line 1314) * __satfractuhausa2: Fixed-point fractional library routines. ! (line 1322) * __satfractuhausq: Fixed-point fractional library routines. ! (line 1318) * __satfractuhauta2: Fixed-point fractional library routines. ! (line 1326) * __satfractuhqda: Fixed-point fractional library routines. ! (line 1231) * __satfractuhqdq: Fixed-point fractional library routines. ! (line 1228) * __satfractuhqha: Fixed-point fractional library routines. ! (line 1229) * __satfractuhqhq: Fixed-point fractional library routines. ! (line 1226) * __satfractuhqqq: Fixed-point fractional library routines. ! (line 1225) * __satfractuhqsa: Fixed-point fractional library routines. ! (line 1230) * __satfractuhqsq: Fixed-point fractional library routines. ! (line 1227) * __satfractuhqta: Fixed-point fractional library routines. ! (line 1232) * __satfractuhquda: Fixed-point fractional library routines. ! (line 1242) * __satfractuhqudq2: Fixed-point fractional library routines. ! (line 1237) * __satfractuhquha: Fixed-point fractional library routines. ! (line 1239) * __satfractuhquqq2: Fixed-point fractional library routines. ! (line 1233) * __satfractuhqusa: Fixed-point fractional library routines. ! (line 1241) * __satfractuhqusq2: Fixed-point fractional library routines. ! (line 1235) * __satfractuhquta: Fixed-point fractional library routines. ! (line 1244) * __satfractunsdida: Fixed-point fractional library routines. ! (line 1841) * __satfractunsdidq: Fixed-point fractional library routines. ! (line 1837) * __satfractunsdiha: Fixed-point fractional library routines. ! (line 1839) * __satfractunsdihq: Fixed-point fractional library routines. ! (line 1835) * __satfractunsdiqq: Fixed-point fractional library routines. ! (line 1834) * __satfractunsdisa: Fixed-point fractional library routines. ! (line 1840) * __satfractunsdisq: Fixed-point fractional library routines. ! (line 1836) * __satfractunsdita: Fixed-point fractional library routines. ! (line 1842) * __satfractunsdiuda: Fixed-point fractional library routines. ! (line 1856) * __satfractunsdiudq: Fixed-point fractional library routines. ! (line 1850) * __satfractunsdiuha: Fixed-point fractional library routines. ! (line 1852) * __satfractunsdiuhq: Fixed-point fractional library routines. ! (line 1846) * __satfractunsdiuqq: Fixed-point fractional library routines. ! (line 1844) * __satfractunsdiusa: Fixed-point fractional library routines. ! (line 1854) * __satfractunsdiusq: Fixed-point fractional library routines. ! (line 1848) * __satfractunsdiuta: Fixed-point fractional library routines. ! (line 1858) * __satfractunshida: Fixed-point fractional library routines. ! (line 1793) * __satfractunshidq: Fixed-point fractional library routines. ! (line 1789) * __satfractunshiha: Fixed-point fractional library routines. ! (line 1791) * __satfractunshihq: Fixed-point fractional library routines. ! (line 1787) * __satfractunshiqq: Fixed-point fractional library routines. ! (line 1786) * __satfractunshisa: Fixed-point fractional library routines. ! (line 1792) * __satfractunshisq: Fixed-point fractional library routines. ! (line 1788) * __satfractunshita: Fixed-point fractional library routines. ! (line 1794) * __satfractunshiuda: Fixed-point fractional library routines. ! (line 1808) * __satfractunshiudq: Fixed-point fractional library routines. ! (line 1802) * __satfractunshiuha: Fixed-point fractional library routines. ! (line 1804) * __satfractunshiuhq: Fixed-point fractional library routines. ! (line 1798) * __satfractunshiuqq: Fixed-point fractional library routines. ! (line 1796) * __satfractunshiusa: Fixed-point fractional library routines. ! (line 1806) * __satfractunshiusq: Fixed-point fractional library routines. ! (line 1800) * __satfractunshiuta: Fixed-point fractional library routines. ! (line 1810) * __satfractunsqida: Fixed-point fractional library routines. ! (line 1767) * __satfractunsqidq: Fixed-point fractional library routines. ! (line 1763) * __satfractunsqiha: Fixed-point fractional library routines. ! (line 1765) * __satfractunsqihq: Fixed-point fractional library routines. ! (line 1761) * __satfractunsqiqq: Fixed-point fractional library routines. ! (line 1760) * __satfractunsqisa: Fixed-point fractional library routines. ! (line 1766) * __satfractunsqisq: Fixed-point fractional library routines. ! (line 1762) * __satfractunsqita: Fixed-point fractional library routines. ! (line 1768) * __satfractunsqiuda: Fixed-point fractional library routines. ! (line 1782) * __satfractunsqiudq: Fixed-point fractional library routines. ! (line 1776) * __satfractunsqiuha: Fixed-point fractional library routines. ! (line 1778) * __satfractunsqiuhq: Fixed-point fractional library routines. ! (line 1772) * __satfractunsqiuqq: Fixed-point fractional library routines. ! (line 1770) * __satfractunsqiusa: Fixed-point fractional library routines. ! (line 1780) * __satfractunsqiusq: Fixed-point fractional library routines. ! (line 1774) * __satfractunsqiuta: Fixed-point fractional library routines. ! (line 1784) * __satfractunssida: Fixed-point fractional library routines. ! (line 1818) * __satfractunssidq: Fixed-point fractional library routines. ! (line 1815) * __satfractunssiha: Fixed-point fractional library routines. ! (line 1816) * __satfractunssihq: Fixed-point fractional library routines. ! (line 1813) * __satfractunssiqq: Fixed-point fractional library routines. ! (line 1812) * __satfractunssisa: Fixed-point fractional library routines. ! (line 1817) * __satfractunssisq: Fixed-point fractional library routines. ! (line 1814) * __satfractunssita: Fixed-point fractional library routines. ! (line 1819) * __satfractunssiuda: Fixed-point fractional library routines. ! (line 1830) * __satfractunssiudq: Fixed-point fractional library routines. ! (line 1825) * __satfractunssiuha: Fixed-point fractional library routines. ! (line 1827) * __satfractunssiuhq: Fixed-point fractional library routines. ! (line 1822) * __satfractunssiuqq: Fixed-point fractional library routines. ! (line 1820) * __satfractunssiusa: Fixed-point fractional library routines. ! (line 1829) * __satfractunssiusq: Fixed-point fractional library routines. ! (line 1823) * __satfractunssiuta: Fixed-point fractional library routines. ! (line 1832) * __satfractunstida: Fixed-point fractional library routines. ! (line 1870) * __satfractunstidq: Fixed-point fractional library routines. ! (line 1865) * __satfractunstiha: Fixed-point fractional library routines. ! (line 1867) * __satfractunstihq: Fixed-point fractional library routines. ! (line 1862) * __satfractunstiqq: Fixed-point fractional library routines. ! (line 1860) * __satfractunstisa: Fixed-point fractional library routines. ! (line 1869) * __satfractunstisq: Fixed-point fractional library routines. ! (line 1863) * __satfractunstita: Fixed-point fractional library routines. ! (line 1872) * __satfractunstiuda: Fixed-point fractional library routines. ! (line 1886) * __satfractunstiudq: Fixed-point fractional library routines. ! (line 1880) * __satfractunstiuha: Fixed-point fractional library routines. ! (line 1882) * __satfractunstiuhq: Fixed-point fractional library routines. ! (line 1876) * __satfractunstiuqq: Fixed-point fractional library routines. ! (line 1874) * __satfractunstiusa: Fixed-point fractional library routines. ! (line 1884) * __satfractunstiusq: Fixed-point fractional library routines. ! (line 1878) * __satfractunstiuta: Fixed-point fractional library routines. ! (line 1888) * __satfractuqqda: Fixed-point fractional library routines. ! (line 1207) * __satfractuqqdq: Fixed-point fractional library routines. ! (line 1202) * __satfractuqqha: Fixed-point fractional library routines. ! (line 1204) * __satfractuqqhq: Fixed-point fractional library routines. ! (line 1199) * __satfractuqqqq: Fixed-point fractional library routines. ! (line 1197) * __satfractuqqsa: Fixed-point fractional library routines. ! (line 1206) * __satfractuqqsq: Fixed-point fractional library routines. ! (line 1200) * __satfractuqqta: Fixed-point fractional library routines. ! (line 1209) * __satfractuqquda: Fixed-point fractional library routines. ! (line 1221) * __satfractuqqudq2: Fixed-point fractional library routines. ! (line 1215) * __satfractuqquha: Fixed-point fractional library routines. ! (line 1217) * __satfractuqquhq2: Fixed-point fractional library routines. ! (line 1211) * __satfractuqqusa: Fixed-point fractional library routines. ! (line 1219) * __satfractuqqusq2: Fixed-point fractional library routines. ! (line 1213) * __satfractuqquta: Fixed-point fractional library routines. ! (line 1223) * __satfractusada: Fixed-point fractional library routines. ! (line 1334) * __satfractusadq: Fixed-point fractional library routines. ! (line 1331) * __satfractusaha: Fixed-point fractional library routines. ! (line 1332) * __satfractusahq: Fixed-point fractional library routines. ! (line 1329) * __satfractusaqq: Fixed-point fractional library routines. ! (line 1328) * __satfractusasa: Fixed-point fractional library routines. ! (line 1333) * __satfractusasq: Fixed-point fractional library routines. ! (line 1330) * __satfractusata: Fixed-point fractional library routines. ! (line 1335) * __satfractusauda2: Fixed-point fractional library routines. ! (line 1345) * __satfractusaudq: Fixed-point fractional library routines. ! (line 1341) * __satfractusauha2: Fixed-point fractional library routines. ! (line 1343) * __satfractusauhq: Fixed-point fractional library routines. ! (line 1338) * __satfractusauqq: Fixed-point fractional library routines. ! (line 1336) * __satfractusausq: Fixed-point fractional library routines. ! (line 1339) * __satfractusauta2: Fixed-point fractional library routines. ! (line 1347) * __satfractusqda: Fixed-point fractional library routines. ! (line 1255) * __satfractusqdq: Fixed-point fractional library routines. ! (line 1250) * __satfractusqha: Fixed-point fractional library routines. ! (line 1252) * __satfractusqhq: Fixed-point fractional library routines. ! (line 1248) * __satfractusqqq: Fixed-point fractional library routines. ! (line 1246) * __satfractusqsa: Fixed-point fractional library routines. ! (line 1254) * __satfractusqsq: Fixed-point fractional library routines. ! (line 1249) * __satfractusqta: Fixed-point fractional library routines. ! (line 1256) * __satfractusquda: Fixed-point fractional library routines. ! (line 1268) * __satfractusqudq2: Fixed-point fractional library routines. ! (line 1262) * __satfractusquha: Fixed-point fractional library routines. ! (line 1264) * __satfractusquhq2: Fixed-point fractional library routines. ! (line 1260) * __satfractusquqq2: Fixed-point fractional library routines. ! (line 1258) * __satfractusqusa: Fixed-point fractional library routines. ! (line 1266) * __satfractusquta: Fixed-point fractional library routines. ! (line 1270) * __satfractutada: Fixed-point fractional library routines. ! (line 1385) * __satfractutadq: Fixed-point fractional library routines. ! (line 1380) * __satfractutaha: Fixed-point fractional library routines. ! (line 1382) * __satfractutahq: Fixed-point fractional library routines. ! (line 1377) * __satfractutaqq: Fixed-point fractional library routines. ! (line 1375) * __satfractutasa: Fixed-point fractional library routines. ! (line 1384) * __satfractutasq: Fixed-point fractional library routines. ! (line 1378) * __satfractutata: Fixed-point fractional library routines. ! (line 1387) * __satfractutauda2: Fixed-point fractional library routines. ! (line 1401) * __satfractutaudq: Fixed-point fractional library routines. ! (line 1395) * __satfractutauha2: Fixed-point fractional library routines. ! (line 1397) * __satfractutauhq: Fixed-point fractional library routines. ! (line 1391) * __satfractutauqq: Fixed-point fractional library routines. ! (line 1389) * __satfractutausa2: Fixed-point fractional library routines. ! (line 1399) * __satfractutausq: Fixed-point fractional library routines. ! (line 1393) * __splitstack_find: Miscellaneous routines. (line 15) * __ssaddda3: Fixed-point fractional library routines. ! (line 74) * __ssadddq3: Fixed-point fractional library routines. ! (line 69) * __ssaddha3: Fixed-point fractional library routines. ! (line 71) * __ssaddhq3: Fixed-point fractional library routines. ! (line 67) * __ssaddqq3: Fixed-point fractional library routines. ! (line 65) * __ssaddsa3: Fixed-point fractional library routines. ! (line 73) * __ssaddsq3: Fixed-point fractional library routines. ! (line 68) * __ssaddta3: Fixed-point fractional library routines. ! (line 75) * __ssashlda3: Fixed-point fractional library routines. ! (line 409) * __ssashldq3: Fixed-point fractional library routines. ! (line 405) * __ssashlha3: Fixed-point fractional library routines. ! (line 407) * __ssashlhq3: Fixed-point fractional library routines. ! (line 403) * __ssashlsa3: Fixed-point fractional library routines. ! (line 408) * __ssashlsq3: Fixed-point fractional library routines. ! (line 404) * __ssashlta3: Fixed-point fractional library routines. ! (line 410) * __ssdivda3: Fixed-point fractional library routines. ! (line 268) * __ssdivdq3: Fixed-point fractional library routines. ! (line 263) * __ssdivha3: Fixed-point fractional library routines. ! (line 265) * __ssdivhq3: Fixed-point fractional library routines. ! (line 261) * __ssdivqq3: Fixed-point fractional library routines. ! (line 259) * __ssdivsa3: Fixed-point fractional library routines. ! (line 267) * __ssdivsq3: Fixed-point fractional library routines. ! (line 262) * __ssdivta3: Fixed-point fractional library routines. ! (line 269) * __ssmulda3: Fixed-point fractional library routines. ! (line 200) * __ssmuldq3: Fixed-point fractional library routines. ! (line 195) * __ssmulha3: Fixed-point fractional library routines. ! (line 197) * __ssmulhq3: Fixed-point fractional library routines. ! (line 193) * __ssmulqq3: Fixed-point fractional library routines. ! (line 191) * __ssmulsa3: Fixed-point fractional library routines. ! (line 199) * __ssmulsq3: Fixed-point fractional library routines. ! (line 194) * __ssmulta3: Fixed-point fractional library routines. ! (line 201) * __ssnegda2: Fixed-point fractional library routines. ! (line 323) * __ssnegdq2: Fixed-point fractional library routines. ! (line 320) * __ssnegha2: Fixed-point fractional library routines. ! (line 321) * __ssneghq2: Fixed-point fractional library routines. ! (line 318) * __ssnegqq2: Fixed-point fractional library routines. ! (line 317) * __ssnegsa2: Fixed-point fractional library routines. ! (line 322) * __ssnegsq2: Fixed-point fractional library routines. ! (line 319) * __ssnegta2: Fixed-point fractional library routines. ! (line 324) * __sssubda3: Fixed-point fractional library routines. ! (line 136) * __sssubdq3: Fixed-point fractional library routines. ! (line 131) * __sssubha3: Fixed-point fractional library routines. ! (line 133) * __sssubhq3: Fixed-point fractional library routines. ! (line 129) * __sssubqq3: Fixed-point fractional library routines. ! (line 127) * __sssubsa3: Fixed-point fractional library routines. ! (line 135) * __sssubsq3: Fixed-point fractional library routines. ! (line 130) * __sssubta3: Fixed-point fractional library routines. ! (line 137) * __subda3: Fixed-point fractional library routines. ! (line 114) * __subdf3: Soft float library routines. (line 30) * __subdq3: Fixed-point fractional library routines. ! (line 101) * __subha3: Fixed-point fractional library routines. ! (line 111) * __subhq3: Fixed-point fractional library routines. ! (line 99) * __subqq3: Fixed-point fractional library routines. ! (line 97) * __subsa3: Fixed-point fractional library routines. ! (line 113) * __subsf3: Soft float library routines. (line 29) * __subsq3: Fixed-point fractional library routines. ! (line 100) * __subta3: Fixed-point fractional library routines. ! (line 115) * __subtf3: Soft float library routines. (line 31) * __subuda3: Fixed-point fractional library routines. ! (line 121) * __subudq3: Fixed-point fractional library routines. ! (line 109) * __subuha3: Fixed-point fractional library routines. ! (line 117) * __subuhq3: Fixed-point fractional library routines. ! (line 105) * __subuqq3: Fixed-point fractional library routines. ! (line 103) * __subusa3: Fixed-point fractional library routines. ! (line 119) * __subusq3: Fixed-point fractional library routines. ! (line 107) * __subuta3: Fixed-point fractional library routines. ! (line 123) * __subvdi3: Integer library routines. (line 122) * __subvsi3: Integer library routines. --- 52356,53358 ---- * __powixf2: Soft float library routines. (line 234) * __satfractdadq: Fixed-point fractional library routines. ! (line 1152) * __satfractdaha2: Fixed-point fractional library routines. ! (line 1153) * __satfractdahq: Fixed-point fractional library routines. ! (line 1150) * __satfractdaqq: Fixed-point fractional library routines. ! (line 1149) * __satfractdasa2: Fixed-point fractional library routines. ! (line 1154) * __satfractdasq: Fixed-point fractional library routines. ! (line 1151) * __satfractdata2: Fixed-point fractional library routines. ! (line 1155) * __satfractdauda: Fixed-point fractional library routines. ! (line 1165) * __satfractdaudq: Fixed-point fractional library routines. ! (line 1160) * __satfractdauha: Fixed-point fractional library routines. ! (line 1162) * __satfractdauhq: Fixed-point fractional library routines. ! (line 1158) * __satfractdauqq: Fixed-point fractional library routines. ! (line 1156) * __satfractdausa: Fixed-point fractional library routines. ! (line 1164) * __satfractdausq: Fixed-point fractional library routines. ! (line 1159) * __satfractdauta: Fixed-point fractional library routines. ! (line 1166) * __satfractdfda: Fixed-point fractional library routines. ! (line 1505) * __satfractdfdq: Fixed-point fractional library routines. ! (line 1502) * __satfractdfha: Fixed-point fractional library routines. ! (line 1503) * __satfractdfhq: Fixed-point fractional library routines. ! (line 1500) * __satfractdfqq: Fixed-point fractional library routines. ! (line 1499) * __satfractdfsa: Fixed-point fractional library routines. ! (line 1504) * __satfractdfsq: Fixed-point fractional library routines. ! (line 1501) * __satfractdfta: Fixed-point fractional library routines. ! (line 1506) * __satfractdfuda: Fixed-point fractional library routines. ! (line 1514) * __satfractdfudq: Fixed-point fractional library routines. ! (line 1510) * __satfractdfuha: Fixed-point fractional library routines. ! (line 1512) * __satfractdfuhq: Fixed-point fractional library routines. ! (line 1508) * __satfractdfuqq: Fixed-point fractional library routines. ! (line 1507) * __satfractdfusa: Fixed-point fractional library routines. ! (line 1513) * __satfractdfusq: Fixed-point fractional library routines. ! (line 1509) * __satfractdfuta: Fixed-point fractional library routines. ! (line 1515) * __satfractdida: Fixed-point fractional library routines. ! (line 1455) * __satfractdidq: Fixed-point fractional library routines. ! (line 1452) * __satfractdiha: Fixed-point fractional library routines. ! (line 1453) * __satfractdihq: Fixed-point fractional library routines. ! (line 1450) * __satfractdiqq: Fixed-point fractional library routines. ! (line 1449) * __satfractdisa: Fixed-point fractional library routines. ! (line 1454) * __satfractdisq: Fixed-point fractional library routines. ! (line 1451) * __satfractdita: Fixed-point fractional library routines. ! (line 1456) * __satfractdiuda: Fixed-point fractional library routines. ! (line 1463) * __satfractdiudq: Fixed-point fractional library routines. ! (line 1460) * __satfractdiuha: Fixed-point fractional library routines. ! (line 1461) * __satfractdiuhq: Fixed-point fractional library routines. ! (line 1458) * __satfractdiuqq: Fixed-point fractional library routines. ! (line 1457) * __satfractdiusa: Fixed-point fractional library routines. ! (line 1462) * __satfractdiusq: Fixed-point fractional library routines. ! (line 1459) * __satfractdiuta: Fixed-point fractional library routines. ! (line 1464) * __satfractdqda: Fixed-point fractional library routines. ! (line 1097) * __satfractdqha: Fixed-point fractional library routines. ! (line 1095) * __satfractdqhq2: Fixed-point fractional library routines. ! (line 1093) * __satfractdqqq2: Fixed-point fractional library routines. ! (line 1092) * __satfractdqsa: Fixed-point fractional library routines. ! (line 1096) * __satfractdqsq2: Fixed-point fractional library routines. ! (line 1094) * __satfractdqta: Fixed-point fractional library routines. ! (line 1098) * __satfractdquda: Fixed-point fractional library routines. ! (line 1109) * __satfractdqudq: Fixed-point fractional library routines. ! (line 1104) * __satfractdquha: Fixed-point fractional library routines. ! (line 1106) * __satfractdquhq: Fixed-point fractional library routines. ! (line 1101) * __satfractdquqq: Fixed-point fractional library routines. ! (line 1099) * __satfractdqusa: Fixed-point fractional library routines. ! (line 1108) * __satfractdqusq: Fixed-point fractional library routines. ! (line 1102) * __satfractdquta: Fixed-point fractional library routines. ! (line 1111) * __satfracthada2: Fixed-point fractional library routines. ! (line 1118) * __satfracthadq: Fixed-point fractional library routines. ! (line 1116) * __satfracthahq: Fixed-point fractional library routines. ! (line 1114) * __satfracthaqq: Fixed-point fractional library routines. ! (line 1113) * __satfracthasa2: Fixed-point fractional library routines. ! (line 1117) * __satfracthasq: Fixed-point fractional library routines. ! (line 1115) * __satfracthata2: Fixed-point fractional library routines. ! (line 1119) * __satfracthauda: Fixed-point fractional library routines. ! (line 1130) * __satfracthaudq: Fixed-point fractional library routines. ! (line 1125) * __satfracthauha: Fixed-point fractional library routines. ! (line 1127) * __satfracthauhq: Fixed-point fractional library routines. ! (line 1122) * __satfracthauqq: Fixed-point fractional library routines. ! (line 1120) * __satfracthausa: Fixed-point fractional library routines. ! (line 1129) * __satfracthausq: Fixed-point fractional library routines. ! (line 1123) * __satfracthauta: Fixed-point fractional library routines. ! (line 1132) * __satfracthida: Fixed-point fractional library routines. ! (line 1423) * __satfracthidq: Fixed-point fractional library routines. ! (line 1420) * __satfracthiha: Fixed-point fractional library routines. ! (line 1421) * __satfracthihq: Fixed-point fractional library routines. ! (line 1418) * __satfracthiqq: Fixed-point fractional library routines. ! (line 1417) * __satfracthisa: Fixed-point fractional library routines. ! (line 1422) * __satfracthisq: Fixed-point fractional library routines. ! (line 1419) * __satfracthita: Fixed-point fractional library routines. ! (line 1424) * __satfracthiuda: Fixed-point fractional library routines. ! (line 1431) * __satfracthiudq: Fixed-point fractional library routines. ! (line 1428) * __satfracthiuha: Fixed-point fractional library routines. ! (line 1429) * __satfracthiuhq: Fixed-point fractional library routines. ! (line 1426) * __satfracthiuqq: Fixed-point fractional library routines. ! (line 1425) * __satfracthiusa: Fixed-point fractional library routines. ! (line 1430) * __satfracthiusq: Fixed-point fractional library routines. ! (line 1427) * __satfracthiuta: Fixed-point fractional library routines. ! (line 1432) * __satfracthqda: Fixed-point fractional library routines. ! (line 1063) * __satfracthqdq2: Fixed-point fractional library routines. ! (line 1060) * __satfracthqha: Fixed-point fractional library routines. ! (line 1061) * __satfracthqqq2: Fixed-point fractional library routines. ! (line 1058) * __satfracthqsa: Fixed-point fractional library routines. ! (line 1062) * __satfracthqsq2: Fixed-point fractional library routines. ! (line 1059) * __satfracthqta: Fixed-point fractional library routines. ! (line 1064) * __satfracthquda: Fixed-point fractional library routines. ! (line 1071) * __satfracthqudq: Fixed-point fractional library routines. ! (line 1068) * __satfracthquha: Fixed-point fractional library routines. ! (line 1069) * __satfracthquhq: Fixed-point fractional library routines. ! (line 1066) * __satfracthquqq: Fixed-point fractional library routines. ! (line 1065) * __satfracthqusa: Fixed-point fractional library routines. ! (line 1070) * __satfracthqusq: Fixed-point fractional library routines. ! (line 1067) * __satfracthquta: Fixed-point fractional library routines. ! (line 1072) * __satfractqida: Fixed-point fractional library routines. ! (line 1401) * __satfractqidq: Fixed-point fractional library routines. ! (line 1398) * __satfractqiha: Fixed-point fractional library routines. ! (line 1399) * __satfractqihq: Fixed-point fractional library routines. ! (line 1396) * __satfractqiqq: Fixed-point fractional library routines. ! (line 1395) * __satfractqisa: Fixed-point fractional library routines. ! (line 1400) * __satfractqisq: Fixed-point fractional library routines. ! (line 1397) * __satfractqita: Fixed-point fractional library routines. ! (line 1402) * __satfractqiuda: Fixed-point fractional library routines. ! (line 1413) * __satfractqiudq: Fixed-point fractional library routines. ! (line 1408) * __satfractqiuha: Fixed-point fractional library routines. ! (line 1410) * __satfractqiuhq: Fixed-point fractional library routines. ! (line 1405) * __satfractqiuqq: Fixed-point fractional library routines. ! (line 1403) * __satfractqiusa: Fixed-point fractional library routines. ! (line 1412) * __satfractqiusq: Fixed-point fractional library routines. ! (line 1406) * __satfractqiuta: Fixed-point fractional library routines. ! (line 1415) * __satfractqqda: Fixed-point fractional library routines. ! (line 1042) * __satfractqqdq2: Fixed-point fractional library routines. ! (line 1039) * __satfractqqha: Fixed-point fractional library routines. ! (line 1040) * __satfractqqhq2: Fixed-point fractional library routines. ! (line 1037) * __satfractqqsa: Fixed-point fractional library routines. ! (line 1041) * __satfractqqsq2: Fixed-point fractional library routines. ! (line 1038) * __satfractqqta: Fixed-point fractional library routines. ! (line 1043) * __satfractqquda: Fixed-point fractional library routines. ! (line 1054) * __satfractqqudq: Fixed-point fractional library routines. ! (line 1049) * __satfractqquha: Fixed-point fractional library routines. ! (line 1051) * __satfractqquhq: Fixed-point fractional library routines. ! (line 1046) * __satfractqquqq: Fixed-point fractional library routines. ! (line 1044) * __satfractqqusa: Fixed-point fractional library routines. ! (line 1053) * __satfractqqusq: Fixed-point fractional library routines. ! (line 1047) * __satfractqquta: Fixed-point fractional library routines. ! (line 1056) * __satfractsada2: Fixed-point fractional library routines. ! (line 1139) * __satfractsadq: Fixed-point fractional library routines. ! (line 1137) * __satfractsaha2: Fixed-point fractional library routines. ! (line 1138) * __satfractsahq: Fixed-point fractional library routines. ! (line 1135) * __satfractsaqq: Fixed-point fractional library routines. ! (line 1134) * __satfractsasq: Fixed-point fractional library routines. ! (line 1136) * __satfractsata2: Fixed-point fractional library routines. ! (line 1140) * __satfractsauda: Fixed-point fractional library routines. ! (line 1147) * __satfractsaudq: Fixed-point fractional library routines. ! (line 1144) * __satfractsauha: Fixed-point fractional library routines. ! (line 1145) * __satfractsauhq: Fixed-point fractional library routines. ! (line 1142) * __satfractsauqq: Fixed-point fractional library routines. ! (line 1141) * __satfractsausa: Fixed-point fractional library routines. ! (line 1146) * __satfractsausq: Fixed-point fractional library routines. ! (line 1143) * __satfractsauta: Fixed-point fractional library routines. ! (line 1148) * __satfractsfda: Fixed-point fractional library routines. ! (line 1489) * __satfractsfdq: Fixed-point fractional library routines. ! (line 1486) * __satfractsfha: Fixed-point fractional library routines. ! (line 1487) * __satfractsfhq: Fixed-point fractional library routines. ! (line 1484) * __satfractsfqq: Fixed-point fractional library routines. ! (line 1483) * __satfractsfsa: Fixed-point fractional library routines. ! (line 1488) * __satfractsfsq: Fixed-point fractional library routines. ! (line 1485) * __satfractsfta: Fixed-point fractional library routines. ! (line 1490) * __satfractsfuda: Fixed-point fractional library routines. ! (line 1497) * __satfractsfudq: Fixed-point fractional library routines. ! (line 1494) * __satfractsfuha: Fixed-point fractional library routines. ! (line 1495) * __satfractsfuhq: Fixed-point fractional library routines. ! (line 1492) * __satfractsfuqq: Fixed-point fractional library routines. ! (line 1491) * __satfractsfusa: Fixed-point fractional library routines. ! (line 1496) * __satfractsfusq: Fixed-point fractional library routines. ! (line 1493) * __satfractsfuta: Fixed-point fractional library routines. ! (line 1498) * __satfractsida: Fixed-point fractional library routines. ! (line 1439) * __satfractsidq: Fixed-point fractional library routines. ! (line 1436) * __satfractsiha: Fixed-point fractional library routines. ! (line 1437) * __satfractsihq: Fixed-point fractional library routines. ! (line 1434) * __satfractsiqq: Fixed-point fractional library routines. ! (line 1433) * __satfractsisa: Fixed-point fractional library routines. ! (line 1438) * __satfractsisq: Fixed-point fractional library routines. ! (line 1435) * __satfractsita: Fixed-point fractional library routines. ! (line 1440) * __satfractsiuda: Fixed-point fractional library routines. ! (line 1447) * __satfractsiudq: Fixed-point fractional library routines. ! (line 1444) * __satfractsiuha: Fixed-point fractional library routines. ! (line 1445) * __satfractsiuhq: Fixed-point fractional library routines. ! (line 1442) * __satfractsiuqq: Fixed-point fractional library routines. ! (line 1441) * __satfractsiusa: Fixed-point fractional library routines. ! (line 1446) * __satfractsiusq: Fixed-point fractional library routines. ! (line 1443) * __satfractsiuta: Fixed-point fractional library routines. ! (line 1448) * __satfractsqda: Fixed-point fractional library routines. ! (line 1078) * __satfractsqdq2: Fixed-point fractional library routines. ! (line 1075) * __satfractsqha: Fixed-point fractional library routines. ! (line 1076) * __satfractsqhq2: Fixed-point fractional library routines. ! (line 1074) * __satfractsqqq2: Fixed-point fractional library routines. ! (line 1073) * __satfractsqsa: Fixed-point fractional library routines. ! (line 1077) * __satfractsqta: Fixed-point fractional library routines. ! (line 1079) * __satfractsquda: Fixed-point fractional library routines. ! (line 1089) * __satfractsqudq: Fixed-point fractional library routines. ! (line 1084) * __satfractsquha: Fixed-point fractional library routines. ! (line 1086) * __satfractsquhq: Fixed-point fractional library routines. ! (line 1082) * __satfractsquqq: Fixed-point fractional library routines. ! (line 1080) * __satfractsqusa: Fixed-point fractional library routines. ! (line 1088) * __satfractsqusq: Fixed-point fractional library routines. ! (line 1083) * __satfractsquta: Fixed-point fractional library routines. ! (line 1090) * __satfracttada2: Fixed-point fractional library routines. ! (line 1174) * __satfracttadq: Fixed-point fractional library routines. ! (line 1171) * __satfracttaha2: Fixed-point fractional library routines. ! (line 1172) * __satfracttahq: Fixed-point fractional library routines. ! (line 1169) * __satfracttaqq: Fixed-point fractional library routines. ! (line 1168) * __satfracttasa2: Fixed-point fractional library routines. ! (line 1173) * __satfracttasq: Fixed-point fractional library routines. ! (line 1170) * __satfracttauda: Fixed-point fractional library routines. ! (line 1185) * __satfracttaudq: Fixed-point fractional library routines. ! (line 1180) * __satfracttauha: Fixed-point fractional library routines. ! (line 1182) * __satfracttauhq: Fixed-point fractional library routines. ! (line 1177) * __satfracttauqq: Fixed-point fractional library routines. ! (line 1175) * __satfracttausa: Fixed-point fractional library routines. ! (line 1184) * __satfracttausq: Fixed-point fractional library routines. ! (line 1178) * __satfracttauta: Fixed-point fractional library routines. ! (line 1187) * __satfracttida: Fixed-point fractional library routines. ! (line 1471) * __satfracttidq: Fixed-point fractional library routines. ! (line 1468) * __satfracttiha: Fixed-point fractional library routines. ! (line 1469) * __satfracttihq: Fixed-point fractional library routines. ! (line 1466) * __satfracttiqq: Fixed-point fractional library routines. ! (line 1465) * __satfracttisa: Fixed-point fractional library routines. ! (line 1470) * __satfracttisq: Fixed-point fractional library routines. ! (line 1467) * __satfracttita: Fixed-point fractional library routines. ! (line 1472) * __satfracttiuda: Fixed-point fractional library routines. ! (line 1480) * __satfracttiudq: Fixed-point fractional library routines. ! (line 1476) * __satfracttiuha: Fixed-point fractional library routines. ! (line 1478) * __satfracttiuhq: Fixed-point fractional library routines. ! (line 1474) * __satfracttiuqq: Fixed-point fractional library routines. ! (line 1473) * __satfracttiusa: Fixed-point fractional library routines. ! (line 1479) * __satfracttiusq: Fixed-point fractional library routines. ! (line 1475) * __satfracttiuta: Fixed-point fractional library routines. ! (line 1481) * __satfractudada: Fixed-point fractional library routines. ! (line 1350) * __satfractudadq: Fixed-point fractional library routines. ! (line 1345) * __satfractudaha: Fixed-point fractional library routines. ! (line 1347) * __satfractudahq: Fixed-point fractional library routines. ! (line 1343) * __satfractudaqq: Fixed-point fractional library routines. ! (line 1341) * __satfractudasa: Fixed-point fractional library routines. ! (line 1349) * __satfractudasq: Fixed-point fractional library routines. ! (line 1344) * __satfractudata: Fixed-point fractional library routines. ! (line 1351) * __satfractudaudq: Fixed-point fractional library routines. ! (line 1359) * __satfractudauha2: Fixed-point fractional library routines. ! (line 1361) * __satfractudauhq: Fixed-point fractional library routines. ! (line 1355) * __satfractudauqq: Fixed-point fractional library routines. ! (line 1353) * __satfractudausa2: Fixed-point fractional library routines. ! (line 1363) * __satfractudausq: Fixed-point fractional library routines. ! (line 1357) * __satfractudauta2: Fixed-point fractional library routines. ! (line 1365) * __satfractudqda: Fixed-point fractional library routines. ! (line 1274) * __satfractudqdq: Fixed-point fractional library routines. ! (line 1269) * __satfractudqha: Fixed-point fractional library routines. ! (line 1271) * __satfractudqhq: Fixed-point fractional library routines. ! (line 1266) * __satfractudqqq: Fixed-point fractional library routines. ! (line 1264) * __satfractudqsa: Fixed-point fractional library routines. ! (line 1273) * __satfractudqsq: Fixed-point fractional library routines. ! (line 1267) * __satfractudqta: Fixed-point fractional library routines. ! (line 1276) * __satfractudquda: Fixed-point fractional library routines. ! (line 1288) * __satfractudquha: Fixed-point fractional library routines. ! (line 1284) * __satfractudquhq2: Fixed-point fractional library routines. ! (line 1280) * __satfractudquqq2: Fixed-point fractional library routines. ! (line 1278) * __satfractudqusa: Fixed-point fractional library routines. ! (line 1286) * __satfractudqusq2: Fixed-point fractional library routines. ! (line 1282) * __satfractudquta: Fixed-point fractional library routines. ! (line 1290) * __satfractuhada: Fixed-point fractional library routines. ! (line 1302) * __satfractuhadq: Fixed-point fractional library routines. ! (line 1297) * __satfractuhaha: Fixed-point fractional library routines. ! (line 1299) * __satfractuhahq: Fixed-point fractional library routines. ! (line 1294) * __satfractuhaqq: Fixed-point fractional library routines. ! (line 1292) * __satfractuhasa: Fixed-point fractional library routines. ! (line 1301) * __satfractuhasq: Fixed-point fractional library routines. ! (line 1295) * __satfractuhata: Fixed-point fractional library routines. ! (line 1304) * __satfractuhauda2: Fixed-point fractional library routines. ! (line 1316) * __satfractuhaudq: Fixed-point fractional library routines. ! (line 1312) * __satfractuhauhq: Fixed-point fractional library routines. ! (line 1308) * __satfractuhauqq: Fixed-point fractional library routines. ! (line 1306) * __satfractuhausa2: Fixed-point fractional library routines. ! (line 1314) * __satfractuhausq: Fixed-point fractional library routines. ! (line 1310) * __satfractuhauta2: Fixed-point fractional library routines. ! (line 1318) * __satfractuhqda: Fixed-point fractional library routines. ! (line 1223) * __satfractuhqdq: Fixed-point fractional library routines. ! (line 1220) * __satfractuhqha: Fixed-point fractional library routines. ! (line 1221) * __satfractuhqhq: Fixed-point fractional library routines. ! (line 1218) * __satfractuhqqq: Fixed-point fractional library routines. ! (line 1217) * __satfractuhqsa: Fixed-point fractional library routines. ! (line 1222) * __satfractuhqsq: Fixed-point fractional library routines. ! (line 1219) * __satfractuhqta: Fixed-point fractional library routines. ! (line 1224) * __satfractuhquda: Fixed-point fractional library routines. ! (line 1234) * __satfractuhqudq2: Fixed-point fractional library routines. ! (line 1229) * __satfractuhquha: Fixed-point fractional library routines. ! (line 1231) * __satfractuhquqq2: Fixed-point fractional library routines. ! (line 1225) * __satfractuhqusa: Fixed-point fractional library routines. ! (line 1233) * __satfractuhqusq2: Fixed-point fractional library routines. ! (line 1227) * __satfractuhquta: Fixed-point fractional library routines. ! (line 1236) * __satfractunsdida: Fixed-point fractional library routines. ! (line 1833) * __satfractunsdidq: Fixed-point fractional library routines. ! (line 1829) * __satfractunsdiha: Fixed-point fractional library routines. ! (line 1831) * __satfractunsdihq: Fixed-point fractional library routines. ! (line 1827) * __satfractunsdiqq: Fixed-point fractional library routines. ! (line 1826) * __satfractunsdisa: Fixed-point fractional library routines. ! (line 1832) * __satfractunsdisq: Fixed-point fractional library routines. ! (line 1828) * __satfractunsdita: Fixed-point fractional library routines. ! (line 1834) * __satfractunsdiuda: Fixed-point fractional library routines. ! (line 1848) * __satfractunsdiudq: Fixed-point fractional library routines. ! (line 1842) * __satfractunsdiuha: Fixed-point fractional library routines. ! (line 1844) * __satfractunsdiuhq: Fixed-point fractional library routines. ! (line 1838) * __satfractunsdiuqq: Fixed-point fractional library routines. ! (line 1836) * __satfractunsdiusa: Fixed-point fractional library routines. ! (line 1846) * __satfractunsdiusq: Fixed-point fractional library routines. ! (line 1840) * __satfractunsdiuta: Fixed-point fractional library routines. ! (line 1850) * __satfractunshida: Fixed-point fractional library routines. ! (line 1785) * __satfractunshidq: Fixed-point fractional library routines. ! (line 1781) * __satfractunshiha: Fixed-point fractional library routines. ! (line 1783) * __satfractunshihq: Fixed-point fractional library routines. ! (line 1779) * __satfractunshiqq: Fixed-point fractional library routines. ! (line 1778) * __satfractunshisa: Fixed-point fractional library routines. ! (line 1784) * __satfractunshisq: Fixed-point fractional library routines. ! (line 1780) * __satfractunshita: Fixed-point fractional library routines. ! (line 1786) * __satfractunshiuda: Fixed-point fractional library routines. ! (line 1800) * __satfractunshiudq: Fixed-point fractional library routines. ! (line 1794) * __satfractunshiuha: Fixed-point fractional library routines. ! (line 1796) * __satfractunshiuhq: Fixed-point fractional library routines. ! (line 1790) * __satfractunshiuqq: Fixed-point fractional library routines. ! (line 1788) * __satfractunshiusa: Fixed-point fractional library routines. ! (line 1798) * __satfractunshiusq: Fixed-point fractional library routines. ! (line 1792) * __satfractunshiuta: Fixed-point fractional library routines. ! (line 1802) * __satfractunsqida: Fixed-point fractional library routines. ! (line 1759) * __satfractunsqidq: Fixed-point fractional library routines. ! (line 1755) * __satfractunsqiha: Fixed-point fractional library routines. ! (line 1757) * __satfractunsqihq: Fixed-point fractional library routines. ! (line 1753) * __satfractunsqiqq: Fixed-point fractional library routines. ! (line 1752) * __satfractunsqisa: Fixed-point fractional library routines. ! (line 1758) * __satfractunsqisq: Fixed-point fractional library routines. ! (line 1754) * __satfractunsqita: Fixed-point fractional library routines. ! (line 1760) * __satfractunsqiuda: Fixed-point fractional library routines. ! (line 1774) * __satfractunsqiudq: Fixed-point fractional library routines. ! (line 1768) * __satfractunsqiuha: Fixed-point fractional library routines. ! (line 1770) * __satfractunsqiuhq: Fixed-point fractional library routines. ! (line 1764) * __satfractunsqiuqq: Fixed-point fractional library routines. ! (line 1762) * __satfractunsqiusa: Fixed-point fractional library routines. ! (line 1772) * __satfractunsqiusq: Fixed-point fractional library routines. ! (line 1766) * __satfractunsqiuta: Fixed-point fractional library routines. ! (line 1776) * __satfractunssida: Fixed-point fractional library routines. ! (line 1810) * __satfractunssidq: Fixed-point fractional library routines. ! (line 1807) * __satfractunssiha: Fixed-point fractional library routines. ! (line 1808) * __satfractunssihq: Fixed-point fractional library routines. ! (line 1805) * __satfractunssiqq: Fixed-point fractional library routines. ! (line 1804) * __satfractunssisa: Fixed-point fractional library routines. ! (line 1809) * __satfractunssisq: Fixed-point fractional library routines. ! (line 1806) * __satfractunssita: Fixed-point fractional library routines. ! (line 1811) * __satfractunssiuda: Fixed-point fractional library routines. ! (line 1822) * __satfractunssiudq: Fixed-point fractional library routines. ! (line 1817) * __satfractunssiuha: Fixed-point fractional library routines. ! (line 1819) * __satfractunssiuhq: Fixed-point fractional library routines. ! (line 1814) * __satfractunssiuqq: Fixed-point fractional library routines. ! (line 1812) * __satfractunssiusa: Fixed-point fractional library routines. ! (line 1821) * __satfractunssiusq: Fixed-point fractional library routines. ! (line 1815) * __satfractunssiuta: Fixed-point fractional library routines. ! (line 1824) * __satfractunstida: Fixed-point fractional library routines. ! (line 1862) * __satfractunstidq: Fixed-point fractional library routines. ! (line 1857) * __satfractunstiha: Fixed-point fractional library routines. ! (line 1859) * __satfractunstihq: Fixed-point fractional library routines. ! (line 1854) * __satfractunstiqq: Fixed-point fractional library routines. ! (line 1852) * __satfractunstisa: Fixed-point fractional library routines. ! (line 1861) * __satfractunstisq: Fixed-point fractional library routines. ! (line 1855) * __satfractunstita: Fixed-point fractional library routines. ! (line 1864) * __satfractunstiuda: Fixed-point fractional library routines. ! (line 1878) * __satfractunstiudq: Fixed-point fractional library routines. ! (line 1872) * __satfractunstiuha: Fixed-point fractional library routines. ! (line 1874) * __satfractunstiuhq: Fixed-point fractional library routines. ! (line 1868) * __satfractunstiuqq: Fixed-point fractional library routines. ! (line 1866) * __satfractunstiusa: Fixed-point fractional library routines. ! (line 1876) * __satfractunstiusq: Fixed-point fractional library routines. ! (line 1870) * __satfractunstiuta: Fixed-point fractional library routines. ! (line 1880) * __satfractuqqda: Fixed-point fractional library routines. ! (line 1199) * __satfractuqqdq: Fixed-point fractional library routines. ! (line 1194) * __satfractuqqha: Fixed-point fractional library routines. ! (line 1196) * __satfractuqqhq: Fixed-point fractional library routines. ! (line 1191) * __satfractuqqqq: Fixed-point fractional library routines. ! (line 1189) * __satfractuqqsa: Fixed-point fractional library routines. ! (line 1198) * __satfractuqqsq: Fixed-point fractional library routines. ! (line 1192) * __satfractuqqta: Fixed-point fractional library routines. ! (line 1201) * __satfractuqquda: Fixed-point fractional library routines. ! (line 1213) * __satfractuqqudq2: Fixed-point fractional library routines. ! (line 1207) * __satfractuqquha: Fixed-point fractional library routines. ! (line 1209) * __satfractuqquhq2: Fixed-point fractional library routines. ! (line 1203) * __satfractuqqusa: Fixed-point fractional library routines. ! (line 1211) * __satfractuqqusq2: Fixed-point fractional library routines. ! (line 1205) * __satfractuqquta: Fixed-point fractional library routines. ! (line 1215) * __satfractusada: Fixed-point fractional library routines. ! (line 1326) * __satfractusadq: Fixed-point fractional library routines. ! (line 1323) * __satfractusaha: Fixed-point fractional library routines. ! (line 1324) * __satfractusahq: Fixed-point fractional library routines. ! (line 1321) * __satfractusaqq: Fixed-point fractional library routines. ! (line 1320) * __satfractusasa: Fixed-point fractional library routines. ! (line 1325) * __satfractusasq: Fixed-point fractional library routines. ! (line 1322) * __satfractusata: Fixed-point fractional library routines. ! (line 1327) * __satfractusauda2: Fixed-point fractional library routines. ! (line 1337) * __satfractusaudq: Fixed-point fractional library routines. ! (line 1333) * __satfractusauha2: Fixed-point fractional library routines. ! (line 1335) * __satfractusauhq: Fixed-point fractional library routines. ! (line 1330) * __satfractusauqq: Fixed-point fractional library routines. ! (line 1328) * __satfractusausq: Fixed-point fractional library routines. ! (line 1331) * __satfractusauta2: Fixed-point fractional library routines. ! (line 1339) * __satfractusqda: Fixed-point fractional library routines. ! (line 1247) * __satfractusqdq: Fixed-point fractional library routines. ! (line 1242) * __satfractusqha: Fixed-point fractional library routines. ! (line 1244) * __satfractusqhq: Fixed-point fractional library routines. ! (line 1240) * __satfractusqqq: Fixed-point fractional library routines. ! (line 1238) * __satfractusqsa: Fixed-point fractional library routines. ! (line 1246) * __satfractusqsq: Fixed-point fractional library routines. ! (line 1241) * __satfractusqta: Fixed-point fractional library routines. ! (line 1248) * __satfractusquda: Fixed-point fractional library routines. ! (line 1260) * __satfractusqudq2: Fixed-point fractional library routines. ! (line 1254) * __satfractusquha: Fixed-point fractional library routines. ! (line 1256) * __satfractusquhq2: Fixed-point fractional library routines. ! (line 1252) * __satfractusquqq2: Fixed-point fractional library routines. ! (line 1250) * __satfractusqusa: Fixed-point fractional library routines. ! (line 1258) * __satfractusquta: Fixed-point fractional library routines. ! (line 1262) * __satfractutada: Fixed-point fractional library routines. ! (line 1377) * __satfractutadq: Fixed-point fractional library routines. ! (line 1372) * __satfractutaha: Fixed-point fractional library routines. ! (line 1374) * __satfractutahq: Fixed-point fractional library routines. ! (line 1369) * __satfractutaqq: Fixed-point fractional library routines. ! (line 1367) * __satfractutasa: Fixed-point fractional library routines. ! (line 1376) * __satfractutasq: Fixed-point fractional library routines. ! (line 1370) * __satfractutata: Fixed-point fractional library routines. ! (line 1379) * __satfractutauda2: Fixed-point fractional library routines. ! (line 1393) * __satfractutaudq: Fixed-point fractional library routines. ! (line 1387) * __satfractutauha2: Fixed-point fractional library routines. ! (line 1389) * __satfractutauhq: Fixed-point fractional library routines. ! (line 1383) * __satfractutauqq: Fixed-point fractional library routines. ! (line 1381) * __satfractutausa2: Fixed-point fractional library routines. ! (line 1391) * __satfractutausq: Fixed-point fractional library routines. ! (line 1385) * __splitstack_find: Miscellaneous routines. (line 15) * __ssaddda3: Fixed-point fractional library routines. ! (line 66) * __ssadddq3: Fixed-point fractional library routines. ! (line 61) * __ssaddha3: Fixed-point fractional library routines. ! (line 63) * __ssaddhq3: Fixed-point fractional library routines. ! (line 59) * __ssaddqq3: Fixed-point fractional library routines. ! (line 57) * __ssaddsa3: Fixed-point fractional library routines. ! (line 65) * __ssaddsq3: Fixed-point fractional library routines. ! (line 60) * __ssaddta3: Fixed-point fractional library routines. ! (line 67) * __ssashlda3: Fixed-point fractional library routines. ! (line 401) * __ssashldq3: Fixed-point fractional library routines. ! (line 397) * __ssashlha3: Fixed-point fractional library routines. ! (line 399) * __ssashlhq3: Fixed-point fractional library routines. ! (line 395) * __ssashlsa3: Fixed-point fractional library routines. ! (line 400) * __ssashlsq3: Fixed-point fractional library routines. ! (line 396) * __ssashlta3: Fixed-point fractional library routines. ! (line 402) * __ssdivda3: Fixed-point fractional library routines. ! (line 260) * __ssdivdq3: Fixed-point fractional library routines. ! (line 255) * __ssdivha3: Fixed-point fractional library routines. ! (line 257) * __ssdivhq3: Fixed-point fractional library routines. ! (line 253) * __ssdivqq3: Fixed-point fractional library routines. ! (line 251) * __ssdivsa3: Fixed-point fractional library routines. ! (line 259) * __ssdivsq3: Fixed-point fractional library routines. ! (line 254) * __ssdivta3: Fixed-point fractional library routines. ! (line 261) * __ssmulda3: Fixed-point fractional library routines. ! (line 192) * __ssmuldq3: Fixed-point fractional library routines. ! (line 187) * __ssmulha3: Fixed-point fractional library routines. ! (line 189) * __ssmulhq3: Fixed-point fractional library routines. ! (line 185) * __ssmulqq3: Fixed-point fractional library routines. ! (line 183) * __ssmulsa3: Fixed-point fractional library routines. ! (line 191) * __ssmulsq3: Fixed-point fractional library routines. ! (line 186) * __ssmulta3: Fixed-point fractional library routines. ! (line 193) * __ssnegda2: Fixed-point fractional library routines. ! (line 315) * __ssnegdq2: Fixed-point fractional library routines. ! (line 312) * __ssnegha2: Fixed-point fractional library routines. ! (line 313) * __ssneghq2: Fixed-point fractional library routines. ! (line 310) * __ssnegqq2: Fixed-point fractional library routines. ! (line 309) * __ssnegsa2: Fixed-point fractional library routines. ! (line 314) * __ssnegsq2: Fixed-point fractional library routines. ! (line 311) * __ssnegta2: Fixed-point fractional library routines. ! (line 316) * __sssubda3: Fixed-point fractional library routines. ! (line 128) * __sssubdq3: Fixed-point fractional library routines. ! (line 123) * __sssubha3: Fixed-point fractional library routines. ! (line 125) * __sssubhq3: Fixed-point fractional library routines. ! (line 121) * __sssubqq3: Fixed-point fractional library routines. ! (line 119) * __sssubsa3: Fixed-point fractional library routines. ! (line 127) * __sssubsq3: Fixed-point fractional library routines. ! (line 122) * __sssubta3: Fixed-point fractional library routines. ! (line 129) * __subda3: Fixed-point fractional library routines. ! (line 106) * __subdf3: Soft float library routines. (line 30) * __subdq3: Fixed-point fractional library routines. ! (line 93) * __subha3: Fixed-point fractional library routines. ! (line 103) * __subhq3: Fixed-point fractional library routines. ! (line 91) * __subqq3: Fixed-point fractional library routines. ! (line 89) * __subsa3: Fixed-point fractional library routines. ! (line 105) * __subsf3: Soft float library routines. (line 29) * __subsq3: Fixed-point fractional library routines. ! (line 92) * __subta3: Fixed-point fractional library routines. ! (line 107) * __subtf3: Soft float library routines. (line 31) * __subuda3: Fixed-point fractional library routines. ! (line 113) * __subudq3: Fixed-point fractional library routines. ! (line 101) * __subuha3: Fixed-point fractional library routines. ! (line 109) * __subuhq3: Fixed-point fractional library routines. ! (line 97) * __subuqq3: Fixed-point fractional library routines. ! (line 95) * __subusa3: Fixed-point fractional library routines. ! (line 111) * __subusq3: Fixed-point fractional library routines. ! (line 99) * __subuta3: Fixed-point fractional library routines. ! (line 115) * __subvdi3: Integer library routines. (line 122) * __subvsi3: Integer library routines. *************** Concept Index *** 53384,53404 **** * __udivti3: Integer library routines. (line 54) * __udivuda3: Fixed-point fractional library routines. ! (line 252) * __udivudq3: Fixed-point fractional library routines. ! (line 246) * __udivuha3: Fixed-point fractional library routines. ! (line 248) * __udivuhq3: Fixed-point fractional library routines. ! (line 242) * __udivuqq3: Fixed-point fractional library routines. ! (line 240) * __udivusa3: Fixed-point fractional library routines. ! (line 250) * __udivusq3: Fixed-point fractional library routines. ! (line 244) * __udivuta3: Fixed-point fractional library routines. ! (line 254) * __umoddi3: Integer library routines. (line 69) * __umodsi3: Integer library routines. --- 53384,53404 ---- * __udivti3: Integer library routines. (line 54) * __udivuda3: Fixed-point fractional library routines. ! (line 244) * __udivudq3: Fixed-point fractional library routines. ! (line 238) * __udivuha3: Fixed-point fractional library routines. ! (line 240) * __udivuhq3: Fixed-point fractional library routines. ! (line 234) * __udivuqq3: Fixed-point fractional library routines. ! (line 232) * __udivusa3: Fixed-point fractional library routines. ! (line 242) * __udivusq3: Fixed-point fractional library routines. ! (line 236) * __udivuta3: Fixed-point fractional library routines. ! (line 246) * __umoddi3: Integer library routines. (line 69) * __umodsi3: Integer library routines. *************** Concept Index *** 53412,53512 **** * __unordtf2: Soft float library routines. (line 173) * __usadduda3: Fixed-point fractional library routines. ! (line 91) * __usaddudq3: Fixed-point fractional library routines. ! (line 85) * __usadduha3: Fixed-point fractional library routines. ! (line 87) * __usadduhq3: Fixed-point fractional library routines. ! (line 81) * __usadduqq3: Fixed-point fractional library routines. ! (line 79) * __usaddusa3: Fixed-point fractional library routines. ! (line 89) * __usaddusq3: Fixed-point fractional library routines. ! (line 83) * __usadduta3: Fixed-point fractional library routines. ! (line 93) * __usashluda3: Fixed-point fractional library routines. ! (line 427) * __usashludq3: Fixed-point fractional library routines. ! (line 421) * __usashluha3: Fixed-point fractional library routines. ! (line 423) * __usashluhq3: Fixed-point fractional library routines. ! (line 417) * __usashluqq3: Fixed-point fractional library routines. ! (line 415) * __usashlusa3: Fixed-point fractional library routines. ! (line 425) * __usashlusq3: Fixed-point fractional library routines. ! (line 419) * __usashluta3: Fixed-point fractional library routines. ! (line 429) * __usdivuda3: Fixed-point fractional library routines. ! (line 286) * __usdivudq3: Fixed-point fractional library routines. ! (line 280) * __usdivuha3: Fixed-point fractional library routines. ! (line 282) * __usdivuhq3: Fixed-point fractional library routines. ! (line 276) * __usdivuqq3: Fixed-point fractional library routines. ! (line 274) * __usdivusa3: Fixed-point fractional library routines. ! (line 284) * __usdivusq3: Fixed-point fractional library routines. ! (line 278) * __usdivuta3: Fixed-point fractional library routines. ! (line 288) * __usmuluda3: Fixed-point fractional library routines. ! (line 218) * __usmuludq3: Fixed-point fractional library routines. ! (line 212) * __usmuluha3: Fixed-point fractional library routines. ! (line 214) * __usmuluhq3: Fixed-point fractional library routines. ! (line 208) * __usmuluqq3: Fixed-point fractional library routines. ! (line 206) * __usmulusa3: Fixed-point fractional library routines. ! (line 216) * __usmulusq3: Fixed-point fractional library routines. ! (line 210) * __usmuluta3: Fixed-point fractional library routines. ! (line 220) * __usneguda2: Fixed-point fractional library routines. ! (line 337) * __usnegudq2: Fixed-point fractional library routines. ! (line 332) * __usneguha2: Fixed-point fractional library routines. ! (line 334) * __usneguhq2: Fixed-point fractional library routines. ! (line 329) * __usneguqq2: Fixed-point fractional library routines. ! (line 327) * __usnegusa2: Fixed-point fractional library routines. ! (line 336) * __usnegusq2: Fixed-point fractional library routines. ! (line 330) * __usneguta2: Fixed-point fractional library routines. ! (line 339) * __ussubuda3: Fixed-point fractional library routines. ! (line 154) * __ussubudq3: Fixed-point fractional library routines. ! (line 148) * __ussubuha3: Fixed-point fractional library routines. ! (line 150) * __ussubuhq3: Fixed-point fractional library routines. ! (line 144) * __ussubuqq3: Fixed-point fractional library routines. ! (line 142) * __ussubusa3: Fixed-point fractional library routines. ! (line 152) * __ussubusq3: Fixed-point fractional library routines. ! (line 146) * __ussubuta3: Fixed-point fractional library routines. ! (line 156) * abort: Portability. (line 20) * abs: Arithmetic. (line 200) * abs and attributes: Expressions. (line 83) --- 53412,53512 ---- * __unordtf2: Soft float library routines. (line 173) * __usadduda3: Fixed-point fractional library routines. ! (line 83) * __usaddudq3: Fixed-point fractional library routines. ! (line 77) * __usadduha3: Fixed-point fractional library routines. ! (line 79) * __usadduhq3: Fixed-point fractional library routines. ! (line 73) * __usadduqq3: Fixed-point fractional library routines. ! (line 71) * __usaddusa3: Fixed-point fractional library routines. ! (line 81) * __usaddusq3: Fixed-point fractional library routines. ! (line 75) * __usadduta3: Fixed-point fractional library routines. ! (line 85) * __usashluda3: Fixed-point fractional library routines. ! (line 419) * __usashludq3: Fixed-point fractional library routines. ! (line 413) * __usashluha3: Fixed-point fractional library routines. ! (line 415) * __usashluhq3: Fixed-point fractional library routines. ! (line 409) * __usashluqq3: Fixed-point fractional library routines. ! (line 407) * __usashlusa3: Fixed-point fractional library routines. ! (line 417) * __usashlusq3: Fixed-point fractional library routines. ! (line 411) * __usashluta3: Fixed-point fractional library routines. ! (line 421) * __usdivuda3: Fixed-point fractional library routines. ! (line 278) * __usdivudq3: Fixed-point fractional library routines. ! (line 272) * __usdivuha3: Fixed-point fractional library routines. ! (line 274) * __usdivuhq3: Fixed-point fractional library routines. ! (line 268) * __usdivuqq3: Fixed-point fractional library routines. ! (line 266) * __usdivusa3: Fixed-point fractional library routines. ! (line 276) * __usdivusq3: Fixed-point fractional library routines. ! (line 270) * __usdivuta3: Fixed-point fractional library routines. ! (line 280) * __usmuluda3: Fixed-point fractional library routines. ! (line 210) * __usmuludq3: Fixed-point fractional library routines. ! (line 204) * __usmuluha3: Fixed-point fractional library routines. ! (line 206) * __usmuluhq3: Fixed-point fractional library routines. ! (line 200) * __usmuluqq3: Fixed-point fractional library routines. ! (line 198) * __usmulusa3: Fixed-point fractional library routines. ! (line 208) * __usmulusq3: Fixed-point fractional library routines. ! (line 202) * __usmuluta3: Fixed-point fractional library routines. ! (line 212) * __usneguda2: Fixed-point fractional library routines. ! (line 329) * __usnegudq2: Fixed-point fractional library routines. ! (line 324) * __usneguha2: Fixed-point fractional library routines. ! (line 326) * __usneguhq2: Fixed-point fractional library routines. ! (line 321) * __usneguqq2: Fixed-point fractional library routines. ! (line 319) * __usnegusa2: Fixed-point fractional library routines. ! (line 328) * __usnegusq2: Fixed-point fractional library routines. ! (line 322) * __usneguta2: Fixed-point fractional library routines. ! (line 331) * __ussubuda3: Fixed-point fractional library routines. ! (line 146) * __ussubudq3: Fixed-point fractional library routines. ! (line 140) * __ussubuha3: Fixed-point fractional library routines. ! (line 142) * __ussubuhq3: Fixed-point fractional library routines. ! (line 136) * __ussubuqq3: Fixed-point fractional library routines. ! (line 134) * __ussubusa3: Fixed-point fractional library routines. ! (line 144) * __ussubusq3: Fixed-point fractional library routines. ! (line 138) * __ussubuta3: Fixed-point fractional library routines. ! (line 148) * abort: Portability. (line 20) * abs: Arithmetic. (line 200) * abs and attributes: Expressions. (line 83) *************** Concept Index *** 53677,53683 **** * AS_NEEDS_DASH_FOR_PIPED_INPUT: Driver. (line 88) * atan2M3 instruction pattern: Standard Names. (line 1099) * atanM2 instruction pattern: Standard Names. (line 1010) ! * atomic: GTY Options. (line 197) * atomic_addMODE instruction pattern: Standard Names. (line 2583) * atomic_add_fetchMODE instruction pattern: Standard Names. (line 2612) * atomic_andMODE instruction pattern: Standard Names. (line 2583) --- 53677,53683 ---- * AS_NEEDS_DASH_FOR_PIPED_INPUT: Driver. (line 88) * atan2M3 instruction pattern: Standard Names. (line 1099) * atanM2 instruction pattern: Standard Names. (line 1010) ! * atomic: GTY Options. (line 196) * atomic_addMODE instruction pattern: Standard Names. (line 2583) * atomic_add_fetchMODE instruction pattern: Standard Names. (line 2612) * atomic_andMODE instruction pattern: Standard Names. (line 2583) *************** Concept Index *** 56503,56509 **** (line 6) * source code, location information: Guidelines for Diagnostics. (line 183) ! * special: GTY Options. (line 238) * special predicates: Predicates. (line 31) * SPECS: Target Fragment. (line 194) * speculation_barrier instruction pattern: Standard Names. (line 2381) --- 56503,56509 ---- (line 6) * source code, location information: Guidelines for Diagnostics. (line 183) ! * special: GTY Options. (line 237) * special predicates: Predicates. (line 31) * SPECS: Target Fragment. (line 194) * speculation_barrier instruction pattern: Standard Names. (line 2381) *************** Concept Index *** 57618,57624 **** * use: Side Effects. (line 168) * used: Flags. (line 325) * used, in symbol_ref: Flags. (line 211) ! * user: GTY Options. (line 245) * user experience guidelines: User Experience Guidelines. (line 6) * user gc: User GC. (line 6) --- 57618,57624 ---- * use: Side Effects. (line 168) * used: Flags. (line 325) * used, in symbol_ref: Flags. (line 211) ! * user: GTY Options. (line 244) * user experience guidelines: User Experience Guidelines. (line 6) * user gc: User GC. (line 6) *************** Concept Index *** 57866,58324 ****  Tag Table: Node: Top1789 ! Node: Contributing5163 ! Node: Portability5893 ! Node: Interface7681 ! Node: Libgcc10722 ! Node: Integer library routines12549 ! Node: Soft float library routines19517 ! Node: Decimal float library routines31455 ! Node: Fixed-point fractional library routines47213 ! Node: Exception handling routines147609 ! Node: Miscellaneous routines148716 ! Node: Languages150836 ! Node: Source Tree152383 ! Node: Configure Terms152965 ! Node: Top Level155921 ! Node: gcc Directory159506 ! Node: Subdirectories160458 ! Node: Configuration162626 ! Node: Config Fragments163346 ! Node: System Config164571 ! Node: Configuration Files165507 ! Node: Build168123 ! Node: Makefile168535 ! Ref: Makefile-Footnote-1175310 ! Ref: Makefile-Footnote-2175457 ! Node: Library Files175531 ! Node: Headers176093 ! Node: Documentation178176 ! Node: Texinfo Manuals179035 ! Node: Man Page Generation181364 ! Node: Miscellaneous Docs183277 ! Node: Front End184664 ! Node: Front End Directory188343 ! Node: Front End Config189659 ! Node: Front End Makefile192495 ! Node: Back End196263 ! Node: Testsuites201149 ! Node: Test Idioms202138 ! Node: Test Directives205536 ! Node: Directives206063 ! Node: Selectors217838 ! Node: Effective-Target Keywords219194 ! Ref: arm_fp_ok232067 ! Ref: arm_fp_dp_ok232234 ! Ref: arm_neon_ok233267 ! Ref: arm_neon_ok_no_float_abi233436 ! Ref: arm_neonv2_ok233603 ! Ref: arm_fp16_ok233770 ! Ref: arm_neon_fp16_ok234112 ! Ref: arm_vfp3_ok235044 ! Ref: arm_arch_v8a_hard_ok235187 ! Ref: arm_v8_1a_neon_ok235937 ! Ref: arm_v8_2a_fp16_scalar_ok236365 ! Ref: arm_v8_2a_fp16_neon_ok236816 ! Ref: arm_v8_2a_dotprod_neon_ok237291 ! Ref: arm_fp16fml_neon_ok237711 ! Ref: arm_coproc1_ok240211 ! Ref: arm_coproc2_ok240337 ! Ref: arm_coproc3_ok240565 ! Ref: arm_simd32_ok240932 ! Ref: arm_qbit_ok241110 ! Ref: arm_dsp_ok241299 ! Ref: arm_softfp_ok241476 ! Ref: arm_hard_ok241549 ! Ref: arm_v8_1_lob_ok241624 ! Ref: stack_size_et255920 ! Node: Add Options258409 ! Ref: arm_fp16_ieee259647 ! Ref: arm_fp16_alternative259902 ! Ref: stack_size_ao262466 ! Node: Require Support262828 ! Node: Final Actions265730 ! Node: Ada Tests275699 ! Node: C Tests276862 ! Node: LTO Testing281234 ! Node: gcov Testing282877 ! Node: profopt Testing285847 ! Node: compat Testing287562 ! Node: Torture Tests291802 ! Node: GIMPLE Tests293436 ! Node: RTL Tests294678 ! Node: Options295984 ! Node: Option file format296425 ! Node: Option properties303414 ! Node: Passes319500 ! Node: Parsing pass320373 ! Node: Gimplification pass323901 ! Node: Pass manager325734 ! Node: IPA passes327575 ! Node: Small IPA passes328468 ! Node: Regular IPA passes331905 ! Node: Late IPA passes336683 ! Node: Tree SSA passes337642 ! Node: RTL passes359249 ! Node: Optimization info371513 ! Node: Dump setup372332 ! Node: Optimization groups373461 ! Node: Dump files and streams374440 ! Node: Dump output verbosity375638 ! Node: Dump types376694 ! Node: Dump examples379036 ! Node: poly_int380517 ! Node: Overview of poly_int381997 ! Node: Consequences of using poly_int384601 ! Node: Comparisons involving poly_int386236 ! Node: Comparison functions for poly_int387874 ! Node: Properties of the poly_int comparisons389081 ! Node: Comparing potentially-unordered poly_ints391523 ! Node: Comparing ordered poly_ints392434 ! Node: Checking for a poly_int marker value394458 ! Node: Range checks on poly_ints395307 ! Node: Sorting poly_ints397961 ! Node: Arithmetic on poly_ints398734 ! Node: Using poly_int with C++ arithmetic operators399535 ! Node: wi arithmetic on poly_ints401066 ! Node: Division of poly_ints401918 ! Node: Other poly_int arithmetic403425 ! Node: Alignment of poly_ints404831 ! Node: Computing bounds on poly_ints408108 ! Node: Converting poly_ints409497 ! Node: Miscellaneous poly_int routines413044 ! Node: Guidelines for using poly_int413684 ! Node: GENERIC418616 ! Node: Deficiencies420438 ! Node: Tree overview420679 ! Node: Macros and Functions424803 ! Node: Identifiers425628 ! Node: Containers427237 ! Node: Types428394 ! Node: Declarations440805 ! Node: Working with declarations441300 ! Node: Internal structure446904 ! Node: Current structure hierarchy447288 ! Node: Adding new DECL node types449381 ! Node: Attributes453665 ! Node: Expression trees454909 ! Node: Constant expressions456663 ! Node: Storage References462755 ! Node: Unary and Binary Expressions466274 ! Node: Vectors487176 ! Node: Statements495666 ! Node: Basic Statements496198 ! Node: Blocks500973 ! Node: Statement Sequences502674 ! Node: Empty Statements503007 ! Node: Jumps503581 ! Node: Cleanups504234 ! Node: OpenMP506275 ! Node: OpenACC512120 ! Node: Functions513237 ! Node: Function Basics513708 ! Node: Function Properties517392 ! Node: Language-dependent trees520173 ! Node: C and C++ Trees521060 ! Node: Types for C++523945 ! Node: Namespaces528915 ! Node: Classes532021 ! Node: Functions for C++536929 ! Node: Statements for C and C++543186 ! Node: C++ Expressions551693 ! Node: GIMPLE553204 ! Node: Tuple representation556869 ! Node: Class hierarchy of GIMPLE statements563829 ! Node: GIMPLE instruction set568817 ! Node: GIMPLE Exception Handling570449 ! Node: Temporaries572361 ! Ref: Temporaries-Footnote-1573679 ! Node: Operands573744 ! Node: Compound Expressions574505 ! Node: Compound Lvalues574739 ! Node: Conditional Expressions575501 ! Node: Logical Operators576160 ! Node: Manipulating GIMPLE statements583522 ! Node: Tuple specific accessors589458 ! Node: GIMPLE_ASM590237 ! Node: GIMPLE_ASSIGN592620 ! Node: GIMPLE_BIND597324 ! Node: GIMPLE_CALL599138 ! Node: GIMPLE_CATCH603281 ! Node: GIMPLE_COND604431 ! Node: GIMPLE_DEBUG607226 ! Node: GIMPLE_EH_FILTER611824 ! Node: GIMPLE_LABEL613387 ! Node: GIMPLE_GOTO614000 ! Node: GIMPLE_NOP614523 ! Node: GIMPLE_OMP_ATOMIC_LOAD614885 ! Node: GIMPLE_OMP_ATOMIC_STORE615881 ! Node: GIMPLE_OMP_CONTINUE616580 ! Node: GIMPLE_OMP_CRITICAL618059 ! Node: GIMPLE_OMP_FOR619053 ! Node: GIMPLE_OMP_MASTER622469 ! Node: GIMPLE_OMP_ORDERED622847 ! Node: GIMPLE_OMP_PARALLEL623241 ! Node: GIMPLE_OMP_RETURN626010 ! Node: GIMPLE_OMP_SECTION626655 ! Node: GIMPLE_OMP_SECTIONS627315 ! Node: GIMPLE_OMP_SINGLE628925 ! Node: GIMPLE_PHI629871 ! Node: GIMPLE_RESX631150 ! Node: GIMPLE_RETURN631869 ! Node: GIMPLE_SWITCH632443 ! Node: GIMPLE_TRY634318 ! Node: GIMPLE_WITH_CLEANUP_EXPR636090 ! Node: GIMPLE sequences636969 ! Node: Sequence iterators640175 ! Node: Adding a new GIMPLE statement code648632 ! Node: Statement and operand traversals649977 ! Node: Tree SSA652569 ! Node: Annotations654357 ! Node: SSA Operands654762 ! Node: SSA668565 ! Node: Alias analysis678271 ! Node: Memory model682045 ! Node: RTL683404 ! Node: RTL Objects685646 ! Node: RTL Classes689530 ! Node: Accessors694829 ! Node: Special Accessors697002 ! Node: Flags702789 ! Node: Machine Modes718052 ! Node: Constants735676 ! Node: Regs and Memory747475 ! Node: Arithmetic766873 ! Node: Comparisons777048 ! Node: Bit-Fields781340 ! Node: Vector Operations782891 ! Node: Conversions784995 ! Node: RTL Declarations789493 ! Node: Side Effects790337 ! Node: Incdec807346 ! Node: Assembler810682 ! Node: Debug Information812227 ! Node: Insns814154 ! Node: Calls842010 ! Node: RTL SSA844603 ! Node: Using RTL SSA845994 ! Node: RTL SSA Instructions847911 ! Ref: RTL SSA Instructions-Footnote-1849297 ! Node: RTL SSA Basic Blocks849431 ! Ref: real RTL SSA insns849899 ! Ref: RTL SSA Basic Blocks-Footnote-1852121 ! Node: RTL SSA Resources852255 ! Node: RTL SSA Accesses853372 ! Ref: RTL SSA Accesses-Footnote-1855073 ! Node: RTL SSA Phi Nodes855216 ! Node: RTL SSA Access Lists857220 ! Node: Changing RTL Instructions861501 ! Node: Changing One RTL SSA Instruction862110 ! Node: Changing Multiple RTL SSA Instructions867045 ! Node: Sharing871288 ! Node: Reading RTL874485 ! Node: Control Flow875476 ! Node: Basic Blocks877244 ! Node: Edges882698 ! Node: Profile information891317 ! Node: Maintaining the CFG896001 ! Node: Liveness information901769 ! Node: Loop Analysis and Representation903895 ! Node: Loop representation904931 ! Node: Loop querying912297 ! Node: Loop manipulation915118 ! Node: LCSSA917454 ! Node: Scalar evolutions919523 ! Node: loop-iv922767 ! Node: Number of iterations924689 ! Node: Dependency analysis928770 ! Node: Machine Desc935121 ! Node: Overview937684 ! Node: Patterns939724 ! Node: Example944691 ! Node: RTL Template946152 ! Node: Output Template956808 ! Node: Output Statement960989 ! Node: Predicates965328 ! Node: Machine-Independent Predicates968246 ! Node: Defining Predicates973190 ! Node: Constraints979153 ! Node: Simple Constraints980622 ! Node: Multi-Alternative993462 ! Node: Class Preferences996671 ! Node: Modifiers997563 ! Node: Machine Constraints1002297 ! Node: Disable Insn Alternatives1064401 ! Node: Define Constraints1067893 ! Node: C Constraint Interface1076482 ! Node: Standard Names1079609 ! Ref: shift patterns1117829 ! Ref: prologue instruction pattern1177973 ! Ref: window_save instruction pattern1178466 ! Ref: epilogue instruction pattern1178743 ! Node: Pattern Ordering1200719 ! Node: Dependent Patterns1201955 ! Node: Jump Patterns1203575 ! Ref: Jump Patterns-Footnote-11205720 ! Node: Looping Patterns1205768 ! Node: Insn Canonicalizations1211407 ! Node: Expander Definitions1216614 ! Node: Insn Splitting1224828 ! Node: Including Patterns1239858 ! Node: Peephole Definitions1241642 ! Node: define_peephole1242895 ! Node: define_peephole21249225 ! Node: Insn Attributes1253314 ! Node: Defining Attributes1254496 ! Ref: define_enum_attr1257988 ! Node: Expressions1259024 ! Node: Tagging Insns1265774 ! Node: Attr Example1270127 ! Node: Insn Lengths1272500 ! Node: Constant Attributes1275908 ! Node: Mnemonic Attribute1277084 ! Node: Delay Slots1278603 ! Node: Processor pipeline description1281826 ! Ref: Processor pipeline description-Footnote-11300638 ! Node: Conditional Execution1300962 ! Node: Define Subst1304445 ! Node: Define Subst Example1306480 ! Node: Define Subst Pattern Matching1309475 ! Node: Define Subst Output Template1310701 ! Node: Constant Definitions1313024 ! Ref: define_enum1316806 ! Node: Iterators1317294 ! Node: Mode Iterators1317939 ! Node: Defining Mode Iterators1318917 ! Node: Substitutions1320411 ! Node: Examples1322653 ! Node: Code Iterators1324101 ! Node: Int Iterators1327231 ! Node: Subst Iterators1329695 ! Node: Parameterized Names1331415 ! Node: Target Macros1335433 ! Node: Target Structure1338496 ! Node: Driver1340988 ! Node: Run-time Target1359958 ! Node: Per-Function Data1369491 ! Node: Storage Layout1372255 ! Node: Type Layout1399909 ! Node: Registers1413250 ! Node: Register Basics1414224 ! Node: Allocation Order1421786 ! Node: Values in Registers1424270 ! Node: Leaf Functions1431746 ! Node: Stack Registers1434605 ! Node: Register Classes1435877 ! Node: Stack and Calling1470659 ! Node: Frame Layout1471265 ! Node: Exception Handling1483100 ! Node: Stack Checking1489310 ! Node: Frame Registers1494935 ! Node: Elimination1503486 ! Node: Stack Arguments1507342 ! Node: Register Arguments1514538 ! Node: Scalar Return1539399 ! Node: Aggregate Return1545855 ! Node: Caller Saves1550409 ! Node: Function Entry1551151 ! Node: Profiling1562703 ! Node: Tail Calls1564813 ! Node: Shrink-wrapping separate components1566723 ! Node: Stack Smashing Protection1569764 ! Node: Miscellaneous Register Hooks1572253 ! Node: Varargs1573118 ! Node: Trampolines1582518 ! Node: Library Calls1592015 ! Node: Addressing Modes1597101 ! Node: Anchored Addresses1626494 ! Node: Condition Code1629137 ! Node: CC0 Condition Codes1631464 ! Node: MODE_CC Condition Codes1634710 ! Node: Costs1641536 ! Node: Scheduling1663498 ! Node: Sections1687420 ! Node: PIC1703785 ! Node: Assembler Format1705844 ! Node: File Framework1706982 ! Ref: TARGET_HAVE_SWITCHABLE_BSS_SECTIONS1714581 ! Node: Data Output1716256 ! Node: Uninitialized Data1724544 ! Node: Label Output1729558 ! Node: Initialization1754169 ! Node: Macros for Initialization1760130 ! Node: Instruction Output1767281 ! Node: Dispatch Tables1777910 ! Node: Exception Region Output1783661 ! Node: Alignment Output1790743 ! Node: Debugging Info1794430 ! Node: All Debuggers1795084 ! Node: DBX Options1797856 ! Node: DBX Hooks1803294 ! Node: File Names and DBX1804603 ! Node: DWARF1806707 ! Node: VMS Debug1812522 ! Node: Floating Point1813101 ! Node: Mode Switching1815856 ! Node: Target Attributes1820293 ! Node: Emulated TLS1829769 ! Node: MIPS Coprocessors1833159 ! Node: PCH Target1834318 ! Node: C++ ABI1836160 ! Node: D Language and ABI1840952 ! Node: Named Address Spaces1843895 ! Node: Misc1849822 ! Ref: TARGET_SHIFT_TRUNCATION_MASK1857693 ! Node: Host Config1916779 ! Node: Host Common1917848 ! Node: Filesystem1920222 ! Node: Host Misc1924337 ! Node: Fragments1926786 ! Node: Target Fragment1927981 ! Node: Host Fragment1938793 ! Node: Collect21939033 ! Node: Header Dirs1941669 ! Node: Type Information1943092 ! Node: GTY Options1946368 ! Node: Inheritance and GTY1957627 ! Ref: Inheritance and GTY-Footnote-11959192 ! Node: User GC1959462 ! Node: GGC Roots1963201 ! Node: Files1963914 ! Node: Invoking the garbage collector1966621 ! Node: Troubleshooting1968126 ! Node: Plugins1969201 ! Node: Plugins loading1970330 ! Node: Plugin API1971429 ! Node: Plugins pass1979296 ! Node: Plugins GC1981267 ! Node: Plugins description1982984 ! Node: Plugins attr1983520 ! Node: Plugins recording1985800 ! Node: Plugins gate1986650 ! Node: Plugins tracking1987241 ! Node: Plugins building1987829 ! Node: LTO1991330 ! Node: LTO Overview1992202 ! Node: LTO object file layout1998029 ! Node: IPA2002659 ! Node: WHOPR2011709 ! Node: Internal flags2016269 ! Node: Match and Simplify2017680 ! Node: GIMPLE API2018642 ! Node: The Language2021437 ! Node: Static Analyzer2033936 ! Node: Analyzer Internals2034201 ! Node: Debugging the Analyzer2050088 ! Node: User Experience Guidelines2052525 ! Node: Guidelines for Diagnostics2053461 ! Ref: input_location_example2061636 ! Node: Guidelines for Options2071321 ! Node: Funding2071498 ! Node: GNU Project2074005 ! Node: Copying2074654 ! Node: GNU Free Documentation License2112165 ! Node: Contributors2137286 ! Node: Option Index2178262 ! Node: Concept Index2179139  End Tag Table --- 57866,58329 ----  Tag Table: Node: Top1789 ! Node: Contributing5175 ! Node: Portability5905 ! Node: Interface7693 ! Node: Libgcc10734 ! Node: Integer library routines12561 ! Node: Soft float library routines19529 ! Node: Decimal float library routines31467 ! Node: Fixed-point fractional library routines47225 ! Node: Exception handling routines147621 ! Node: Miscellaneous routines148728 ! Node: Languages150848 ! Node: Source Tree152395 ! Node: Configure Terms152977 ! Node: Top Level155933 ! Node: gcc Directory159518 ! Node: Subdirectories160470 ! Node: Configuration162638 ! Node: Config Fragments163358 ! Node: System Config164583 ! Node: Configuration Files165519 ! Node: Build168135 ! Node: Makefile168547 ! Ref: Makefile-Footnote-1175322 ! Ref: Makefile-Footnote-2175469 ! Node: Library Files175543 ! Node: Headers176105 ! Node: Documentation178188 ! Node: Texinfo Manuals179047 ! Node: Man Page Generation181376 ! Node: Miscellaneous Docs183289 ! Node: Front End184676 ! Node: Front End Directory188355 ! Node: Front End Config189671 ! Node: Front End Makefile192507 ! Node: Back End196275 ! Node: Testsuites201161 ! Node: Test Idioms202150 ! Node: Test Directives205548 ! Node: Directives206075 ! Node: Selectors217850 ! Node: Effective-Target Keywords219206 ! Ref: arm_fp_ok232079 ! Ref: arm_fp_dp_ok232246 ! Ref: arm_neon_ok233279 ! Ref: arm_neon_ok_no_float_abi233448 ! Ref: arm_neonv2_ok233615 ! Ref: arm_fp16_ok233782 ! Ref: arm_neon_fp16_ok234124 ! Ref: arm_vfp3_ok235056 ! Ref: arm_arch_v8a_hard_ok235199 ! Ref: arm_v8_1a_neon_ok235949 ! Ref: arm_v8_2a_fp16_scalar_ok236377 ! Ref: arm_v8_2a_fp16_neon_ok236828 ! Ref: arm_v8_2a_dotprod_neon_ok237303 ! Ref: arm_fp16fml_neon_ok237723 ! Ref: arm_coproc1_ok240223 ! Ref: arm_coproc2_ok240349 ! Ref: arm_coproc3_ok240577 ! Ref: arm_simd32_ok240944 ! Ref: arm_qbit_ok241122 ! Ref: arm_dsp_ok241311 ! Ref: arm_softfp_ok241488 ! Ref: arm_hard_ok241561 ! Ref: arm_v8_1_lob_ok241636 ! Ref: stack_size_et255932 ! Node: Add Options258421 ! Ref: arm_fp16_ieee259659 ! Ref: arm_fp16_alternative259914 ! Ref: stack_size_ao262478 ! Node: Require Support262840 ! Node: Final Actions265742 ! Node: Ada Tests275711 ! Node: C Tests276874 ! Node: LTO Testing281246 ! Node: gcov Testing282889 ! Node: profopt Testing285859 ! Node: compat Testing287574 ! Node: Torture Tests291814 ! Node: GIMPLE Tests293448 ! Node: RTL Tests294690 ! Node: Options295996 ! Node: Option file format296437 ! Node: Option properties303426 ! Node: Passes319512 ! Node: Parsing pass320385 ! Node: Gimplification pass323913 ! Node: Pass manager325746 ! Node: IPA passes327587 ! Node: Small IPA passes328480 ! Node: Regular IPA passes331917 ! Node: Late IPA passes336695 ! Node: Tree SSA passes337654 ! Node: RTL passes359261 ! Node: Optimization info371525 ! Node: Dump setup372344 ! Node: Optimization groups373473 ! Node: Dump files and streams374452 ! Node: Dump output verbosity375650 ! Node: Dump types376706 ! Node: Dump examples379048 ! Node: poly_int380529 ! Node: Overview of poly_int382009 ! Node: Consequences of using poly_int384613 ! Node: Comparisons involving poly_int386248 ! Node: Comparison functions for poly_int387886 ! Node: Properties of the poly_int comparisons389093 ! Node: Comparing potentially-unordered poly_ints391535 ! Node: Comparing ordered poly_ints392446 ! Node: Checking for a poly_int marker value394470 ! Node: Range checks on poly_ints395319 ! Node: Sorting poly_ints397973 ! Node: Arithmetic on poly_ints398746 ! Node: Using poly_int with C++ arithmetic operators399547 ! Node: wi arithmetic on poly_ints401078 ! Node: Division of poly_ints401930 ! Node: Other poly_int arithmetic403437 ! Node: Alignment of poly_ints404843 ! Node: Computing bounds on poly_ints408120 ! Node: Converting poly_ints409509 ! Node: Miscellaneous poly_int routines413056 ! Node: Guidelines for using poly_int413696 ! Node: GENERIC418628 ! Node: Deficiencies420450 ! Node: Tree overview420691 ! Node: Macros and Functions424815 ! Node: Identifiers425640 ! Node: Containers427249 ! Node: Types428406 ! Node: Declarations440817 ! Node: Working with declarations441312 ! Node: Internal structure446916 ! Node: Current structure hierarchy447300 ! Node: Adding new DECL node types449393 ! Node: Attributes453677 ! Node: Expression trees454921 ! Node: Constant expressions456675 ! Node: Storage References462767 ! Node: Unary and Binary Expressions466286 ! Node: Vectors487188 ! Node: Statements495678 ! Node: Basic Statements496210 ! Node: Blocks500985 ! Node: Statement Sequences502686 ! Node: Empty Statements503019 ! Node: Jumps503593 ! Node: Cleanups504246 ! Node: OpenMP506287 ! Node: OpenACC512132 ! Node: Functions513249 ! Node: Function Basics513720 ! Node: Function Properties517404 ! Node: Language-dependent trees520185 ! Node: C and C++ Trees521072 ! Node: Types for C++523957 ! Node: Namespaces528927 ! Node: Classes532033 ! Node: Functions for C++536941 ! Node: Statements for C and C++543198 ! Node: C++ Expressions551705 ! Node: GIMPLE553216 ! Node: Tuple representation556881 ! Node: Class hierarchy of GIMPLE statements563841 ! Node: GIMPLE instruction set568829 ! Node: GIMPLE Exception Handling570461 ! Node: Temporaries572373 ! Ref: Temporaries-Footnote-1573691 ! Node: Operands573756 ! Node: Compound Expressions574517 ! Node: Compound Lvalues574751 ! Node: Conditional Expressions575513 ! Node: Logical Operators576172 ! Node: Manipulating GIMPLE statements583534 ! Node: Tuple specific accessors589470 ! Node: GIMPLE_ASM590249 ! Node: GIMPLE_ASSIGN592632 ! Node: GIMPLE_BIND597336 ! Node: GIMPLE_CALL599150 ! Node: GIMPLE_CATCH603291 ! Node: GIMPLE_COND604441 ! Node: GIMPLE_DEBUG607236 ! Node: GIMPLE_EH_FILTER611834 ! Node: GIMPLE_LABEL613397 ! Node: GIMPLE_GOTO614010 ! Node: GIMPLE_NOP614533 ! Node: GIMPLE_OMP_ATOMIC_LOAD614895 ! Node: GIMPLE_OMP_ATOMIC_STORE615891 ! Node: GIMPLE_OMP_CONTINUE616590 ! Node: GIMPLE_OMP_CRITICAL618069 ! Node: GIMPLE_OMP_FOR619063 ! Node: GIMPLE_OMP_MASTER622479 ! Node: GIMPLE_OMP_ORDERED622857 ! Node: GIMPLE_OMP_PARALLEL623251 ! Node: GIMPLE_OMP_RETURN626020 ! Node: GIMPLE_OMP_SECTION626665 ! Node: GIMPLE_OMP_SECTIONS627325 ! Node: GIMPLE_OMP_SINGLE628935 ! Node: GIMPLE_PHI629881 ! Node: GIMPLE_RESX631160 ! Node: GIMPLE_RETURN631879 ! Node: GIMPLE_SWITCH632453 ! Node: GIMPLE_TRY634326 ! Node: GIMPLE_WITH_CLEANUP_EXPR636098 ! Node: GIMPLE sequences636977 ! Node: Sequence iterators640183 ! Node: Adding a new GIMPLE statement code648640 ! Node: Statement and operand traversals649985 ! Node: Tree SSA652577 ! Node: Annotations654365 ! Node: SSA Operands654770 ! Node: SSA668573 ! Node: Alias analysis678279 ! Node: Memory model682053 ! Node: RTL683412 ! Node: RTL Objects685654 ! Node: RTL Classes689538 ! Node: Accessors694837 ! Node: Special Accessors697010 ! Node: Flags702797 ! Node: Machine Modes718060 ! Node: Constants735684 ! Node: Regs and Memory747483 ! Node: Arithmetic766881 ! Node: Comparisons777056 ! Node: Bit-Fields781348 ! Node: Vector Operations782899 ! Node: Conversions785003 ! Node: RTL Declarations789501 ! Node: Side Effects790345 ! Node: Incdec807354 ! Node: Assembler810690 ! Node: Debug Information812235 ! Node: Insns814162 ! Node: Calls842018 ! Node: RTL SSA844611 ! Node: Using RTL SSA846002 ! Node: RTL SSA Instructions847919 ! Ref: RTL SSA Instructions-Footnote-1849305 ! Node: RTL SSA Basic Blocks849439 ! Ref: real RTL SSA insns849907 ! Ref: RTL SSA Basic Blocks-Footnote-1852129 ! Node: RTL SSA Resources852263 ! Node: RTL SSA Accesses853380 ! Ref: RTL SSA Accesses-Footnote-1855081 ! Node: RTL SSA Phi Nodes855224 ! Node: RTL SSA Access Lists857228 ! Node: Changing RTL Instructions861509 ! Node: Changing One RTL SSA Instruction862118 ! Node: Changing Multiple RTL SSA Instructions867053 ! Node: Sharing871296 ! Node: Reading RTL874493 ! Node: Control Flow875484 ! Node: Basic Blocks877252 ! Node: Edges882706 ! Node: Profile information891325 ! Node: Maintaining the CFG896009 ! Node: Liveness information901777 ! Node: Loop Analysis and Representation903903 ! Node: Loop representation904939 ! Node: Loop querying912305 ! Node: Loop manipulation915126 ! Node: LCSSA917462 ! Node: Scalar evolutions919531 ! Node: loop-iv922775 ! Node: Number of iterations924697 ! Node: Dependency analysis928778 ! Node: Machine Desc935129 ! Node: Overview937692 ! Node: Patterns939732 ! Node: Example944699 ! Node: RTL Template946160 ! Node: Output Template956816 ! Node: Output Statement960997 ! Node: Predicates965336 ! Node: Machine-Independent Predicates968254 ! Node: Defining Predicates973198 ! Node: Constraints979161 ! Node: Simple Constraints980630 ! Node: Multi-Alternative993470 ! Node: Class Preferences996679 ! Node: Modifiers997571 ! Node: Machine Constraints1002305 ! Node: Disable Insn Alternatives1064409 ! Node: Define Constraints1067901 ! Node: C Constraint Interface1076490 ! Node: Standard Names1079617 ! Ref: shift patterns1117837 ! Ref: prologue instruction pattern1177981 ! Ref: window_save instruction pattern1178474 ! Ref: epilogue instruction pattern1178751 ! Node: Pattern Ordering1200727 ! Node: Dependent Patterns1201963 ! Node: Jump Patterns1203583 ! Ref: Jump Patterns-Footnote-11205728 ! Node: Looping Patterns1205776 ! Node: Insn Canonicalizations1211415 ! Node: Expander Definitions1216622 ! Node: Insn Splitting1224836 ! Node: Including Patterns1239866 ! Node: Peephole Definitions1241650 ! Node: define_peephole1242903 ! Node: define_peephole21249233 ! Node: Insn Attributes1253322 ! Node: Defining Attributes1254504 ! Ref: define_enum_attr1257996 ! Node: Expressions1259032 ! Node: Tagging Insns1265782 ! Node: Attr Example1270135 ! Node: Insn Lengths1272508 ! Node: Constant Attributes1275916 ! Node: Mnemonic Attribute1277092 ! Node: Delay Slots1278611 ! Node: Processor pipeline description1281834 ! Ref: Processor pipeline description-Footnote-11300646 ! Node: Conditional Execution1300970 ! Node: Define Subst1304453 ! Node: Define Subst Example1306488 ! Node: Define Subst Pattern Matching1309483 ! Node: Define Subst Output Template1310709 ! Node: Constant Definitions1313032 ! Ref: define_enum1316814 ! Node: Iterators1317302 ! Node: Mode Iterators1317947 ! Node: Defining Mode Iterators1318925 ! Node: Substitutions1320419 ! Node: Examples1322661 ! Node: Code Iterators1324109 ! Node: Int Iterators1327239 ! Node: Subst Iterators1329703 ! Node: Parameterized Names1331423 ! Node: Target Macros1335441 ! Node: Target Structure1338504 ! Node: Driver1340996 ! Node: Run-time Target1359966 ! Node: Per-Function Data1369499 ! Node: Storage Layout1372263 ! Node: Type Layout1399917 ! Node: Registers1413258 ! Node: Register Basics1414232 ! Node: Allocation Order1421794 ! Node: Values in Registers1424278 ! Node: Leaf Functions1431754 ! Node: Stack Registers1434613 ! Node: Register Classes1435885 ! Node: Stack and Calling1470667 ! Node: Frame Layout1471273 ! Node: Exception Handling1483108 ! Node: Stack Checking1489318 ! Node: Frame Registers1494943 ! Node: Elimination1503494 ! Node: Stack Arguments1507350 ! Node: Register Arguments1514546 ! Node: Scalar Return1539407 ! Node: Aggregate Return1545863 ! Node: Caller Saves1550417 ! Node: Function Entry1551159 ! Node: Profiling1562711 ! Node: Tail Calls1564821 ! Node: Shrink-wrapping separate components1566731 ! Node: Stack Smashing Protection1569772 ! Node: Miscellaneous Register Hooks1572261 ! Node: Varargs1573126 ! Node: Trampolines1582526 ! Node: Library Calls1592023 ! Node: Addressing Modes1597109 ! Node: Anchored Addresses1626502 ! Node: Condition Code1629145 ! Node: CC0 Condition Codes1631472 ! Node: MODE_CC Condition Codes1634718 ! Node: Costs1641544 ! Node: Scheduling1663506 ! Node: Sections1687428 ! Node: PIC1703793 ! Node: Assembler Format1705852 ! Node: File Framework1706990 ! Ref: TARGET_HAVE_SWITCHABLE_BSS_SECTIONS1714589 ! Node: Data Output1716264 ! Node: Uninitialized Data1724552 ! Node: Label Output1729566 ! Node: Initialization1754177 ! Node: Macros for Initialization1760138 ! Node: Instruction Output1767289 ! Node: Dispatch Tables1777918 ! Node: Exception Region Output1783669 ! Node: Alignment Output1790751 ! Node: Debugging Info1794438 ! Node: All Debuggers1795092 ! Node: DBX Options1797864 ! Node: DBX Hooks1803302 ! Node: File Names and DBX1804611 ! Node: DWARF1806715 ! Node: VMS Debug1812530 ! Node: Floating Point1813109 ! Node: Mode Switching1815864 ! Node: Target Attributes1820301 ! Node: Emulated TLS1829777 ! Node: MIPS Coprocessors1833167 ! Node: PCH Target1834326 ! Node: C++ ABI1836168 ! Node: D Language and ABI1840960 ! Node: Named Address Spaces1843903 ! Node: Misc1849830 ! Ref: TARGET_SHIFT_TRUNCATION_MASK1857701 ! Node: Host Config1916787 ! Node: Host Common1917856 ! Node: Filesystem1920230 ! Node: Host Misc1924345 ! Node: Fragments1926794 ! Node: Target Fragment1927989 ! Node: Host Fragment1938801 ! Node: Collect21939041 ! Node: Header Dirs1941677 ! Node: Type Information1943100 ! Node: GTY Options1946376 ! Node: Inheritance and GTY1957635 ! Ref: Inheritance and GTY-Footnote-11959200 ! Node: User GC1959470 ! Node: GGC Roots1963209 ! Node: Files1963922 ! Node: Invoking the garbage collector1966629 ! Node: Troubleshooting1968134 ! Node: Plugins1969209 ! Node: Plugins loading1970338 ! Node: Plugin API1971437 ! Node: Plugins pass1979304 ! Node: Plugins GC1981275 ! Node: Plugins description1982992 ! Node: Plugins attr1983528 ! Node: Plugins recording1985808 ! Node: Plugins gate1986658 ! Node: Plugins tracking1987249 ! Node: Plugins building1987837 ! Node: LTO1991338 ! Node: LTO Overview1992210 ! Node: LTO object file layout1998037 ! Node: IPA2002667 ! Node: WHOPR2011717 ! Node: Internal flags2016277 ! Node: Match and Simplify2017688 ! Node: GIMPLE API2018650 ! Node: The Language2021445 ! Node: Static Analyzer2033944 ! Node: Analyzer Internals2034209 ! Node: Debugging the Analyzer2050096 ! Node: User Experience Guidelines2052533 ! Node: Guidelines for Diagnostics2053469 ! Ref: input_location_example2061644 ! Node: Guidelines for Options2071329 ! Node: Funding2071506 ! Node: GNU Project2074013 ! Node: Copying2074662 ! Node: GNU Free Documentation License2112173 ! Node: Contributors2137294 ! Node: Option Index2178270 ! Node: Concept Index2179147  End Tag Table + +  + Local Variables: + coding: utf-8 + End: diff -Nrcpad gcc-11.3.0/gcc/doc/gcov-dump.1 gcc-11.4.0/gcc/doc/gcov-dump.1 *** gcc-11.3.0/gcc/doc/gcov-dump.1 Thu Apr 21 08:00:42 2022 --- gcc-11.4.0/gcc/doc/gcov-dump.1 Mon May 29 08:50:36 2023 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 54,69 **** .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .if !\nF .nr F 0 ! .if \nF>0 \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 . \} .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. --- 54,73 ---- .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .nr rF 0 ! .if \n(.g .if rF .nr rF 1 ! .if (\n(rF:(\n(.g==0)) \{\ ! . if \nF \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 ! . \} . \} .\} + .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "GCOV-DUMP 1" ! .TH GCOV-DUMP 1 "2022-04-21" "gcc-11.3.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "GCOV-DUMP 1" ! .TH GCOV-DUMP 1 "2023-05-28" "gcc-11.4.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l *************** any later version published by the Free *** 197,203 **** Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding Free Software\*(R", 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 \fIgfdl\fR\|(7) man page. .PP (a) The \s-1FSF\s0's Front-Cover Text is: .PP --- 201,207 ---- Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding Free Software\*(R", 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 \fBgfdl\fR\|(7) man page. .PP (a) The \s-1FSF\s0's Front-Cover Text is: .PP diff -Nrcpad gcc-11.3.0/gcc/doc/gcov-tool.1 gcc-11.4.0/gcc/doc/gcov-tool.1 *** gcc-11.3.0/gcc/doc/gcov-tool.1 Thu Apr 21 08:00:42 2022 --- gcc-11.4.0/gcc/doc/gcov-tool.1 Mon May 29 08:50:36 2023 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 54,69 **** .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .if !\nF .nr F 0 ! .if \nF>0 \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 . \} .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. --- 54,73 ---- .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .nr rF 0 ! .if \n(.g .if rF .nr rF 1 ! .if (\n(rF:(\n(.g==0)) \{\ ! . if \nF \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 ! . \} . \} .\} + .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "GCOV-TOOL 1" ! .TH GCOV-TOOL 1 "2022-04-21" "gcc-11.3.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "GCOV-TOOL 1" ! .TH GCOV-TOOL 1 "2023-05-28" "gcc-11.4.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l *************** Set the verbose mode. *** 340,346 **** .RE .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fIgpl\fR\|(7), \fIgfdl\fR\|(7), \fIfsf\-funding\fR\|(7), \fIgcc\fR\|(1), \fIgcov\fR\|(1) and the Info entry for \&\fIgcc\fR. .SH "COPYRIGHT" .IX Header "COPYRIGHT" --- 344,350 ---- .RE .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fBgpl\fR\|(7), \fBgfdl\fR\|(7), \fBfsf\-funding\fR\|(7), \fBgcc\fR\|(1), \fBgcov\fR\|(1) and the Info entry for \&\fIgcc\fR. .SH "COPYRIGHT" .IX Header "COPYRIGHT" *************** any later version published by the Free *** 352,358 **** Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding Free Software\*(R", 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 \fIgfdl\fR\|(7) man page. .PP (a) The \s-1FSF\s0's Front-Cover Text is: .PP --- 356,362 ---- Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding Free Software\*(R", 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 \fBgfdl\fR\|(7) man page. .PP (a) The \s-1FSF\s0's Front-Cover Text is: .PP diff -Nrcpad gcc-11.3.0/gcc/doc/gcov.1 gcc-11.4.0/gcc/doc/gcov.1 *** gcc-11.3.0/gcc/doc/gcov.1 Thu Apr 21 08:00:42 2022 --- gcc-11.4.0/gcc/doc/gcov.1 Mon May 29 08:50:36 2023 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 54,69 **** .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .if !\nF .nr F 0 ! .if \nF>0 \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 . \} .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. --- 54,73 ---- .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .nr rF 0 ! .if \n(.g .if rF .nr rF 1 ! .if (\n(rF:(\n(.g==0)) \{\ ! . if \nF \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 ! . \} . \} .\} + .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "GCOV 1" ! .TH GCOV 1 "2022-04-21" "gcc-11.3.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "GCOV 1" ! .TH GCOV 1 "2023-05-28" "gcc-11.4.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l *************** That can help users to find profile clas *** 1012,1018 **** to a misleading profile. .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fIgpl\fR\|(7), \fIgfdl\fR\|(7), \fIfsf\-funding\fR\|(7), \fIgcc\fR\|(1) and the Info entry for \fIgcc\fR. .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 1996\-2021 Free Software Foundation, Inc. --- 1016,1022 ---- to a misleading profile. .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fBgpl\fR\|(7), \fBgfdl\fR\|(7), \fBfsf\-funding\fR\|(7), \fBgcc\fR\|(1) and the Info entry for \fIgcc\fR. .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 1996\-2021 Free Software Foundation, Inc. *************** any later version published by the Free *** 1023,1029 **** Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding Free Software\*(R", 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 \fIgfdl\fR\|(7) man page. .PP (a) The \s-1FSF\s0's Front-Cover Text is: .PP --- 1027,1033 ---- Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding Free Software\*(R", 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 \fBgfdl\fR\|(7) man page. .PP (a) The \s-1FSF\s0's Front-Cover Text is: .PP diff -Nrcpad gcc-11.3.0/gcc/doc/gfdl.7 gcc-11.4.0/gcc/doc/gfdl.7 *** gcc-11.3.0/gcc/doc/gfdl.7 Thu Apr 21 08:00:42 2022 --- gcc-11.4.0/gcc/doc/gfdl.7 Mon May 29 08:50:36 2023 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 54,69 **** .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .if !\nF .nr F 0 ! .if \nF>0 \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 . \} .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. --- 54,73 ---- .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .nr rF 0 ! .if \n(.g .if rF .nr rF 1 ! .if (\n(rF:(\n(.g==0)) \{\ ! . if \nF \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 ! . \} . \} .\} + .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "GFDL 7" ! .TH GFDL 7 "2022-04-21" "gcc-11.3.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "GFDL 7" ! .TH GFDL 7 "2023-05-28" "gcc-11.4.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l *************** free software license, such as the \s-1G *** 637,643 **** to permit their use in free software. .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fIgpl\fR\|(7), \fIfsf\-funding\fR\|(7). .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. --- 641,647 ---- to permit their use in free software. .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fBgpl\fR\|(7), \fBfsf\-funding\fR\|(7). .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. diff -Nrcpad gcc-11.3.0/gcc/doc/gfortran.1 gcc-11.4.0/gcc/doc/gfortran.1 *** gcc-11.3.0/gcc/doc/gfortran.1 Thu Apr 21 08:20:52 2022 --- gcc-11.4.0/gcc/doc/gfortran.1 Mon May 29 09:02:36 2023 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 54,69 **** .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .if !\nF .nr F 0 ! .if \nF>0 \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 . \} .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. --- 54,73 ---- .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .nr rF 0 ! .if \n(.g .if rF .nr rF 1 ! .if (\n(rF:(\n(.g==0)) \{\ ! . if \nF \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 ! . \} . \} .\} + .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "GFORTRAN 1" ! .TH GFORTRAN 1 "2022-04-21" "gcc-11.3.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "GFORTRAN 1" ! .TH GFORTRAN 1 "2023-05-28" "gcc-11.4.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l *************** For instructions on reporting bugs, see *** 1729,1736 **** <\fBhttps://gcc.gnu.org/bugs/\fR>. .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fIgpl\fR\|(7), \fIgfdl\fR\|(7), \fIfsf\-funding\fR\|(7), ! \&\fIcpp\fR\|(1), \fIgcov\fR\|(1), \fIgcc\fR\|(1), \fIas\fR\|(1), \fIld\fR\|(1), \fIgdb\fR\|(1), \fIdbx\fR\|(1) and the Info entries for \fIgcc\fR, \fIcpp\fR, \fIgfortran\fR, \fIas\fR, \&\fIld\fR, \fIbinutils\fR and \fIgdb\fR. .SH "AUTHOR" --- 1733,1740 ---- <\fBhttps://gcc.gnu.org/bugs/\fR>. .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fBgpl\fR\|(7), \fBgfdl\fR\|(7), \fBfsf\-funding\fR\|(7), ! \&\fBcpp\fR\|(1), \fBgcov\fR\|(1), \fBgcc\fR\|(1), \fBas\fR\|(1), \fBld\fR\|(1), \fBgdb\fR\|(1), \fBdbx\fR\|(1) and the Info entries for \fIgcc\fR, \fIcpp\fR, \fIgfortran\fR, \fIas\fR, \&\fIld\fR, \fIbinutils\fR and \fIgdb\fR. .SH "AUTHOR" *************** under the terms of the \s-1GNU\s0 Free D *** 1746,1752 **** any later version published by the Free Software Foundation; with the Invariant Sections being \*(L"Funding Free Software\*(R", 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 \fIgfdl\fR\|(7) man page. .PP (a) The \s-1FSF\s0's Front-Cover Text is: .PP --- 1750,1756 ---- any later version published by the Free Software Foundation; with the Invariant Sections being \*(L"Funding Free Software\*(R", 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 \fBgfdl\fR\|(7) man page. .PP (a) The \s-1FSF\s0's Front-Cover Text is: .PP diff -Nrcpad gcc-11.3.0/gcc/doc/gpl.7 gcc-11.4.0/gcc/doc/gpl.7 *** gcc-11.3.0/gcc/doc/gpl.7 Thu Apr 21 08:00:42 2022 --- gcc-11.4.0/gcc/doc/gpl.7 Mon May 29 08:50:36 2023 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 54,69 **** .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .if !\nF .nr F 0 ! .if \nF>0 \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 . \} .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. --- 54,73 ---- .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .nr rF 0 ! .if \n(.g .if rF .nr rF 1 ! .if (\n(rF:(\n(.g==0)) \{\ ! . if \nF \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 ! . \} . \} .\} + .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "GPL 7" ! .TH GPL 7 "2022-04-21" "gcc-11.3.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "GPL 7" ! .TH GPL 7 "2023-05-28" "gcc-11.4.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l *************** the \s-1GNU\s0 Lesser General Public Lic *** 837,843 **** first, please read <\fBhttps://www.gnu.org/licenses/why\-not\-lgpl.html\fR>. .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fIgfdl\fR\|(7), \fIfsf\-funding\fR\|(7). .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 2007 Free Software Foundation, Inc. --- 841,847 ---- first, please read <\fBhttps://www.gnu.org/licenses/why\-not\-lgpl.html\fR>. .SH "SEE ALSO" .IX Header "SEE ALSO" ! \&\fBgfdl\fR\|(7), \fBfsf\-funding\fR\|(7). .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (c) 2007 Free Software Foundation, Inc. diff -Nrcpad gcc-11.3.0/gcc/doc/invoke.texi gcc-11.4.0/gcc/doc/invoke.texi *** gcc-11.3.0/gcc/doc/invoke.texi Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/doc/invoke.texi Mon May 29 08:46:29 2023 *************** See RS/6000 and PowerPC Options. *** 1396,1402 **** -m96bit-long-double -mlong-double-64 -mlong-double-80 -mlong-double-128 @gol -mregparm=@var{num} -msseregparm @gol -mveclibabi=@var{type} -mvect8-ret-in-mem @gol ! -mpc32 -mpc64 -mpc80 -mstackrealign @gol -momit-leaf-frame-pointer -mno-red-zone -mno-tls-direct-seg-refs @gol -mcmodel=@var{code-model} -mabi=@var{name} -maddress-mode=@var{mode} @gol -m32 -m64 -mx32 -m16 -miamcu -mlarge-data-threshold=@var{num} @gol --- 1396,1402 ---- -m96bit-long-double -mlong-double-64 -mlong-double-80 -mlong-double-128 @gol -mregparm=@var{num} -msseregparm @gol -mveclibabi=@var{type} -mvect8-ret-in-mem @gol ! -mpc32 -mpc64 -mpc80 -mdaz-ftz -mstackrealign @gol -momit-leaf-frame-pointer -mno-red-zone -mno-tls-direct-seg-refs @gol -mcmodel=@var{code-model} -mabi=@var{name} -maddress-mode=@var{mode} @gol -m32 -m64 -mx32 -m16 -miamcu -mlarge-data-threshold=@var{num} @gol *************** performance of the code. Permissible va *** 18231,18237 **** @samp{cortex-a78}, @samp{cortex-a78ae}, @samp{cortex-a78c}, @samp{ares}, @samp{exynos-m1}, @samp{emag}, @samp{falkor}, @samp{neoverse-512tvb}, @samp{neoverse-e1}, @samp{neoverse-n1}, ! @samp{neoverse-n2}, @samp{neoverse-v1}, @samp{qdf24xx}, @samp{saphira}, @samp{phecda}, @samp{xgene1}, @samp{vulcan}, @samp{octeontx}, @samp{octeontx81}, @samp{octeontx83}, @samp{octeontx2}, @samp{octeontx2t98}, @samp{octeontx2t96} --- 18231,18237 ---- @samp{cortex-a78}, @samp{cortex-a78ae}, @samp{cortex-a78c}, @samp{ares}, @samp{exynos-m1}, @samp{emag}, @samp{falkor}, @samp{neoverse-512tvb}, @samp{neoverse-e1}, @samp{neoverse-n1}, ! @samp{neoverse-n2}, @samp{neoverse-v1},@samp{neoverse-v2}, @samp{qdf24xx}, @samp{saphira}, @samp{phecda}, @samp{xgene1}, @samp{vulcan}, @samp{octeontx}, @samp{octeontx81}, @samp{octeontx83}, @samp{octeontx2}, @samp{octeontx2t98}, @samp{octeontx2t96} *************** performance of the code. Permissible va *** 18244,18250 **** @samp{cortex-a57.cortex-a53}, @samp{cortex-a72.cortex-a53}, @samp{cortex-a73.cortex-a35}, @samp{cortex-a73.cortex-a53}, @samp{cortex-a75.cortex-a55}, @samp{cortex-a76.cortex-a55}, ! @samp{cortex-r82}, @samp{cortex-x1}, @samp{ampere1}, @samp{native}. The values @samp{cortex-a57.cortex-a53}, @samp{cortex-a72.cortex-a53}, @samp{cortex-a73.cortex-a35}, @samp{cortex-a73.cortex-a53}, --- 18244,18251 ---- @samp{cortex-a57.cortex-a53}, @samp{cortex-a72.cortex-a53}, @samp{cortex-a73.cortex-a35}, @samp{cortex-a73.cortex-a53}, @samp{cortex-a75.cortex-a55}, @samp{cortex-a76.cortex-a55}, ! @samp{cortex-r82}, @samp{cortex-x1}, @samp{ampere1}, ! @samp{ampere1a}, @samp{native}. The values @samp{cortex-a57.cortex-a53}, @samp{cortex-a72.cortex-a53}, @samp{cortex-a73.cortex-a35}, @samp{cortex-a73.cortex-a53}, *************** are enabled by default; routines in such *** 30755,30760 **** --- 30756,30770 ---- loss of accuracy, typically through so-called ``catastrophic cancellation'', when this option is used to set the precision to less than extended precision. + @item -mdaz-ftz + @opindex mdaz-ftz + + The flush-to-zero (FTZ) and denormals-are-zero (DAZ) flags in the MXCSR register + are used to control floating-point calculations.SSE and AVX instructions + including scalar and vector instructions could benefit from enabling the FTZ + and DAZ flags when @option{-mdaz-ftz} is specified. Don't set FTZ/DAZ flags + when @option{-mno-daz-ftz} is specified. + @item -mstackrealign @opindex mstackrealign Realign the stack at entry. On the x86, the @option{-mstackrealign} diff -Nrcpad gcc-11.3.0/gcc/doc/lto-dump.1 gcc-11.4.0/gcc/doc/lto-dump.1 *** gcc-11.3.0/gcc/doc/lto-dump.1 Thu Apr 21 08:00:42 2022 --- gcc-11.4.0/gcc/doc/lto-dump.1 Mon May 29 08:50:36 2023 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 54,69 **** .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .if !\nF .nr F 0 ! .if \nF>0 \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 . \} .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. --- 54,73 ---- .\" Avoid warning from groff about undefined register 'F'. .de IX .. ! .nr rF 0 ! .if \n(.g .if rF .nr rF 1 ! .if (\n(rF:(\n(.g==0)) \{\ ! . if \nF \{\ ! . de IX ! . tm Index:\\$1\t\\n%\t"\\$2" .. ! . if !\nF==2 \{\ ! . nr % 0 ! . nr F 2 ! . \} . \} .\} + .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. *************** *** 129,135 **** .\" ======================================================================== .\" .IX Title "LTO-DUMP 1" ! .TH LTO-DUMP 1 "2022-04-21" "gcc-11.3.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l --- 133,139 ---- .\" ======================================================================== .\" .IX Title "LTO-DUMP 1" ! .TH LTO-DUMP 1 "2023-05-28" "gcc-11.4.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l *************** any later version published by the Free *** 218,224 **** Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding Free Software\*(R", 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 \fIgfdl\fR\|(7) man page. .PP (a) The \s-1FSF\s0's Front-Cover Text is: .PP --- 222,228 ---- Invariant Sections being \*(L"\s-1GNU\s0 General Public License\*(R" and \*(L"Funding Free Software\*(R", 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 \fBgfdl\fR\|(7) man page. .PP (a) The \s-1FSF\s0's Front-Cover Text is: .PP diff -Nrcpad gcc-11.3.0/gcc/dse.c gcc-11.4.0/gcc/dse.c *** gcc-11.3.0/gcc/dse.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/dse.c Mon May 29 08:46:29 2023 *************** record_store (rtx body, bb_info_t bb_inf *** 1562,1573 **** width) /* We can only remove the later store if the earlier aliases at least all accesses the later one. */ ! && ((MEM_ALIAS_SET (mem) == MEM_ALIAS_SET (s_info->mem) ! || alias_set_subset_of (MEM_ALIAS_SET (mem), ! MEM_ALIAS_SET (s_info->mem))) ! && (!MEM_EXPR (s_info->mem) ! || refs_same_for_tbaa_p (MEM_EXPR (s_info->mem), ! MEM_EXPR (mem))))) { if (GET_MODE (mem) == BLKmode) { --- 1562,1568 ---- width) /* We can only remove the later store if the earlier aliases at least all accesses the later one. */ ! && mems_same_for_tbaa_p (s_info->mem, mem)) { if (GET_MODE (mem) == BLKmode) { diff -Nrcpad gcc-11.3.0/gcc/dwarf2out.c gcc-11.4.0/gcc/dwarf2out.c *** gcc-11.3.0/gcc/dwarf2out.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/dwarf2out.c Mon May 29 08:46:29 2023 *************** lookup_type_die (tree type) *** 5791,5796 **** --- 5791,5797 ---- if (die && die->removed) { TYPE_SYMTAB_DIE (type) = NULL; + TREE_ASM_WRITTEN (type) = 0; return NULL; } return die; diff -Nrcpad gcc-11.3.0/gcc/emit-rtl.c gcc-11.4.0/gcc/emit-rtl.c *** gcc-11.3.0/gcc/emit-rtl.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/emit-rtl.c Mon May 29 08:46:29 2023 *************** emit_copy_of_insn_after (rtx_insn *insn, *** 6465,6471 **** } /* Update LABEL_NUSES. */ ! mark_jump_label (PATTERN (new_rtx), new_rtx, 0); INSN_LOCATION (new_rtx) = INSN_LOCATION (insn); --- 6465,6472 ---- } /* Update LABEL_NUSES. */ ! if (NONDEBUG_INSN_P (insn)) ! mark_jump_label (PATTERN (new_rtx), new_rtx, 0); INSN_LOCATION (new_rtx) = INSN_LOCATION (insn); diff -Nrcpad gcc-11.3.0/gcc/expr.c gcc-11.4.0/gcc/expr.c *** gcc-11.3.0/gcc/expr.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/expr.c Mon May 29 08:46:29 2023 *************** store_expr (tree exp, rtx target, int ca *** 5793,5798 **** --- 5793,5801 ---- temp = convert_modes (inner_mode, outer_mode, temp, SUBREG_PROMOTED_SIGN (target)); } + else if (!SCALAR_INT_MODE_P (GET_MODE (temp))) + temp = convert_modes (outer_mode, TYPE_MODE (TREE_TYPE (exp)), + temp, SUBREG_PROMOTED_SIGN (target)); convert_move (SUBREG_REG (target), temp, SUBREG_PROMOTED_SIGN (target)); *************** count_type_elements (const_tree type, bo *** 6192,6204 **** case OFFSET_TYPE: case REFERENCE_TYPE: case NULLPTR_TYPE: return 1; case ERROR_MARK: return 0; case VOID_TYPE: - case OPAQUE_TYPE: case METHOD_TYPE: case FUNCTION_TYPE: case LANG_TYPE: --- 6195,6207 ---- case OFFSET_TYPE: case REFERENCE_TYPE: case NULLPTR_TYPE: + case OPAQUE_TYPE: return 1; case ERROR_MARK: return 0; case VOID_TYPE: case METHOD_TYPE: case FUNCTION_TYPE: case LANG_TYPE: *************** get_inner_reference (tree exp, poly_int6 *** 7436,7443 **** /* For vector fields re-check the target flags, as DECL_MODE could have been set with different target flags than the current function has. */ ! if (mode == BLKmode ! && VECTOR_TYPE_P (TREE_TYPE (field)) && VECTOR_MODE_P (TYPE_MODE_RAW (TREE_TYPE (field)))) mode = TYPE_MODE (TREE_TYPE (field)); } --- 7439,7445 ---- /* For vector fields re-check the target flags, as DECL_MODE could have been set with different target flags than the current function has. */ ! if (VECTOR_TYPE_P (TREE_TYPE (field)) && VECTOR_MODE_P (TYPE_MODE_RAW (TREE_TYPE (field)))) mode = TYPE_MODE (TREE_TYPE (field)); } *************** expand_cond_expr_using_cmove (tree treeo *** 8566,8572 **** expanding_cond_expr_using_cmove = true; start_sequence (); expand_operands (treeop1, treeop2, ! temp, &op1, &op2, EXPAND_NORMAL); if (TREE_CODE (treeop0) == SSA_NAME && (srcstmt = get_def_for_expr_class (treeop0, tcc_comparison))) --- 8568,8575 ---- expanding_cond_expr_using_cmove = true; start_sequence (); expand_operands (treeop1, treeop2, ! mode == orig_mode ? temp : NULL_RTX, &op1, &op2, ! EXPAND_NORMAL); if (TREE_CODE (treeop0) == SSA_NAME && (srcstmt = get_def_for_expr_class (treeop0, tcc_comparison))) diff -Nrcpad gcc-11.3.0/gcc/fold-const.c gcc-11.4.0/gcc/fold-const.c *** gcc-11.3.0/gcc/fold-const.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/fold-const.c Mon May 29 08:46:29 2023 *************** build_zero_vector (tree type) *** 2355,2361 **** bool fold_convertible_p (const_tree type, const_tree arg) { ! tree orig = TREE_TYPE (arg); if (type == orig) return true; --- 2355,2361 ---- bool fold_convertible_p (const_tree type, const_tree arg) { ! const_tree orig = TREE_TYPE (arg); if (type == orig) return true; *************** fold_convertible_p (const_tree type, con *** 2387,2393 **** return (VECTOR_TYPE_P (orig) && known_eq (TYPE_VECTOR_SUBPARTS (type), TYPE_VECTOR_SUBPARTS (orig)) ! && fold_convertible_p (TREE_TYPE (type), TREE_TYPE (orig))); default: return false; --- 2387,2393 ---- return (VECTOR_TYPE_P (orig) && known_eq (TYPE_VECTOR_SUBPARTS (type), TYPE_VECTOR_SUBPARTS (orig)) ! && tree_int_cst_equal (TYPE_SIZE (type), TYPE_SIZE (orig))); default: return false; *************** operand_compare::operand_equal_p (const_ *** 3331,3339 **** if (compare_address && (flags & OEP_ADDRESS_OF_SAME_FIELD) == 0) { - if (TREE_OPERAND (arg0, 2) - || TREE_OPERAND (arg1, 2)) - return OP_SAME_WITH_NULL (2); tree field0 = TREE_OPERAND (arg0, 1); tree field1 = TREE_OPERAND (arg1, 1); --- 3331,3336 ---- *************** operand_compare::hash_operand (const_tre *** 3844,3860 **** if (sflags & OEP_ADDRESS_OF) { hash_operand (TREE_OPERAND (t, 0), hstate, flags); ! if (TREE_OPERAND (t, 2)) ! hash_operand (TREE_OPERAND (t, 2), hstate, ! flags & ~OEP_ADDRESS_OF); ! else ! { ! tree field = TREE_OPERAND (t, 1); ! hash_operand (DECL_FIELD_OFFSET (field), ! hstate, flags & ~OEP_ADDRESS_OF); ! hash_operand (DECL_FIELD_BIT_OFFSET (field), ! hstate, flags & ~OEP_ADDRESS_OF); ! } return; } break; --- 3841,3850 ---- if (sflags & OEP_ADDRESS_OF) { hash_operand (TREE_OPERAND (t, 0), hstate, flags); ! hash_operand (DECL_FIELD_OFFSET (TREE_OPERAND (t, 1)), ! hstate, flags & ~OEP_ADDRESS_OF); ! hash_operand (DECL_FIELD_BIT_OFFSET (TREE_OPERAND (t, 1)), ! hstate, flags & ~OEP_ADDRESS_OF); return; } break; *************** tree_swap_operands_p (const_tree arg0, c *** 7508,7514 **** static tree fold_to_nonsharp_ineq_using_bound (location_t loc, tree ineq, tree bound) { ! tree a, typea, type = TREE_TYPE (ineq), a1, diff, y; if (TREE_CODE (bound) == LT_EXPR) a = TREE_OPERAND (bound, 0); --- 7498,7504 ---- static tree fold_to_nonsharp_ineq_using_bound (location_t loc, tree ineq, tree bound) { ! tree a, typea, type = TREE_TYPE (bound), a1, diff, y; if (TREE_CODE (bound) == LT_EXPR) a = TREE_OPERAND (bound, 0); *************** fold_unary_loc (location_t loc, enum tre *** 9488,9493 **** --- 9478,9493 ---- > min_align_of_type (TREE_TYPE (TREE_TYPE (arg00))))) return NULL_TREE; + /* Similarly, avoid this optimization in GENERIC for -fsanitize=null + when type is a reference type and arg00's type is not, + because arg00 could be validly nullptr and if arg01 doesn't return, + we don't want false positive binding of reference to nullptr. */ + if (TREE_CODE (type) == REFERENCE_TYPE + && !in_gimple_form + && sanitize_flags_p (SANITIZE_NULL) + && TREE_CODE (TREE_TYPE (arg00)) != REFERENCE_TYPE) + return NULL_TREE; + arg00 = fold_convert_loc (loc, type, arg00); return fold_build_pointer_plus_loc (loc, arg00, arg01); } *************** fold_binary_loc (location_t loc, enum tr *** 11987,11997 **** { tem = fold_to_nonsharp_ineq_using_bound (loc, arg0, arg1); if (tem && !operand_equal_p (tem, arg0, 0)) ! return fold_build2_loc (loc, code, type, tem, arg1); tem = fold_to_nonsharp_ineq_using_bound (loc, arg1, arg0); if (tem && !operand_equal_p (tem, arg1, 0)) ! return fold_build2_loc (loc, code, type, arg0, tem); } if ((tem = fold_truth_andor (loc, code, type, arg0, arg1, op0, op1)) --- 11987,12001 ---- { tem = fold_to_nonsharp_ineq_using_bound (loc, arg0, arg1); if (tem && !operand_equal_p (tem, arg0, 0)) ! return fold_convert (type, ! fold_build2_loc (loc, code, TREE_TYPE (arg1), ! tem, arg1)); tem = fold_to_nonsharp_ineq_using_bound (loc, arg1, arg0); if (tem && !operand_equal_p (tem, arg1, 0)) ! return fold_convert (type, ! fold_build2_loc (loc, code, TREE_TYPE (arg0), ! arg0, tem)); } if ((tem = fold_truth_andor (loc, code, type, arg0, arg1, op0, op1)) diff -Nrcpad gcc-11.3.0/gcc/fortran/ChangeLog gcc-11.4.0/gcc/fortran/ChangeLog *** gcc-11.3.0/gcc/fortran/ChangeLog Thu Apr 21 07:59:16 2022 --- gcc-11.4.0/gcc/fortran/ChangeLog Mon May 29 08:46:50 2023 *************** *** 1,3 **** --- 1,530 ---- + 2023-05-29 Release Manager + + * GCC 11.4.0 released. + + 2023-05-20 Harald Anlauf + + Backported from master: + 2023-05-15 Harald Anlauf + + PR fortran/109846 + * expr.c (gfc_check_vardef_context): Check appropriate pointer + attribute for CLASS vs. non-CLASS function result in variable + definition context. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-02-03 Jakub Jelinek + + PR fortran/108451 + * trans-decl.c (gfc_trans_use_stmts): Call clear_slot before + doing continue. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-01-11 Jakub Jelinek + + PR fortran/108349 + * f95-lang.c (gfc_init_builtin_function): Fix up function types + for BUILT_IN_REALLOC and BUILT_IN_SINCOS{F,,L}. Formatting fixes. + + 2023-04-16 Harald Anlauf + + Backported from master: + 2023-04-14 Harald Anlauf + + PR fortran/109511 + * simplify.c (gfc_simplify_set_exponent): Fix implementation of + compile-time simplification of intrinsic SET_EXPONENT for argument + X < 1 and for I < 0. + + 2023-04-02 Thomas Koenig + + * dump-parse-tree.c (get_c_type_name): Fix "long_long" + type name to be "long long". + + 2023-04-02 Andrew Pinski + + * dump-parse-tree.c (get_c_type_name): Fix "long_long" + type name to be "long long". Add a comment on why adding + 2 to the name too. + + 2023-03-24 Harald Anlauf + + Backported from master: + 2023-03-21 Harald Anlauf + + PR fortran/99036 + * decl.c (gfc_match_modproc): Reject MODULE PROCEDURE if not in a + generic module interface. + + 2023-03-24 Harald Anlauf + + Backported from master: + 2023-03-20 Harald Anlauf + + PR fortran/109186 + * simplify.c (gfc_simplify_nearest): Fix off-by-one error in setting + up real kind-specific maximum exponent for mpfr. + + 2023-03-24 Harald Anlauf + + Backported from master: + 2023-03-19 Harald Anlauf + + PR fortran/85877 + * resolve.c (resolve_fl_procedure): Check for an explicit interface + of procedures with the BIND(C) attribute (F2018:15.4.2.2). + + 2023-03-17 Harald Anlauf + + Backported from master: + 2023-03-11 Harald Anlauf + + PR fortran/106945 + * trans-expr.c (gfc_copy_class_to_class): Convert element counts in + bounds check to common type for comparison. + + 2023-03-17 Harald Anlauf + + Backported from master: + 2023-03-10 Harald Anlauf + + PR fortran/104332 + * resolve.c (resolve_symbol): Avoid NULL pointer dereference while + checking a symbol with the BIND(C) attribute. + + 2023-03-09 Tobias Burnus + + Backported from master: + 2023-03-01 Tobias Burnus + + PR middle-end/108546 + * trans-openmp.c (gfc_trans_omp_clauses): Fix mapping of + type(C_ptr) variables. + + 2023-03-05 Harald Anlauf + + Backported from master: + 2023-02-27 Harald Anlauf + + PR fortran/108937 + * trans-intrinsic.c (gfc_conv_intrinsic_ibits): Handle corner case + LEN argument of IBITS equal to BITSIZE(I). + + 2023-03-05 Harald Anlauf + + Backported from master: + 2023-02-22 Harald Anlauf + + PR fortran/96024 + * resolve.c (resolve_component): The type of a CHARACTER length + expression must be INTEGER. + + 2023-03-05 Harald Anlauf + + Backported from master: + 2023-02-21 Harald Anlauf + + PR fortran/96025 + * parse.c (check_function_result_typed): Improve type check of + specification expression for character length and return status. + (parse_spec): Use status from above. + * resolve.c (resolve_fntype): Prevent use of invalid specification + expression for character length. + + 2023-02-10 Steve Kargl + + Backported from master: + 2023-02-08 Steve Kargl + + PR fortran/103259 + * resolve.c (resolve_common_vars): Avoid NULL pointer dereference + when a symbol's location is not set. + + 2023-02-10 Harald Anlauf + + Backported from master: + 2023-02-07 Harald Anlauf + + PR fortran/95107 + * trans-decl.c (gfc_finish_var_decl): With -fno-automatic, do not + make ASSOCIATE variables TREE_STATIC. + + 2023-02-10 Harald Anlauf + + Backported from master: + 2023-02-01 Harald Anlauf + + PR fortran/108609 + * expr.c (find_array_section): Add check to prevent interpreting an + mpz non-integer constant as an integer. + + 2023-02-10 Harald Anlauf + + Backported from master: + 2023-01-28 Harald Anlauf + Steven G. Kargl + + PR fortran/108527 + * resolve.c (compare_bound_int): Expression to compare must be of + type INTEGER. + (compare_bound_mpz_t): Likewise. + (check_dimension): Fix comment on checks applied to array section + and clean up associated logic. + + 2023-02-04 Harald Anlauf + + Backported from master: + 2023-01-24 Harald Anlauf + + PR fortran/108529 + * simplify.c (simplify_transformation): Do not try to simplify + transformational intrinsic when the ARRAY argument has a NULL shape. + + 2023-02-04 Harald Anlauf + + Backported from master: + 2022-07-14 Harald Anlauf + Steven G. Kargl + + PR fortran/106209 + * decl.c (add_init_expr_to_sym): Handle bad initializers for + implied-shape arrays. + + 2023-02-04 Harald Anlauf + + Backported from master: + 2023-01-23 Harald Anlauf + + PR fortran/108501 + * interface.c (get_expr_storage_size): Check array subscript triplets + that we actually have integer values before trying to extract with + mpz_get_si. + + 2023-02-04 Harald Anlauf + + Backported from master: + 2023-01-23 Harald Anlauf + + PR fortran/108502 + * dependency.c (gfc_check_dependency): Prevent NULL pointer + dereference while recursively checking expressions. + + 2023-02-04 Harald Anlauf + + Backported from master: + 2023-01-17 Harald Anlauf + + PR fortran/108421 + * interface.c (get_expr_storage_size): Check that we actually have + an integer value before trying to extract it with mpz_get_si. + + 2023-02-04 Harald Anlauf + + Backported from master: + 2023-01-23 Harald Anlauf + + PR fortran/108420 + * iresolve.c (check_charlen_present): Preserve character length if + there is no array constructor. + + 2023-02-04 Harald Anlauf + + Backported from master: + 2023-01-28 Harald Anlauf + + PR fortran/108453 + * match.c (gfc_match_common): A USE associated name shall not appear + in a COMMON block (F2018:C8121). + + 2023-01-08 Harald Anlauf + + Backported from master: + 2022-12-23 Harald Anlauf + + PR fortran/108131 + * array.c (match_array_element_spec): Avoid too early simplification + of matched array element specs that can lead to a misinterpretation + when used as array bounds in array declarations. + + 2022-12-18 Paul Thomas + + Backported from master: + 2022-12-09 Paul Thomas + + PR fortran/107872 + * resolve.c (derived_inaccessible): Skip over allocatable components + to prevent an infinite loop. + + 2022-11-25 Harald Anlauf + + Backported from master: + 2022-11-18 Harald Anlauf + + PR fortran/107576 + * interface.c (gfc_procedure_use): Reject NULL as actual argument + when there is no explicit procedure interface. + + 2022-10-29 José Rui Faustino de Sousa + + Backported from master: + 2022-10-21 José Rui Faustino de Sousa + + PR fortran/100097 + PR fortran/100098 + * trans-array.c (gfc_trans_class_array): New function to + initialize class descriptor's TKR information. + * trans-array.h (gfc_trans_class_array): Add function prototype. + * trans-decl.c (gfc_trans_deferred_vars): Add calls to the new + function for both pointers and allocatables. + + 2022-10-28 Harald Anlauf + + Backported from master: + 2022-10-26 Harald Anlauf + + PR fortran/103413 + * symbol.c (gfc_type_compatible): A boz-literal-constant has no type + and thus is not considered compatible to any type. + + 2022-10-23 Harald Anlauf + + Backported from master: + 2022-10-20 Harald Anlauf + Steven G. Kargl + + PR fortran/105633 + * expr.c (find_array_section): Move check for NULL pointers so + that both subscript triplets and vector subscripts are covered. + + 2022-10-10 Mikael Morin + + Backported from master: + 2022-09-25 Mikael Morin + + PR fortran/106817 + * trans-expr.c (gfc_conv_procedure_call): Collect all clobbers + to their own separate block. Append the block of clobbers to + the procedure preliminary block after the argument evaluation + codes for all the arguments. + + 2022-10-10 Mikael Morin + + Backported from master: + 2022-09-25 Mikael Morin + + PR fortran/105012 + * trans-expr.c (gfc_conv_procedure_call): Retrieve variable + from the just calculated variable reference. + + 2022-10-10 Mikael Morin + + Backported from master: + 2022-09-25 Mikael Morin + + * trans.h (gfc_conv_expr_reference): Remove add_clobber + argument. + * trans-expr.c (gfc_conv_expr_reference): Ditto. Inline code + depending on add_clobber and conditions controlling it ... + (gfc_conv_procedure_call): ... to here. + + 2022-10-08 José Rui Faustino de Sousa + + Backported from master: + 2022-10-01 José Rui Faustino de Sousa + + PR fortran/100040 + PR fortran/100029 + * trans-expr.c (gfc_conv_class_to_class): Add code to have + assumed-rank arrays recognized as full arrays and fix the type + of the array assignment. + (gfc_conv_procedure_call): Change order of code blocks such that + the free of ALLOCATABLE dummy arguments with INTENT(OUT) occurs + first. + + 2022-10-01 José Rui Faustino de Sousa + + Backported from master: + 2022-09-20 José Rui Faustino de Sousa + + PR fortran/100132 + * trans-types.c (create_fn_spec): Fix function attributes when + passing polymorphic pointers. + + 2022-09-30 Harald Anlauf + + Backported from master: + 2022-09-27 Harald Anlauf + + PR fortran/107054 + * simplify.c (gfc_simplify_unpack): Replace assert by condition + that terminates simplification when there are not enough elements + in the constructor of argument VECTOR. + + 2022-09-30 Harald Anlauf + + Backported from master: + 2022-09-22 Harald Anlauf + + PR fortran/82868 + * trans-decl.c (generate_coarray_sym_init): Skip symbol + if attr.associate_var. + + 2022-09-30 Harald Anlauf + + Backported from master: + 2022-09-20 Harald Anlauf + + PR fortran/106985 + * expr.c (gfc_simplify_expr): Avoid NULL pointer dereference. + + 2022-09-30 Harald Anlauf + + Backported from master: + 2022-08-24 Harald Anlauf + + PR fortran/103694 + * simplify.c (simplify_size): The size expression of an array cannot + be simplified if an error occurs while resolving the array spec. + + 2022-09-26 Harald Anlauf + + Backported from master: + 2022-09-20 Harald Anlauf + + PR fortran/106986 + * simplify.c (gfc_simplify_findloc): Do not try to simplify + intrinsic FINDLOC when the ARRAY argument has a NULL shape. + + 2022-09-24 José Rui Faustino de Sousa + + Backported from master: + 2022-09-03 José Rui Faustino de Sousa + + PR fortran/100245 + * trans-expr.c (trans_class_assignment): Add if clause to handle + derived type in the LHS. + + 2022-09-22 Harald Anlauf + + Backported from master: + 2022-09-15 Harald Anlauf + + PR fortran/106857 + * simplify.c (gfc_simplify_pack): Check for NULL pointer dereferences + while walking through constructors (error recovery). + + 2022-09-05 José Rui Faustino de Sousa + + Backported from master: + 2022-09-04 José Rui Faustino de Sousa + + PR fortran/100136 + * trans-expr.c (gfc_conv_procedure_call): Add handling of pointer + expressions. + + 2022-07-26 Harald Anlauf + + Backported from master: + 2022-07-26 Harald Anlauf + + PR fortran/103504 + * interface.c (get_sym_storage_size): Array bounds and character + length can only be of integer type. + + 2022-07-16 Steve Kargl + + Backported from master: + 2022-07-15 Steve Kargl + + PR fortran/104313 + * trans-decl.c (gfc_generate_return): Do not generate conflicting + fake results for functions with no result variable under -ff2c. + + 2022-07-03 Harald Anlauf + + Backported from master: + 2022-06-30 Harald Anlauf + Steven G. Kargl + + PR fortran/103137 + PR fortran/103138 + PR fortran/103693 + PR fortran/105243 + * decl.c (gfc_match_data_decl): Reject CLASS entity declaration + when it is given the PARAMETER attribute. + + 2022-07-03 Harald Anlauf + + Backported from master: + 2022-06-29 Harald Anlauf + Steven G. Kargl + + PR fortran/106121 + * simplify.c (gfc_simplify_extends_type_of): Do not attempt to + simplify when one of the arguments is a CLASS variable that was + not properly declared. + + 2022-07-01 Harald Anlauf + + Backported from master: + 2022-06-26 Harald Anlauf + + PR fortran/105954 + * decl.c (variable_decl): Adjust upper bounds for explicit-shape + specs with constant bound expressions to ensure non-negative + extents. + + 2022-07-01 Harald Anlauf + + Backported from master: + 2022-06-26 Harald Anlauf + + PR fortran/105691 + * simplify.c (gfc_simplify_index): Replace old simplification + code by the equivalent of the runtime library implementation. Use + HOST_WIDE_INT instead of int for string index, length variables. + + 2022-07-01 Harald Anlauf + + Backported from master: + 2022-06-24 Harald Anlauf + + PR fortran/105813 + * check.c (gfc_check_unpack): Try to simplify MASK argument to + UNPACK so that checking of the VECTOR argument can work when MASK + is a variable. + + 2022-05-16 Harald Anlauf + + Backported from master: + 2022-05-11 Harald Anlauf + Steven G. Kargl + + PR fortran/105230 + * expr.c (find_array_section): Correct logic to avoid NULL + pointer dereference on invalid array section. + + 2022-05-16 Harald Anlauf + + Backported from master: + 2022-03-09 Harald Anlauf + + PR fortran/104849 + * expr.c (find_array_section): Avoid NULL pointer dereference on + invalid array section. + + 2022-04-21 Fritz Reese + + Backported from master: + 2022-04-21 Fritz Reese + + PR fortran/105310 + * trans-expr.c (gfc_conv_union_initializer): Pass vec* by reference. + 2022-04-21 Release Manager * GCC 11.3.0 released. diff -Nrcpad gcc-11.3.0/gcc/fortran/array.c gcc-11.4.0/gcc/fortran/array.c *** gcc-11.3.0/gcc/fortran/array.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/fortran/array.c Mon May 29 08:46:29 2023 *************** match_array_element_spec (gfc_array_spec *** 492,499 **** if (!gfc_expr_check_typed (*upper, gfc_current_ns, false)) return AS_UNKNOWN; - gfc_try_simplify_expr (*upper, 0); - if (((*upper)->expr_type == EXPR_CONSTANT && (*upper)->ts.type != BT_INTEGER) || ((*upper)->expr_type == EXPR_FUNCTION --- 492,497 ---- *************** match_array_element_spec (gfc_array_spec *** 526,533 **** if (!gfc_expr_check_typed (*upper, gfc_current_ns, false)) return AS_UNKNOWN; - gfc_try_simplify_expr (*upper, 0); - if (((*upper)->expr_type == EXPR_CONSTANT && (*upper)->ts.type != BT_INTEGER) || ((*upper)->expr_type == EXPR_FUNCTION --- 524,529 ---- diff -Nrcpad gcc-11.3.0/gcc/fortran/check.c gcc-11.4.0/gcc/fortran/check.c *** gcc-11.3.0/gcc/fortran/check.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/fortran/check.c Mon May 29 08:46:29 2023 *************** gfc_check_unpack (gfc_expr *vector, gfc_ *** 6342,6347 **** --- 6342,6349 ---- if (!same_type_check (vector, 0, field, 2)) return false; + gfc_simplify_expr (mask, 0); + if (mask->expr_type == EXPR_ARRAY && gfc_array_size (vector, &vector_size)) { diff -Nrcpad gcc-11.3.0/gcc/fortran/decl.c gcc-11.4.0/gcc/fortran/decl.c *** gcc-11.3.0/gcc/fortran/decl.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/fortran/decl.c Mon May 29 08:46:29 2023 *************** add_init_expr_to_sym (const char *name, *** 2050,2059 **** /* The shape may be NULL for EXPR_ARRAY, set it. */ if (init->shape == NULL) { ! gcc_assert (init->expr_type == EXPR_ARRAY); init->shape = gfc_get_shape (1); if (!gfc_array_size (init, &init->shape[0])) ! gfc_internal_error ("gfc_array_size failed"); } for (dim = 0; dim < sym->as->rank; ++dim) --- 2050,2070 ---- /* The shape may be NULL for EXPR_ARRAY, set it. */ if (init->shape == NULL) { ! if (init->expr_type != EXPR_ARRAY) ! { ! gfc_error ("Bad shape of initializer at %L", &init->where); ! return false; ! } ! init->shape = gfc_get_shape (1); if (!gfc_array_size (init, &init->shape[0])) ! { ! gfc_error ("Cannot determine shape of initializer at %L", ! &init->where); ! free (init->shape); ! init->shape = NULL; ! return false; ! } } for (dim = 0; dim < sym->as->rank; ++dim) *************** variable_decl (int elem) *** 2696,2701 **** --- 2707,2724 ---- else gfc_free_expr (n); } + /* For an explicit-shape spec with constant bounds, ensure + that the effective upper bound is not lower than the + respective lower bound minus one. Otherwise adjust it so + that the extent is trivially derived to be zero. */ + if (as->lower[i]->expr_type == EXPR_CONSTANT + && as->upper[i]->expr_type == EXPR_CONSTANT + && as->lower[i]->ts.type == BT_INTEGER + && as->upper[i]->ts.type == BT_INTEGER + && mpz_cmp (as->upper[i]->value.integer, + as->lower[i]->value.integer) < 0) + mpz_sub_ui (as->upper[i]->value.integer, + as->lower[i]->value.integer, 1); } } } *************** gfc_match_data_decl (void) *** 6169,6174 **** --- 6192,6205 ---- goto cleanup; } + /* F2018:C708. */ + if (current_ts.type == BT_CLASS && current_attr.flavor == FL_PARAMETER) + { + gfc_error ("CLASS entity at %C cannot have the PARAMETER attribute"); + m = MATCH_ERROR; + goto cleanup; + } + if (current_ts.type == BT_CLASS && current_ts.u.derived->attr.unlimited_polymorphic) goto ok; *************** gfc_match_modproc (void) *** 9871,9879 **** gfc_namespace *module_ns; gfc_interface *old_interface_head, *interface; ! if ((gfc_state_stack->state != COMP_INTERFACE ! && gfc_state_stack->state != COMP_CONTAINS) ! || gfc_state_stack->previous == NULL || current_interface.type == INTERFACE_NAMELESS || current_interface.type == INTERFACE_ABSTRACT) { --- 9902,9911 ---- gfc_namespace *module_ns; gfc_interface *old_interface_head, *interface; ! if (gfc_state_stack->previous == NULL ! || (gfc_state_stack->state != COMP_INTERFACE ! && (gfc_state_stack->state != COMP_CONTAINS ! || gfc_state_stack->previous->state != COMP_INTERFACE)) || current_interface.type == INTERFACE_NAMELESS || current_interface.type == INTERFACE_ABSTRACT) { diff -Nrcpad gcc-11.3.0/gcc/fortran/dependency.c gcc-11.4.0/gcc/fortran/dependency.c *** gcc-11.3.0/gcc/fortran/dependency.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/fortran/dependency.c Mon May 29 08:46:29 2023 *************** gfc_check_dependency (gfc_expr *expr1, g *** 1292,1297 **** --- 1292,1302 ---- if (expr1->expr_type != EXPR_VARIABLE) gfc_internal_error ("gfc_check_dependency: expecting an EXPR_VARIABLE"); + /* Prevent NULL pointer dereference while recursively analyzing invalid + expressions. */ + if (expr2 == NULL) + return 0; + switch (expr2->expr_type) { case EXPR_OP: diff -Nrcpad gcc-11.3.0/gcc/fortran/dump-parse-tree.c gcc-11.4.0/gcc/fortran/dump-parse-tree.c *** gcc-11.3.0/gcc/fortran/dump-parse-tree.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/fortran/dump-parse-tree.c Mon May 29 08:46:29 2023 *************** get_c_type_name (gfc_typespec *ts, gfc_a *** 3349,3355 **** --- 3349,3360 ---- if (c_interop_kinds_table[i].f90_type == ts->type && c_interop_kinds_table[i].value == ts->kind) { + /* Skip over 'c_'. */ *type_name = c_interop_kinds_table[i].name + 2; + if (strcmp (*type_name, "long_long") == 0) + *type_name = "long long"; + if (strcmp (*type_name, "long_double") == 0) + *type_name = "long double"; if (strcmp (*type_name, "signed_char") == 0) *type_name = "signed char"; else if (strcmp (*type_name, "size_t") == 0) diff -Nrcpad gcc-11.3.0/gcc/fortran/expr.c gcc-11.4.0/gcc/fortran/expr.c *** gcc-11.3.0/gcc/fortran/expr.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/fortran/expr.c Mon May 29 08:46:29 2023 *************** find_array_section (gfc_expr *expr, gfc_ *** 1549,1554 **** --- 1549,1564 ---- lower = ref->u.ar.as->lower[d]; upper = ref->u.ar.as->upper[d]; + if (!lower || !upper + || lower->expr_type != EXPR_CONSTANT + || upper->expr_type != EXPR_CONSTANT + || lower->ts.type != BT_INTEGER + || upper->ts.type != BT_INTEGER) + { + t = false; + goto cleanup; + } + if (ref->u.ar.dimen_type[d] == DIMEN_VECTOR) /* Vector subscript. */ { gfc_constructor *ci; *************** gfc_simplify_expr (gfc_expr *p, int type *** 2281,2287 **** initialization expression, or we want a subsection. */ if (p->symtree->n.sym->attr.flavor == FL_PARAMETER && (gfc_init_expr_flag || p->ref ! || p->symtree->n.sym->value->expr_type != EXPR_ARRAY)) { if (!simplify_parameter_variable (p, type)) return false; --- 2291,2298 ---- initialization expression, or we want a subsection. */ if (p->symtree->n.sym->attr.flavor == FL_PARAMETER && (gfc_init_expr_flag || p->ref ! || (p->symtree->n.sym->value ! && p->symtree->n.sym->value->expr_type != EXPR_ARRAY))) { if (!simplify_parameter_variable (p, type)) return false; *************** gfc_check_vardef_context (gfc_expr* e, b *** 6224,6230 **** && !(sym->attr.flavor == FL_PROCEDURE && sym == sym->result) && !(sym->attr.flavor == FL_PROCEDURE && sym->attr.proc_pointer) && !(sym->attr.flavor == FL_PROCEDURE ! && sym->attr.function && sym->attr.pointer)) { if (context) gfc_error ("%qs in variable definition context (%s) at %L is not" --- 6235,6241 ---- && !(sym->attr.flavor == FL_PROCEDURE && sym == sym->result) && !(sym->attr.flavor == FL_PROCEDURE && sym->attr.proc_pointer) && !(sym->attr.flavor == FL_PROCEDURE ! && sym->attr.function && attr.pointer)) { if (context) gfc_error ("%qs in variable definition context (%s) at %L is not" diff -Nrcpad gcc-11.3.0/gcc/fortran/f95-lang.c gcc-11.4.0/gcc/fortran/f95-lang.c *** gcc-11.3.0/gcc/fortran/f95-lang.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/fortran/f95-lang.c Mon May 29 08:46:29 2023 *************** gfc_init_builtin_functions (void) *** 696,726 **** float_type_node, NULL_TREE); func_cdouble_double = build_function_type_list (double_type_node, ! complex_double_type_node, ! NULL_TREE); func_double_cdouble = build_function_type_list (complex_double_type_node, ! double_type_node, NULL_TREE); ! func_clongdouble_longdouble = ! build_function_type_list (long_double_type_node, ! complex_long_double_type_node, NULL_TREE); ! func_longdouble_clongdouble = ! build_function_type_list (complex_long_double_type_node, ! long_double_type_node, NULL_TREE); ptype = build_pointer_type (float_type_node); ! func_float_floatp_floatp = ! build_function_type_list (void_type_node, ptype, ptype, NULL_TREE); ptype = build_pointer_type (double_type_node); ! func_double_doublep_doublep = ! build_function_type_list (void_type_node, ptype, ptype, NULL_TREE); ptype = build_pointer_type (long_double_type_node); ! func_longdouble_longdoublep_longdoublep = ! build_function_type_list (void_type_node, ptype, ptype, NULL_TREE); /* Non-math builtins are defined manually, so they're not included here. */ #define OTHER_BUILTIN(ID,NAME,TYPE,CONST) --- 696,729 ---- float_type_node, NULL_TREE); func_cdouble_double = build_function_type_list (double_type_node, ! complex_double_type_node, ! NULL_TREE); func_double_cdouble = build_function_type_list (complex_double_type_node, ! double_type_node, NULL_TREE); ! func_clongdouble_longdouble ! = build_function_type_list (long_double_type_node, ! complex_long_double_type_node, NULL_TREE); ! func_longdouble_clongdouble ! = build_function_type_list (complex_long_double_type_node, ! long_double_type_node, NULL_TREE); ptype = build_pointer_type (float_type_node); ! func_float_floatp_floatp ! = build_function_type_list (void_type_node, float_type_node, ptype, ptype, ! NULL_TREE); ptype = build_pointer_type (double_type_node); ! func_double_doublep_doublep ! = build_function_type_list (void_type_node, double_type_node, ptype, ! ptype, NULL_TREE); ptype = build_pointer_type (long_double_type_node); ! func_longdouble_longdoublep_longdoublep ! = build_function_type_list (void_type_node, long_double_type_node, ptype, ! ptype, NULL_TREE); /* Non-math builtins are defined manually, so they're not included here. */ #define OTHER_BUILTIN(ID,NAME,TYPE,CONST) *************** gfc_init_builtin_functions (void) *** 974,982 **** "calloc", ATTR_NOTHROW_LEAF_MALLOC_LIST); DECL_IS_MALLOC (builtin_decl_explicit (BUILT_IN_CALLOC)) = 1; ! ftype = build_function_type_list (pvoid_type_node, ! size_type_node, pvoid_type_node, ! NULL_TREE); gfc_define_builtin ("__builtin_realloc", ftype, BUILT_IN_REALLOC, "realloc", ATTR_NOTHROW_LEAF_LIST); --- 977,984 ---- "calloc", ATTR_NOTHROW_LEAF_MALLOC_LIST); DECL_IS_MALLOC (builtin_decl_explicit (BUILT_IN_CALLOC)) = 1; ! ftype = build_function_type_list (pvoid_type_node, pvoid_type_node, ! size_type_node, NULL_TREE); gfc_define_builtin ("__builtin_realloc", ftype, BUILT_IN_REALLOC, "realloc", ATTR_NOTHROW_LEAF_LIST); diff -Nrcpad gcc-11.3.0/gcc/fortran/gfortran.info gcc-11.4.0/gcc/fortran/gfortran.info *** gcc-11.3.0/gcc/fortran/gfortran.info Thu Apr 21 08:20:55 2022 --- gcc-11.4.0/gcc/fortran/gfortran.info Mon May 29 09:02:39 2023 *************** *** 1,4 **** ! This is gfortran.info, produced by makeinfo version 6.5 from gfortran.texi. Copyright (C) 1999-2021 Free Software Foundation, Inc. --- 1,4 ---- ! This is gfortran.info, produced by makeinfo version 6.8 from gfortran.texi. Copyright (C) 1999-2021 Free Software Foundation, Inc. *************** the other form by either removing 'no-' *** 1568,1574 **** Use of '-fno-underscoring' is not recommended unless you are experimenting with issues such as integration of GNU Fortran into ! existing system environments (vis-a`-vis existing libraries, tools, and so on). For example, with '-funderscoring', and assuming that 'j()' and --- 1568,1574 ---- Use of '-fno-underscoring' is not recommended unless you are experimenting with issues such as integration of GNU Fortran into ! existing system environments (vis-à-vis existing libraries, tools, and so on). For example, with '-funderscoring', and assuming that 'j()' and *************** significant help to the GNU Fortran proj *** 20064,20070 **** - Steven Bosscher - Paul Brook - Tobias Burnus ! - Franc,ois-Xavier Coudert - Bud Davis - Jerry DeLisle - Erik Edelmann --- 20064,20070 ---- - Steven Bosscher - Paul Brook - Tobias Burnus ! - François-Xavier Coudert - Bud Davis - Jerry DeLisle - Erik Edelmann *************** significant help to the GNU Fortran proj *** 20086,20092 **** - Tim Prince - Christopher D. Rickett - Richard Sandiford ! - Tobias Schlu"ter - Roger Sayle - Paul Thomas - Andy Vaught --- 20086,20092 ---- - Tim Prince - Christopher D. Rickett - Richard Sandiford ! - Tobias Schlüter - Roger Sayle - Paul Thomas - Andy Vaught *************** patches, and much needed feedback and en *** 20099,20105 **** project: - Bill Clodius ! - Dominique d'Humie`res - Kate Hedstrom - Erik Schnetter - Joost VandeVondele --- 20099,20105 ---- project: - Bill Clodius ! - Dominique d'Humières - Kate Hedstrom - Erik Schnetter - Joost VandeVondele *************** Node: Option Index782806 *** 23677,23679 **** --- 23677,23684 ---- Node: Keyword Index801940  End Tag Table + +  + Local Variables: + coding: utf-8 + End: diff -Nrcpad gcc-11.3.0/gcc/fortran/interface.c gcc-11.4.0/gcc/fortran/interface.c *** gcc-11.3.0/gcc/fortran/interface.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/fortran/interface.c Mon May 29 08:46:29 2023 *************** get_sym_storage_size (gfc_symbol *sym) *** 2760,2766 **** if (sym->ts.type == BT_CHARACTER) { if (sym->ts.u.cl && sym->ts.u.cl->length ! && sym->ts.u.cl->length->expr_type == EXPR_CONSTANT) strlen = mpz_get_ui (sym->ts.u.cl->length->value.integer); else return 0; --- 2760,2767 ---- if (sym->ts.type == BT_CHARACTER) { if (sym->ts.u.cl && sym->ts.u.cl->length ! && sym->ts.u.cl->length->expr_type == EXPR_CONSTANT ! && sym->ts.u.cl->length->ts.type == BT_INTEGER) strlen = mpz_get_ui (sym->ts.u.cl->length->value.integer); else return 0; *************** get_sym_storage_size (gfc_symbol *sym) *** 2777,2783 **** for (i = 0; i < sym->as->rank; i++) { if (sym->as->upper[i]->expr_type != EXPR_CONSTANT ! || sym->as->lower[i]->expr_type != EXPR_CONSTANT) return 0; elements *= mpz_get_si (sym->as->upper[i]->value.integer) --- 2778,2786 ---- for (i = 0; i < sym->as->rank; i++) { if (sym->as->upper[i]->expr_type != EXPR_CONSTANT ! || sym->as->lower[i]->expr_type != EXPR_CONSTANT ! || sym->as->upper[i]->ts.type != BT_INTEGER ! || sym->as->lower[i]->ts.type != BT_INTEGER) return 0; elements *= mpz_get_si (sym->as->upper[i]->value.integer) *************** get_expr_storage_size (gfc_expr *e) *** 2808,2814 **** if (e->ts.type == BT_CHARACTER) { if (e->ts.u.cl && e->ts.u.cl->length ! && e->ts.u.cl->length->expr_type == EXPR_CONSTANT) strlen = mpz_get_si (e->ts.u.cl->length->value.integer); else if (e->expr_type == EXPR_CONSTANT && (e->ts.u.cl == NULL || e->ts.u.cl->length == NULL)) --- 2811,2818 ---- if (e->ts.type == BT_CHARACTER) { if (e->ts.u.cl && e->ts.u.cl->length ! && e->ts.u.cl->length->expr_type == EXPR_CONSTANT ! && e->ts.u.cl->length->ts.type == BT_INTEGER) strlen = mpz_get_si (e->ts.u.cl->length->value.integer); else if (e->expr_type == EXPR_CONSTANT && (e->ts.u.cl == NULL || e->ts.u.cl->length == NULL)) *************** get_expr_storage_size (gfc_expr *e) *** 2859,2865 **** if (ref->u.ar.stride[i]) { ! if (ref->u.ar.stride[i]->expr_type == EXPR_CONSTANT) stride = mpz_get_si (ref->u.ar.stride[i]->value.integer); else return 0; --- 2863,2870 ---- if (ref->u.ar.stride[i]) { ! if (ref->u.ar.stride[i]->expr_type == EXPR_CONSTANT ! && ref->u.ar.stride[i]->ts.type == BT_INTEGER) stride = mpz_get_si (ref->u.ar.stride[i]->value.integer); else return 0; *************** get_expr_storage_size (gfc_expr *e) *** 2867,2892 **** if (ref->u.ar.start[i]) { ! if (ref->u.ar.start[i]->expr_type == EXPR_CONSTANT) start = mpz_get_si (ref->u.ar.start[i]->value.integer); else return 0; } else if (ref->u.ar.as->lower[i] ! && ref->u.ar.as->lower[i]->expr_type == EXPR_CONSTANT) start = mpz_get_si (ref->u.ar.as->lower[i]->value.integer); else return 0; if (ref->u.ar.end[i]) { ! if (ref->u.ar.end[i]->expr_type == EXPR_CONSTANT) end = mpz_get_si (ref->u.ar.end[i]->value.integer); else return 0; } else if (ref->u.ar.as->upper[i] ! && ref->u.ar.as->upper[i]->expr_type == EXPR_CONSTANT) end = mpz_get_si (ref->u.ar.as->upper[i]->value.integer); else return 0; --- 2872,2901 ---- if (ref->u.ar.start[i]) { ! if (ref->u.ar.start[i]->expr_type == EXPR_CONSTANT ! && ref->u.ar.start[i]->ts.type == BT_INTEGER) start = mpz_get_si (ref->u.ar.start[i]->value.integer); else return 0; } else if (ref->u.ar.as->lower[i] ! && ref->u.ar.as->lower[i]->expr_type == EXPR_CONSTANT ! && ref->u.ar.as->lower[i]->ts.type == BT_INTEGER) start = mpz_get_si (ref->u.ar.as->lower[i]->value.integer); else return 0; if (ref->u.ar.end[i]) { ! if (ref->u.ar.end[i]->expr_type == EXPR_CONSTANT ! && ref->u.ar.end[i]->ts.type == BT_INTEGER) end = mpz_get_si (ref->u.ar.end[i]->value.integer); else return 0; } else if (ref->u.ar.as->upper[i] ! && ref->u.ar.as->upper[i]->expr_type == EXPR_CONSTANT ! && ref->u.ar.as->upper[i]->ts.type == BT_INTEGER) end = mpz_get_si (ref->u.ar.as->upper[i]->value.integer); else return 0; *************** get_expr_storage_size (gfc_expr *e) *** 2927,2933 **** || ref->u.ar.as->upper[i] == NULL || ref->u.ar.as->lower[i] == NULL || ref->u.ar.as->upper[i]->expr_type != EXPR_CONSTANT ! || ref->u.ar.as->lower[i]->expr_type != EXPR_CONSTANT) return 0; elements --- 2936,2944 ---- || ref->u.ar.as->upper[i] == NULL || ref->u.ar.as->lower[i] == NULL || ref->u.ar.as->upper[i]->expr_type != EXPR_CONSTANT ! || ref->u.ar.as->lower[i]->expr_type != EXPR_CONSTANT ! || ref->u.ar.as->upper[i]->ts.type != BT_INTEGER ! || ref->u.ar.as->lower[i]->ts.type != BT_INTEGER) return 0; elements *************** get_expr_storage_size (gfc_expr *e) *** 2949,2955 **** { if (!as->upper[i] || !as->lower[i] || as->upper[i]->expr_type != EXPR_CONSTANT ! || as->lower[i]->expr_type != EXPR_CONSTANT) return 0; elements = elements --- 2960,2968 ---- { if (!as->upper[i] || !as->lower[i] || as->upper[i]->expr_type != EXPR_CONSTANT ! || as->lower[i]->expr_type != EXPR_CONSTANT ! || as->upper[i]->ts.type != BT_INTEGER ! || as->lower[i]->ts.type != BT_INTEGER) return 0; elements = elements *************** gfc_procedure_use (gfc_symbol *sym, gfc_ *** 3972,3977 **** --- 3985,3998 ---- a->expr->error = 1; return false; } + + if (a->expr && a->expr->expr_type == EXPR_NULL) + { + gfc_error ("Passing intrinsic NULL as actual argument at %L " + "requires an explicit interface", &a->expr->where); + a->expr->error = 1; + return false; + } /* TS 29113, C407b. */ if (a->expr && a->expr->expr_type == EXPR_VARIABLE diff -Nrcpad gcc-11.3.0/gcc/fortran/iresolve.c gcc-11.4.0/gcc/fortran/iresolve.c *** gcc-11.3.0/gcc/fortran/iresolve.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/fortran/iresolve.c Mon May 29 08:46:29 2023 *************** check_charlen_present (gfc_expr *source) *** 94,102 **** else if (source->expr_type == EXPR_ARRAY) { gfc_constructor *c = gfc_constructor_first (source->value.constructor); ! source->ts.u.cl->length ! = gfc_get_int_expr (gfc_charlen_int_kind, NULL, ! c->expr->value.character.length); } } --- 94,105 ---- else if (source->expr_type == EXPR_ARRAY) { gfc_constructor *c = gfc_constructor_first (source->value.constructor); ! if (c) ! source->ts.u.cl->length ! = gfc_get_int_expr (gfc_charlen_int_kind, NULL, ! c->expr->value.character.length); ! if (source->ts.u.cl->length == NULL) ! gfc_internal_error ("check_charlen_present(): length not set"); } } diff -Nrcpad gcc-11.3.0/gcc/fortran/match.c gcc-11.4.0/gcc/fortran/match.c *** gcc-11.3.0/gcc/fortran/match.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/fortran/match.c Mon May 29 08:46:29 2023 *************** gfc_match_common (void) *** 5299,5304 **** --- 5299,5314 ---- goto cleanup; } + /* F2018:R874: common-block-object is variable-name [ (array-spec) ] + F2018:C8121: A variable-name shall not be a name made accessible + by use association. */ + if (sym->attr.use_assoc) + { + gfc_error ("Symbol %qs at %C is USE associated from module %qs " + "and cannot occur in COMMON", sym->name, sym->module); + goto cleanup; + } + /* Deal with an optional array specification after the symbol name. */ m = gfc_match_array_spec (&as, true, true); diff -Nrcpad gcc-11.3.0/gcc/fortran/parse.c gcc-11.4.0/gcc/fortran/parse.c *** gcc-11.3.0/gcc/fortran/parse.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/fortran/parse.c Mon May 29 08:46:29 2023 *************** match_deferred_characteristics (gfc_type *** 3747,3767 **** For return types specified in a FUNCTION prefix, the IMPLICIT rules of the scope are not yet parsed so this has to be delayed up to parse_spec. */ ! static void check_function_result_typed (void) { gfc_typespec ts; gcc_assert (gfc_current_state () == COMP_FUNCTION); ! if (!gfc_current_ns->proc_name->result) return; ts = gfc_current_ns->proc_name->result->ts; /* Check type-parameters, at the moment only CHARACTER lengths possible. */ /* TODO: Extend when KIND type parameters are implemented. */ if (ts.type == BT_CHARACTER && ts.u.cl && ts.u.cl->length) ! gfc_expr_check_typed (ts.u.cl->length, gfc_current_ns, true); } --- 3747,3776 ---- For return types specified in a FUNCTION prefix, the IMPLICIT rules of the scope are not yet parsed so this has to be delayed up to parse_spec. */ ! static bool check_function_result_typed (void) { gfc_typespec ts; gcc_assert (gfc_current_state () == COMP_FUNCTION); ! if (!gfc_current_ns->proc_name->result) ! return true; ts = gfc_current_ns->proc_name->result->ts; /* Check type-parameters, at the moment only CHARACTER lengths possible. */ /* TODO: Extend when KIND type parameters are implemented. */ if (ts.type == BT_CHARACTER && ts.u.cl && ts.u.cl->length) ! { ! /* Reject invalid type of specification expression for length. */ ! if (ts.u.cl->length->ts.type != BT_INTEGER) ! return false; ! ! gfc_expr_check_typed (ts.u.cl->length, gfc_current_ns, true); ! } ! ! return true; } *************** loop: *** 3869,3878 **** } if (verify_now) ! { ! check_function_result_typed (); ! function_result_typed = true; ! } } switch (st) --- 3878,3884 ---- } if (verify_now) ! function_result_typed = check_function_result_typed (); } switch (st) *************** loop: *** 3883,3892 **** case ST_IMPLICIT_NONE: case ST_IMPLICIT: if (!function_result_typed) ! { ! check_function_result_typed (); ! function_result_typed = true; ! } goto declSt; case ST_FORMAT: --- 3889,3895 ---- case ST_IMPLICIT_NONE: case ST_IMPLICIT: if (!function_result_typed) ! function_result_typed = check_function_result_typed (); goto declSt; case ST_FORMAT: diff -Nrcpad gcc-11.3.0/gcc/fortran/resolve.c gcc-11.4.0/gcc/fortran/resolve.c *** gcc-11.3.0/gcc/fortran/resolve.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/fortran/resolve.c Mon May 29 08:46:29 2023 *************** resolve_common_vars (gfc_common_head *co *** 953,961 **** { gsym = gfc_find_gsymbol (gfc_gsym_root, csym->name); if (gsym && (gsym->type == GSYM_MODULE || gsym->type == GSYM_PROGRAM)) ! gfc_error_now ("Global entity %qs at %L cannot appear in a " ! "COMMON block at %L", gsym->name, ! &gsym->where, &csym->common_block->where); /* gfc_add_in_common may have been called before, but the reported errors have been ignored to continue parsing. --- 953,967 ---- { gsym = gfc_find_gsymbol (gfc_gsym_root, csym->name); if (gsym && (gsym->type == GSYM_MODULE || gsym->type == GSYM_PROGRAM)) ! { ! if (csym->common_block) ! gfc_error_now ("Global entity %qs at %L cannot appear in a " ! "COMMON block at %L", gsym->name, ! &gsym->where, &csym->common_block->where); ! else ! gfc_error_now ("Global entity %qs at %L cannot appear in a " ! "COMMON block", gsym->name, &gsym->where); ! } /* gfc_add_in_common may have been called before, but the reported errors have been ignored to continue parsing. *************** compare_bound_int (gfc_expr *a, int b) *** 4543,4554 **** { int i; ! if (a == NULL || a->expr_type != EXPR_CONSTANT) return CMP_UNKNOWN; - if (a->ts.type != BT_INTEGER) - gfc_internal_error ("compare_bound_int(): Bad expression"); - i = mpz_cmp_si (a->value.integer, b); if (i < 0) --- 4549,4559 ---- { int i; ! if (a == NULL ! || a->expr_type != EXPR_CONSTANT ! || a->ts.type != BT_INTEGER) return CMP_UNKNOWN; i = mpz_cmp_si (a->value.integer, b); if (i < 0) *************** compare_bound_mpz_t (gfc_expr *a, mpz_t *** 4566,4577 **** { int i; ! if (a == NULL || a->expr_type != EXPR_CONSTANT) return CMP_UNKNOWN; - if (a->ts.type != BT_INTEGER) - gfc_internal_error ("compare_bound_int(): Bad expression"); - i = mpz_cmp (a->value.integer, b); if (i < 0) --- 4571,4581 ---- { int i; ! if (a == NULL ! || a->expr_type != EXPR_CONSTANT ! || a->ts.type != BT_INTEGER) return CMP_UNKNOWN; i = mpz_cmp (a->value.integer, b); if (i < 0) *************** check_dimension (int i, gfc_array_ref *a *** 4701,4723 **** #define AR_END (ar->end[i] ? ar->end[i] : as->upper[i]) compare_result comp_start_end = compare_bound (AR_START, AR_END); /* Check for zero stride, which is not allowed. */ ! if (compare_bound_int (ar->stride[i], 0) == CMP_EQ) { gfc_error ("Illegal stride of zero at %L", &ar->c_where[i]); return false; } ! /* if start == len || (stride > 0 && start < len) ! || (stride < 0 && start > len), then the array section contains at least one element. In this case, there is an out-of-bounds access if (start < lower || start > upper). */ ! if (compare_bound (AR_START, AR_END) == CMP_EQ ! || ((compare_bound_int (ar->stride[i], 0) == CMP_GT ! || ar->stride[i] == NULL) && comp_start_end == CMP_LT) ! || (compare_bound_int (ar->stride[i], 0) == CMP_LT && comp_start_end == CMP_GT)) { if (compare_bound (AR_START, as->lower[i]) == CMP_LT) --- 4705,4728 ---- #define AR_END (ar->end[i] ? ar->end[i] : as->upper[i]) compare_result comp_start_end = compare_bound (AR_START, AR_END); + compare_result comp_stride_zero = compare_bound_int (ar->stride[i], 0); /* Check for zero stride, which is not allowed. */ ! if (comp_stride_zero == CMP_EQ) { gfc_error ("Illegal stride of zero at %L", &ar->c_where[i]); return false; } ! /* if start == end || (stride > 0 && start < end) ! || (stride < 0 && start > end), then the array section contains at least one element. In this case, there is an out-of-bounds access if (start < lower || start > upper). */ ! if (comp_start_end == CMP_EQ ! || ((comp_stride_zero == CMP_GT || ar->stride[i] == NULL) ! && comp_start_end == CMP_LT) ! || (comp_stride_zero == CMP_LT && comp_start_end == CMP_GT)) { if (compare_bound (AR_START, as->lower[i]) == CMP_LT) *************** derived_inaccessible (gfc_symbol *sym) *** 7497,7503 **** for (c = sym->components; c; c = c->next) { /* Prevent an infinite loop through this function. */ ! if (c->ts.type == BT_DERIVED && c->attr.pointer && sym == c->ts.u.derived) continue; --- 7502,7509 ---- for (c = sym->components; c; c = c->next) { /* Prevent an infinite loop through this function. */ ! if (c->ts.type == BT_DERIVED ! && (c->attr.pointer || c->attr.allocatable) && sym == c->ts.u.derived) continue; *************** check_formal: *** 13510,13515 **** --- 13516,13531 ---- } } } + + /* F2018:15.4.2.2 requires an explicit interface for procedures with the + BIND(C) attribute. */ + if (sym->attr.is_bind_c && sym->attr.if_source == IFSRC_UNKNOWN) + { + gfc_error ("Interface of %qs at %L must be explicit", + sym->name, &sym->declared_at); + return false; + } + return true; } *************** resolve_component (gfc_component *c, gfc *** 14741,14746 **** --- 14757,14775 ---- c->ts.u.cl->length ? &c->ts.u.cl->length->where : &c->loc); return false; } + + if (c->ts.u.cl->length && c->ts.u.cl->length->ts.type != BT_INTEGER) + { + if (!c->ts.u.cl->length->error) + { + gfc_error ("Character length expression of component %qs at %L " + "must be of INTEGER type, found %s", + c->name, &c->ts.u.cl->length->where, + gfc_basic_typename (c->ts.u.cl->length->ts.type)); + c->ts.u.cl->length->error = 1; + } + return false; + } } if (c->ts.type == BT_CHARACTER && c->ts.deferred *************** resolve_symbol (gfc_symbol *sym) *** 15759,15766 **** /* First, make sure the variable is declared at the module-level scope (J3/04-007, Section 15.3). */ ! if (sym->ns->proc_name->attr.flavor != FL_MODULE && ! sym->attr.in_common == 0) { gfc_error ("Variable %qs at %L cannot be BIND(C) because it " "is neither a COMMON block nor declared at the " --- 15788,15795 ---- /* First, make sure the variable is declared at the module-level scope (J3/04-007, Section 15.3). */ ! if (!(sym->ns->proc_name && sym->ns->proc_name->attr.flavor == FL_MODULE) ! && !sym->attr.in_common) { gfc_error ("Variable %qs at %L cannot be BIND(C) because it " "is neither a COMMON block nor declared at the " *************** resolve_fntype (gfc_namespace *ns) *** 17254,17260 **** } } ! if (sym->ts.type == BT_CHARACTER) gfc_traverse_expr (sym->ts.u.cl->length, sym, flag_fn_result_spec, 0); } --- 17283,17291 ---- } } ! if (sym->ts.type == BT_CHARACTER ! && sym->ts.u.cl->length ! && sym->ts.u.cl->length->ts.type == BT_INTEGER) gfc_traverse_expr (sym->ts.u.cl->length, sym, flag_fn_result_spec, 0); } diff -Nrcpad gcc-11.3.0/gcc/fortran/simplify.c gcc-11.4.0/gcc/fortran/simplify.c *** gcc-11.3.0/gcc/fortran/simplify.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/fortran/simplify.c Mon May 29 08:46:29 2023 *************** simplify_transformation (gfc_expr *array *** 708,713 **** --- 708,714 ---- size_zero = gfc_is_size_zero_array (array); if (!(is_constant_array_expr (array) || size_zero) + || array->shape == NULL || !gfc_is_constant_expr (dim)) return NULL; *************** gfc_simplify_extends_type_of (gfc_expr * *** 3092,3097 **** --- 3093,3102 ---- if (UNLIMITED_POLY (a) || UNLIMITED_POLY (mold)) return NULL; + if ((a->ts.type == BT_CLASS && !gfc_expr_attr (a).class_ok) + || (mold->ts.type == BT_CLASS && !gfc_expr_attr (mold).class_ok)) + return NULL; + /* Return .false. if the dynamic type can never be an extension. */ if ((a->ts.type == BT_CLASS && mold->ts.type == BT_CLASS && !gfc_type_is_extension_of *************** gfc_expr * *** 3502,3518 **** gfc_simplify_index (gfc_expr *x, gfc_expr *y, gfc_expr *b, gfc_expr *kind) { gfc_expr *result; ! int back, len, lensub; ! int i, j, k, count, index = 0, start; if (x->expr_type != EXPR_CONSTANT || y->expr_type != EXPR_CONSTANT || ( b != NULL && b->expr_type != EXPR_CONSTANT)) return NULL; ! if (b != NULL && b->value.logical != 0) ! back = 1; ! else ! back = 0; k = get_kind (BT_INTEGER, kind, "INDEX", gfc_default_integer_kind); if (k == -1) --- 3507,3521 ---- gfc_simplify_index (gfc_expr *x, gfc_expr *y, gfc_expr *b, gfc_expr *kind) { gfc_expr *result; ! bool back; ! HOST_WIDE_INT len, lensub, start, last, i, index = 0; ! int k, delta; if (x->expr_type != EXPR_CONSTANT || y->expr_type != EXPR_CONSTANT || ( b != NULL && b->expr_type != EXPR_CONSTANT)) return NULL; ! back = (b != NULL && b->value.logical != 0); k = get_kind (BT_INTEGER, kind, "INDEX", gfc_default_integer_kind); if (k == -1) *************** gfc_simplify_index (gfc_expr *x, gfc_exp *** 3529,3639 **** return result; } ! if (back == 0) { ! if (lensub == 0) ! { ! mpz_set_si (result->value.integer, 1); ! return result; ! } ! else if (lensub == 1) ! { ! for (i = 0; i < len; i++) ! { ! for (j = 0; j < lensub; j++) ! { ! if (y->value.character.string[j] ! == x->value.character.string[i]) ! { ! index = i + 1; ! goto done; ! } ! } ! } ! } else ! { ! for (i = 0; i < len; i++) ! { ! for (j = 0; j < lensub; j++) ! { ! if (y->value.character.string[j] ! == x->value.character.string[i]) ! { ! start = i; ! count = 0; ! ! for (k = 0; k < lensub; k++) ! { ! if (y->value.character.string[k] ! == x->value.character.string[k + start]) ! count++; ! } ! ! if (count == lensub) ! { ! index = start + 1; ! goto done; ! } ! } ! } ! } ! } } else { ! if (lensub == 0) ! { ! mpz_set_si (result->value.integer, len + 1); ! return result; ! } ! else if (lensub == 1) { ! for (i = 0; i < len; i++) ! { ! for (j = 0; j < lensub; j++) ! { ! if (y->value.character.string[j] ! == x->value.character.string[len - i]) ! { ! index = len - i + 1; ! goto done; ! } ! } ! } } ! else { ! for (i = 0; i < len; i++) ! { ! for (j = 0; j < lensub; j++) ! { ! if (y->value.character.string[j] ! == x->value.character.string[len - i]) ! { ! start = len - i; ! if (start <= len - lensub) ! { ! count = 0; ! for (k = 0; k < lensub; k++) ! if (y->value.character.string[k] ! == x->value.character.string[k + start]) ! count++; ! ! if (count == lensub) ! { ! index = start + 1; ! goto done; ! } ! } ! else ! { ! continue; ! } ! } ! } ! } } } --- 3532,3571 ---- return result; } ! if (lensub == 0) { ! if (back) ! index = len + 1; else ! index = 1; ! goto done; ! } + if (!back) + { + last = len + 1 - lensub; + start = 0; + delta = 1; } else { ! last = -1; ! start = len - lensub; ! delta = -1; ! } ! ! for (; start != last; start += delta) ! { ! for (i = 0; i < lensub; i++) { ! if (x->value.character.string[start + i] ! != y->value.character.string[i]) ! break; } ! if (i == lensub) { ! index = start + 1; ! goto done; } } *************** gfc_simplify_findloc (gfc_expr *array, g *** 5915,5920 **** --- 5847,5853 ---- bool back_val = false; if (!is_constant_array_expr (array) + || array->shape == NULL || !gfc_is_constant_expr (dim)) return NULL; *************** gfc_simplify_nearest (gfc_expr *x, gfc_e *** 6114,6120 **** kind = gfc_validate_kind (BT_REAL, x->ts.kind, 0); mpfr_set_emin ((mpfr_exp_t) gfc_real_kinds[kind].min_exponent - mpfr_get_prec(result->value.real) + 1); ! mpfr_set_emax ((mpfr_exp_t) gfc_real_kinds[kind].max_exponent - 1); mpfr_check_range (result->value.real, 0, MPFR_RNDU); if (mpfr_sgn (s->value.real) > 0) --- 6047,6053 ---- kind = gfc_validate_kind (BT_REAL, x->ts.kind, 0); mpfr_set_emin ((mpfr_exp_t) gfc_real_kinds[kind].min_exponent - mpfr_get_prec(result->value.real) + 1); ! mpfr_set_emax ((mpfr_exp_t) gfc_real_kinds[kind].max_exponent); mpfr_check_range (result->value.real, 0, MPFR_RNDU); if (mpfr_sgn (s->value.real) > 0) *************** gfc_simplify_pack (gfc_expr *array, gfc_ *** 6451,6457 **** /* Copy only those elements of ARRAY to RESULT whose MASK equals .TRUE.. */ mask_ctor = gfc_constructor_first (mask->value.constructor); ! while (mask_ctor) { if (mask_ctor->expr->value.logical) { --- 6384,6390 ---- /* Copy only those elements of ARRAY to RESULT whose MASK equals .TRUE.. */ mask_ctor = gfc_constructor_first (mask->value.constructor); ! while (mask_ctor && array_ctor) { if (mask_ctor->expr->value.logical) { *************** gfc_simplify_set_exponent (gfc_expr *x, *** 7364,7370 **** { gfc_expr *result; mpfr_t exp, absv, log2, pow2, frac; ! unsigned long exp2; if (x->expr_type != EXPR_CONSTANT || i->expr_type != EXPR_CONSTANT) return NULL; --- 7297,7303 ---- { gfc_expr *result; mpfr_t exp, absv, log2, pow2, frac; ! long exp2; if (x->expr_type != EXPR_CONSTANT || i->expr_type != EXPR_CONSTANT) return NULL; *************** gfc_simplify_set_exponent (gfc_expr *x, *** 7396,7414 **** mpfr_abs (absv, x->value.real, GFC_RND_MODE); mpfr_log2 (log2, absv, GFC_RND_MODE); ! mpfr_trunc (log2, log2); mpfr_add_ui (exp, log2, 1, GFC_RND_MODE); /* Old exponent value, and fraction. */ mpfr_ui_pow (pow2, 2, exp, GFC_RND_MODE); ! mpfr_div (frac, absv, pow2, GFC_RND_MODE); /* New exponent. */ ! exp2 = (unsigned long) mpz_get_d (i->value.integer); ! mpfr_mul_2exp (result->value.real, frac, exp2, GFC_RND_MODE); ! mpfr_clears (absv, log2, pow2, frac, NULL); return range_check (result, "SET_EXPONENT"); } --- 7329,7347 ---- mpfr_abs (absv, x->value.real, GFC_RND_MODE); mpfr_log2 (log2, absv, GFC_RND_MODE); ! mpfr_floor (log2, log2); mpfr_add_ui (exp, log2, 1, GFC_RND_MODE); /* Old exponent value, and fraction. */ mpfr_ui_pow (pow2, 2, exp, GFC_RND_MODE); ! mpfr_div (frac, x->value.real, pow2, GFC_RND_MODE); /* New exponent. */ ! exp2 = mpz_get_si (i->value.integer); ! mpfr_mul_2si (result->value.real, frac, exp2, GFC_RND_MODE); ! mpfr_clears (absv, log2, exp, pow2, frac, NULL); return range_check (result, "SET_EXPONENT"); } *************** simplify_size (gfc_expr *array, gfc_expr *** 7556,7563 **** } for (ref = array->ref; ref; ref = ref->next) ! if (ref->type == REF_ARRAY && ref->u.ar.as) ! gfc_resolve_array_spec (ref->u.ar.as, 0); if (dim == NULL) { --- 7489,7497 ---- } for (ref = array->ref; ref; ref = ref->next) ! if (ref->type == REF_ARRAY && ref->u.ar.as ! && !gfc_resolve_array_spec (ref->u.ar.as, 0)) ! return NULL; if (dim == NULL) { *************** gfc_simplify_unpack (gfc_expr *vector, g *** 8476,8484 **** { if (mask_ctor->expr->value.logical) { ! gcc_assert (vector_ctor); ! e = gfc_copy_expr (vector_ctor->expr); ! vector_ctor = gfc_constructor_next (vector_ctor); } else if (field->expr_type == EXPR_ARRAY) e = gfc_copy_expr (field_ctor->expr); --- 8410,8425 ---- { if (mask_ctor->expr->value.logical) { ! if (vector_ctor) ! { ! e = gfc_copy_expr (vector_ctor->expr); ! vector_ctor = gfc_constructor_next (vector_ctor); ! } ! else ! { ! gfc_free_expr (result); ! return NULL; ! } } else if (field->expr_type == EXPR_ARRAY) e = gfc_copy_expr (field_ctor->expr); diff -Nrcpad gcc-11.3.0/gcc/fortran/symbol.c gcc-11.4.0/gcc/fortran/symbol.c *** gcc-11.3.0/gcc/fortran/symbol.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/fortran/symbol.c Mon May 29 08:46:29 2023 *************** gfc_type_compatible (gfc_typespec *ts1, *** 5146,5151 **** --- 5146,5155 ---- bool is_union1 = (ts1->type == BT_UNION); bool is_union2 = (ts2->type == BT_UNION); + /* A boz-literal-constant has no type. */ + if (ts1->type == BT_BOZ || ts2->type == BT_BOZ) + return false; + if (is_class1 && ts1->u.derived->components && ((ts1->u.derived->attr.is_class diff -Nrcpad gcc-11.3.0/gcc/fortran/trans-array.c gcc-11.4.0/gcc/fortran/trans-array.c *** gcc-11.3.0/gcc/fortran/trans-array.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/fortran/trans-array.c Mon May 29 08:46:29 2023 *************** gfc_alloc_allocatable_for_assignment (gf *** 10795,10800 **** --- 10795,10846 ---- } + /* Initialize class descriptor's TKR infomation. */ + + void + gfc_trans_class_array (gfc_symbol * sym, gfc_wrapped_block * block) + { + tree type, etype; + tree tmp; + tree descriptor; + stmtblock_t init; + locus loc; + int rank; + + /* Make sure the frontend gets these right. */ + gcc_assert (sym->ts.type == BT_CLASS && CLASS_DATA (sym) + && (CLASS_DATA (sym)->attr.class_pointer + || CLASS_DATA (sym)->attr.allocatable)); + + gcc_assert (VAR_P (sym->backend_decl) + || TREE_CODE (sym->backend_decl) == PARM_DECL); + + if (sym->attr.dummy) + return; + + descriptor = gfc_class_data_get (sym->backend_decl); + type = TREE_TYPE (descriptor); + + if (type == NULL || !GFC_DESCRIPTOR_TYPE_P (type)) + return; + + gfc_save_backend_locus (&loc); + gfc_set_backend_locus (&sym->declared_at); + gfc_init_block (&init); + + rank = CLASS_DATA (sym)->as ? (CLASS_DATA (sym)->as->rank) : (0); + gcc_assert (rank>=0); + tmp = gfc_conv_descriptor_dtype (descriptor); + etype = gfc_get_element_type (type); + tmp = fold_build2_loc (input_location, MODIFY_EXPR, TREE_TYPE (tmp), tmp, + gfc_get_dtype_rank_type (rank, etype)); + gfc_add_expr_to_block (&init, tmp); + + gfc_add_init_cleanup (block, gfc_finish_block (&init), NULL_TREE); + gfc_restore_backend_locus (&loc); + } + + /* NULLIFY an allocatable/pointer array on function entry, free it on exit. Do likewise, recursively if necessary, with the allocatable components of derived types. This function is also called for assumed-rank arrays, which diff -Nrcpad gcc-11.3.0/gcc/fortran/trans-array.h gcc-11.4.0/gcc/fortran/trans-array.h *** gcc-11.3.0/gcc/fortran/trans-array.h Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/fortran/trans-array.h Mon May 29 08:46:29 2023 *************** tree gfc_check_pdt_dummy (gfc_symbol *, *** 67,72 **** --- 67,74 ---- tree gfc_alloc_allocatable_for_assignment (gfc_loopinfo*, gfc_expr*, gfc_expr*); + /* Add initialization for class descriptors */ + void gfc_trans_class_array (gfc_symbol *, gfc_wrapped_block *); /* Add initialization for deferred arrays. */ void gfc_trans_deferred_array (gfc_symbol *, gfc_wrapped_block *); /* Generate an initializer for a static pointer or allocatable array. */ diff -Nrcpad gcc-11.3.0/gcc/fortran/trans-decl.c gcc-11.4.0/gcc/fortran/trans-decl.c *** gcc-11.3.0/gcc/fortran/trans-decl.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/fortran/trans-decl.c Mon May 29 08:46:29 2023 *************** gfc_finish_var_decl (tree decl, gfc_symb *** 738,743 **** --- 738,744 ---- /* Keep variables larger than max-stack-var-size off stack. */ if (!(sym->ns->proc_name && sym->ns->proc_name->attr.recursive) && !sym->attr.automatic + && !sym->attr.associate_var && sym->attr.save != SAVE_EXPLICIT && sym->attr.save != SAVE_IMPLICIT && INTEGER_CST_P (DECL_SIZE_UNIT (decl)) *************** gfc_trans_deferred_vars (gfc_symbol * pr *** 4923,4929 **** else if ((!sym->attr.dummy || sym->ts.deferred) && (sym->ts.type == BT_CLASS && CLASS_DATA (sym)->attr.class_pointer)) ! continue; else if ((!sym->attr.dummy || sym->ts.deferred) && (sym->attr.allocatable || (sym->attr.pointer && sym->attr.result) --- 4924,4930 ---- else if ((!sym->attr.dummy || sym->ts.deferred) && (sym->ts.type == BT_CLASS && CLASS_DATA (sym)->attr.class_pointer)) ! gfc_trans_class_array (sym, block); else if ((!sym->attr.dummy || sym->ts.deferred) && (sym->attr.allocatable || (sym->attr.pointer && sym->attr.result) *************** gfc_trans_deferred_vars (gfc_symbol * pr *** 5007,5012 **** --- 5008,5017 ---- tmp = NULL_TREE; } + /* Initialize descriptor's TKR information. */ + if (sym->ts.type == BT_CLASS) + gfc_trans_class_array (sym, block); + /* Deallocate when leaving the scope. Nullifying is not needed. */ if (!sym->attr.result && !sym->attr.dummy && !sym->attr.pointer *************** gfc_trans_use_stmts (gfc_namespace * ns) *** 5426,5432 **** /* Sometimes, generic interfaces wind up being over-ruled by a local symbol (see PR41062). */ if (!st->n.sym->attr.use_assoc) ! continue; if (st->n.sym->backend_decl && DECL_P (st->n.sym->backend_decl) --- 5431,5441 ---- /* Sometimes, generic interfaces wind up being over-ruled by a local symbol (see PR41062). */ if (!st->n.sym->attr.use_assoc) ! { ! *slot = error_mark_node; ! entry->decls->clear_slot (slot); ! continue; ! } if (st->n.sym->backend_decl && DECL_P (st->n.sym->backend_decl) *************** generate_coarray_sym_init (gfc_symbol *s *** 5624,5629 **** --- 5633,5639 ---- if (sym->attr.dummy || sym->attr.allocatable || !sym->attr.codimension || sym->attr.use_assoc || !sym->attr.referenced + || sym->attr.associate_var || sym->attr.select_type_temporary) return; *************** gfc_generate_return (void) *** 6564,6570 **** NULL_TREE, and a 'return' is generated without a variable. The following generates a 'return __result_XXX' where XXX is the function name. */ ! if (sym == sym->result && sym->attr.function) { result = gfc_get_fake_result_decl (sym, 0); result = fold_build2_loc (input_location, MODIFY_EXPR, --- 6574,6580 ---- NULL_TREE, and a 'return' is generated without a variable. The following generates a 'return __result_XXX' where XXX is the function name. */ ! if (sym == sym->result && sym->attr.function && !flag_f2c) { result = gfc_get_fake_result_decl (sym, 0); result = fold_build2_loc (input_location, MODIFY_EXPR, diff -Nrcpad gcc-11.3.0/gcc/fortran/trans-expr.c gcc-11.4.0/gcc/fortran/trans-expr.c *** gcc-11.3.0/gcc/fortran/trans-expr.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/fortran/trans-expr.c Mon May 29 08:46:29 2023 *************** gfc_conv_class_to_class (gfc_se *parmse, *** 1136,1143 **** return; /* Test for FULL_ARRAY. */ ! if (e->rank == 0 && gfc_expr_attr (e).codimension ! && gfc_expr_attr (e).dimension) full_array = true; else gfc_is_class_array_ref (e, &full_array); --- 1136,1145 ---- return; /* Test for FULL_ARRAY. */ ! if (e->rank == 0 ! && ((gfc_expr_attr (e).codimension && gfc_expr_attr (e).dimension) ! || (class_ts.u.derived->components->as ! && class_ts.u.derived->components->as->type == AS_ASSUMED_RANK))) full_array = true; else gfc_is_class_array_ref (e, &full_array); *************** gfc_conv_class_to_class (gfc_se *parmse, *** 1185,1192 **** && e->rank != class_ts.u.derived->components->as->rank) { if (e->rank == 0) ! gfc_add_modify (&parmse->post, gfc_class_data_get (parmse->expr), ! gfc_conv_descriptor_data_get (ctree)); else class_array_data_assign (&parmse->post, parmse->expr, ctree, true); } --- 1187,1198 ---- && e->rank != class_ts.u.derived->components->as->rank) { if (e->rank == 0) ! { ! tmp = gfc_class_data_get (parmse->expr); ! gfc_add_modify (&parmse->post, tmp, ! fold_convert (TREE_TYPE (tmp), ! gfc_conv_descriptor_data_get (ctree))); ! } else class_array_data_assign (&parmse->post, parmse->expr, ctree, true); } *************** gfc_copy_class_to_class (tree from, tree *** 1483,1488 **** --- 1489,1495 ---- name = (const char *)(DECL_NAME (to)->identifier.id.str); from_len = gfc_conv_descriptor_size (from_data, 1); + from_len = fold_convert (TREE_TYPE (orig_nelems), from_len); tmp = fold_build2_loc (input_location, NE_EXPR, logical_type_node, from_len, orig_nelems); msg = xasprintf ("Array bound mismatch for dimension %d " *************** gfc_conv_procedure_call (gfc_se * se, gf *** 5642,5648 **** gfc_charlen cl; gfc_expr *e; gfc_symbol *fsym; - stmtblock_t post; enum {MISSING = 0, ELEMENTAL, SCALAR, SCALAR_POINTER, ARRAY}; gfc_component *comp = NULL; int arglen; --- 5649,5654 ---- *************** gfc_conv_procedure_call (gfc_se * se, gf *** 5686,5692 **** --- 5692,5700 ---- else info = NULL; + stmtblock_t post, clobbers; gfc_init_block (&post); + gfc_init_block (&clobbers); gfc_init_interface_mapping (&mapping); if (!comp) { *************** gfc_conv_procedure_call (gfc_se * se, gf *** 6023,6029 **** && e->symtree->n.sym->attr.pointer)) && fsym && fsym->attr.target) /* Make sure the function only gets called once. */ ! gfc_conv_expr_reference (&parmse, e, false); else if (e->expr_type == EXPR_FUNCTION && e->symtree->n.sym->result && e->symtree->n.sym->result != e->symtree->n.sym --- 6031,6037 ---- && e->symtree->n.sym->attr.pointer)) && fsym && fsym->attr.target) /* Make sure the function only gets called once. */ ! gfc_conv_expr_reference (&parmse, e); else if (e->expr_type == EXPR_FUNCTION && e->symtree->n.sym->result && e->symtree->n.sym->result != e->symtree->n.sym *************** gfc_conv_procedure_call (gfc_se * se, gf *** 6130,6151 **** } else { ! bool add_clobber; ! add_clobber = fsym && fsym->attr.intent == INTENT_OUT ! && !fsym->attr.allocatable && !fsym->attr.pointer ! && e->symtree && e->symtree->n.sym ! && !e->symtree->n.sym->attr.dimension ! && !e->symtree->n.sym->attr.pointer ! && !e->symtree->n.sym->attr.allocatable ! /* See PR 41453. */ ! && !e->symtree->n.sym->attr.dummy ! /* FIXME - PR 87395 and PR 41453 */ ! && e->symtree->n.sym->attr.save == SAVE_NONE ! && !e->symtree->n.sym->attr.associate_var ! && e->ts.type != BT_CHARACTER && e->ts.type != BT_DERIVED ! && e->ts.type != BT_CLASS && !sym->attr.elemental; ! gfc_conv_expr_reference (&parmse, e, add_clobber); } /* Catch base objects that are not variables. */ if (e->ts.type == BT_CLASS --- 6138,6174 ---- } else { ! gfc_conv_expr_reference (&parmse, e); ! if (fsym ! && fsym->attr.intent == INTENT_OUT ! && !fsym->attr.allocatable ! && !fsym->attr.pointer ! && e->expr_type == EXPR_VARIABLE ! && e->ref == NULL ! && e->symtree ! && e->symtree->n.sym ! && !e->symtree->n.sym->attr.dimension ! && !e->symtree->n.sym->attr.pointer ! && !e->symtree->n.sym->attr.allocatable ! /* See PR 41453. */ ! && !e->symtree->n.sym->attr.dummy ! /* FIXME - PR 87395 and PR 41453 */ ! && e->symtree->n.sym->attr.save == SAVE_NONE ! && !e->symtree->n.sym->attr.associate_var ! && e->ts.type != BT_CHARACTER ! && e->ts.type != BT_DERIVED ! && e->ts.type != BT_CLASS ! && !sym->attr.elemental) ! { ! tree var; ! /* FIXME: This fails if var is passed by reference, see PR ! 41453. */ ! var = build_fold_indirect_ref_loc (input_location, ! parmse.expr); ! tree clobber = build_clobber (TREE_TYPE (var)); ! gfc_add_modify (&clobbers, var, clobber); ! } } /* Catch base objects that are not variables. */ if (e->ts.type == BT_CLASS *************** gfc_conv_procedure_call (gfc_se * se, gf *** 6154,6176 **** base_object = build_fold_indirect_ref_loc (input_location, parmse.expr); - /* A class array element needs converting back to be a - class object, if the formal argument is a class object. */ - if (fsym && fsym->ts.type == BT_CLASS - && e->ts.type == BT_CLASS - && ((CLASS_DATA (fsym)->as - && CLASS_DATA (fsym)->as->type == AS_ASSUMED_RANK) - || CLASS_DATA (e)->attr.dimension)) - gfc_conv_class_to_class (&parmse, e, fsym->ts, false, - fsym->attr.intent != INTENT_IN - && (CLASS_DATA (fsym)->attr.class_pointer - || CLASS_DATA (fsym)->attr.allocatable), - fsym->attr.optional - && e->expr_type == EXPR_VARIABLE - && e->symtree->n.sym->attr.optional, - CLASS_DATA (fsym)->attr.class_pointer - || CLASS_DATA (fsym)->attr.allocatable); - /* If an ALLOCATABLE dummy argument has INTENT(OUT) and is allocated on entry, it must be deallocated. */ if (fsym && fsym->attr.intent == INTENT_OUT --- 6177,6182 ---- *************** gfc_conv_procedure_call (gfc_se * se, gf *** 6230,6235 **** --- 6236,6258 ---- gfc_add_expr_to_block (&se->pre, tmp); } + /* A class array element needs converting back to be a + class object, if the formal argument is a class object. */ + if (fsym && fsym->ts.type == BT_CLASS + && e->ts.type == BT_CLASS + && ((CLASS_DATA (fsym)->as + && CLASS_DATA (fsym)->as->type == AS_ASSUMED_RANK) + || CLASS_DATA (e)->attr.dimension)) + gfc_conv_class_to_class (&parmse, e, fsym->ts, false, + fsym->attr.intent != INTENT_IN + && (CLASS_DATA (fsym)->attr.class_pointer + || CLASS_DATA (fsym)->attr.allocatable), + fsym->attr.optional + && e->expr_type == EXPR_VARIABLE + && e->symtree->n.sym->attr.optional, + CLASS_DATA (fsym)->attr.class_pointer + || CLASS_DATA (fsym)->attr.allocatable); + if (fsym && (fsym->ts.type == BT_DERIVED || fsym->ts.type == BT_ASSUMED) && e->ts.type == BT_CLASS *************** gfc_conv_procedure_call (gfc_se * se, gf *** 6808,6823 **** else goto end_pointer_check; if (fsym && fsym->ts.type == BT_CLASS) { ! tmp = build_fold_indirect_ref_loc (input_location, ! parmse.expr); tmp = gfc_class_data_get (tmp); if (GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (tmp))) tmp = gfc_conv_descriptor_data_get (tmp); } - else - tmp = parmse.expr; /* If the argument is passed by value, we need to strip the INDIRECT_REF. */ --- 6831,6845 ---- else goto end_pointer_check; + tmp = parmse.expr; if (fsym && fsym->ts.type == BT_CLASS) { ! if (POINTER_TYPE_P (TREE_TYPE (tmp))) ! tmp = build_fold_indirect_ref_loc (input_location, tmp); tmp = gfc_class_data_get (tmp); if (GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (tmp))) tmp = gfc_conv_descriptor_data_get (tmp); } /* If the argument is passed by value, we need to strip the INDIRECT_REF. */ *************** gfc_conv_procedure_call (gfc_se * se, gf *** 6973,6978 **** --- 6995,7001 ---- vec_safe_push (arglist, parmse.expr); } + gfc_add_block_to_block (&se->pre, &clobbers); gfc_finish_interface_mapping (&mapping, &se->pre, &se->post); if (comp) *************** gfc_trans_structure_assign (tree dest, g *** 8782,8789 **** return gfc_finish_block (&block); } ! void ! gfc_conv_union_initializer (vec *v, gfc_component *un, gfc_expr *init) { gfc_constructor *ctor; --- 8805,8812 ---- return gfc_finish_block (&block); } ! static void ! gfc_conv_union_initializer (vec *&v, gfc_component *un, gfc_expr *init) { gfc_constructor *ctor; *************** gfc_conv_expr_type (gfc_se * se, gfc_exp *** 9066,9072 **** values only. */ void ! gfc_conv_expr_reference (gfc_se * se, gfc_expr * expr, bool add_clobber) { gfc_ss *ss; tree var; --- 9089,9095 ---- values only. */ void ! gfc_conv_expr_reference (gfc_se * se, gfc_expr * expr) { gfc_ss *ss; tree var; *************** gfc_conv_expr_reference (gfc_se * se, gf *** 9106,9121 **** gfc_add_block_to_block (&se->pre, &se->post); se->expr = var; } - else if (add_clobber && expr->ref == NULL) - { - tree clobber; - tree var; - /* FIXME: This fails if var is passed by reference, see PR - 41453. */ - var = expr->symtree->n.sym->backend_decl; - clobber = build_clobber (TREE_TYPE (var)); - gfc_add_modify (&se->pre, var, clobber); - } return; } --- 9129,9134 ---- *************** trans_class_assignment (stmtblock_t *blo *** 11021,11026 **** --- 11034,11042 ---- class_han = GFC_CLASS_TYPE_P (TREE_TYPE (lse->expr)) ? gfc_class_data_get (lse->expr) : lse->expr; + if (!POINTER_TYPE_P (TREE_TYPE (class_han))) + class_han = gfc_build_addr_expr (NULL_TREE, class_han); + /* Allocate block. */ gfc_init_block (&alloc); gfc_allocate_using_malloc (&alloc, class_han, size, NULL_TREE); diff -Nrcpad gcc-11.3.0/gcc/fortran/trans-intrinsic.c gcc-11.4.0/gcc/fortran/trans-intrinsic.c *** gcc-11.3.0/gcc/fortran/trans-intrinsic.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/fortran/trans-intrinsic.c Mon May 29 08:46:29 2023 *************** gfc_conv_intrinsic_ibits (gfc_se * se, g *** 6645,6650 **** --- 6645,6651 ---- tree type; tree tmp; tree mask; + tree num_bits, cond; gfc_conv_intrinsic_function_args (se, expr, args, 3); type = TREE_TYPE (args[0]); *************** gfc_conv_intrinsic_ibits (gfc_se * se, g *** 6685,6692 **** --- 6686,6702 ---- "in intrinsic IBITS", tmp1, tmp2, nbits); } + /* The Fortran standard allows (shift width) LEN <= BIT_SIZE(I), whereas + gcc requires a shift width < BIT_SIZE(I), so we have to catch this + special case. See also gfc_conv_intrinsic_ishft (). */ + num_bits = build_int_cst (TREE_TYPE (args[2]), TYPE_PRECISION (type)); + mask = build_int_cst (type, -1); mask = fold_build2_loc (input_location, LSHIFT_EXPR, type, mask, args[2]); + cond = fold_build2_loc (input_location, GE_EXPR, logical_type_node, args[2], + num_bits); + mask = fold_build3_loc (input_location, COND_EXPR, type, cond, + build_int_cst (type, 0), mask); mask = fold_build1_loc (input_location, BIT_NOT_EXPR, type, mask); tmp = fold_build2_loc (input_location, RSHIFT_EXPR, type, args[0], args[1]); diff -Nrcpad gcc-11.3.0/gcc/fortran/trans-openmp.c gcc-11.4.0/gcc/fortran/trans-openmp.c *** gcc-11.3.0/gcc/fortran/trans-openmp.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/fortran/trans-openmp.c Mon May 29 08:46:29 2023 *************** gfc_trans_omp_clauses (stmtblock_t *bloc *** 2747,2753 **** || GFC_DECL_CRAY_POINTEE (decl) || GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (TREE_TYPE (decl))) ! || n->sym->ts.type == BT_DERIVED)) { tree orig_decl = decl; --- 2747,2755 ---- || GFC_DECL_CRAY_POINTEE (decl) || GFC_DESCRIPTOR_TYPE_P (TREE_TYPE (TREE_TYPE (decl))) ! || (n->sym->ts.type == BT_DERIVED ! && (n->sym->ts.u.derived->ts.f90_type ! != BT_VOID)))) { tree orig_decl = decl; diff -Nrcpad gcc-11.3.0/gcc/fortran/trans-types.c gcc-11.4.0/gcc/fortran/trans-types.c *** gcc-11.3.0/gcc/fortran/trans-types.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/fortran/trans-types.c Mon May 29 08:46:29 2023 *************** create_fn_spec (gfc_symbol *sym, tree fn *** 2981,2992 **** for (f = gfc_sym_get_dummy_args (sym); f; f = f->next) if (spec_len < sizeof (spec)) { ! if (!f->sym || f->sym->attr.pointer || f->sym->attr.target || f->sym->attr.external || f->sym->attr.cray_pointer || (f->sym->ts.type == BT_DERIVED && (f->sym->ts.u.derived->attr.proc_pointer_comp || f->sym->ts.u.derived->attr.pointer_comp)) ! || (f->sym->ts.type == BT_CLASS && (CLASS_DATA (f->sym)->ts.u.derived->attr.proc_pointer_comp || CLASS_DATA (f->sym)->ts.u.derived->attr.pointer_comp)) || (f->sym->ts.type == BT_INTEGER && f->sym->ts.is_c_interop)) --- 2981,3003 ---- for (f = gfc_sym_get_dummy_args (sym); f; f = f->next) if (spec_len < sizeof (spec)) { ! bool is_class = false; ! bool is_pointer = false; ! ! if (f->sym) ! { ! is_class = f->sym->ts.type == BT_CLASS && CLASS_DATA (f->sym) ! && f->sym->attr.class_ok; ! is_pointer = is_class ? CLASS_DATA (f->sym)->attr.class_pointer ! : f->sym->attr.pointer; ! } ! ! if (f->sym == NULL || is_pointer || f->sym->attr.target || f->sym->attr.external || f->sym->attr.cray_pointer || (f->sym->ts.type == BT_DERIVED && (f->sym->ts.u.derived->attr.proc_pointer_comp || f->sym->ts.u.derived->attr.pointer_comp)) ! || (is_class && (CLASS_DATA (f->sym)->ts.u.derived->attr.proc_pointer_comp || CLASS_DATA (f->sym)->ts.u.derived->attr.pointer_comp)) || (f->sym->ts.type == BT_INTEGER && f->sym->ts.is_c_interop)) diff -Nrcpad gcc-11.3.0/gcc/fortran/trans.h gcc-11.4.0/gcc/fortran/trans.h *** gcc-11.3.0/gcc/fortran/trans.h Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/fortran/trans.h Mon May 29 08:46:29 2023 *************** tree gfc_build_compare_string (tree, tre *** 500,507 **** void gfc_conv_expr (gfc_se * se, gfc_expr * expr); void gfc_conv_expr_val (gfc_se * se, gfc_expr * expr); void gfc_conv_expr_lhs (gfc_se * se, gfc_expr * expr); ! void gfc_conv_expr_reference (gfc_se * se, gfc_expr * expr, ! bool add_clobber = false); void gfc_conv_expr_type (gfc_se * se, gfc_expr *, tree); --- 500,506 ---- void gfc_conv_expr (gfc_se * se, gfc_expr * expr); void gfc_conv_expr_val (gfc_se * se, gfc_expr * expr); void gfc_conv_expr_lhs (gfc_se * se, gfc_expr * expr); ! void gfc_conv_expr_reference (gfc_se * se, gfc_expr * expr); void gfc_conv_expr_type (gfc_se * se, gfc_expr *, tree); diff -Nrcpad gcc-11.3.0/gcc/function.c gcc-11.4.0/gcc/function.c *** gcc-11.3.0/gcc/function.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/function.c Mon May 29 08:46:29 2023 *************** allocate_struct_function (tree fndecl, b *** 4862,4868 **** instead of just setting it. */ void ! push_struct_function (tree fndecl) { /* When in_dummy_function we might be in the middle of a pop_cfun and current_function_decl and cfun may not match. */ --- 4862,4868 ---- instead of just setting it. */ void ! push_struct_function (tree fndecl, bool abstract_p) { /* When in_dummy_function we might be in the middle of a pop_cfun and current_function_decl and cfun may not match. */ *************** push_struct_function (tree fndecl) *** 4871,4877 **** || (cfun && current_function_decl == cfun->decl)); cfun_stack.safe_push (cfun); current_function_decl = fndecl; ! allocate_struct_function (fndecl, false); } /* Reset crtl and other non-struct-function variables to defaults as --- 4871,4877 ---- || (cfun && current_function_decl == cfun->decl)); cfun_stack.safe_push (cfun); current_function_decl = fndecl; ! allocate_struct_function (fndecl, abstract_p); } /* Reset crtl and other non-struct-function variables to defaults as *************** stack_protect_epilogue (void) *** 5032,5040 **** --- 5032,5043 ---- PARMS_HAVE_CLEANUPS is nonzero if there are cleanups associated with the function's parameters, which must be run at any return statement. */ + bool currently_expanding_function_start; void expand_function_start (tree subr) { + currently_expanding_function_start = true; + /* Make sure volatile mem refs aren't considered valid operands of arithmetic insns. */ init_recog_no_volatile (); *************** expand_function_start (tree subr) *** 5227,5232 **** --- 5230,5237 ---- /* If we are doing generic stack checking, the probe should go here. */ if (flag_stack_check == GENERIC_STACK_CHECK) stack_check_probe_note = emit_note (NOTE_INSN_DELETED); + + currently_expanding_function_start = false; } void diff -Nrcpad gcc-11.3.0/gcc/function.h gcc-11.4.0/gcc/function.h *** gcc-11.3.0/gcc/function.h Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/function.h Mon May 29 08:46:29 2023 *************** extern void pop_cfun (void); *** 676,682 **** extern int get_next_funcdef_no (void); extern int get_last_funcdef_no (void); extern void allocate_struct_function (tree, bool); ! extern void push_struct_function (tree fndecl); extern void push_dummy_function (bool); extern void pop_dummy_function (void); extern void init_dummy_function_start (void); --- 676,682 ---- extern int get_next_funcdef_no (void); extern int get_last_funcdef_no (void); extern void allocate_struct_function (tree, bool); ! extern void push_struct_function (tree fndecl, bool = false); extern void push_dummy_function (bool); extern void pop_dummy_function (void); extern void init_dummy_function_start (void); *************** extern const char *current_function_name *** 712,715 **** --- 712,717 ---- extern void used_types_insert (tree); + extern bool currently_expanding_function_start; + #endif /* GCC_FUNCTION_H */ diff -Nrcpad gcc-11.3.0/gcc/gcc.c gcc-11.4.0/gcc/gcc.c *** gcc-11.3.0/gcc/gcc.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/gcc.c Mon May 29 08:46:29 2023 *************** CC recognizes how to compile each input *** 27,32 **** --- 27,33 ---- Once it knows which kind of compilation to perform, the procedure for compilation is specified by a string called a "spec". */ + #define INCLUDE_STRING #include "config.h" #include "system.h" #include "coretypes.h" *************** compilation is specified by a string cal *** 43,48 **** --- 44,50 ---- #include "opts.h" #include "filenames.h" #include "spellcheck.h" + #include "opts-jobserver.h" *************** driver_handle_option (struct gcc_options *** 4487,4496 **** case OPT_static_libgcc: case OPT_shared_libgcc: case OPT_static_libgfortran: case OPT_static_libstdc__: /* These are always valid, since gcc.c itself understands the ! first two, gfortranspec.c understands -static-libgfortran and ! g++spec.c understands -static-libstdc++ */ validated = true; break; --- 4489,4500 ---- case OPT_static_libgcc: case OPT_shared_libgcc: case OPT_static_libgfortran: + case OPT_static_libphobos: case OPT_static_libstdc__: /* These are always valid, since gcc.c itself understands the ! first two, gfortranspec.c understands -static-libgfortran, ! d-spec.cc understands -static-libphobos, and g++spec.c ! understands -static-libstdc++ */ validated = true; break; *************** driver::final_actions () const *** 9071,9108 **** void driver::detect_jobserver () const { ! /* Detect jobserver and drop it if it's not working. */ ! const char *makeflags = env.get ("MAKEFLAGS"); ! if (makeflags != NULL) ! { ! const char *needle = "--jobserver-auth="; ! const char *n = strstr (makeflags, needle); ! if (n != NULL) ! { ! int rfd = -1; ! int wfd = -1; ! ! bool jobserver ! = (sscanf (n + strlen (needle), "%d,%d", &rfd, &wfd) == 2 ! && rfd > 0 ! && wfd > 0 ! && is_valid_fd (rfd) ! && is_valid_fd (wfd)); ! ! /* Drop the jobserver if it's not working now. */ ! if (!jobserver) ! { ! unsigned offset = n - makeflags; ! char *dup = xstrdup (makeflags); ! dup[offset] = '\0'; ! ! const char *space = strchr (makeflags + offset, ' '); ! if (space != NULL) ! strcpy (dup + offset, space); ! xputenv (concat ("MAKEFLAGS=", dup, NULL)); ! } ! } ! } } /* Determine what the exit code of the driver should be. */ --- 9075,9083 ---- void driver::detect_jobserver () const { ! jobserver_info jinfo; ! if (!jinfo.is_active && !jinfo.skipped_makeflags.empty ()) ! xputenv (xstrdup (jinfo.skipped_makeflags.c_str ())); } /* Determine what the exit code of the driver should be. */ diff -Nrcpad gcc-11.3.0/gcc/generic-match-head.c gcc-11.4.0/gcc/generic-match-head.c *** gcc-11.3.0/gcc/generic-match-head.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/generic-match-head.c Mon May 29 08:46:29 2023 *************** along with GCC; see the file COPYING3. *** 37,42 **** --- 37,44 ---- #include "gimplify.h" #include "optabs-tree.h" #include "dbgcnt.h" + #include "tm.h" + #include "tree-pass.h" /* Routine to determine if the types T1 and T2 are effectively the same for GENERIC. If T1 or T2 is not a type, the test *************** single_use (tree t ATTRIBUTE_UNUSED) *** 68,74 **** static inline bool canonicalize_math_p () { ! return true; } /* Return true if math operations that are beneficial only after --- 70,76 ---- static inline bool canonicalize_math_p () { ! return !cfun || (cfun->curr_properties & PROP_gimple_opt_math) == 0; } /* Return true if math operations that are beneficial only after *************** canonicalize_math_after_vectorization_p *** 87,93 **** static inline bool optimize_vectors_before_lowering_p () { ! return true; } /* Return true if successive divisions can be optimized. --- 89,95 ---- static inline bool optimize_vectors_before_lowering_p () { ! return !cfun || (cfun->curr_properties & PROP_gimple_lvec) == 0; } /* Return true if successive divisions can be optimized. diff -Nrcpad gcc-11.3.0/gcc/gengtype-lex.c gcc-11.4.0/gcc/gengtype-lex.c *** gcc-11.3.0/gcc/gengtype-lex.c Thu Apr 21 08:00:40 2022 --- gcc-11.4.0/gcc/gengtype-lex.c Mon May 29 08:50:36 2023 *************** int yy_flex_debug = 0; *** 1188,1194 **** #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; ! #line 1 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" /* -*- indented-text -*- */ /* Process source files and output type information. Copyright (C) 2002-2021 Free Software Foundation, Inc. --- 1188,1194 ---- #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; ! #line 1 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" /* -*- indented-text -*- */ /* Process source files and output type information. Copyright (C) 2002-2021 Free Software Foundation, Inc. *************** You should have received a copy of the G *** 1209,1215 **** along with GCC; see the file COPYING3. If not see . */ #define YY_NO_INPUT 1 ! #line 24 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" #ifdef HOST_GENERATOR_FILE #include "config.h" #define GENERATOR_FILE 1 --- 1209,1215 ---- along with GCC; see the file COPYING3. If not see . */ #define YY_NO_INPUT 1 ! #line 24 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" #ifdef HOST_GENERATOR_FILE #include "config.h" #define GENERATOR_FILE 1 *************** update_lineno (const char *l, size_t len *** 1238,1244 **** } #line 1235 "gengtype-lex.c" ! #line 59 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" /* Include '::' in identifiers to capture C++ scope qualifiers. */ #line 1239 "gengtype-lex.c" --- 1238,1244 ---- } #line 1235 "gengtype-lex.c" ! #line 59 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" /* Include '::' in identifiers to capture C++ scope qualifiers. */ #line 1239 "gengtype-lex.c" *************** YY_DECL *** 1462,1468 **** } { ! #line 67 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" /* Do this on entry to yylex(): */ *yylval = 0; --- 1462,1468 ---- } { ! #line 67 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" /* Do this on entry to yylex(): */ *yylval = 0; *************** YY_LINENO_REWIND_TO(yy_cp - 1); *** 1534,1540 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 78 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return TYPEDEF; --- 1534,1540 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 78 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return TYPEDEF; *************** YY_LINENO_REWIND_TO(yy_cp - 1); *** 1547,1553 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 82 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return STRUCT; --- 1547,1553 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 82 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return STRUCT; *************** YY_LINENO_REWIND_TO(yy_cp - 1); *** 1560,1566 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 86 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return UNION; --- 1560,1566 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 86 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return UNION; *************** YY_LINENO_REWIND_TO(yy_cp - 1); *** 1573,1579 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 90 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return STRUCT; --- 1573,1579 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 90 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return STRUCT; *************** YY_LINENO_REWIND_TO(yy_cp - 1); *** 1586,1592 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 94 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return EXTERN; --- 1586,1592 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 94 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return EXTERN; *************** YY_LINENO_REWIND_TO(yy_cp - 1); *** 1599,1605 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 98 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return STATIC; --- 1599,1605 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 98 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return STATIC; *************** YY_RULE_SETUP *** 1610,1634 **** case 7: YY_RULE_SETUP ! #line 106 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { BEGIN(in_struct_comment); } YY_BREAK case 8: /* rule 8 can match eol */ YY_RULE_SETUP ! #line 107 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 9: /* rule 9 can match eol */ YY_RULE_SETUP ! #line 109 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { update_lineno (yytext, yyleng); } YY_BREAK case 10: /* rule 10 can match eol */ YY_RULE_SETUP ! #line 110 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 11: --- 1610,1634 ---- case 7: YY_RULE_SETUP ! #line 106 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { BEGIN(in_struct_comment); } YY_BREAK case 8: /* rule 8 can match eol */ YY_RULE_SETUP ! #line 107 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 9: /* rule 9 can match eol */ YY_RULE_SETUP ! #line 109 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { update_lineno (yytext, yyleng); } YY_BREAK case 10: /* rule 10 can match eol */ YY_RULE_SETUP ! #line 110 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 11: *************** YY_LINENO_REWIND_TO(yy_bp + 5); *** 1638,1644 **** (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 112 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" /* don't care */ YY_BREAK case 12: --- 1638,1644 ---- (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 112 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" /* don't care */ YY_BREAK case 12: *************** case 12: *** 1647,1663 **** YY_LINENO_REWIND_TO(yy_cp - 1); (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ ! #line 114 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" case 13: /* rule 13 can match eol */ ! #line 115 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" case 14: /* rule 14 can match eol */ ! #line 116 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" case 15: /* rule 15 can match eol */ YY_RULE_SETUP ! #line 116 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext, yyleng, yyleng + 1); return IGNORABLE_CXX_KEYWORD; --- 1647,1663 ---- YY_LINENO_REWIND_TO(yy_cp - 1); (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ ! #line 114 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" case 13: /* rule 13 can match eol */ ! #line 115 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" case 14: /* rule 14 can match eol */ ! #line 116 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" case 15: /* rule 15 can match eol */ YY_RULE_SETUP ! #line 116 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext, yyleng, yyleng + 1); return IGNORABLE_CXX_KEYWORD; *************** YY_LINENO_REWIND_TO(yy_bp + 3); *** 1670,1676 **** (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 120 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { return GTY_TOKEN; } YY_BREAK case 17: --- 1670,1676 ---- (yy_c_buf_p) = yy_cp = yy_bp + 3; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 120 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { return GTY_TOKEN; } YY_BREAK case 17: *************** YY_LINENO_REWIND_TO(yy_bp + 5); *** 1680,1686 **** (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 121 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { return UNION; } YY_BREAK case 18: --- 1680,1686 ---- (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 121 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { return UNION; } YY_BREAK case 18: *************** YY_LINENO_REWIND_TO(yy_bp + 6); *** 1690,1696 **** (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 122 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { return STRUCT; } YY_BREAK case 19: --- 1690,1696 ---- (yy_c_buf_p) = yy_cp = yy_bp + 6; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 122 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { return STRUCT; } YY_BREAK case 19: *************** YY_LINENO_REWIND_TO(yy_bp + 5); *** 1700,1706 **** (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 123 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { return STRUCT; } YY_BREAK case 20: --- 1700,1706 ---- (yy_c_buf_p) = yy_cp = yy_bp + 5; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 123 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { return STRUCT; } YY_BREAK case 20: *************** YY_LINENO_REWIND_TO(yy_bp + 7); *** 1710,1716 **** (yy_c_buf_p) = yy_cp = yy_bp + 7; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 124 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { return TYPEDEF; } YY_BREAK case 21: --- 1710,1716 ---- (yy_c_buf_p) = yy_cp = yy_bp + 7; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 124 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { return TYPEDEF; } YY_BREAK case 21: *************** YY_LINENO_REWIND_TO(yy_bp + 4); *** 1720,1726 **** (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 125 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { return ENUM; } YY_BREAK case 22: --- 1720,1726 ---- (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 125 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { return ENUM; } YY_BREAK case 22: *************** YY_LINENO_REWIND_TO(yy_bp + 9); *** 1730,1736 **** (yy_c_buf_p) = yy_cp = yy_bp + 9; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 126 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { return PTR_ALIAS; } YY_BREAK case 23: --- 1730,1736 ---- (yy_c_buf_p) = yy_cp = yy_bp + 9; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 126 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { return PTR_ALIAS; } YY_BREAK case 23: *************** YY_LINENO_REWIND_TO(yy_bp + 10); *** 1740,1746 **** (yy_c_buf_p) = yy_cp = yy_bp + 10; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 127 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { return NESTED_PTR; } YY_BREAK case 24: --- 1740,1746 ---- (yy_c_buf_p) = yy_cp = yy_bp + 10; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 127 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { return NESTED_PTR; } YY_BREAK case 24: *************** YY_LINENO_REWIND_TO(yy_bp + 4); *** 1750,1761 **** (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 128 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { return USER_GTY; } YY_BREAK case 25: YY_RULE_SETUP ! #line 129 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1); return NUM; --- 1750,1761 ---- (yy_c_buf_p) = yy_cp = yy_bp + 4; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 128 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { return USER_GTY; } YY_BREAK case 25: YY_RULE_SETUP ! #line 129 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1); return NUM; *************** case 26: *** 1767,1777 **** YY_LINENO_REWIND_TO(yy_cp - 1); (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ ! #line 135 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" case 27: /* rule 27 can match eol */ YY_RULE_SETUP ! #line 135 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { size_t len; --- 1767,1777 ---- YY_LINENO_REWIND_TO(yy_cp - 1); (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ ! #line 135 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" case 27: /* rule 27 can match eol */ YY_RULE_SETUP ! #line 135 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { size_t len; *************** YY_LINENO_REWIND_TO(yy_cp - 1); *** 1790,1796 **** (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 146 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1); return ID; --- 1790,1796 ---- (yy_c_buf_p) = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 146 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext, yyleng, yyleng+1); return ID; *************** YY_RULE_SETUP *** 1799,1805 **** case 29: /* rule 29 can match eol */ YY_RULE_SETUP ! #line 151 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1); return STRING; --- 1799,1805 ---- case 29: /* rule 29 can match eol */ YY_RULE_SETUP ! #line 151 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1); return STRING; *************** YY_RULE_SETUP *** 1809,1815 **** case 30: /* rule 30 can match eol */ YY_RULE_SETUP ! #line 156 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1); return ARRAY; --- 1809,1815 ---- case 30: /* rule 30 can match eol */ YY_RULE_SETUP ! #line 156 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng-1); return ARRAY; *************** YY_RULE_SETUP *** 1818,1824 **** case 31: /* rule 31 can match eol */ YY_RULE_SETUP ! #line 160 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng); return CHAR; --- 1818,1824 ---- case 31: /* rule 31 can match eol */ YY_RULE_SETUP ! #line 160 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { *yylval = XDUPVAR (const char, yytext+1, yyleng-2, yyleng); return CHAR; *************** YY_RULE_SETUP *** 1826,1849 **** YY_BREAK case 32: YY_RULE_SETUP ! #line 165 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { return ELLIPSIS; } YY_BREAK case 33: YY_RULE_SETUP ! #line 166 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { return yytext[0]; } YY_BREAK /* ignore pp-directives */ case 34: /* rule 34 can match eol */ YY_RULE_SETUP ! #line 169 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" {lexer_line.line++;} YY_BREAK case 35: YY_RULE_SETUP ! #line 171 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { error_at_line (&lexer_line, "unexpected character `%s'", yytext); } --- 1826,1849 ---- YY_BREAK case 32: YY_RULE_SETUP ! #line 165 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { return ELLIPSIS; } YY_BREAK case 33: YY_RULE_SETUP ! #line 166 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { return yytext[0]; } YY_BREAK /* ignore pp-directives */ case 34: /* rule 34 can match eol */ YY_RULE_SETUP ! #line 169 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" {lexer_line.line++;} YY_BREAK case 35: YY_RULE_SETUP ! #line 171 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { error_at_line (&lexer_line, "unexpected character `%s'", yytext); } *************** YY_RULE_SETUP *** 1851,1886 **** case 36: YY_RULE_SETUP ! #line 176 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { BEGIN(in_comment); } YY_BREAK case 37: /* rule 37 can match eol */ YY_RULE_SETUP ! #line 177 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 38: /* rule 38 can match eol */ YY_RULE_SETUP ! #line 178 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 39: ! #line 180 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" case 40: /* rule 40 can match eol */ ! #line 181 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" case 41: /* rule 41 can match eol */ YY_RULE_SETUP ! #line 181 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 42: /* rule 42 can match eol */ YY_RULE_SETUP ! #line 182 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { update_lineno (yytext, yyleng); } YY_BREAK case 43: --- 1851,1886 ---- case 36: YY_RULE_SETUP ! #line 176 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { BEGIN(in_comment); } YY_BREAK case 37: /* rule 37 can match eol */ YY_RULE_SETUP ! #line 177 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 38: /* rule 38 can match eol */ YY_RULE_SETUP ! #line 178 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 39: ! #line 180 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" case 40: /* rule 40 can match eol */ ! #line 181 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" case 41: /* rule 41 can match eol */ YY_RULE_SETUP ! #line 181 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 42: /* rule 42 can match eol */ YY_RULE_SETUP ! #line 182 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { update_lineno (yytext, yyleng); } YY_BREAK case 43: *************** YY_LINENO_REWIND_TO(yy_bp + 1); *** 1890,1910 **** (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 183 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 44: /* rule 44 can match eol */ YY_RULE_SETUP ! #line 186 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 45: ! #line 188 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" case 46: YY_RULE_SETUP ! #line 188 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 47: --- 1890,1910 ---- (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 183 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 44: /* rule 44 can match eol */ YY_RULE_SETUP ! #line 186 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 45: ! #line 188 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" case 46: YY_RULE_SETUP ! #line 188 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 47: *************** YY_LINENO_REWIND_TO(yy_bp + 1); *** 1914,1938 **** (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 189 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 48: YY_RULE_SETUP ! #line 192 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { BEGIN(INITIAL); } YY_BREAK case 49: YY_RULE_SETUP ! #line 193 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { BEGIN(in_struct); } YY_BREAK case 50: ! #line 196 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" case 51: YY_RULE_SETUP ! #line 196 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" { error_at_line (&lexer_line, "unterminated comment or string; unexpected EOF"); --- 1914,1938 ---- (yy_c_buf_p) = yy_cp = yy_bp + 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP ! #line 189 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 48: YY_RULE_SETUP ! #line 192 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { BEGIN(INITIAL); } YY_BREAK case 49: YY_RULE_SETUP ! #line 193 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { BEGIN(in_struct); } YY_BREAK case 50: ! #line 196 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" case 51: YY_RULE_SETUP ! #line 196 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" { error_at_line (&lexer_line, "unterminated comment or string; unexpected EOF"); *************** YY_RULE_SETUP *** 1941,1952 **** case 52: /* rule 52 can match eol */ YY_RULE_SETUP ! #line 201 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 53: YY_RULE_SETUP ! #line 203 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK #line 1947 "gengtype-lex.c" --- 1941,1952 ---- case 52: /* rule 52 can match eol */ YY_RULE_SETUP ! #line 201 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 53: YY_RULE_SETUP ! #line 203 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK #line 1947 "gengtype-lex.c" *************** void yyfree (void * ptr ) *** 2924,2930 **** #define YYTABLES_NAME "yytables" ! #line 203 "/home/rguenther/src/releases/gcc-11.3.0/gcc-11.3.0/gcc/gengtype-lex.l" void --- 2924,2930 ---- #define YYTABLES_NAME "yytables" ! #line 203 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" void diff -Nrcpad gcc-11.3.0/gcc/genmatch.c gcc-11.4.0/gcc/genmatch.c *** gcc-11.3.0/gcc/genmatch.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/genmatch.c Mon May 29 08:46:29 2023 *************** expr::gen_transform (FILE *f, int indent *** 2526,2532 **** for (unsigned i = 0; i < ops.length (); ++i) fprintf (f, ", _o%d[%u]", depth, i); fprintf (f, ");\n"); ! fprintf_indent (f, indent, "tem_op.resimplify (lseq, valueize);\n"); fprintf_indent (f, indent, "_r%d = maybe_push_res_to_seq (&tem_op, %s);\n", depth, !force_leaf ? "lseq" : "NULL"); --- 2526,2533 ---- for (unsigned i = 0; i < ops.length (); ++i) fprintf (f, ", _o%d[%u]", depth, i); fprintf (f, ");\n"); ! fprintf_indent (f, indent, "tem_op.resimplify (%s, valueize);\n", ! !force_leaf ? "lseq" : "NULL"); fprintf_indent (f, indent, "_r%d = maybe_push_res_to_seq (&tem_op, %s);\n", depth, !force_leaf ? "lseq" : "NULL"); *************** dt_simplify::gen_1 (FILE *f, int indent, *** 3428,3434 **** if (!is_predicate) { fprintf_indent (f, indent, ! "res_op->resimplify (lseq, valueize);\n"); if (e->force_leaf) fprintf_indent (f, indent, "if (!maybe_push_res_to_seq (res_op, NULL)) " --- 3429,3436 ---- if (!is_predicate) { fprintf_indent (f, indent, ! "res_op->resimplify (%s, valueize);\n", ! !e->force_leaf ? "lseq" : "NULL"); if (e->force_leaf) fprintf_indent (f, indent, "if (!maybe_push_res_to_seq (res_op, NULL)) " diff -Nrcpad gcc-11.3.0/gcc/gimple-array-bounds.cc gcc-11.4.0/gcc/gimple-array-bounds.cc *** gcc-11.3.0/gcc/gimple-array-bounds.cc Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/gimple-array-bounds.cc Mon May 29 08:46:29 2023 *************** array_bounds_checker::check_mem_ref (loc *** 783,789 **** int i = 0; if (extrema[i] < -arrbounds[1] || extrema[i = 1] > ubound) { ! HOST_WIDE_INT tmpidx = extrema[i].to_shwi () / eltsize.to_shwi (); if (warning_at (location, OPT_Warray_bounds, "intermediate array offset %wi is outside array bounds " --- 783,789 ---- int i = 0; if (extrema[i] < -arrbounds[1] || extrema[i = 1] > ubound) { ! HOST_WIDE_INT tmpidx = (extrema[i] / eltsize).to_shwi (); if (warning_at (location, OPT_Warray_bounds, "intermediate array offset %wi is outside array bounds " diff -Nrcpad gcc-11.3.0/gcc/gimple-isel.cc gcc-11.4.0/gcc/gimple-isel.cc *** gcc-11.3.0/gcc/gimple-isel.cc Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/gimple-isel.cc Mon May 29 08:46:29 2023 *************** along with GCC; see the file COPYING3. *** 43,70 **** /* Expand all ARRAY_REF(VIEW_CONVERT_EXPR) gimple assignments into calls to internal function based on vector type of selected expansion. i.e.: ! VIEW_CONVERT_EXPR(u)[_1] = = i_4(D); => _7 = u; _8 = .VEC_SET (_7, i_4(D), _1); u = _8; */ ! static gimple * ! gimple_expand_vec_set_expr (gimple_stmt_iterator *gsi) { enum tree_code code; gcall *new_stmt = NULL; gassign *ass_stmt = NULL; /* Only consider code == GIMPLE_ASSIGN. */ gassign *stmt = dyn_cast (gsi_stmt (*gsi)); if (!stmt) ! return NULL; tree lhs = gimple_assign_lhs (stmt); code = TREE_CODE (lhs); if (code != ARRAY_REF) ! return NULL; tree val = gimple_assign_rhs1 (stmt); tree op0 = TREE_OPERAND (lhs, 0); --- 43,71 ---- /* Expand all ARRAY_REF(VIEW_CONVERT_EXPR) gimple assignments into calls to internal function based on vector type of selected expansion. i.e.: ! VIEW_CONVERT_EXPR(u)[_1] = i_4(D); => _7 = u; _8 = .VEC_SET (_7, i_4(D), _1); u = _8; */ ! static bool ! gimple_expand_vec_set_expr (struct function *fun, gimple_stmt_iterator *gsi) { enum tree_code code; gcall *new_stmt = NULL; gassign *ass_stmt = NULL; + bool cfg_changed = false; /* Only consider code == GIMPLE_ASSIGN. */ gassign *stmt = dyn_cast (gsi_stmt (*gsi)); if (!stmt) ! return false; tree lhs = gimple_assign_lhs (stmt); code = TREE_CODE (lhs); if (code != ARRAY_REF) ! return false; tree val = gimple_assign_rhs1 (stmt); tree op0 = TREE_OPERAND (lhs, 0); *************** gimple_expand_vec_set_expr (gimple_stmt_ *** 76,82 **** tree pos = TREE_OPERAND (lhs, 1); tree view_op0 = TREE_OPERAND (op0, 0); machine_mode outermode = TYPE_MODE (TREE_TYPE (view_op0)); ! if (auto_var_in_fn_p (view_op0, cfun->decl) && !TREE_ADDRESSABLE (view_op0) && can_vec_set_var_idx_p (outermode)) { location_t loc = gimple_location (stmt); --- 77,83 ---- tree pos = TREE_OPERAND (lhs, 1); tree view_op0 = TREE_OPERAND (op0, 0); machine_mode outermode = TYPE_MODE (TREE_TYPE (view_op0)); ! if (auto_var_in_fn_p (view_op0, fun->decl) && !TREE_ADDRESSABLE (view_op0) && can_vec_set_var_idx_p (outermode)) { location_t loc = gimple_location (stmt); *************** gimple_expand_vec_set_expr (gimple_stmt_ *** 98,116 **** gimple_set_location (ass_stmt, loc); gsi_insert_before (gsi, ass_stmt, GSI_SAME_STMT); gimple_move_vops (ass_stmt, stmt); ! gsi_remove (gsi, true); } } ! return ass_stmt; } /* Expand all VEC_COND_EXPR gimple assignments into calls to internal function based on type of selected expansion. */ static gimple * ! gimple_expand_vec_cond_expr (gimple_stmt_iterator *gsi, hash_map *vec_cond_ssa_name_uses) { tree lhs, op0a = NULL_TREE, op0b = NULL_TREE; --- 99,121 ---- gimple_set_location (ass_stmt, loc); gsi_insert_before (gsi, ass_stmt, GSI_SAME_STMT); + basic_block bb = gimple_bb (stmt); gimple_move_vops (ass_stmt, stmt); ! if (gsi_remove (gsi, true) ! && gimple_purge_dead_eh_edges (bb)) ! cfg_changed = true; ! *gsi = gsi_for_stmt (ass_stmt); } } ! return cfg_changed; } /* Expand all VEC_COND_EXPR gimple assignments into calls to internal function based on type of selected expansion. */ static gimple * ! gimple_expand_vec_cond_expr (struct function *fun, gimple_stmt_iterator *gsi, hash_map *vec_cond_ssa_name_uses) { tree lhs, op0a = NULL_TREE, op0b = NULL_TREE; *************** gimple_expand_vec_cond_expr (gimple_stmt *** 191,197 **** tcode); /* Try to fold x CMP y ? -1 : 0 to x CMP y. */ - if (can_compute_op0 && integer_minus_onep (op1) && integer_zerop (op2) --- 196,201 ---- *************** gimple_expand_vec_cond_expr (gimple_stmt *** 203,216 **** return new_stmt; } ! if (can_compute_op0 ! && used_vec_cond_exprs >= 2 ! && (get_vcond_mask_icode (mode, TYPE_MODE (op0_type)) ! != CODE_FOR_nothing)) ! { ! /* Keep the SSA name and use vcond_mask. */ ! tcode = TREE_CODE (op0); ! } } else tcode = TREE_CODE (op0); --- 207,225 ---- return new_stmt; } ! /* When the compare has EH we do not want to forward it when ! it has multiple uses and in general because of the complication ! with EH redirection. */ ! if (stmt_can_throw_internal (fun, def_stmt)) ! tcode = TREE_CODE (op0); ! ! /* If we can compute op0 and have multiple uses, keep the SSA ! name and use vcond_mask. */ ! else if (can_compute_op0 ! && used_vec_cond_exprs >= 2 ! && (get_vcond_mask_icode (mode, TYPE_MODE (op0_type)) ! != CODE_FOR_nothing)) ! tcode = TREE_CODE (op0); } else tcode = TREE_CODE (op0); *************** gimple_expand_vec_cond_expr (gimple_stmt *** 241,246 **** --- 250,263 ---- GET_MODE_NUNITS (cmp_op_mode))); icode = get_vcond_icode (mode, cmp_op_mode, unsignedp); + /* Some targets do not have vcondeq and only vcond with NE/EQ + but not vcondu, so make sure to also try vcond here as + vcond_icode_p would canonicalize the optab query to. */ + if (icode == CODE_FOR_nothing + && (tcode == NE_EXPR || tcode == EQ_EXPR) + && ((icode = get_vcond_icode (mode, cmp_op_mode, !unsignedp)) + != CODE_FOR_nothing)) + unsignedp = !unsignedp; if (icode == CODE_FOR_nothing) { if (tcode == LT_EXPR *************** gimple_expand_vec_cond_expr (gimple_stmt *** 282,299 **** VEC_COND_EXPR assignments. */ static unsigned int ! gimple_expand_vec_exprs (void) { gimple_stmt_iterator gsi; basic_block bb; hash_map vec_cond_ssa_name_uses; auto_bitmap dce_ssa_names; ! FOR_EACH_BB_FN (bb, cfun) { for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi)) { ! gimple *g = gimple_expand_vec_cond_expr (&gsi, &vec_cond_ssa_name_uses); if (g != NULL) { --- 299,317 ---- VEC_COND_EXPR assignments. */ static unsigned int ! gimple_expand_vec_exprs (struct function *fun) { gimple_stmt_iterator gsi; basic_block bb; hash_map vec_cond_ssa_name_uses; auto_bitmap dce_ssa_names; + bool cfg_changed = false; ! FOR_EACH_BB_FN (bb, fun) { for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi)) { ! gimple *g = gimple_expand_vec_cond_expr (fun, &gsi, &vec_cond_ssa_name_uses); if (g != NULL) { *************** gimple_expand_vec_exprs (void) *** 302,308 **** gsi_replace (&gsi, g, false); } ! gimple_expand_vec_set_expr (&gsi); if (gsi_end_p (gsi)) break; } --- 320,326 ---- gsi_replace (&gsi, g, false); } ! cfg_changed |= gimple_expand_vec_set_expr (fun, &gsi); if (gsi_end_p (gsi)) break; } *************** gimple_expand_vec_exprs (void) *** 314,320 **** simple_dce_from_worklist (dce_ssa_names); ! return 0; } namespace { --- 332,338 ---- simple_dce_from_worklist (dce_ssa_names); ! return cfg_changed ? TODO_cleanup_cfg : 0; } namespace { *************** public: *** 345,353 **** return true; } ! virtual unsigned int execute (function *) { ! return gimple_expand_vec_exprs (); } }; // class pass_gimple_isel --- 363,371 ---- return true; } ! virtual unsigned int execute (function *fun) { ! return gimple_expand_vec_exprs (fun); } }; // class pass_gimple_isel diff -Nrcpad gcc-11.3.0/gcc/gimple-ssa-store-merging.c gcc-11.4.0/gcc/gimple-ssa-store-merging.c *** gcc-11.3.0/gcc/gimple-ssa-store-merging.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/gimple-ssa-store-merging.c Mon May 29 08:46:29 2023 *************** do_shift_rotate (enum tree_code code, *** 263,269 **** int count) { int i, size = TYPE_PRECISION (n->type) / BITS_PER_UNIT; ! unsigned head_marker; if (count < 0 || count >= TYPE_PRECISION (n->type) --- 263,269 ---- int count) { int i, size = TYPE_PRECISION (n->type) / BITS_PER_UNIT; ! uint64_t head_marker; if (count < 0 || count >= TYPE_PRECISION (n->type) *************** namespace { *** 1520,1526 **** then VAL represents the constant and all the other fields are zero, or a memory load, then VAL represents the reference, BASE_ADDR is non-NULL and the other fields also reflect the memory load, or an SSA name, then ! VAL represents the SSA name and all the other fields are zero, */ class store_operand_info { --- 1520,1526 ---- then VAL represents the constant and all the other fields are zero, or a memory load, then VAL represents the reference, BASE_ADDR is non-NULL and the other fields also reflect the memory load, or an SSA name, then ! VAL represents the SSA name and all the other fields are zero. */ class store_operand_info { *************** merged_store_group::apply_stores () *** 2223,2228 **** --- 2223,2232 ---- if (buf_size <= MOVE_MAX) string_concatenation = false; + /* String concatenation only works for byte aligned start and end. */ + if (start % BITS_PER_UNIT != 0 || width % BITS_PER_UNIT != 0) + string_concatenation = false; + /* Create a power-of-2-sized buffer for native_encode_expr. */ if (!string_concatenation) buf_size = 1 << ceil_log2 (buf_size); *************** split_group (merged_store_group *group, *** 3548,3554 **** /* For bswap framework using sets of stores, all the checking has been done earlier in try_coalesce_bswap and the result always needs to be emitted ! as a single store. Likewise for string concatenation, */ if (group->stores[0]->rhs_code == LROTATE_EXPR || group->stores[0]->rhs_code == NOP_EXPR || group->string_concatenation) --- 3552,3558 ---- /* For bswap framework using sets of stores, all the checking has been done earlier in try_coalesce_bswap and the result always needs to be emitted ! as a single store. Likewise for string concatenation. */ if (group->stores[0]->rhs_code == LROTATE_EXPR || group->stores[0]->rhs_code == NOP_EXPR || group->string_concatenation) diff -Nrcpad gcc-11.3.0/gcc/gimple-ssa-warn-alloca.c gcc-11.4.0/gcc/gimple-ssa-warn-alloca.c *** gcc-11.3.0/gcc/gimple-ssa-warn-alloca.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/gimple-ssa-warn-alloca.c Mon May 29 08:46:29 2023 *************** alloca_call_type (range_query &query, gi *** 218,223 **** --- 218,224 ---- int_range_max r; if (warn_limit_specified_p (is_vla) && TREE_CODE (len) == SSA_NAME + && types_compatible_p (TREE_TYPE (len), size_type_node) && query.range_of_expr (r, len, stmt) && !r.varying_p ()) { diff -Nrcpad gcc-11.3.0/gcc/gimple-ssa-warn-restrict.c gcc-11.4.0/gcc/gimple-ssa-warn-restrict.c *** gcc-11.3.0/gcc/gimple-ssa-warn-restrict.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/gimple-ssa-warn-restrict.c Mon May 29 08:46:29 2023 *************** builtin_memref::set_base_and_offset (tre *** 514,520 **** { tree memrefoff = fold_convert (ptrdiff_type_node, TREE_OPERAND (base, 1)); extend_offset_range (memrefoff); - base = TREE_OPERAND (base, 0); if (refoff != HOST_WIDE_INT_MIN && TREE_CODE (expr) == COMPONENT_REF) --- 514,519 ---- *************** builtin_memref::set_base_and_offset (tre *** 527,540 **** REFOFF is set to s[1].b - (char*)s. */ offset_int off = tree_to_shwi (memrefoff); refoff += off; - } ! if (!integer_zerop (memrefoff)) ! /* A non-zero offset into an array of struct with flexible array ! members implies that the array is empty because there is no ! way to initialize such a member when it belongs to an array. ! This must be some sort of a bug. */ ! refsize = 0; } if (TREE_CODE (ref) == COMPONENT_REF) --- 526,544 ---- REFOFF is set to s[1].b - (char*)s. */ offset_int off = tree_to_shwi (memrefoff); refoff += off; ! if (!integer_zerop (memrefoff) ! && !COMPLETE_TYPE_P (TREE_TYPE (expr)) ! && multiple_of_p (sizetype, memrefoff, ! TYPE_SIZE_UNIT (TREE_TYPE (base)))) ! /* A non-zero offset into an array of struct with flexible array ! members implies that the array is empty because there is no ! way to initialize such a member when it belongs to an array. ! This must be some sort of a bug. */ ! refsize = 0; ! } ! ! base = TREE_OPERAND (base, 0); } if (TREE_CODE (ref) == COMPONENT_REF) diff -Nrcpad gcc-11.3.0/gcc/go/ChangeLog gcc-11.4.0/gcc/go/ChangeLog *** gcc-11.3.0/gcc/go/ChangeLog Thu Apr 21 07:59:16 2022 --- gcc-11.4.0/gcc/go/ChangeLog Mon May 29 08:46:50 2023 *************** *** 1,3 **** --- 1,7 ---- + 2023-05-29 Release Manager + + * GCC 11.4.0 released. + 2022-04-21 Release Manager * GCC 11.3.0 released. diff -Nrcpad gcc-11.3.0/gcc/ifcvt.c gcc-11.4.0/gcc/ifcvt.c *** gcc-11.3.0/gcc/ifcvt.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/ifcvt.c Mon May 29 08:46:29 2023 *************** noce_try_sign_mask (struct noce_if_info *** 2814,2831 **** return FALSE; /* This is only profitable if T is unconditionally executed/evaluated in the ! original insn sequence or T is cheap. The former happens if B is the ! non-zero (T) value and if INSN_B was taken from TEST_BB, or there was no ! INSN_B which can happen for e.g. conditional stores to memory. For the ! cost computation use the block TEST_BB where the evaluation will end up ! after the transformation. */ t_unconditional = (t == if_info->b && (if_info->insn_b == NULL_RTX || BLOCK_FOR_INSN (if_info->insn_b) == if_info->test_bb)); if (!(t_unconditional ! || (set_src_cost (t, mode, if_info->speed_p) ! < COSTS_N_INSNS (2)))) return FALSE; if (!noce_can_force_operand (t)) --- 2814,2832 ---- return FALSE; /* This is only profitable if T is unconditionally executed/evaluated in the ! original insn sequence or T is cheap and can't trap or fault. The former ! happens if B is the non-zero (T) value and if INSN_B was taken from ! TEST_BB, or there was no INSN_B which can happen for e.g. conditional ! stores to memory. For the cost computation use the block TEST_BB where ! the evaluation will end up after the transformation. */ t_unconditional = (t == if_info->b && (if_info->insn_b == NULL_RTX || BLOCK_FOR_INSN (if_info->insn_b) == if_info->test_bb)); if (!(t_unconditional ! || ((set_src_cost (t, mode, if_info->speed_p) ! < COSTS_N_INSNS (2)) ! && !may_trap_or_fault_p (t)))) return FALSE; if (!noce_can_force_operand (t)) diff -Nrcpad gcc-11.3.0/gcc/ipa-icf.c gcc-11.4.0/gcc/ipa-icf.c *** gcc-11.3.0/gcc/ipa-icf.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/ipa-icf.c Mon May 29 08:46:29 2023 *************** sem_item_optimizer::filter_removed_items *** 2411,2420 **** { /* Filter out non-readonly variables. */ tree decl = item->decl; ! if (TREE_READONLY (decl)) ! filtered.safe_push (item); ! else remove_item (item); } } } --- 2411,2421 ---- { /* Filter out non-readonly variables. */ tree decl = item->decl; ! varpool_node *vnode = static_cast (item)->get_node (); ! if (!TREE_READONLY (decl) || vnode->body_removed) remove_item (item); + else + filtered.safe_push (item); } } } diff -Nrcpad gcc-11.3.0/gcc/ipa-modref-tree.h gcc-11.4.0/gcc/ipa-modref-tree.h *** gcc-11.3.0/gcc/ipa-modref-tree.h Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/ipa-modref-tree.h Mon May 29 08:46:29 2023 *************** struct GTY((user)) modref_tree *** 560,566 **** size_t k; modref_access_node *access_node; FOR_EACH_VEC_SAFE_ELT (ref_node->accesses, k, access_node) ! if (access_node->parm_index > 0) { if (access_node->parm_index < (int)map->length ()) access_node->parm_index = (*map)[access_node->parm_index]; --- 560,566 ---- size_t k; modref_access_node *access_node; FOR_EACH_VEC_SAFE_ELT (ref_node->accesses, k, access_node) ! if (access_node->parm_index >= 0) { if (access_node->parm_index < (int)map->length ()) access_node->parm_index = (*map)[access_node->parm_index]; diff -Nrcpad gcc-11.3.0/gcc/ipa-prop.c gcc-11.4.0/gcc/ipa-prop.c *** gcc-11.3.0/gcc/ipa-prop.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/ipa-prop.c Mon May 29 08:46:29 2023 *************** ipa_load_from_parm_agg (struct ipa_func_ *** 1109,1114 **** --- 1109,1118 ---- if (!base) return false; + /* We can not propagate across volatile loads. */ + if (TREE_THIS_VOLATILE (op)) + return false; + if (DECL_P (base)) { int index = ipa_get_param_decl_index_1 (descriptors, base); diff -Nrcpad gcc-11.3.0/gcc/ira-color.c gcc-11.4.0/gcc/ira-color.c *** gcc-11.3.0/gcc/ira-color.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/ira-color.c Mon May 29 08:46:29 2023 *************** assign_hard_reg (ira_allocno_t a, bool r *** 1967,1974 **** restore_costs_from_copies (a); ALLOCNO_HARD_REGNO (a) = best_hard_regno; ALLOCNO_ASSIGNED_P (a) = true; ! if (best_hard_regno >= 0) ! update_costs_from_copies (a, true, ! retry_p); ira_assert (ALLOCNO_CLASS (a) == aclass); /* We don't need updated costs anymore. */ ira_free_allocno_updated_costs (a); --- 1967,1974 ---- restore_costs_from_copies (a); ALLOCNO_HARD_REGNO (a) = best_hard_regno; ALLOCNO_ASSIGNED_P (a) = true; ! if (best_hard_regno >= 0 && !retry_p) ! update_costs_from_copies (a, true, true); ira_assert (ALLOCNO_CLASS (a) == aclass); /* We don't need updated costs anymore. */ ira_free_allocno_updated_costs (a); diff -Nrcpad gcc-11.3.0/gcc/ira.c gcc-11.4.0/gcc/ira.c *** gcc-11.3.0/gcc/ira.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/ira.c Mon May 29 08:46:29 2023 *************** ira (FILE *f) *** 5613,5618 **** --- 5613,5619 ---- regstat_free_ri (); regstat_init_n_sets_and_refs (); regstat_compute_ri (); + resize_reg_info (); }; int max_regno_before_rm = max_reg_num (); diff -Nrcpad gcc-11.3.0/gcc/jit/ChangeLog gcc-11.4.0/gcc/jit/ChangeLog *** gcc-11.3.0/gcc/jit/ChangeLog Thu Apr 21 07:59:16 2022 --- gcc-11.4.0/gcc/jit/ChangeLog Mon May 29 08:46:50 2023 *************** *** 1,3 **** --- 1,7 ---- + 2023-05-29 Release Manager + + * GCC 11.4.0 released. + 2022-04-21 Release Manager * GCC 11.3.0 released. diff -Nrcpad gcc-11.3.0/gcc/loop-invariant.c gcc-11.4.0/gcc/loop-invariant.c *** gcc-11.3.0/gcc/loop-invariant.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/loop-invariant.c Mon May 29 08:46:29 2023 *************** move_invariant_reg (class loop *loop, un *** 1831,1836 **** --- 1831,1838 ---- else if (dump_file) fprintf (dump_file, "Invariant %d moved without introducing a new " "temporary register\n", invno); + if (JUMP_P (BB_END (preheader))) + preheader = split_edge (loop_preheader_edge (loop)); reorder_insns (inv->insn, inv->insn, BB_END (preheader)); df_recompute_luids (preheader); diff -Nrcpad gcc-11.3.0/gcc/lra-assigns.c gcc-11.4.0/gcc/lra-assigns.c *** gcc-11.3.0/gcc/lra-assigns.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/lra-assigns.c Mon May 29 08:46:29 2023 *************** lra_split_hard_reg_for (void) *** 1775,1782 **** iterations. Either it's an asm and something is wrong with the constraints, or we have run out of spill registers; error out in either case. */ ! bool asm_p = false; ! bitmap_head failed_reload_insns, failed_reload_pseudos; if (lra_dump_file != NULL) fprintf (lra_dump_file, --- 1775,1782 ---- iterations. Either it's an asm and something is wrong with the constraints, or we have run out of spill registers; error out in either case. */ ! bool asm_p = false, spill_p = false; ! bitmap_head failed_reload_insns, failed_reload_pseudos, over_split_insns; if (lra_dump_file != NULL) fprintf (lra_dump_file, *************** lra_split_hard_reg_for (void) *** 1787,1792 **** --- 1787,1793 ---- bitmap_ior (&non_reload_pseudos, &lra_inheritance_pseudos, &lra_split_regs); bitmap_ior_into (&non_reload_pseudos, &lra_subreg_reload_pseudos); bitmap_ior_into (&non_reload_pseudos, &lra_optional_reload_pseudos); + bitmap_initialize (&over_split_insns, ®_obstack); for (i = lra_constraint_new_regno_start; i < max_regno; i++) if (reg_renumber[i] < 0 && lra_reg_info[i].nrefs != 0 && (rclass = lra_get_allocno_class (i)) != NO_REGS *************** lra_split_hard_reg_for (void) *** 1794,1807 **** { if (! find_reload_regno_insns (i, first, last)) continue; ! if (BLOCK_FOR_INSN (first) == BLOCK_FOR_INSN (last) ! && spill_hard_reg_in_range (i, rclass, first, last)) { ! bitmap_clear (&failed_reload_pseudos); ! return true; } - bitmap_set_bit (&failed_reload_pseudos, i); } bitmap_clear (&non_reload_pseudos); bitmap_initialize (&failed_reload_insns, ®_obstack); EXECUTE_IF_SET_IN_BITMAP (&failed_reload_pseudos, 0, u, bi) --- 1795,1835 ---- { if (! find_reload_regno_insns (i, first, last)) continue; ! if (BLOCK_FOR_INSN (first) == BLOCK_FOR_INSN (last)) { ! /* Check that we are not trying to split over the same insn ! requiring reloads to avoid splitting the same hard reg twice or ! more. If we need several hard regs splitting over the same insn ! it can be finished on the next iterations. ! ! The following loop iteration number is small as we split hard ! reg in a very small range. */ ! for (insn = first; ! insn != NEXT_INSN (last); ! insn = NEXT_INSN (insn)) ! if (bitmap_bit_p (&over_split_insns, INSN_UID (insn))) ! break; ! if (insn != NEXT_INSN (last) ! || !spill_hard_reg_in_range (i, rclass, first, last)) ! { ! bitmap_set_bit (&failed_reload_pseudos, i); ! } ! else ! { ! for (insn = first; ! insn != NEXT_INSN (last); ! insn = NEXT_INSN (insn)) ! bitmap_set_bit (&over_split_insns, INSN_UID (insn)); ! spill_p = true; ! } } } + bitmap_clear (&over_split_insns); + if (spill_p) + { + bitmap_clear (&failed_reload_pseudos); + return true; + } bitmap_clear (&non_reload_pseudos); bitmap_initialize (&failed_reload_insns, ®_obstack); EXECUTE_IF_SET_IN_BITMAP (&failed_reload_pseudos, 0, u, bi) diff -Nrcpad gcc-11.3.0/gcc/lto/ChangeLog gcc-11.4.0/gcc/lto/ChangeLog *** gcc-11.3.0/gcc/lto/ChangeLog Thu Apr 21 07:59:16 2022 --- gcc-11.4.0/gcc/lto/ChangeLog Mon May 29 08:46:50 2023 *************** *** 1,3 **** --- 1,7 ---- + 2023-05-29 Release Manager + + * GCC 11.4.0 released. + 2022-04-21 Release Manager * GCC 11.3.0 released. diff -Nrcpad gcc-11.3.0/gcc/lto-streamer-in.c gcc-11.4.0/gcc/lto-streamer-in.c *** gcc-11.3.0/gcc/lto-streamer-in.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/lto-streamer-in.c Mon May 29 08:46:29 2023 *************** lto_read_tree_1 (class lto_input_block * *** 1699,1709 **** /* Read all the pointer fields in EXPR. */ streamer_read_tree_body (ib, data_in, expr); ! /* Read any LTO-specific data not read by the tree streamer. */ if (DECL_P (expr) && TREE_CODE (expr) != FUNCTION_DECL && TREE_CODE (expr) != TRANSLATION_UNIT_DECL) ! DECL_INITIAL (expr) = stream_read_tree (ib, data_in); /* Stream references to early generated DIEs. Keep in sync with the trees handled in dwarf2out_register_external_die. */ --- 1699,1712 ---- /* Read all the pointer fields in EXPR. */ streamer_read_tree_body (ib, data_in, expr); ! /* Read any LTO-specific data not read by the tree streamer. Do not use ! stream_read_tree here since that flushes the dref_queue in mids of ! SCC reading. */ if (DECL_P (expr) && TREE_CODE (expr) != FUNCTION_DECL && TREE_CODE (expr) != TRANSLATION_UNIT_DECL) ! DECL_INITIAL (expr) ! = lto_input_tree_1 (ib, data_in, streamer_read_record_start (ib), 0); /* Stream references to early generated DIEs. Keep in sync with the trees handled in dwarf2out_register_external_die. */ diff -Nrcpad gcc-11.3.0/gcc/lto-wrapper.c gcc-11.4.0/gcc/lto-wrapper.c *** gcc-11.3.0/gcc/lto-wrapper.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/lto-wrapper.c Mon May 29 08:46:29 2023 *************** along with GCC; see the file COPYING3. *** 37,42 **** --- 37,43 ---- ./ccCJuXGv.lto.ltrans.o */ + #define INCLUDE_STRING #include "config.h" #include "system.h" #include "coretypes.h" *************** along with GCC; see the file COPYING3. *** 48,53 **** --- 49,55 ---- #include "simple-object.h" #include "lto-section-names.h" #include "collect-utils.h" + #include "opts-jobserver.h" /* Environment variable, used for passing the names of offload targets from GCC driver to lto-wrapper. */ *************** init_num_threads (void) *** 1304,1340 **** #endif } - /* FIXME: once using -std=c++11, we can use std::thread::hardware_concurrency. */ - - /* Test and return reason why a jobserver cannot be detected. */ - - static const char * - jobserver_active_p (void) - { - #define JS_PREFIX "jobserver is not available: " - #define JS_NEEDLE "--jobserver-auth=" - - const char *makeflags = getenv ("MAKEFLAGS"); - if (makeflags == NULL) - return JS_PREFIX "% environment variable is unset"; - - const char *n = strstr (makeflags, JS_NEEDLE); - if (n == NULL) - return JS_PREFIX "%<" JS_NEEDLE "%> is not present in %"; - - int rfd = -1; - int wfd = -1; - - if (sscanf (n + strlen (JS_NEEDLE), "%d,%d", &rfd, &wfd) == 2 - && rfd > 0 - && wfd > 0 - && is_valid_fd (rfd) - && is_valid_fd (wfd)) - return NULL; - else - return JS_PREFIX "cannot access %<" JS_NEEDLE "%> file descriptors"; - } - /* Test that a make command is present and working, return true if so. */ static bool --- 1306,1311 ---- *************** run_gcc (unsigned argc, char *argv[]) *** 1549,1554 **** --- 1520,1533 ---- skip_debug = option->arg && !strcmp (option->arg, "0"); break; + case OPT_gdwarf: + case OPT_gdwarf_: + case OPT_ggdb: + case OPT_gvms: + /* Negative forms, if allowed, enable debug info as well. */ + skip_debug = false; + break; + case OPT_dumpdir: incoming_dumppfx = dumppfx = option->arg; break; *************** run_gcc (unsigned argc, char *argv[]) *** 1581,1594 **** } else { ! const char *jobserver_error = jobserver_active_p (); ! if (jobserver && jobserver_error != NULL) { ! warning (0, jobserver_error); parallel = 0; jobserver = 0; } ! else if (!jobserver && jobserver_error == NULL) { parallel = 1; jobserver = 1; --- 1560,1573 ---- } else { ! jobserver_info jinfo; ! if (jobserver && !jinfo.is_active) { ! warning (0, jinfo.error_msg.c_str ()); parallel = 0; jobserver = 0; } ! else if (!jobserver && jinfo.is_active) { parallel = 1; jobserver = 1; *************** cont: *** 1903,1908 **** --- 1882,1896 ---- maybe_unlink (ltrans_output_file); ltrans_output_file = NULL; + if (nr > 1) + { + jobserver_info jinfo; + if (jobserver && !jinfo.is_active) + warning (0, jinfo.error_msg.c_str ()); + else if (parallel == 0) + warning (0, "using serial compilation of %d LTRANS jobs", nr); + } + if (parallel) { makefile = make_temp_file (".mk"); diff -Nrcpad gcc-11.3.0/gcc/match.pd gcc-11.4.0/gcc/match.pd *** gcc-11.3.0/gcc/match.pd Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/match.pd Mon May 29 08:46:29 2023 *************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) *** 4114,4120 **** (if (! FLOAT_TYPE_P (TREE_TYPE (@0)) || ! HONOR_NANS (@0)) { constant_boolean_node (true, type); } ! (if (cmp != EQ_EXPR) (eq @0 @0))))) (for cmp (ne gt lt) (simplify --- 4114,4123 ---- (if (! FLOAT_TYPE_P (TREE_TYPE (@0)) || ! HONOR_NANS (@0)) { constant_boolean_node (true, type); } ! (if (cmp != EQ_EXPR ! /* With -ftrapping-math conversion to EQ loses an exception. */ ! && (! FLOAT_TYPE_P (TREE_TYPE (@0)) ! || ! flag_trapping_math)) (eq @0 @0))))) (for cmp (ne gt lt) (simplify *************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) *** 6261,6267 **** isize = tree_to_uhwi (TYPE_SIZE (TREE_TYPE (@1))); } (switch ! (if (wi::leu_p (wi::to_wide (@ipos), wi::to_wide (@rpos)) && wi::leu_p (wi::to_wide (@rpos) + wi::to_wide (@rsize), wi::to_wide (@ipos) + isize)) (BIT_FIELD_REF @1 @rsize { wide_int_to_tree (bitsizetype, --- 6264,6272 ---- isize = tree_to_uhwi (TYPE_SIZE (TREE_TYPE (@1))); } (switch ! (if ((!INTEGRAL_TYPE_P (TREE_TYPE (@1)) ! || type_has_mode_precision_p (TREE_TYPE (@1))) ! && wi::leu_p (wi::to_wide (@ipos), wi::to_wide (@rpos)) && wi::leu_p (wi::to_wide (@rpos) + wi::to_wide (@rsize), wi::to_wide (@ipos) + isize)) (BIT_FIELD_REF @1 @rsize { wide_int_to_tree (bitsizetype, diff -Nrcpad gcc-11.3.0/gcc/objc/ChangeLog gcc-11.4.0/gcc/objc/ChangeLog *** gcc-11.3.0/gcc/objc/ChangeLog Thu Apr 21 07:59:16 2022 --- gcc-11.4.0/gcc/objc/ChangeLog Mon May 29 08:46:50 2023 *************** *** 1,3 **** --- 1,7 ---- + 2023-05-29 Release Manager + + * GCC 11.4.0 released. + 2022-04-21 Release Manager * GCC 11.3.0 released. diff -Nrcpad gcc-11.3.0/gcc/objcp/ChangeLog gcc-11.4.0/gcc/objcp/ChangeLog *** gcc-11.3.0/gcc/objcp/ChangeLog Thu Apr 21 07:59:16 2022 --- gcc-11.4.0/gcc/objcp/ChangeLog Mon May 29 08:46:50 2023 *************** *** 1,3 **** --- 1,7 ---- + 2023-05-29 Release Manager + + * GCC 11.4.0 released. + 2022-04-21 Release Manager * GCC 11.3.0 released. diff -Nrcpad gcc-11.3.0/gcc/omp-expand.c gcc-11.4.0/gcc/omp-expand.c *** gcc-11.3.0/gcc/omp-expand.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/omp-expand.c Mon May 29 08:46:29 2023 *************** expand_omp_for_init_counts (struct omp_f *** 1982,1989 **** t = fold_build2 (MINUS_EXPR, itype, unshare_expr (fd->loops[i].m2), unshare_expr (fd->loops[i].m1)); else if (fd->loops[i].m1) ! t = fold_unary (NEGATE_EXPR, itype, ! unshare_expr (fd->loops[i].m1)); else t = unshare_expr (fd->loops[i].m2); tree m2minusm1 --- 1982,1989 ---- t = fold_build2 (MINUS_EXPR, itype, unshare_expr (fd->loops[i].m2), unshare_expr (fd->loops[i].m1)); else if (fd->loops[i].m1) ! t = fold_build1 (NEGATE_EXPR, itype, ! unshare_expr (fd->loops[i].m1)); else t = unshare_expr (fd->loops[i].m2); tree m2minusm1 *************** expand_omp_ordered_source_sink (struct o *** 3501,3507 **** static basic_block expand_omp_for_ordered_loops (struct omp_for_data *fd, tree *counts, basic_block cont_bb, basic_block body_bb, ! bool ordered_lastprivate) { if (fd->ordered == fd->collapse) return cont_bb; --- 3501,3507 ---- static basic_block expand_omp_for_ordered_loops (struct omp_for_data *fd, tree *counts, basic_block cont_bb, basic_block body_bb, ! basic_block l0_bb, bool ordered_lastprivate) { if (fd->ordered == fd->collapse) return cont_bb; *************** expand_omp_for_ordered_loops (struct omp *** 3606,3612 **** class loop *loop = alloc_loop (); loop->header = new_header; loop->latch = e2->src; ! add_loop (loop, body_bb->loop_father); } } --- 3606,3612 ---- class loop *loop = alloc_loop (); loop->header = new_header; loop->latch = e2->src; ! add_loop (loop, l0_bb->loop_father); } } *************** expand_omp_for_generic (struct omp_regio *** 4294,4302 **** } if (i < fd->ordered) { cont_bb = create_empty_bb (EXIT_BLOCK_PTR_FOR_FN (cfun)->prev_bb); ! add_bb_to_loop (cont_bb, l1_bb->loop_father); gimple_stmt_iterator gsi = gsi_after_labels (cont_bb); gimple *g = gimple_build_omp_continue (fd->loop.v, fd->loop.v); gsi_insert_before (&gsi, g, GSI_SAME_STMT); --- 4294,4308 ---- } if (i < fd->ordered) { + if (entry_bb->loop_father != l0_bb->loop_father) + { + remove_bb_from_loops (l0_bb); + add_bb_to_loop (l0_bb, entry_bb->loop_father); + gcc_assert (single_succ (l0_bb) == l1_bb); + } cont_bb = create_empty_bb (EXIT_BLOCK_PTR_FOR_FN (cfun)->prev_bb); ! add_bb_to_loop (cont_bb, l0_bb->loop_father); gimple_stmt_iterator gsi = gsi_after_labels (cont_bb); gimple *g = gimple_build_omp_continue (fd->loop.v, fd->loop.v); gsi_insert_before (&gsi, g, GSI_SAME_STMT); *************** expand_omp_for_generic (struct omp_regio *** 4308,4314 **** } expand_omp_ordered_source_sink (region, fd, counts, cont_bb); cont_bb = expand_omp_for_ordered_loops (fd, counts, cont_bb, l1_bb, ! ordered_lastprivate); if (counts[fd->collapse - 1]) { gcc_assert (fd->collapse == 1); --- 4314,4320 ---- } expand_omp_ordered_source_sink (region, fd, counts, cont_bb); cont_bb = expand_omp_for_ordered_loops (fd, counts, cont_bb, l1_bb, ! l0_bb, ordered_lastprivate); if (counts[fd->collapse - 1]) { gcc_assert (fd->collapse == 1); *************** build_omp_regions_1 (basic_block bb, str *** 10043,10049 **** case GF_OMP_TARGET_KIND_OACC_UPDATE: case GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA: case GF_OMP_TARGET_KIND_OACC_DECLARE: ! /* ..., other than for those stand-alone directives... */ region = NULL; break; default: --- 10049,10058 ---- case GF_OMP_TARGET_KIND_OACC_UPDATE: case GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA: case GF_OMP_TARGET_KIND_OACC_DECLARE: ! /* ..., other than for those stand-alone directives... ! To be precise, target data isn't stand-alone, but ! gimplifier put the end API call into try finally block ! for it, so omp expansion can treat it as such. */ region = NULL; break; default: *************** build_omp_regions_1 (basic_block bb, str *** 10061,10066 **** --- 10070,10080 ---- && gimple_omp_task_taskwait_p (stmt)) /* #pragma omp taskwait depend(...) is a stand-alone directive. */ region = NULL; + else if (code == GIMPLE_OMP_TASKGROUP) + /* #pragma omp taskgroup isn't a stand-alone directive, but + gimplifier put the end API call into try finall block + for it, so omp expansion can treat it as such. */ + region = NULL; /* ..., this directive becomes the parent for a new region. */ if (region) parent = region; *************** omp_make_gimple_edges (basic_block bb, s *** 10255,10267 **** case GIMPLE_OMP_SINGLE: case GIMPLE_OMP_TEAMS: case GIMPLE_OMP_MASTER: - case GIMPLE_OMP_TASKGROUP: case GIMPLE_OMP_CRITICAL: case GIMPLE_OMP_SECTION: cur_region = new_omp_region (bb, code, cur_region); fallthru = true; break; case GIMPLE_OMP_TASK: cur_region = new_omp_region (bb, code, cur_region); fallthru = true; --- 10269,10286 ---- case GIMPLE_OMP_SINGLE: case GIMPLE_OMP_TEAMS: case GIMPLE_OMP_MASTER: case GIMPLE_OMP_CRITICAL: case GIMPLE_OMP_SECTION: cur_region = new_omp_region (bb, code, cur_region); fallthru = true; break; + case GIMPLE_OMP_TASKGROUP: + cur_region = new_omp_region (bb, code, cur_region); + fallthru = true; + cur_region = cur_region->outer; + break; + case GIMPLE_OMP_TASK: cur_region = new_omp_region (bb, code, cur_region); fallthru = true; diff -Nrcpad gcc-11.3.0/gcc/omp-low.c gcc-11.4.0/gcc/omp-low.c *** gcc-11.3.0/gcc/omp-low.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/omp-low.c Mon May 29 08:46:29 2023 *************** lower_rec_input_clauses (tree clauses, g *** 5903,5912 **** } if (POINTER_TYPE_P (TREE_TYPE (x))) ! x = fold_build2 (POINTER_PLUS_EXPR, ! TREE_TYPE (x), x, t); else ! x = fold_build2 (PLUS_EXPR, TREE_TYPE (x), x, t); } if ((OMP_CLAUSE_CODE (c) != OMP_CLAUSE_LINEAR --- 5903,5912 ---- } if (POINTER_TYPE_P (TREE_TYPE (x))) ! x = fold_build_pointer_plus (x, t); else ! x = fold_build2 (PLUS_EXPR, TREE_TYPE (x), x, ! fold_convert (TREE_TYPE (x), t)); } if ((OMP_CLAUSE_CODE (c) != OMP_CLAUSE_LINEAR *************** lower_omp_taskgroup (gimple_stmt_iterato *** 9217,9223 **** gimple_bind_add_seq (bind, gimple_omp_body (stmt)); gimple_omp_set_body (stmt, NULL); - gimple_bind_add_stmt (bind, gimple_build_omp_return (true)); gimple_bind_add_seq (bind, dseq); pop_gimplify_context (bind); --- 9217,9222 ---- *************** lower_omp_target (gimple_stmt_iterator * *** 12911,12917 **** gimple_build_assign (new_var, x)); } tree present; ! present = (do_optional_check ? omp_check_optional_argument (OMP_CLAUSE_DECL (c), true) : NULL_TREE); if (present) --- 12910,12917 ---- gimple_build_assign (new_var, x)); } tree present; ! present = ((do_optional_check ! && OMP_CLAUSE_CODE (c) != OMP_CLAUSE_IS_DEVICE_PTR) ? omp_check_optional_argument (OMP_CLAUSE_DECL (c), true) : NULL_TREE); if (present) diff -Nrcpad gcc-11.3.0/gcc/optc-save-gen.awk gcc-11.4.0/gcc/optc-save-gen.awk *** gcc-11.3.0/gcc/optc-save-gen.awk Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/optc-save-gen.awk Mon May 29 08:46:29 2023 *************** for (i = 0; i < n_target_string; i++) { *** 1013,1019 **** print " indent, \"\","; print " \"" name "\","; print " ptr1->x_" name " ? ptr1->x_" name " : \"(null)\","; ! print " ptr2->x_" name " ? ptr1->x_" name " : \"(null)\");"; print ""; } --- 1013,1019 ---- print " indent, \"\","; print " \"" name "\","; print " ptr1->x_" name " ? ptr1->x_" name " : \"(null)\","; ! print " ptr2->x_" name " ? ptr2->x_" name " : \"(null)\");"; print ""; } diff -Nrcpad gcc-11.3.0/gcc/opts-common.c gcc-11.4.0/gcc/opts-common.c *** gcc-11.3.0/gcc/opts-common.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/opts-common.c Mon May 29 08:46:29 2023 *************** You should have received a copy of the G *** 17,22 **** --- 17,23 ---- along with GCC; see the file COPYING3. If not see . */ + #define INCLUDE_STRING #include "config.h" #include "system.h" #include "intl.h" *************** along with GCC; see the file COPYING3. *** 25,30 **** --- 26,32 ---- #include "options.h" #include "diagnostic.h" #include "spellcheck.h" + #include "opts-jobserver.h" static void prune_options (struct cl_decoded_option **, unsigned int *); *************** void prepend_xassembler_to_collect_as_op *** 1848,1850 **** --- 1850,1904 ---- obstack_1grow (o, '\''); } } + + jobserver_info::jobserver_info () + { + /* Traditionally, GNU make uses opened pipes for jobserver-auth, + e.g. --jobserver-auth=3,4. + Starting with GNU make 4.4, one can use --jobserver-style=fifo + and then named pipe is used: --jobserver-auth=fifo:/tmp/hcsparta. */ + + /* Detect jobserver and drop it if it's not working. */ + string js_needle = "--jobserver-auth="; + string fifo_prefix = "fifo:"; + + const char *envval = getenv ("MAKEFLAGS"); + if (envval != NULL) + { + string makeflags = envval; + size_t n = makeflags.rfind (js_needle); + if (n != string::npos) + { + string ending = makeflags.substr (n + js_needle.size ()); + if (ending.find (fifo_prefix) == 0) + { + ending = ending.substr (fifo_prefix.size ()); + pipe_path = ending.substr (0, ending.find (' ')); + is_active = true; + } + else if (sscanf (makeflags.c_str () + n + js_needle.size (), + "%d,%d", &rfd, &wfd) == 2 + && rfd > 0 + && wfd > 0 + && is_valid_fd (rfd) + && is_valid_fd (wfd)) + is_active = true; + else + { + string dup = makeflags.substr (0, n); + size_t pos = makeflags.find (' ', n); + if (pos != string::npos) + dup += makeflags.substr (pos); + skipped_makeflags = "MAKEFLAGS=" + dup; + error_msg + = "cannot access %<" + js_needle + "%> file descriptors"; + } + } + error_msg = "%<" + js_needle + "%> is not present in %"; + } + else + error_msg = "% environment variable is unset"; + + if (!error_msg.empty ()) + error_msg = "jobserver is not available: " + error_msg; + } diff -Nrcpad gcc-11.3.0/gcc/opts-jobserver.h gcc-11.4.0/gcc/opts-jobserver.h *** gcc-11.3.0/gcc/opts-jobserver.h Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/opts-jobserver.h Mon May 29 08:46:29 2023 *************** *** 0 **** --- 1,46 ---- + /* GNU make's jobserver related functionality. + Copyright (C) 2022 Free Software Foundation, Inc. + + This file is part of GCC. + + GCC is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free + Software Foundation; either version 3, or (at your option) any later + version. + + GCC is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with GCC; see the file COPYING3. If not see + . + + See dbgcnt.def for usage information. */ + + #ifndef GCC_JOBSERVER_H + #define GCC_JOBSERVER_H + + using namespace std; + + struct jobserver_info + { + /* Default constructor. */ + jobserver_info (); + + /* Error message if there is a problem. */ + string error_msg = ""; + /* Skipped MAKEFLAGS where --jobserver-auth is skipped. */ + string skipped_makeflags = ""; + /* File descriptor for reading used for jobserver communication. */ + int rfd = -1; + /* File descriptor for writing used for jobserver communication. */ + int wfd = -1; + /* Named pipe path. */ + string pipe_path = ""; + /* Return true if jobserver is active. */ + bool is_active = false; + }; + + #endif /* GCC_JOBSERVER_H */ diff -Nrcpad gcc-11.3.0/gcc/po/ChangeLog gcc-11.4.0/gcc/po/ChangeLog *** gcc-11.3.0/gcc/po/ChangeLog Thu Apr 21 07:59:16 2022 --- gcc-11.4.0/gcc/po/ChangeLog Mon May 29 08:46:50 2023 *************** *** 1,3 **** --- 1,7 ---- + 2023-05-29 Release Manager + + * GCC 11.4.0 released. + 2022-04-21 Release Manager * GCC 11.3.0 released. diff -Nrcpad gcc-11.3.0/gcc/postreload.c gcc-11.4.0/gcc/postreload.c *** gcc-11.3.0/gcc/postreload.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/postreload.c Mon May 29 08:46:29 2023 *************** along with GCC; see the file COPYING3. *** 43,49 **** #include "function-abi.h" #include "rtl-iter.h" - static int reload_cse_noop_set_p (rtx); static bool reload_cse_simplify (rtx_insn *, rtx); static void reload_cse_regs_1 (void); static int reload_cse_simplify_set (rtx, rtx_insn *); --- 43,48 ---- *************** reload_cse_regs (rtx_insn *first ATTRIBU *** 74,89 **** } } - /* See whether a single set SET is a noop. */ - static int - reload_cse_noop_set_p (rtx set) - { - if (cselib_reg_set_mode (SET_DEST (set)) != GET_MODE (SET_DEST (set))) - return 0; - - return rtx_equal_for_cselib_p (SET_DEST (set), SET_SRC (set)); - } - /* Try to simplify INSN. Return true if the CFG may have changed. */ static bool reload_cse_simplify (rtx_insn *insn, rtx testreg) --- 73,78 ---- *************** reload_cse_simplify (rtx_insn *insn, rtx *** 118,124 **** this out, so it's safer to simplify before we delete. */ count += reload_cse_simplify_set (body, insn); ! if (!count && reload_cse_noop_set_p (body)) { if (check_for_inc_dec (insn)) delete_insn_and_edges (insn); --- 107,113 ---- this out, so it's safer to simplify before we delete. */ count += reload_cse_simplify_set (body, insn); ! if (!count && cselib_redundant_set_p (body)) { if (check_for_inc_dec (insn)) delete_insn_and_edges (insn); *************** reload_cse_simplify (rtx_insn *insn, rtx *** 157,163 **** rtx part = XVECEXP (body, 0, i); if (GET_CODE (part) == SET) { ! if (! reload_cse_noop_set_p (part)) break; if (REG_P (SET_DEST (part)) && REG_FUNCTION_VALUE_P (SET_DEST (part))) --- 146,152 ---- rtx part = XVECEXP (body, 0, i); if (GET_CODE (part) == SET) { ! if (! cselib_redundant_set_p (part)) break; if (REG_P (SET_DEST (part)) && REG_FUNCTION_VALUE_P (SET_DEST (part))) diff -Nrcpad gcc-11.3.0/gcc/predict.c gcc-11.4.0/gcc/predict.c *** gcc-11.3.0/gcc/predict.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/predict.c Mon May 29 08:46:29 2023 *************** compute_function_frequency (void) *** 4023,4029 **** } node->frequency = NODE_FREQUENCY_UNLIKELY_EXECUTED; ! warn_function_cold (current_function_decl); if (ENTRY_BLOCK_PTR_FOR_FN (cfun)->count.ipa() == profile_count::zero ()) return; FOR_EACH_BB_FN (bb, cfun) --- 4023,4031 ---- } node->frequency = NODE_FREQUENCY_UNLIKELY_EXECUTED; ! if (lookup_attribute ("cold", DECL_ATTRIBUTES (current_function_decl)) ! == NULL) ! warn_function_cold (current_function_decl); if (ENTRY_BLOCK_PTR_FOR_FN (cfun)->count.ipa() == profile_count::zero ()) return; FOR_EACH_BB_FN (bb, cfun) diff -Nrcpad gcc-11.3.0/gcc/range-op.cc gcc-11.4.0/gcc/range-op.cc *** gcc-11.3.0/gcc/range-op.cc Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/range-op.cc Mon May 29 08:46:29 2023 *************** operator_bitwise_xor::op1_range (irange *** 2649,2654 **** --- 2649,2657 ---- r.set_varying (type); else if (op2.zero_p ()) r = range_true (type); + // See get_bool_state for the rationale + else if (op2.contains_p (build_zero_cst (op2.type ()))) + r = range_true_and_false (type); else r = range_false (type); break; diff -Nrcpad gcc-11.3.0/gcc/ree.c gcc-11.4.0/gcc/ree.c *** gcc-11.3.0/gcc/ree.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/ree.c Mon May 29 08:46:29 2023 *************** combine_reaching_defs (ext_cand *cand, c *** 876,882 **** for (df_link *use = uses; use; use = use->next) if (paradoxical_subreg_p (GET_MODE (*DF_REF_LOC (use->ref)), ! GET_MODE (SET_DEST (*dest_sub_rtx)))) return false; } --- 876,883 ---- for (df_link *use = uses; use; use = use->next) if (paradoxical_subreg_p (GET_MODE (*DF_REF_LOC (use->ref)), ! GET_MODE (SET_DEST (*dest_sub_rtx))) ! && !DEBUG_INSN_P (DF_REF_INSN (use->ref))) return false; } *************** combine_reaching_defs (ext_cand *cand, c *** 965,971 **** rtx dest2 = SET_DEST (*dest_sub_rtx2); for (use = uses; use; use = use->next) if (paradoxical_subreg_p (GET_MODE (*DF_REF_LOC (use->ref)), ! GET_MODE (dest2))) break; if (use) break; --- 966,973 ---- rtx dest2 = SET_DEST (*dest_sub_rtx2); for (use = uses; use; use = use->next) if (paradoxical_subreg_p (GET_MODE (*DF_REF_LOC (use->ref)), ! GET_MODE (dest2)) ! && !DEBUG_INSN_P (DF_REF_INSN (use->ref))) break; if (use) break; diff -Nrcpad gcc-11.3.0/gcc/reg-stack.c gcc-11.4.0/gcc/reg-stack.c *** gcc-11.3.0/gcc/reg-stack.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/reg-stack.c Mon May 29 08:46:29 2023 *************** static void swap_to_top (rtx_insn *, sta *** 262,275 **** static bool move_for_stack_reg (rtx_insn *, stack_ptr, rtx); static bool move_nan_for_stack_reg (rtx_insn *, stack_ptr, rtx); static int swap_rtx_condition_1 (rtx); ! static int swap_rtx_condition (rtx_insn *); static void compare_for_stack_reg (rtx_insn *, stack_ptr, rtx, bool); static bool subst_stack_regs_pat (rtx_insn *, stack_ptr, rtx); static void subst_asm_stack_regs (rtx_insn *, stack_ptr); static bool subst_stack_regs (rtx_insn *, stack_ptr); static void change_stack (rtx_insn *, stack_ptr, stack_ptr, enum emit_where); static void print_stack (FILE *, stack_ptr); ! static rtx_insn *next_flags_user (rtx_insn *); /* Return nonzero if any stack register is mentioned somewhere within PAT. */ --- 262,275 ---- static bool move_for_stack_reg (rtx_insn *, stack_ptr, rtx); static bool move_nan_for_stack_reg (rtx_insn *, stack_ptr, rtx); static int swap_rtx_condition_1 (rtx); ! static int swap_rtx_condition (rtx_insn *, int &); static void compare_for_stack_reg (rtx_insn *, stack_ptr, rtx, bool); static bool subst_stack_regs_pat (rtx_insn *, stack_ptr, rtx); static void subst_asm_stack_regs (rtx_insn *, stack_ptr); static bool subst_stack_regs (rtx_insn *, stack_ptr); static void change_stack (rtx_insn *, stack_ptr, stack_ptr, enum emit_where); static void print_stack (FILE *, stack_ptr); ! static rtx_insn *next_flags_user (rtx_insn *, int &); /* Return nonzero if any stack register is mentioned somewhere within PAT. */ *************** stack_regs_mentioned (const_rtx insn) *** 335,341 **** static rtx ix86_flags_rtx; static rtx_insn * ! next_flags_user (rtx_insn *insn) { /* Search forward looking for the first use of this value. Stop at block boundaries. */ --- 335,341 ---- static rtx ix86_flags_rtx; static rtx_insn * ! next_flags_user (rtx_insn *insn, int &debug_seen) { /* Search forward looking for the first use of this value. Stop at block boundaries. */ *************** next_flags_user (rtx_insn *insn) *** 345,351 **** insn = NEXT_INSN (insn); if (INSN_P (insn) && reg_mentioned_p (ix86_flags_rtx, PATTERN (insn))) ! return insn; if (CALL_P (insn)) return NULL; --- 345,358 ---- insn = NEXT_INSN (insn); if (INSN_P (insn) && reg_mentioned_p (ix86_flags_rtx, PATTERN (insn))) ! { ! if (DEBUG_INSN_P (insn) && debug_seen >= 0) ! { ! debug_seen = 1; ! continue; ! } ! return insn; ! } if (CALL_P (insn)) return NULL; *************** swap_rtx_condition_1 (rtx pat) *** 1246,1253 **** return r; } static int ! swap_rtx_condition (rtx_insn *insn) { rtx pat = PATTERN (insn); --- 1253,1274 ---- return r; } + /* This function swaps condition in cc users and returns true + if successful. It is invoked in 2 different modes, one with + DEBUG_SEEN set initially to 0. In this mode, next_flags_user + will skip DEBUG_INSNs that it would otherwise return and just + sets DEBUG_SEEN to 1 in that case. If DEBUG_SEEN is 0 at + the end of toplevel swap_rtx_condition which returns true, + it means no problematic DEBUG_INSNs were seen and all changes + have been applied. If it returns true but DEBUG_SEEN is 1, + it means some problematic DEBUG_INSNs were seen and no changes + have been applied so far. In that case one needs to call + swap_rtx_condition again with DEBUG_SEEN set to -1, in which + case it doesn't skip DEBUG_INSNs, but instead adjusts the + flags related condition in them or resets them as needed. */ + static int ! swap_rtx_condition (rtx_insn *insn, int &debug_seen) { rtx pat = PATTERN (insn); *************** swap_rtx_condition (rtx_insn *insn) *** 1257,1263 **** && REG_P (SET_DEST (pat)) && REGNO (SET_DEST (pat)) == FLAGS_REG) { ! insn = next_flags_user (insn); if (insn == NULL_RTX) return 0; pat = PATTERN (insn); --- 1278,1284 ---- && REG_P (SET_DEST (pat)) && REGNO (SET_DEST (pat)) == FLAGS_REG) { ! insn = next_flags_user (insn, debug_seen); if (insn == NULL_RTX) return 0; pat = PATTERN (insn); *************** swap_rtx_condition (rtx_insn *insn) *** 1279,1285 **** { insn = NEXT_INSN (insn); if (INSN_P (insn) && reg_mentioned_p (dest, insn)) ! break; if (CALL_P (insn)) return 0; } --- 1300,1317 ---- { insn = NEXT_INSN (insn); if (INSN_P (insn) && reg_mentioned_p (dest, insn)) ! { ! if (DEBUG_INSN_P (insn)) ! { ! if (debug_seen >= 0) ! debug_seen = 1; ! else ! /* Reset the DEBUG insn otherwise. */ ! INSN_VAR_LOCATION_LOC (insn) = gen_rtx_UNKNOWN_VAR_LOC (); ! continue; ! } ! break; ! } if (CALL_P (insn)) return 0; } *************** swap_rtx_condition (rtx_insn *insn) *** 1299,1305 **** return 0; /* Now we are prepared to handle this as a normal cc0 setter. */ ! insn = next_flags_user (insn); if (insn == NULL_RTX) return 0; pat = PATTERN (insn); --- 1331,1337 ---- return 0; /* Now we are prepared to handle this as a normal cc0 setter. */ ! insn = next_flags_user (insn, debug_seen); if (insn == NULL_RTX) return 0; pat = PATTERN (insn); *************** swap_rtx_condition (rtx_insn *insn) *** 1308,1330 **** if (swap_rtx_condition_1 (pat)) { int fail = 0; ! INSN_CODE (insn) = -1; ! if (recog_memoized (insn) == -1) ! fail = 1; ! /* In case the flags don't die here, recurse to try fix ! following user too. */ ! else if (! dead_or_set_p (insn, ix86_flags_rtx)) { ! insn = next_flags_user (insn); ! if (!insn || !swap_rtx_condition (insn)) fail = 1; } ! if (fail) { ! swap_rtx_condition_1 (pat); ! return 0; } ! return 1; } return 0; } --- 1340,1364 ---- if (swap_rtx_condition_1 (pat)) { int fail = 0; ! if (DEBUG_INSN_P (insn)) ! gcc_assert (debug_seen < 0); ! else { ! INSN_CODE (insn) = -1; ! if (recog_memoized (insn) == -1) fail = 1; } ! /* In case the flags don't die here, recurse to try fix ! following user too. */ ! if (!fail && !dead_or_set_p (insn, ix86_flags_rtx)) { ! insn = next_flags_user (insn, debug_seen); ! if (!insn || !swap_rtx_condition (insn, debug_seen)) ! fail = 1; } ! if (fail || debug_seen == 1) ! swap_rtx_condition_1 (pat); ! return !fail; } return 0; } *************** compare_for_stack_reg (rtx_insn *insn, s *** 1343,1348 **** --- 1377,1383 ---- { rtx *src1, *src2; rtx src1_note, src2_note; + int debug_seen = 0; src1 = get_true_reg (&XEXP (pat_src, 0)); src2 = get_true_reg (&XEXP (pat_src, 1)); *************** compare_for_stack_reg (rtx_insn *insn, s *** 1352,1359 **** if ((! STACK_REG_P (*src1) || (STACK_REG_P (*src2) && get_hard_regnum (regstack, *src2) == FIRST_STACK_REG)) ! && swap_rtx_condition (insn)) { std::swap (XEXP (pat_src, 0), XEXP (pat_src, 1)); src1 = get_true_reg (&XEXP (pat_src, 0)); --- 1387,1403 ---- if ((! STACK_REG_P (*src1) || (STACK_REG_P (*src2) && get_hard_regnum (regstack, *src2) == FIRST_STACK_REG)) ! && swap_rtx_condition (insn, debug_seen)) { + /* If swap_rtx_condition succeeded but some debug insns + were seen along the way, it has actually reverted all the + changes. Rerun swap_rtx_condition in a mode where DEBUG_ISNSs + will be adjusted as well. */ + if (debug_seen) + { + debug_seen = -1; + swap_rtx_condition (insn, debug_seen); + } std::swap (XEXP (pat_src, 0), XEXP (pat_src, 1)); src1 = get_true_reg (&XEXP (pat_src, 0)); diff -Nrcpad gcc-11.3.0/gcc/regrename.c gcc-11.4.0/gcc/regrename.c *** gcc-11.3.0/gcc/regrename.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/regrename.c Mon May 29 08:46:29 2023 *************** static bool *** 324,331 **** check_new_reg_p (int reg ATTRIBUTE_UNUSED, int new_reg, class du_head *this_head, HARD_REG_SET this_unavailable) { ! machine_mode mode = GET_MODE (*this_head->first->loc); ! int nregs = hard_regno_nregs (new_reg, mode); int i; struct du_chain *tmp; --- 324,330 ---- check_new_reg_p (int reg ATTRIBUTE_UNUSED, int new_reg, class du_head *this_head, HARD_REG_SET this_unavailable) { ! int nregs = this_head->nregs; int i; struct du_chain *tmp; diff -Nrcpad gcc-11.3.0/gcc/rtl-ssa/accesses.cc gcc-11.4.0/gcc/rtl-ssa/accesses.cc *** gcc-11.3.0/gcc/rtl-ssa/accesses.cc Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/rtl-ssa/accesses.cc Mon May 29 08:46:29 2023 *************** set_node::print (pretty_printer *pp) con *** 394,399 **** --- 394,421 ---- } // See the comment above the declaration. + clobber_info * + clobber_group::prev_clobber (insn_info *insn) const + { + auto &tree = const_cast (m_clobber_tree); + int comparison = lookup_clobber (tree, insn); + if (comparison <= 0) + return dyn_cast (tree.root ()->prev_def ()); + return tree.root (); + } + + // See the comment above the declaration. + clobber_info * + clobber_group::next_clobber (insn_info *insn) const + { + auto &tree = const_cast (m_clobber_tree); + int comparison = lookup_clobber (tree, insn); + if (comparison >= 0) + return dyn_cast (tree.root ()->next_def ()); + return tree.root (); + } + + // See the comment above the declaration. void clobber_group::print (pretty_printer *pp) const { *************** clobber_group::print (pretty_printer *pp *** 415,420 **** --- 437,468 ---- pp_indentation (pp) -= 4; } + // See the comment above the declaration. + def_info * + def_lookup::prev_def (insn_info *insn) const + { + if (mux && comparison == 0) + if (auto *node = mux.dyn_cast ()) + if (auto *group = dyn_cast (node)) + if (clobber_info *clobber = group->prev_clobber (insn)) + return clobber; + + return last_def_of_prev_group (); + } + + // See the comment above the declaration. + def_info * + def_lookup::next_def (insn_info *insn) const + { + if (mux && comparison == 0) + if (auto *node = mux.dyn_cast ()) + if (auto *group = dyn_cast (node)) + if (clobber_info *clobber = group->next_clobber (insn)) + return clobber; + + return first_def_of_next_group (); + } + // Return a clobber_group for CLOBBER, creating one if CLOBBER doesn't // already belong to a group. clobber_group * *************** function_info::make_use_available (use_i *** 1295,1303 **** input->m_is_temp = true; phi->m_is_temp = true; phi->make_degenerate (input); ! if (def_info *prev = dl.prev_def ()) phi->set_prev_def (prev); ! if (def_info *next = dl.next_def ()) phi->set_next_def (next); } --- 1343,1351 ---- input->m_is_temp = true; phi->m_is_temp = true; phi->make_degenerate (input); ! if (def_info *prev = dl.prev_def (phi_insn)) phi->set_prev_def (prev); ! if (def_info *next = dl.next_def (phi_insn)) phi->set_next_def (next); } diff -Nrcpad gcc-11.3.0/gcc/rtl-ssa/accesses.h gcc-11.4.0/gcc/rtl-ssa/accesses.h *** gcc-11.3.0/gcc/rtl-ssa/accesses.h Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/rtl-ssa/accesses.h Mon May 29 08:46:29 2023 *************** public: *** 909,914 **** --- 909,920 ---- clobber_info *first_clobber () const; clobber_info *last_clobber () const { return m_last_clobber; } + // Return the last clobber before INSN in the group, or null if none. + clobber_info *prev_clobber (insn_info *insn) const; + + // Return the next clobber after INSN in the group, or null if none. + clobber_info *next_clobber (insn_info *insn) const; + // Return true if this group has been replaced by new clobber_groups. bool has_been_superceded () const { return !m_last_clobber; } *************** public: *** 993,1017 **** // // Otherwise, return the last definition that occurs before P, // or null if none. ! def_info *prev_def () const; // If we found a clobber_group that spans P, return the definition // that follows the end of the group, or null if none. // // Otherwise, return the first definition that occurs after P, // or null if none. ! def_info *next_def () const; // If we found a set_info at P, return that set_info, otherwise return null. set_info *matching_set () const; // If we found a set_info at P, return that set_info, otherwise return // prev_def (). ! def_info *matching_or_prev_def () const; // If we found a set_info at P, return that set_info, otherwise return // next_def (). ! def_info *matching_or_next_def () const; def_mux mux; int comparison; --- 999,1031 ---- // // Otherwise, return the last definition that occurs before P, // or null if none. ! def_info *last_def_of_prev_group () const; // If we found a clobber_group that spans P, return the definition // that follows the end of the group, or null if none. // // Otherwise, return the first definition that occurs after P, // or null if none. ! def_info *first_def_of_next_group () const; // If we found a set_info at P, return that set_info, otherwise return null. set_info *matching_set () const; // If we found a set_info at P, return that set_info, otherwise return // prev_def (). ! def_info *matching_set_or_last_def_of_prev_group () const; // If we found a set_info at P, return that set_info, otherwise return // next_def (). ! def_info *matching_set_or_first_def_of_next_group () const; ! ! // P is the location of INSN. Return the last definition (of any kind) ! // that occurs before INSN, or null if none. ! def_info *prev_def (insn_info *insn) const; ! ! // P is the location of INSN. Return the next definition (of any kind) ! // that occurs after INSN, or null if none. ! def_info *next_def (insn_info *insn) const; def_mux mux; int comparison; diff -Nrcpad gcc-11.3.0/gcc/rtl-ssa/member-fns.inl gcc-11.4.0/gcc/rtl-ssa/member-fns.inl *** gcc-11.3.0/gcc/rtl-ssa/member-fns.inl Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/rtl-ssa/member-fns.inl Mon May 29 08:46:29 2023 *************** def_mux::set () const *** 401,407 **** } inline def_info * ! def_lookup::prev_def () const { if (!mux) return nullptr; --- 401,407 ---- } inline def_info * ! def_lookup::last_def_of_prev_group () const { if (!mux) return nullptr; *************** def_lookup::prev_def () const *** 413,419 **** } inline def_info * ! def_lookup::next_def () const { if (!mux) return nullptr; --- 413,419 ---- } inline def_info * ! def_lookup::first_def_of_next_group () const { if (!mux) return nullptr; *************** def_lookup::matching_set () const *** 433,451 **** } inline def_info * ! def_lookup::matching_or_prev_def () const { if (set_info *set = matching_set ()) return set; ! return prev_def (); } inline def_info * ! def_lookup::matching_or_next_def () const { if (set_info *set = matching_set ()) return set; ! return next_def (); } inline insn_note::insn_note (insn_note_kind kind) --- 433,451 ---- } inline def_info * ! def_lookup::matching_set_or_last_def_of_prev_group () const { if (set_info *set = matching_set ()) return set; ! return last_def_of_prev_group (); } inline def_info * ! def_lookup::matching_set_or_first_def_of_next_group () const { if (set_info *set = matching_set ()) return set; ! return first_def_of_next_group (); } inline insn_note::insn_note (insn_note_kind kind) diff -Nrcpad gcc-11.3.0/gcc/rtl-ssa/movement.h gcc-11.4.0/gcc/rtl-ssa/movement.h *** gcc-11.3.0/gcc/rtl-ssa/movement.h Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/rtl-ssa/movement.h Mon May 29 08:46:29 2023 *************** restrict_movement_for_dead_range (insn_r *** 103,109 **** resource_info resource = full_register (regno); def_lookup dl = crtl->ssa->find_def (resource, insn); ! def_info *prev = dl.prev_def (); ebb_info *ebb = insn->ebb (); if (!prev || prev->ebb () != ebb) { --- 103,109 ---- resource_info resource = full_register (regno); def_lookup dl = crtl->ssa->find_def (resource, insn); ! def_info *prev = dl.last_def_of_prev_group (); ebb_info *ebb = insn->ebb (); if (!prev || prev->ebb () != ebb) { *************** restrict_movement_for_dead_range (insn_r *** 143,150 **** } // Stop the instruction moving beyond the next relevant definition of REGNO. ! def_info *next = first_def_ignoring (dl.matching_or_next_def (), ! ignore_clobbers::YES, ignore); if (next) move_range = move_earlier_than (move_range, next->insn ()); --- 143,150 ---- } // Stop the instruction moving beyond the next relevant definition of REGNO. ! def_info *next = dl.matching_set_or_first_def_of_next_group (); ! next = first_def_ignoring (next, ignore_clobbers::YES, ignore); if (next) move_range = move_earlier_than (move_range, next->insn ()); diff -Nrcpad gcc-11.3.0/gcc/rtlanal.c gcc-11.4.0/gcc/rtlanal.c *** gcc-11.3.0/gcc/rtlanal.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/rtlanal.c Mon May 29 08:46:29 2023 *************** replace_rtx (rtx x, rtx from, rtx to, bo *** 3405,3411 **** { rtx new_rtx = replace_rtx (SUBREG_REG (x), from, to, all_regs); ! if (CONST_INT_P (new_rtx)) { x = simplify_subreg (GET_MODE (x), new_rtx, GET_MODE (SUBREG_REG (x)), --- 3405,3411 ---- { rtx new_rtx = replace_rtx (SUBREG_REG (x), from, to, all_regs); ! if (CONST_SCALAR_INT_P (new_rtx)) { x = simplify_subreg (GET_MODE (x), new_rtx, GET_MODE (SUBREG_REG (x)), *************** replace_rtx (rtx x, rtx from, rtx to, bo *** 3421,3427 **** { rtx new_rtx = replace_rtx (XEXP (x, 0), from, to, all_regs); ! if (CONST_INT_P (new_rtx)) { x = simplify_unary_operation (ZERO_EXTEND, GET_MODE (x), new_rtx, GET_MODE (XEXP (x, 0))); --- 3421,3427 ---- { rtx new_rtx = replace_rtx (XEXP (x, 0), from, to, all_regs); ! if (CONST_SCALAR_INT_P (new_rtx)) { x = simplify_unary_operation (ZERO_EXTEND, GET_MODE (x), new_rtx, GET_MODE (XEXP (x, 0))); diff -Nrcpad gcc-11.3.0/gcc/sanopt.c gcc-11.4.0/gcc/sanopt.c *** gcc-11.3.0/gcc/sanopt.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/sanopt.c Mon May 29 08:46:29 2023 *************** pass_sanopt::execute (function *fun) *** 1275,1280 **** --- 1275,1281 ---- basic_block bb; int asan_num_accesses = 0; bool contains_asan_mark = false; + int ret = 0; /* Try to remove redundant checks. */ if (optimize *************** pass_sanopt::execute (function *fun) *** 1327,1332 **** --- 1328,1334 ---- if (gimple_call_internal_p (stmt)) { enum internal_fn ifn = gimple_call_internal_fn (stmt); + int this_ret = TODO_cleanup_cfg; switch (ifn) { case IFN_UBSAN_NULL: *************** pass_sanopt::execute (function *fun) *** 1362,1369 **** --- 1364,1373 ---- no_next = hwasan_expand_mark_ifn (&gsi); break; default: + this_ret = 0; break; } + ret |= this_ret; } else if (gimple_call_builtin_p (stmt, BUILT_IN_NORMAL)) { *************** pass_sanopt::execute (function *fun) *** 1393,1399 **** if (need_commit_edge_insert) gsi_commit_edge_inserts (); ! return 0; } } // anon namespace --- 1397,1403 ---- if (need_commit_edge_insert) gsi_commit_edge_inserts (); ! return ret; } } // anon namespace diff -Nrcpad gcc-11.3.0/gcc/selftest-diagnostic.c gcc-11.4.0/gcc/selftest-diagnostic.c *** gcc-11.3.0/gcc/selftest-diagnostic.c Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/selftest-diagnostic.c Mon May 29 08:46:29 2023 *************** test_diagnostic_context::test_diagnostic *** 41,46 **** --- 41,47 ---- show_column = true; start_span = start_span_cb; min_margin_width = 6; + caret_max_width = 80; } test_diagnostic_context::~test_diagnostic_context () diff -Nrcpad gcc-11.3.0/gcc/symbol-summary.h gcc-11.4.0/gcc/symbol-summary.h *** gcc-11.3.0/gcc/symbol-summary.h Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/symbol-summary.h Mon May 29 08:46:29 2023 *************** public: *** 191,197 **** template void traverse (Arg a) const { ! m_map.traverse (a); } /* Getter for summary callgraph node pointer. If a summary for a node --- 191,197 ---- template void traverse (Arg a) const { ! m_map.template traverse (a); } /* Getter for summary callgraph node pointer. If a summary for a node *************** public: *** 690,696 **** template void traverse (Arg a) const { ! m_map.traverse (a); } /* Getter for summary callgraph edge pointer. --- 690,696 ---- template void traverse (Arg a) const { ! m_map.template traverse (a); } /* Getter for summary callgraph edge pointer. diff -Nrcpad gcc-11.3.0/gcc/testsuite/ChangeLog gcc-11.4.0/gcc/testsuite/ChangeLog *** gcc-11.3.0/gcc/testsuite/ChangeLog Thu Apr 21 07:59:16 2022 --- gcc-11.4.0/gcc/testsuite/ChangeLog Mon May 29 08:46:50 2023 *************** *** 1,3 **** --- 1,2296 ---- + 2023-05-29 Release Manager + + * GCC 11.4.0 released. + + 2023-05-22 Michael Meissner + + PR target/70243 + * gcc.target/powerpc/pr70243.c: New test. Back port from master + 04/10/2023. + + 2023-05-22 Patrick Palka + + Backported from master: + 2023-03-03 Patrick Palka + + PR c++/108998 + * g++.dg/cpp2a/lambda-generic11.C: New test. + + 2023-05-22 Patrick Palka + + Backported from master: + 2022-12-15 Patrick Palka + + PR c++/100295 + PR c++/107579 + * g++.dg/cpp1z/constexpr-if-lambda5.C: New test. + + 2023-05-22 Patrick Palka + + Backported from master: + 2022-11-29 Patrick Palka + + PR c++/107864 + * g++.dg/concepts/explicit-spec1a.C: New test. + + 2023-05-22 Patrick Palka + + Backported from master: + 2022-11-03 Patrick Palka + + PR c++/107179 + * g++.dg/cpp2a/concepts-requires31.C: New test. + + 2023-05-22 Patrick Palka + + Backported from master: + 2022-03-30 Patrick Palka + + PR c++/100474 + * g++.dg/cpp2a/concepts-traits3.C: New test. + + 2023-05-22 Patrick Palka + + Backported from master: + 2022-03-12 Patrick Palka + + PR c++/104527 + * g++.dg/cpp2a/concepts-return-req4.C: New test. + + 2023-05-22 Patrick Palka + + Backported from master: + 2022-01-28 Patrick Palka + Jason Merrill + + PR c++/92752 + * g++.dg/warn/Wignored-qualifiers2.C: New test. + + 2023-05-20 Harald Anlauf + + Backported from master: + 2023-05-15 Harald Anlauf + + PR fortran/109846 + * gfortran.dg/ptr-func-5.f90: New test. + + 2023-05-16 Iain Sandoe + + Backported from master: + 2021-12-24 Iain Sandoe + + * gcc.dg/darwin-aligned-globals.c: New test. + * gcc.dg/darwin-comm-1.c: New test. + * gcc.dg/attr-aligned.c: Amend for new alignment values on + Darwin. + * gcc.target/i386/pr89261.c: Likewise. + + 2023-05-16 François-Xavier Coudert + + Backported from master: + 2021-12-18 François-Xavier Coudert + + * gcc.dg/darwin-minversion-link.c: Test darwin21. + * obj-c++.dg/cxx-ivars-3.mm: Homogeneize darwin versions. + * obj-c++.dg/objc-gc-3.mm: Homogeneize darwin versions. + * objc.dg/objc-gc-4.m: Homogeneize darwin versions. + + 2023-05-10 Richard Biener + + Backported from master: + 2023-03-02 Richard Biener + + PR testsuite/108985 + * gcc.dg/vect/pr108950.c: Require vect_simd_clones. + + 2023-05-09 Jakub Jelinek + + Backported from master: + 2023-05-09 Jakub Jelinek + + PR tree-optimization/109778 + * gcc.dg/lto/pr109778_0.c: New test. + * gcc.dg/lto/pr109778_1.c: New file. + + 2023-05-09 Jakub Jelinek + + Backported from master: + 2023-05-09 Jakub Jelinek + + PR tree-optimization/109778 + * gcc.c-torture/execute/pr109778.c: New test. + + 2023-05-09 Richard Biener + + Backported from master: + 2023-03-01 Richard Biener + + PR tree-optimization/108950 + * gcc.dg/vect/pr108950.c: New testcase. + + 2023-05-09 Jason Merrill + + PR c++/106740 + PR c++/105852 + * g++.dg/template/friend78.C: New test. + + 2023-05-04 Richard Biener + + Backported from master: + 2023-05-04 Richard Biener + + PR tree-optimization/109724 + * g++.dg/torture/pr109724.C: New testcase. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-04-12 Jakub Jelinek + + PR tree-optimization/109410 + * gcc.dg/pr109410.c: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-03-28 Jakub Jelinek + + PR middle-end/106190 + * gcc.dg/asan/pr106190.c: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-03-28 Jakub Jelinek + + PR target/109276 + * gcc.target/i386/pr109276.c: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-03-26 Jakub Jelinek + + PR ipa/105685 + * c-c++-common/cold-2.c: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-03-23 Jakub Jelinek + + PR tree-optimization/109176 + * gcc.target/aarch64/sve/pr109176.c: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-03-20 Jakub Jelinek + + PR c++/109164 + * g++.dg/tls/thread_local13.C: New test. + * g++.dg/tls/thread_local13-aux.cc: New file. + * g++.dg/tls/thread_local14.C: New test. + * g++.dg/tls/thread_local14-aux.cc: New file. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-03-17 Jakub Jelinek + + PR target/105554 + * gcc.target/i386/pr105554.c: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-03-17 Jakub Jelinek + + PR c/109151 + * c-c++-common/ubsan/div-by-zero-8.c: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-03-17 Jakub Jelinek + + PR middle-end/108685 + * c-c++-common/gomp/doacross-8.c: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-03-14 Jakub Jelinek + + PR c++/109096 + * g++.dg/cpp1z/has-unique-obj-representations3.C: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-03-10 Jakub Jelinek + + PR c++/107558 + * g++.dg/gomp/pr107558.C: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-03-04 Jakub Jelinek + + PR c/107465 + * c-c++-common/Wsign-compare-2.c (f18): New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-03-04 Jakub Jelinek + + PR c/107465 + * c-c++-common/Wsign-compare-2.c: New test. + * c-c++-common/pr107465.c: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-03-02 Jakub Jelinek + + PR debug/108716 + * g++.dg/debug/dwarf2/pr108716.C: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-03-01 Jakub Jelinek + + PR debug/108967 + * g++.dg/debug/pr108967.C: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-02-24 Jakub Jelinek + + PR middle-end/108854 + * g++.dg/opt/pr108854.C: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-02-24 Jakub Jelinek + + PR target/108881 + * gcc.target/i386/avx512bf16-pr108881.c: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-01-24 Jakub Jelinek + + PR c++/108474 + * g++.dg/cpp1z/decomp57.C: New test. + * g++.dg/cpp1z/decomp58.C: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-01-14 Jakub Jelinek + + PR c++/108365 + * g++.dg/opt/pr108365.C: New test. + * g++.dg/warn/pr108365.C: New test. + + 2023-05-02 Andrew Pinski + + Backported from master: + 2023-02-09 Andrew Pinski + + PR tree-optimization/108688 + * gcc.c-torture/compile/pr108688-1.c: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-02-08 Jakub Jelinek + + PR tree-optimization/108692 + * gcc.dg/pr108692.c: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-02-02 Jakub Jelinek + + PR middle-end/108435 + * gcc.dg/gomp/pr108435.c: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-02-01 Jakub Jelinek + + PR debug/108573 + * gcc.dg/pr108573.c: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-02-01 Jakub Jelinek + + PR c++/108607 + * g++.dg/gomp/pr108607.C: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-01-31 Jakub Jelinek + + PR rtl-optimization/108596 + * gcc.c-torture/compile/pr108596.c: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-01-25 Jakub Jelinek + + PR tree-optimization/108498 + * gcc.c-torture/execute/pr108498-1.c: New test. + * gcc.c-torture/execute/pr108498-2.c: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-01-19 Jakub Jelinek + + PR c++/53932 + * g++.dg/init/pr53932.C: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-01-04 Jakub Jelinek + + PR middle-end/108237 + * gcc.c-torture/compile/pr108237.c: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2023-01-03 Jakub Jelinek + + PR middle-end/108264 + * gcc.dg/pr108264.c: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2022-12-23 Jakub Jelinek + + PR tree-optimization/108068 + * gcc.dg/dfp/pr108068.c: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2022-12-22 Jakub Jelinek + + PR rtl-optimization/108193 + * gfortran.dg/pr108193.f90: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2022-12-19 Jakub Jelinek + + PR testsuite/108151 + * gcc.dg/pr64536.c (bar): Cast long to __INTPTR_TYPE__ + before casting to long *. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2022-12-19 Jakub Jelinek + + PR testsuite/108151 + * gcc.dg/pr64536.c (bar): Use casts to __INTPTR_TYPE__ rather than + long when casting pointer to integral type. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2022-12-16 Jakub Jelinek + + PR rtl-optimization/106751 + * gcc.c-torture/compile/pr106751.c: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2022-12-15 Jakub Jelinek + + PR c++/107065 + * g++.dg/cpp0x/pr107065.C: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2022-12-15 Jakub Jelinek + + PR tree-optimization/108095 + * gcc.dg/pr108095.c: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2022-12-10 Jakub Jelinek + + PR tree-optimization/107997 + * gcc.c-torture/compile/pr107997.c: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2022-12-08 Jakub Jelinek + + PR debug/106719 + * gcc.dg/pr106719.c: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2022-11-28 Jakub Jelinek + + PR target/106875 + * g++.target/i386/pr106875.C: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2022-11-24 Jakub Jelinek + + PR middle-end/107317 + * gcc.dg/asan/pr107317.c: New test. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2022-11-24 Jakub Jelinek + + PR c/107127 + * gcc.dg/pr107127.c (foo): Add missing closing }. + + 2023-05-02 Jakub Jelinek + + Backported from master: + 2022-11-23 Andrew Pinski + Jakub Jelinek + + PR c/107127 + * gcc.dg/pr107127.c: New test. + + 2023-05-02 Richard Biener + + Backported from master: + 2023-02-17 Richard Biener + + PR tree-optimization/108821 + * gcc.dg/tree-ssa/ssa-lim-24.c: New testcase. + + 2023-05-02 Richard Biener + + Backported from master: + 2023-04-21 Richard Biener + + PR tree-optimization/109573 + * g++.dg/vect/pr109573.cc: New testcase. + + 2023-05-02 Richard Biener + + Backported from master: + 2023-04-25 Richard Biener + + PR rtl-optimization/109585 + * gcc.dg/torture/pr109585.c: New testcase. + + 2023-05-02 Richard Biener + + Backported from master: + 2023-04-14 Richard Biener + + PR tree-optimization/109502 + * gcc.dg/vect/pr109502.c: New testcase. + + 2023-05-02 Richard Biener + + Backported from master: + 2023-04-12 Richard Biener + + PR tree-optimization/109473 + * gcc.dg/vect/pr109473.c: New testcase. + + 2023-05-02 Richard Biener + + Backported from master: + 2023-02-02 Richard Biener + + PR middle-end/108625 + * gcc.dg/pr108625.c: New testcase. + + 2023-05-02 Richard Biener + + Backported from master: + 2022-12-13 Richard Biener + + PR tree-optimization/108076 + * gcc.dg/torture/pr108076.c: New testcase. + + 2023-05-02 Richard Biener + + Backported from master: + 2022-12-22 Richard Biener + + PR tree-optimization/107451 + * gcc.dg/torture/pr107451.c: New testcase. + + 2023-05-02 Richard Biener + + Backported from master: + 2023-03-29 Richard Biener + + PR ipa/106124 + * g++.dg/gomp/pr106124.C: New testcase. + + 2023-04-24 Haochen Gui + + PR target/108812 + * gcc.target/powerpc/p9-sign_extend-runnable.c: Set corresponding + expected vectors for Big Endian. + * gcc.target/powerpc/int_128bit-runnable.c: Likewise. + + 2023-04-22 Jason Merrill + + PR c++/107163 + * g++.dg/warn/Wsequence-point-5.C: New test. + + 2023-04-22 Jason Merrill + + PR c++/105996 + * g++.dg/cpp0x/constexpr-pmf3.C: New test. + + 2023-04-22 Jason Merrill + + PR c++/108975 + * g++.dg/cpp0x/lambda/lambda-const11.C: New test. + + 2023-04-22 Jason Merrill + + PR c++/69410 + * g++.dg/lookup/friend24.C: New test. + + 2023-04-22 Jason Merrill + + PR c++/101869 + * g++.dg/cpp0x/enum43.C: New test. + + 2023-04-22 Jason Merrill + + PR c++/105406 + * g++.dg/coroutines/co-await-moveonly1.C: New test. + + 2023-04-22 Jason Merrill + + PR c++/103871 + PR c++/98056 + * g++.dg/coroutines/co-await-initlist1.C: New test. + + 2023-04-22 Jason Merrill + + PR c++/108468 + * g++.dg/cpp1y/var-templ78.C: New test. + + 2023-04-18 Philipp Tomsich + + Backported from master: + 2023-01-31 Philipp Tomsich + + PR target/108589 + * gcc.target/aarch64/pr108589.c: New test. + + 2023-04-17 Philipp Tomsich + + Backported from master: + 2023-04-17 Philipp Tomsich + Di Zhao + + * gcc.target/aarch64/ampere1-no_ldp_combine.c: New test. + + 2023-04-17 Richard Biener + + Backported from master: + 2022-05-05 Richard Biener + + PR tree-optimization/105484 + * gcc.dg/torture/pr105484.c: New testcase. + + 2023-04-17 Richard Biener + + Backported from master: + 2022-02-09 Richard Biener + + PR middle-end/104464 + * gcc.dg/pr104464.c: New testcase. + + 2023-04-17 Richard Biener + + Backported from master: + 2022-02-09 Richard Biener + + PR middle-end/104450 + * g++.dg/torture/pr104450.C: New testcase. + + 2023-04-17 Kewen Lin + + Backported from master: + 2023-04-04 Kewen Lin + + PR target/108699 + * gcc.target/powerpc/p9-vparity.c: Add scan-assembler-not for vpopcntb + to distinguish parity byte from parity. + * gcc.target/powerpc/pr108699.c: New test. + + 2023-04-16 Harald Anlauf + + Backported from master: + 2023-04-14 Harald Anlauf + + PR fortran/109511 + * gfortran.dg/set_exponent_1.f90: New test. + + 2023-04-11 Michael Meissner + + PR target/109067 + * gcc.target/powerpc/divic3-1.c: New test. Backport from master, + 3/20/2023. + * gcc.target/powerpc/divic3-2.c: Likewise. + * gcc.target/powerpc/mulic3-1.c: Likewise. + * gcc.target/powerpc/mulic3-2.c: Likewise. + + 2023-03-28 Eric Botcazou + + * gcc.target/sparc/20230328-1.c: New test. + * gcc.target/sparc/20230328-2.c: Likewise. + * gcc.target/sparc/20230328-3.c: Likewise. + * gcc.target/sparc/20230328-4.c: Likewise. + + 2023-03-24 Harald Anlauf + + Backported from master: + 2023-03-21 Harald Anlauf + + PR fortran/99036 + * gfortran.dg/pr99036.f90: New test. + + 2023-03-24 Harald Anlauf + + Backported from master: + 2023-03-20 Harald Anlauf + + PR fortran/109186 + * gfortran.dg/nearest_6.f90: New test. + + 2023-03-24 Harald Anlauf + + Backported from master: + 2023-03-19 Harald Anlauf + + PR fortran/85877 + * gfortran.dg/pr85877.f90: New test. + + 2023-03-17 Harald Anlauf + + Backported from master: + 2023-03-11 Harald Anlauf + + PR fortran/106945 + * gfortran.dg/pr106945.f90: New test. + + 2023-03-17 Harald Anlauf + + Backported from master: + 2023-03-10 Harald Anlauf + + PR fortran/104332 + * gfortran.dg/bind_c_usage_34.f90: New test. + + 2023-03-14 Iain Buclaw + + Backported from master: + 2023-03-14 Iain Buclaw + + PR d/109108 + * gdc.dg/torture/torture.exp (srcdir): New proc. + * gdc.dg/torture/imports/pr109108.d: New test. + * gdc.dg/torture/pr109108.d: New test. + + 2023-03-13 Arsen Arsenović + + PR c++/106188 + PR c++/106713 + * g++.dg/coroutines/pr106188.C: New test. + + 2023-03-05 Harald Anlauf + + Backported from master: + 2023-02-27 Harald Anlauf + + PR fortran/108937 + * gfortran.dg/ibits_2.f90: New test. + + 2023-03-05 Harald Anlauf + + Backported from master: + 2023-02-22 Harald Anlauf + + PR fortran/96024 + * gfortran.dg/pr96024.f90: New test. + + 2023-03-05 Harald Anlauf + + Backported from master: + 2023-02-21 Harald Anlauf + + PR fortran/96025 + * gfortran.dg/pr96025.f90: New test. + + 2023-03-03 Iain Buclaw + + Backported from master: + 2023-03-03 Iain Buclaw + + PR d/108877 + * gdc.dg/imports/pr108877a.d: New test. + * gdc.dg/pr108877.d: New test. + + 2023-02-27 Kewen Lin + + Backported from master: + 2023-02-14 Kewen Lin + + PR target/96373 + * gcc.target/powerpc/p9-vec-length-epil-1.c: Add -fno-trapping-math. + * gcc.target/powerpc/p9-vec-length-epil-2.c: Likewise. + * gcc.target/powerpc/p9-vec-length-epil-3.c: Likewise. + * gcc.target/powerpc/p9-vec-length-epil-4.c: Likewise. + * gcc.target/powerpc/p9-vec-length-epil-5.c: Likewise. + * gcc.target/powerpc/p9-vec-length-epil-6.c: Likewise. + * gcc.target/powerpc/p9-vec-length-epil-8.c: Likewise. + * gcc.target/powerpc/p9-vec-length-full-1.c: Likewise. + * gcc.target/powerpc/p9-vec-length-full-2.c: Likewise. + * gcc.target/powerpc/p9-vec-length-full-3.c: Likewise. + * gcc.target/powerpc/p9-vec-length-full-4.c: Likewise. + * gcc.target/powerpc/p9-vec-length-full-5.c: Likewise. + * gcc.target/powerpc/p9-vec-length-full-6.c: Likewise. + * gcc.target/powerpc/p9-vec-length-full-8.c: Likewise. + * gcc.target/powerpc/pr96373.c: New test. + + 2023-02-20 Alex Coplan + + Backported from master: + 2023-02-06 Alex Coplan + + PR target/104921 + * gcc.target/aarch64/pr104921-1.c: New test. + * gcc.target/aarch64/pr104921-2.c: New test. + * gcc.target/aarch64/pr104921.x: Include file for new tests. + + 2023-02-15 Marek Polacek + + Backported from master: + 2023-02-15 Marek Polacek + + PR c++/106675 + * g++.dg/cpp0x/overload-conv-5.C: New test. + + 2023-02-13 Kewen Lin + + Backported from master: + 2023-01-18 Kewen Lin + + PR target/108348 + * gcc.target/powerpc/pr108348-1.c: New test. + * gcc.target/powerpc/pr108348-2.c: New test. + + 2023-02-13 Kewen Lin + + Backported from master: + 2023-01-16 Kewen Lin + + PR target/108272 + * gcc.target/powerpc/pr108272-1.c: New test. + * gcc.target/powerpc/pr108272-2.c: New test. + * gcc.target/powerpc/pr108272-3.c: New test. + * gcc.target/powerpc/pr108272-4.c: New test. + + 2023-02-10 Steve Kargl + + Backported from master: + 2023-02-08 Steve Kargl + + PR fortran/103259 + * gfortran.dg/pr103259.f90: New test. + + 2023-02-10 Harald Anlauf + + Backported from master: + 2023-02-07 Harald Anlauf + + PR fortran/95107 + * gfortran.dg/save_7.f90: New test. + + 2023-02-10 Harald Anlauf + + Backported from master: + 2023-02-01 Harald Anlauf + + PR fortran/108609 + * gfortran.dg/pr108527.f90: Adjust test pattern. + + 2023-02-10 Harald Anlauf + + Backported from master: + 2023-01-28 Harald Anlauf + Steven G. Kargl + + PR fortran/108527 + * gfortran.dg/pr108527.f90: New test. + + 2023-02-07 Richard Biener + + Backported from master: + 2022-09-02 Richard Biener + + PR tree-optimization/106809 + * gcc.dg/torture/pr106809.c: New testcase. + + 2023-02-04 Harald Anlauf + + Backported from master: + 2023-01-24 Harald Anlauf + + PR fortran/108529 + * gfortran.dg/pr108529.f90: New test. + + 2023-02-04 Harald Anlauf + + Backported from master: + 2022-07-14 Harald Anlauf + Steven G. Kargl + + PR fortran/106209 + * gfortran.dg/pr106209.f90: New test. + + 2023-02-04 Harald Anlauf + + Backported from master: + 2023-01-23 Harald Anlauf + + PR fortran/108501 + * gfortran.dg/pr108501.f90: New test. + + 2023-02-04 Harald Anlauf + + Backported from master: + 2023-01-23 Harald Anlauf + + PR fortran/108502 + * gfortran.dg/pr108502.f90: New test. + + 2023-02-04 Harald Anlauf + + Backported from master: + 2023-01-17 Harald Anlauf + + PR fortran/108421 + * gfortran.dg/pr108421.f90: New test. + + 2023-02-04 Harald Anlauf + + Backported from master: + 2023-01-23 Harald Anlauf + + PR fortran/108420 + * gfortran.dg/pr108420.f90: New test. + + 2023-02-04 Harald Anlauf + + Backported from master: + 2023-01-28 Harald Anlauf + + PR fortran/108453 + * gfortran.dg/common_27.f90: New test. + + 2023-01-26 Richard Biener + + Backported from master: + 2022-11-14 Richard Biener + + * gcc.dg/pr107554.c: Restrict to lp64. + + 2023-01-25 Christophe Lyon + + Backported from master: + 2023-01-12 Christophe Lyon + Richard Sandiford + + * gcc.target/aarch64/bitfield-abi-warning-align16-O2.c: New test. + * gcc.target/aarch64/bitfield-abi-warning-align16-O2-extra.c: New + test. + * gcc.target/aarch64/bitfield-abi-warning-align32-O2.c: New test. + * gcc.target/aarch64/bitfield-abi-warning-align32-O2-extra.c: New + test. + * gcc.target/aarch64/bitfield-abi-warning-align8-O2.c: New test. + * gcc.target/aarch64/bitfield-abi-warning.h: New test. + * g++.target/aarch64/bitfield-abi-warning-align16-O2.C: New test. + * g++.target/aarch64/bitfield-abi-warning-align16-O2-extra.C: New + test. + * g++.target/aarch64/bitfield-abi-warning-align32-O2.C: New test. + * g++.target/aarch64/bitfield-abi-warning-align32-O2-extra.C: New + test. + * g++.target/aarch64/bitfield-abi-warning-align8-O2.C: New test. + * g++.target/aarch64/bitfield-abi-warning.h: New test. + + 2023-01-24 Richard Biener + + Backported from master: + 2022-11-11 Richard Biener + Nikita Voronov + + PR tree-optimization/107554 + * gcc.dg/pr107554.c: New testcase. + + 2023-01-24 Richard Biener + + Backported from master: + 2022-10-21 Richard Biener + + PR tree-optimization/107323 + * gcc.dg/tree-ssa/pr107323.c: New testcase. + + 2023-01-24 Richard Biener + + Backported from master: + 2022-10-14 Richard Biener + + PR tree-optimization/107254 + * gfortran.dg/vect/pr107254.f90: New testcase. + + 2023-01-24 Richard Biener + + Backported from master: + 2022-10-11 Richard Biener + + PR tree-optimization/107212 + * gcc.dg/vect/pr107212-1.c: New testcase. + * gcc.dg/vect/pr107212-2.c: Likewise. + + 2023-01-11 Eric Botcazou + + * gcc.dg/sso-17.c: New test. + + 2023-01-10 Stam Markianos-Wright + + Backported from master: + 2022-12-30 Stam Markianos-Wright + + PR target/107714 + * gcc.target/arm/mve/intrinsics/vldst24q_reg_offset.c: New test. + + 2023-01-08 Harald Anlauf + + Backported from master: + 2022-12-23 Harald Anlauf + + PR fortran/108131 + * gfortran.dg/pr103505.f90: Adjust expected patterns. + * gfortran.dg/pr108131.f90: New test. + + 2023-01-06 Francois-Xavier Coudert + + Backported from master: + 2021-12-29 Francois-Xavier Coudert + + PR testsuite/47334 + PR testsuite/103823 + * lib/prune.exp: Prune some warnings related to LTO and + visibility. + + 2023-01-06 Martin Liska + + Backported from master: + 2021-05-12 Martin Liska + + * lib/lto.exp: When running tests without jobserver, one can see + the following warning for tests that use 1to1 partitioning. + + 2023-01-05 Kewen Lin + + PR target/106736 + * gcc.target/powerpc/pr106736-1.c: New test. + * gcc.target/powerpc/pr106736-2.c: Likewise. + * gcc.target/powerpc/pr106736-3.c: Likewise. + * gcc.target/powerpc/pr106736-4.c: Likewise. + * gcc.target/powerpc/pr106736-5.c: Likewise. + + 2022-12-24 John David Anglin + + * g++.dg/guality/guality.exp: Skip on hppa*-*-hpux*. + * gcc.dg/guality/guality.exp: Likewise. + * gfortran.dg/guality/guality.exp: Likewise. + + 2022-12-18 Paul Thomas + + Backported from master: + 2022-12-09 Paul Thomas + + PR fortran/107872 + * gfortran.dg/pr107872.f90: New test. + + 2022-12-16 Patrick Palka + + Backported from master: + 2021-10-28 Patrick Palka + + PR c++/102780 + PR c++/108138 + * g++.dg/cpp1z/fold13.C: New test. + + 2022-12-15 Sebastian Pop + + PR target/98776 + * gcc.target/aarch64/pr98776.c: New. + * gcc.target/aarch64/pr92424-2.c: Adjust pattern. + * gcc.target/aarch64/pr92424-3.c: Adjust pattern. + + 2022-12-12 Richard Biener + + Backported from master: + 2022-10-06 Richard Biener + + PR tree-optimization/107107 + * gcc.dg/pr107107.c: New testcase. + + 2022-12-11 Iain Buclaw + + Backported from master: + 2022-12-11 Iain Buclaw + + PR d/108050 + * gdc.dg/imports/pr108050/mod1.d: New. + * gdc.dg/imports/pr108050/mod2.d: New. + * gdc.dg/imports/pr108050/package.d: New. + * gdc.dg/pr108050.d: New test. + + 2022-12-01 liuhongt + + * gcc.target/i386/pr107863.c: New test. + + 2022-11-30 Iain Buclaw + + Backported from master: + 2022-11-30 Iain Buclaw + + PR d/107592 + * gdc.dg/pr107592.d: New test. + + 2022-11-25 Harald Anlauf + + Backported from master: + 2022-11-18 Harald Anlauf + + PR fortran/107576 + * gfortran.dg/null_actual_3.f90: New test. + + 2022-11-25 Eric Botcazou + + * gnat.dg/opt100.adb: New test. + * gnat.dg/opt100_pkg.adb, gnat.dg/opt100_pkg.ads: New helper. + + 2022-11-25 Eric Botcazou + + * gnat.dg/sso18.adb: New test. + + 2022-11-21 Jakub Jelinek + + Backported from master: + 2022-11-20 Jakub Jelinek + + PR target/107183 + * gcc.dg/ubsan/pr107183.c: New test. + + 2022-11-18 Marek Polacek + + Backported from master: + 2022-11-18 Marek Polacek + + PR c++/104066 + * g++.dg/cpp2a/constinit18.C: New test. + + 2022-11-08 H.J. Lu + + Backported from master: + 2022-10-25 H.J. Lu + + PR target/107304 + * gcc.target/i386/pr107304.c: New test. + + 2022-11-04 Eric Botcazou + + * gnat.dg/opt99.adb: New test. + * gnat.dg/opt99_pkg1.ads, gnat.dg/opt99_pkg1.adb: New helper. + * gnat.dg/opt99_pkg2.ads: Likewise. + + 2022-11-04 Jakub Jelinek + + Backported from master: + 2022-10-24 Jakub Jelinek + + PR c++/107358 + * c-c++-common/pr107358.c: New test. + + 2022-11-04 Jakub Jelinek + + Backported from master: + 2022-10-24 Jakub Jelinek + + PR c++/105774 + * g++.dg/cpp1y/constexpr-105774.C: New test. + + 2022-11-04 Jakub Jelinek + + Backported from master: + 2022-09-24 Jakub Jelinek + + PR c/107001 + * c-c++-common/gomp/pr107001.c: New test. + + 2022-11-04 Jakub Jelinek + + Backported from master: + 2022-09-24 Jakub Jelinek + + PR c/106981 + * c-c++-common/gomp/pr106981.c: New test. + + 2022-11-04 Jakub Jelinek + + Backported from master: + 2022-08-16 Jakub Jelinek + + * g++.dg/cpp2a/volatile1.C: Adjust for de-deprecation of volatile + compound |=, &= and ^= operations. + * g++.dg/cpp2a/volatile3.C: Likewise. + * g++.dg/cpp2a/volatile5.C: Likewise. + + 2022-11-04 Jakub Jelinek + + Backported from master: + 2022-07-27 Jakub Jelinek + + PR debug/106261 + * g++.dg/debug/pr106261.C: New test. + + 2022-11-04 Jakub Jelinek + + Backported from master: + 2022-06-21 Jakub Jelinek + + PR rtl-optimization/106032 + * gcc.c-torture/execute/pr106032.c: New test. + + 2022-11-04 Jakub Jelinek + + Backported from master: + 2022-06-21 Jakub Jelinek + + PR middle-end/106030 + * gcc.c-torture/compile/pr106030.c: New test. + + 2022-10-29 José Rui Faustino de Sousa + + Backported from master: + 2022-10-21 José Rui Faustino de Sousa + + PR fortran/100097 + PR fortran/100098 + * gfortran.dg/PR100097.f90: New test. + * gfortran.dg/PR100098.f90: New test. + + 2022-10-28 Harald Anlauf + + Backported from master: + 2022-10-26 Harald Anlauf + + PR fortran/103413 + * gfortran.dg/illegal_boz_arg_4.f90: New test. + + 2022-10-26 Philipp Tomsich + + Backported from master: + 2022-10-06 Philipp Tomsich + + * gcc.target/aarch64/cpunative/info_18: New test. + * gcc.target/aarch64/cpunative/native_cpu_18.c: New test. + + 2022-10-25 Stefan Schulze Frielinghaus + + Backported from master: + 2022-10-19 Stefan Schulze Frielinghaus + + * gcc.target/s390/pr106355.h: Common code for new tests. + * gcc.target/s390/pr106355-1.c: New test. + * gcc.target/s390/pr106355-2.c: New test. + * gcc.target/s390/pr106355-3.c: New test. + + 2022-10-24 Marek Polacek + + Backported from master: + 2022-05-27 Marek Polacek + + PR c++/105725 + * g++.dg/warn/Wmismatched-tags-10.C: New test. + + 2022-10-23 Harald Anlauf + + Backported from master: + 2022-10-20 Harald Anlauf + Steven G. Kargl + + PR fortran/105633 + * gfortran.dg/pr105633.f90: New test. + + 2022-10-20 Richard Sandiford + + Backported from master: + 2022-10-20 Richard Sandiford + + * gcc.target/aarch64/sve/acle/general/brka_1.c: Expect a separate + PTEST instruction. + * gcc.target/aarch64/sve/acle/general/brkb_1.c: Likewise. + + 2022-10-20 Richard Sandiford + + Backported from master: + 2022-10-20 Richard Sandiford + + * gcc.target/aarch64/sve/acle/general/brkn_1.c: Expect separate + PTEST instructions. + * gcc.target/aarch64/sve/acle/general/brkn_2.c: New test. + + 2022-10-20 Richard Sandiford + + * gcc.target/aarch64/pragma_cpp_predefs_1.c: Add RCPC tests. + + 2022-10-19 Kewen Lin + + Backported from master: + 2022-09-26 Kewen Lin + + PR target/96072 + * gcc.target/powerpc/pr96072.c: New test. + + 2022-10-17 Richard Biener + + Backported from master: + 2022-09-14 Richard Biener + + PR tree-optimization/106934 + * gfortran.dg/pr106934.f90: New testcase. + + 2022-10-17 Richard Biener + + Backported from master: + 2022-09-09 Richard Biener + + PR tree-optimization/106892 + * gcc.dg/torture/pr106892.c: New testcase. + + 2022-10-17 Richard Biener + + Backported from master: + 2022-07-26 Richard Biener + + PR tree-optimization/106189 + * gcc.dg/pr106189.c: New testcase. + + 2022-10-14 Andre Vieira + + Backported from master: + 2022-07-25 Andre Vieira + + * gcc.target/aarch64/acle/data-intrinsics.c: New test. + + 2022-10-11 Richard Biener + + Backported from master: + 2022-08-10 Richard Biener + + PR tree-optimization/106513 + * gcc.dg/torture/pr106513.c: New testcase. + + 2022-10-11 Richard Biener + + Backported from master: + 2022-07-19 Richard Biener + + PR middle-end/106331 + * gfortran.dg/pr106331.f90: New testcase. + + 2022-10-11 Richard Biener + + Backported from master: + 2022-07-01 Richard Biener + + PR tree-optimization/106131 + * g++.dg/torture/pr106131.C: New testcase. + + 2022-10-11 Richard Biener + + Backported from master: + 2022-06-29 Richard Biener + + PR tree-optimization/106112 + * gcc.dg/torture/pr106112.c: New testcase. + + 2022-10-11 Richard Biener + + Backported from master: + 2022-06-20 Richard Biener + + PR middle-end/106027 + * gcc.dg/pr106027.c: New testcase. + + 2022-10-10 Mikael Morin + + Backported from master: + 2022-09-25 Mikael Morin + + PR fortran/106817 + * gfortran.dg/intent_optimize_4.f90: New test. + + 2022-10-10 Mikael Morin + + Backported from master: + 2022-09-25 Mikael Morin + + PR fortran/105012 + * gfortran.dg/intent_out_15.f90: New test. + + 2022-10-08 José Rui Faustino de Sousa + + Backported from master: + 2022-10-01 José Rui Faustino de Sousa + + PR fortran/100029 + PR fortran/100040 + * gfortran.dg/PR100029.f90: New test. + * gfortran.dg/PR100040.f90: New test. + + 2022-10-01 José Rui Faustino de Sousa + + Backported from master: + 2022-09-20 José Rui Faustino de Sousa + + PR fortran/100132 + * gfortran.dg/PR100132.f90: New test. + + 2022-09-30 Harald Anlauf + + Backported from master: + 2022-09-27 Harald Anlauf + + PR fortran/107054 + * gfortran.dg/pr107054.f90: New test. + + 2022-09-30 Harald Anlauf + + Backported from master: + 2022-09-22 Harald Anlauf + + PR fortran/82868 + * gfortran.dg/associate_26a.f90: New test. + + 2022-09-30 Harald Anlauf + + Backported from master: + 2022-09-20 Harald Anlauf + + PR fortran/106985 + * gfortran.dg/pr106985.f90: New test. + + 2022-09-30 Harald Anlauf + + Backported from master: + 2022-08-24 Harald Anlauf + + PR fortran/103694 + * gfortran.dg/pr103694.f90: New test. + + 2022-09-29 H.J. Lu + + Backported from master: + 2022-09-28 H.J. Lu + + PR target/107061 + * gcc.target/i386/keylocker-encodekey128.c: Don't check + XMM4-XMM6. + * gcc.target/i386/keylocker-encodekey256.c: Likewise. + + 2022-09-26 Harald Anlauf + + Backported from master: + 2022-09-20 Harald Anlauf + + PR fortran/106986 + * gfortran.dg/pr106986.f90: New test. + + 2022-09-24 José Rui Faustino de Sousa + + Backported from master: + 2022-09-03 José Rui Faustino de Sousa + + PR fortran/100245 + * gfortran.dg/PR100245.f90: New test. + + 2022-09-22 Harald Anlauf + + Backported from master: + 2022-09-15 Harald Anlauf + + PR fortran/106857 + * gfortran.dg/pr106857.f90: New test. + + 2022-09-13 Kewen Lin + + Backported from master: + 2022-09-07 Kewen Lin + + PR testsuite/106345 + * lib/target-supports.exp (check_effective_target_powerpc_sqrt): Add + a function definition to avoid pedwarn about empty translation unit. + (check_effective_target_has_arch_pwr5): Likewise. + (check_effective_target_has_arch_pwr6): Likewise. + (check_effective_target_has_arch_pwr7): Likewise. + (check_effective_target_has_arch_pwr8): Likewise. + (check_effective_target_has_arch_pwr9): Likewise. + (check_effective_target_has_arch_pwr10): Likewise. + (check_effective_target_has_arch_ppc64): Likewise. + (check_effective_target_ppc_float128): Likewise. + (check_effective_target_ppc_float128_insns): Likewise. + (check_effective_target_powerpc_vsx): Likewise. + + 2022-09-12 Peter Bergner + + Backported from master: + 2022-09-01 Peter Bergner + + PR target/101322 + * g++.target/powerpc/pr101322.C: New test. + + 2022-09-05 José Rui Faustino de Sousa + + Backported from master: + 2022-09-04 José Rui Faustino de Sousa + + PR fortran/100136 + * gfortran.dg/PR100136.f90: New test. + + 2022-08-30 Peter Bergner + + Backported from master: + 2022-08-28 Peter Bergner + + PR target/106017 + * gcc.target/powerpc/pr106017.c: New test. + + 2022-08-24 Kewen.Lin + + Backported from master: + 2022-08-16 Kewen.Lin + + PR target/103353 + * gcc.target/powerpc/pr103353.c: New test. + + 2022-08-17 Segher Boessenkool + + Backported from master: + 2022-04-26 Segher Boessenkoool + + PR target/105349 + * lib/target-supports.exp (check_effective_target_has_arch_pwr5): Use + the specified dg-options. + (check_effective_target_has_arch_pwr6): Ditto. + (check_effective_target_has_arch_pwr7): Ditto. + (check_effective_target_has_arch_pwr8): Ditto. + (check_effective_target_has_arch_pwr9): Ditto. + (check_effective_target_has_arch_pwr10): Ditto. + (check_effective_target_has_arch_ppc64): Ditto. + + 2022-08-17 Segher Boessenkool + + Backported from master: + 2022-04-21 Segher Boessenkool + + * lib/target-supports.exp (check_effective_target_has_arch_ppc64): New. + + 2022-08-17 Tobias Burnus + + Backported from master: + 2022-08-09 Tobias Burnus + + PR middle-end/106492 + * g++.dg/gomp/pr106492.C: New test. + + 2022-08-16 Segher Boessenkool + + Backported from master: + 2022-04-21 Segher Boessenkool + + PR target/103197 + PR target/102146 + * gcc.target/powerpc/bswap-brw.c: Add xfail on scan-assembler for -m32. + + 2022-08-12 Peter Bergner + + Backported from master: + 2022-07-26 Peter Bergner + + PR c/106016 + * gcc.target/powerpc/pr106016.c: New test. + + 2022-08-04 Peter Bergner + + Backported from master: + 2022-03-25 Peter Bergner + + * g++.dg/pr65240-1.C: Use -mdejagnu-cpu=. Remove dg-skip-if. + * g++.dg/pr65240-2.C: Likewise. + * g++.dg/pr65240-3.C: Likewise. + * g++.dg/pr65240-4.C: Likewise. + * g++.dg/pr65242.C: Likewise. + * g++.dg/pr67211.C: Likewise. + * g++.dg/pr69667.C: Likewise. + * g++.dg/pr71294.C: Likewise. + * g++.dg/pr84279.C: Likewise. + * g++.dg/torture/ppc-ldst-array.C: Likewise. + * gfortran.dg/nint_p7.f90: Likewise. + * gfortran.dg/pr102860.f90: Likewise. + * gcc.target/powerpc/fusion.c: Use -mdejagnu-cpu= and -mdejagnu-tune=. + * gcc.target/powerpc/fusion2.c: Likewise. + * gcc.target/powerpc/int_128bit-runnable.c: Use -mdejagnu-cpu=. + * gcc.target/powerpc/test_mffsl.c: Likewise. + * gfortran.dg/pr47614.f: Likewise. + * gfortran.dg/pr58968.f: Likewise. + + 2022-08-02 Lewis Hyatt + + Backported from master: + 2022-07-10 Lewis Hyatt + + PR preprocessor/97498 + * c-c++-common/pr97498.c: New test. + * gcc.dg/pragma-message.c: Adapt for improved warning locations. + + 2022-08-02 Kewen Lin + + Backported from master: + 2022-07-26 Kewen Lin + + PR target/106091 + * gcc.target/powerpc/pr106091.c: New test. + + 2022-07-26 Harald Anlauf + + Backported from master: + 2022-07-26 Harald Anlauf + + PR fortran/103504 + * gfortran.dg/pr103504.f90: New test. + + 2022-07-22 Richard Biener + + Backported from master: + 2022-05-17 Richard Biener + + PR tree-optimization/105618 + * gcc.dg/tree-ssa/ssa-sink-19.c: New testcase. + + 2022-07-22 Richard Biener + + Backported from master: + 2022-05-04 Richard Biener + + PR tree-optimization/103116 + * gcc.dg/vect/pr103116-1.c: New testcase. + * gcc.dg/vect/pr103116-2.c: Likewise. + + 2022-07-22 Jason Merrill + + PR c++/106361 + * g++.dg/cpp2a/spaceship-eq14.C: New test. + + 2022-07-21 Surya Kumari Jangala + + Backported from master: + 2022-06-14 Surya Kumari Jangala + + PR rtl-optimization/105041 + * gcc.target/powerpc/pr105041.c: New test. + + 2022-07-16 Steve Kargl + + Backported from master: + 2022-07-15 Steve Kargl + + PR fortran/104313 + * gfortran.dg/pr104313.f: New test. + + 2022-07-12 Martin Jambor + + Backported from master: + 2022-07-04 Martin Jambor + + PR tree-optimization/105860 + * gcc.dg/tree-ssa/alias-access-path-13.c: New test. + * gcc.dg/tree-ssa/pr105860.c: Likewise. + + 2022-07-04 Richard Sandiford + + Backported from master: + 2022-03-21 Richard Sandiford + + PR middle-end/104869 + * g++.dg/pr104869.C: New test. + + 2022-07-04 Iain Buclaw + + Backported from master: + 2022-06-29 Iain Buclaw + + PR d/106139 + * gdc.dg/pr106139a.d: New test. + * gdc.dg/pr106139b.d: New test. + * gdc.dg/pr106139c.d: New test. + * gdc.dg/pr106139d.d: New test. + * gdc.test/fail_compilation/ice20264.d: New test. + + 2022-07-03 Harald Anlauf + + Backported from master: + 2022-06-30 Harald Anlauf + Steven G. Kargl + + PR fortran/103137 + PR fortran/103138 + PR fortran/103693 + PR fortran/105243 + * gfortran.dg/class_58.f90: Fix test. + * gfortran.dg/class_73.f90: New test. + + 2022-07-03 Harald Anlauf + + Backported from master: + 2022-06-29 Harald Anlauf + Steven G. Kargl + + PR fortran/106121 + * gfortran.dg/extends_type_of_4.f90: New test. + + 2022-07-01 Harald Anlauf + + Backported from master: + 2022-06-26 Harald Anlauf + + PR fortran/105954 + * gfortran.dg/pr105954.f90: New test. + + 2022-07-01 Harald Anlauf + + Backported from master: + 2022-06-26 Harald Anlauf + + PR fortran/105691 + * gfortran.dg/index_6.f90: New test. + + 2022-07-01 Harald Anlauf + + Backported from master: + 2022-06-24 Harald Anlauf + + PR fortran/105813 + * gfortran.dg/unpack_vector_1.f90: New test. + + 2022-07-01 Jason Merrill + + PR c++/106024 + * g++.dg/cpp2a/lambda-generic10.C: New test. + + 2022-06-24 Jason Merrill + + PR c++/105925 + * g++.dg/cpp2a/desig26.C: New test. + + 2022-06-20 Uros Bizjak + + Backported from master: + 2022-06-17 UroÅ¡ Bizjak + + PR target/105209 + * gcc.target/alpha/pr105209.c: New test. + + 2022-06-20 Uros Bizjak + + Backported from master: + 2022-06-17 UroÅ¡ Bizjak + + PR target/105970 + * gcc.target/i386/pr105970.c: New test. + + 2022-06-20 Jakub Jelinek + + Backported from master: + 2022-06-18 Jakub Jelinek + + PR middle-end/105998 + * c-c++-common/pr105998.c: New test. + + 2022-06-20 Jan Hubicka + + Backported from master: + 2022-06-14 Jan Hubicka + + * gcc.dg/ipa/pr105739.c: New test. + + 2022-06-20 Jakub Jelinek + + Backported from master: + 2022-05-27 Jakub Jelinek + + PR sanitizer/105729 + * g++.dg/ubsan/pr105729.C: New test. + + 2022-06-15 Jakub Jelinek + + Backported from master: + 2022-05-29 Jakub Jelinek + + PR preprocessor/105732 + * c-c++-common/cpp/va-opt-10.c: New test. + + 2022-06-15 Iain Buclaw + + Backported from master: + 2022-06-15 Iain Buclaw + + * gdc.dg/Wpadded.d: New test. + + 2022-06-15 Richard Biener + + Backported from master: + 2022-05-27 Richard Biener + + PR tree-optimization/105726 + * g++.dg/warn/Warray-bounds-27.C: New testcase. + + 2022-06-14 Jakub Jelinek + + PR rtl-optimization/104637 + * gcc.target/i386/pr104637.c: Don't run on ia32. Add -Wno-div-by-zero + to dg-options. + (foo): Remove extraneous initializer. + + 2022-06-14 Vladimir N. Makarov + + PR rtl-optimization/104637 + * gcc.target/i386/pr104637.c: New. + + 2022-06-08 Jason Merrill + + PR c++/105852 + PR c++/105761 + * g++.dg/modules/tpl-friend-2_a.C: Adjust expected dump. + * g++.dg/template/friend74.C: New test. + + 2022-06-03 Jason Merrill + + PR c++/105761 + * g++.dg/cpp1y/auto-fn64.C: New test. + + 2022-06-03 Jason Merrill + + PR c++/105795 + * g++.dg/cpp1z/constexpr-aggr-base1.C: New test. + + 2022-06-02 Richard Biener + + Backported from master: + 2022-05-02 Richard Biener + + PR tree-optimization/105437 + * g++.dg/vect/pr105437.cc: New testcase. + + 2022-05-31 Jason Merrill + + PR c++/102307 + * g++.dg/cpp1z/constexpr-array2.C: New test. + + 2022-05-27 Kewen Lin + + Backported from master: + 2022-04-18 Kewen Lin + + PR testsuite/105266 + * gcc.dg/pr105250.c: Skip for powerpc*-*-* and s390*-*-*. + + 2022-05-25 Andreas Krebbel + + Backported from master: + 2022-04-07 Andreas Krebbel + + PR target/105147 + * gcc.dg/pr105140.c: Skip for s390*-*-*. + + 2022-05-25 Segher Boessenkool + + Backported from master: + 2022-04-06 Segher Boessenkool + + PR target/105147 + * gcc.dg/pr105140.c: Skip for powerpc*-*-*. + + 2022-05-24 Qing Zhao + + Backported from master: + 2022-05-09 Qing Zhao + + * gcc.target/i386/zero-scratch-regs-1.c: Add -fno-stack-protector + -fno-PIC. + * gcc.target/i386/zero-scratch-regs-10.c: Adjust mov to xor. + * gcc.target/i386/zero-scratch-regs-13.c: Add -msse. + * gcc.target/i386/zero-scratch-regs-14.c: Adjust mov to xor. + * gcc.target/i386/zero-scratch-regs-15.c: Add -fno-stack-protector + -fno-PIC. + * gcc.target/i386/zero-scratch-regs-16.c: Likewise. + * gcc.target/i386/zero-scratch-regs-17.c: Likewise. + * gcc.target/i386/zero-scratch-regs-18.c: Add -fno-stack-protector + -fno-PIC, adjust mov to xor. + * gcc.target/i386/zero-scratch-regs-19.c: Add -fno-stack-protector + -fno-PIC. + * gcc.target/i386/zero-scratch-regs-2.c: Adjust mov to xor. + * gcc.target/i386/zero-scratch-regs-20.c: Add -msse. + * gcc.target/i386/zero-scratch-regs-21.c: Add -fno-stack-protector + -fno-PIC, Adjust mov to xor. + * gcc.target/i386/zero-scratch-regs-22.c: Adjust mov to xor. + * gcc.target/i386/zero-scratch-regs-23.c: Likewise. + * gcc.target/i386/zero-scratch-regs-26.c: Likewise. + * gcc.target/i386/zero-scratch-regs-27.c: Likewise. + * gcc.target/i386/zero-scratch-regs-28.c: Likewise. + * gcc.target/i386/zero-scratch-regs-3.c: Add -fno-stack-protector. + * gcc.target/i386/zero-scratch-regs-31.c: Adjust mov to xor. + * gcc.target/i386/zero-scratch-regs-4.c: Add -fno-stack-protector + -fno-PIC. + * gcc.target/i386/zero-scratch-regs-5.c: Adjust mov to xor. + * gcc.target/i386/zero-scratch-regs-6.c: Add -fno-stack-protector. + * gcc.target/i386/zero-scratch-regs-7.c: Likewise. + * gcc.target/i386/zero-scratch-regs-8.c: Adjust mov to xor. + * gcc.target/i386/zero-scratch-regs-9.c: Add -fno-stack-protector. + + 2022-05-19 Michael Meissner + + Backported from master: + 2022-05-06 Michael Meissner + Segher Boessenkool + + PR target/102059 + * gcc.target/powerpc/pr102059-4.c: New test. + + 2022-05-19 Richard Biener + + Backported from master: + 2022-04-20 Richard Biener + + PR tree-optimization/105312 + * gcc.target/arm/pr105312.c: New testcase. + + 2022-05-19 Richard Biener + + Backported from master: + 2022-04-13 Richard Biener + + PR tree-optimization/105263 + * gcc.dg/pr105263.c: New testcase. + + 2022-05-19 Richard Biener + + Backported from master: + 2022-04-06 Richard Biener + + PR tree-optimization/105173 + * gcc.dg/pr105173.c: New testcase. + + 2022-05-19 Richard Biener + + Backported from master: + 2022-04-06 Richard Biener + + PR tree-optimization/105163 + * gcc.dg/torture/pr105163.c: New testcase. + + 2022-05-19 Richard Biener + + Backported from master: + 2022-04-06 Richard Biener + + PR tree-optimization/105148 + * gcc.dg/torture/pr105148.c: New testcase. + + 2022-05-19 Richard Biener + + Backported from master: + 2022-04-13 Richard Biener + + PR tree-optimization/105250 + * gcc.dg/pr105250.c: New testcase. + + 2022-05-19 Richard Biener + + Backported from master: + 2022-04-04 Richard Biener + + PR middle-end/105140 + * gcc.dg/pr105140.c: New testcase. + + 2022-05-19 Martin Jambor + + Backported from master: + 2022-04-29 Martin Jambor + + PR ipa/100413 + * g++.dg/ipa/pr100413.C: New test. + + 2022-05-16 Harald Anlauf + + Backported from master: + 2022-05-11 Harald Anlauf + Steven G. Kargl + + PR fortran/105230 + * gfortran.dg/pr105230.f90: New test. + + 2022-05-16 Harald Anlauf + + Backported from master: + 2022-03-09 Harald Anlauf + + PR fortran/104849 + * gfortran.dg/pr104849.f90: New test. + + 2022-05-16 Sebastian Pop + + PR target/105162 + * gcc.target/aarch64/sync-comp-swap-ool.c: New. + * gcc.target/aarch64/sync-op-acquire-ool.c: New. + * gcc.target/aarch64/sync-op-full-ool.c: New. + * gcc.target/aarch64/target_attr_20.c: Update check. + * gcc.target/aarch64/target_attr_21.c: Same. + + 2022-05-16 Richard Biener + + Backported from master: + 2022-05-16 Richard Biener + + * gcc.dg/torture/pr105598.c: New testcase. + + 2022-05-13 Jason Merrill + + PR c++/101442 + * g++.dg/cpp0x/initlist-nrv1.C: New test. + + 2022-05-13 Jason Merrill + + PR c++/101698 + * g++.dg/template/conv19.C: New test. + + 2022-05-13 Jason Merrill + + PR c++/65211 + * g++.target/i386/vec-tmpl1.C: New test. + + 2022-05-13 Patrick Palka + + Backported from master: + 2021-09-27 Patrick Palka + + PR c++/102479 + * g++.dg/cpp1z/class-deduction12.C: Also test alias CTAD in the + same way. + * g++.dg/cpp1z/class-deduction99.C: New test. + + 2022-05-13 Jason Merrill + + PR c++/102300 + * g++.dg/parse/no-typename1.C: Remove expected error. + * g++.dg/template/nested7.C: New test. + + 2022-05-12 Jason Merrill + + PR c++/102629 + * g++.dg/cpp2a/lambda-pack-init7.C: New test. + + 2022-05-12 Jason Merrill + + PR c++/104646 + * g++.dg/cpp0x/constexpr-fno-elide-ctors1.C: New test. + + 2022-05-12 Jason Merrill + + PR c++/82980 + * g++.dg/cpp0x/lambda/lambda-current-inst1.C: New test. + + 2022-05-12 Jason Merrill + + PR c++/105265 + PR c++/100838 + * g++.dg/cpp0x/initlist-new6.C: New test. + + 2022-05-12 Jason Merrill + + PR c++/105245 + PR c++/100111 + * g++.dg/cpp1y/constexpr-empty2.C: Add -fno-elide-constructors. + + 2022-05-12 Jason Merrill + + PR c++/104669 + * g++.target/i386/mv31.C: New test. + + 2022-05-12 Jason Merrill + + PR c++/102071 + * g++.dg/cpp1z/aligned-new9.C: New test. + + 2022-05-12 Jason Merrill + + PR c++/104142 + * g++.dg/opt/const7.C: New test. + + 2022-05-10 H.J. Lu + + Backported from master: + 2022-05-10 H.J. Lu + + PR target/105472 + * gcc.target/i386/iamcu/asm-support.S: Add .note.GNU-stack section + only for Linux. + * gcc.target/x86_64/abi/asm-support.S: Likewise. + * gcc.target/x86_64/abi/avx/asm-support.S: Likewise. + * gcc.target/x86_64/abi/avx512f/asm-support.S: Likewise. + * gcc.target/x86_64/abi/ms-sysv/do-test.S: Likewise. + + 2022-05-10 Jakub Jelinek + + Backported from master: + 2022-05-10 Jakub Jelinek + + PR tree-optimization/105528 + * gcc.dg/pr105528.c: New test. + + 2022-05-10 Jeff Law + + Backported from master: + 2022-04-28 Jeff Law + + * lib/prune.exp (prune_gcc_output): Prune new linker warning. + + 2022-05-10 Eric Botcazou + + * gcc.target/sparc/20220510-1.c: New test. + + 2022-05-06 Jakub Jelinek + + Backported from master: + 2022-05-04 Jakub Jelinek + + * g++.dg/cpp23/lambda-attr1.C: New test. + + 2022-05-06 Jakub Jelinek + + Backported from master: + 2022-04-28 Jakub Jelinek + + PR target/105331 + * gcc.dg/pr105331.c: New test. + + 2022-05-06 Jakub Jelinek + + Backported from master: + 2022-04-27 Jakub Jelinek + + PR sanitizer/105396 + * gcc.dg/asan/pr105396.c: New test. + + 2022-05-06 Jakub Jelinek + + Backported from master: + 2022-04-22 Jakub Jelinek + + PR rtl-optimization/105333 + * gcc.dg/pr105333.c: New test. + + 2022-05-06 H.J. Lu + + Backported from master: + 2022-05-02 H.J. Lu + + PR testsuite/105433 + * gcc.target/i386/iamcu/asm-support.S: Add .note.GNU-stack. + * gcc.target/x86_64/abi/asm-support.S: Likewise. + * gcc.target/x86_64/abi/avx/asm-support.S: Likewise. + * gcc.target/x86_64/abi/avx512f/asm-support.S: Likewise. + * gcc.target/x86_64/abi/ms-sysv/do-test.S: Likewise. + + 2022-05-03 Alexandre Oliva + + Backported from master: + 2022-05-03 Alexandre Oliva + + * gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c: Update + the expected message for the case in which unaligned accesses + are not allowed. + + 2022-04-28 David Malcolm + + PR analyzer/105365 + PR analyzer/105366 + * gcc.dg/analyzer/pr105365.c: New test. + * gcc.dg/analyzer/pr105366.c: New test. + + 2022-04-28 David Malcolm + + PR analyzer/105252 + * gcc.dg/analyzer/pr105252.c: New test. + + 2022-04-28 Patrick Palka + + Backported from master: + 2022-04-26 Patrick Palka + + PR c++/105386 + * g++.dg/cpp0x/decltype81.C: New test. + + 2022-04-28 Patrick Palka + + Backported from master: + 2022-04-26 Patrick Palka + + PR c++/105304 + * g++.dg/cpp2a/concepts-requires30.C: New test. + + 2022-04-28 Patrick Palka + + Backported from master: + 2022-04-26 Patrick Palka + + PR c++/105289 + PR c++/86193 + * g++.dg/template/partial-specialization11.C: New test. + * g++.dg/template/partial-specialization12.C: New test. + + 2022-04-28 Marek Polacek + + Backported from master: + 2022-04-28 Marek Polacek + + PR c++/90107 + * g++.dg/parse/qualified6.C: New test. + + 2022-04-28 Tamar Christina + + PR testsuite/105095 + * gcc.dg/vect/complex/fast-math-bb-slp-complex-mul-float.c: Update for + codegen. + * gcc.dg/vect/complex/fast-math-complex-add-double.c: Likewise. + * gcc.dg/vect/complex/fast-math-complex-add-float.c: Likewise. + * gcc.dg/vect/complex/fast-math-complex-add-half-float.c: Likewise. + * gcc.dg/vect/complex/fast-math-complex-add-pattern-double.c: Likewise. + * gcc.dg/vect/complex/fast-math-complex-add-pattern-float.c: Likewise. + * gcc.dg/vect/complex/fast-math-complex-add-pattern-half-float.c: + Likewise. + * gcc.dg/vect/complex/fast-math-complex-mla-half-float.c: Likewise. + * gcc.dg/vect/complex/fast-math-complex-mls-double.c: Likewise. + * gcc.dg/vect/complex/fast-math-complex-mls-float.c: Likewise. + * gcc.dg/vect/complex/fast-math-complex-mls-half-float.c: Likewise. + * gcc.dg/vect/complex/fast-math-complex-mul-double.c: Likewise. + * gcc.dg/vect/complex/fast-math-complex-mul-float.c: Likewise. + * gcc.dg/vect/complex/fast-math-complex-mul-half-float.c: Likewise. + * gcc.dg/vect/vect.exp: Add extra letter to filter. + + 2022-04-27 Marek Polacek + + Backported from master: + 2022-04-27 Marek Polacek + + PR c++/105398 + * g++.dg/cpp1y/lambda-generic-enum2.C: New test. + + 2022-04-27 Hongyu Wang + + Backported from master: + 2022-04-25 Hongyu Wang + + PR target/105339 + * gcc.target/i386/sse-14.c: Add tests for new macro. + + 2022-04-22 Marek Polacek + + Backported from master: + 2022-04-21 Marek Polacek + + PR c++/105321 + * g++.dg/cpp0x/constexpr-105321.C: New test. + + 2022-04-22 Marek Polacek + + Backported from master: + 2022-04-13 Marek Polacek + + PR c++/97296 + * g++.dg/cpp0x/ref-bind4.C: Add dg-error. + * g++.dg/cpp0x/ref-bind8.C: New test. + + 2022-04-21 Fritz Reese + + Backported from master: + 2022-04-21 Fritz Reese + + PR fortran/105310 + * gfortran.dg/dec_union_12.f90: New test. + + 2022-04-21 Jakub Jelinek + + Backported from master: + 2022-04-19 Jakub Jelinek + + PR target/105257 + * gcc.dg/pr105257.c: New test. + + 2022-04-21 Jakub Jelinek + + Backported from master: + 2022-04-21 Jakub Jelinek + + PR debug/105203 + * gfortran.dg/g77/pr105203.f: New test. + 2022-04-21 Release Manager * GCC 11.3.0 released. diff -Nrcpad gcc-11.3.0/gcc/testsuite/c-c++-common/Wsign-compare-2.c gcc-11.4.0/gcc/testsuite/c-c++-common/Wsign-compare-2.c *** gcc-11.3.0/gcc/testsuite/c-c++-common/Wsign-compare-2.c Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/c-c++-common/Wsign-compare-2.c Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,112 ---- + /* { dg-do compile { target { ilp32 || lp64 } } } */ + /* { dg-options "-Wsign-compare" } */ + + int + f1 (unsigned char x) + { + return (unsigned short) (~(unsigned short) x) == 0; /* { dg-warning "promoted bitwise complement of an unsigned value is always nonzero" "" { target c } } */ + } + + int + f2 (unsigned char x) + { + return (unsigned short) (~(unsigned short) x) == 5; /* { dg-warning "comparison of promoted bitwise complement of an unsigned value with constant" "" { target c } } */ + } + + int + f3 (unsigned char x) + { + return (unsigned int) (~(unsigned short) x) == 0xffff0005U; /* { dg-warning "comparison of promoted bitwise complement of an unsigned value with constant" } */ + } + + int + f4 (unsigned char x) + { + return (unsigned int) (~(unsigned short) x) == 0xffff0005ULL; /* { dg-warning "comparison of promoted bitwise complement of an unsigned value with constant" } */ + } + + int + f5 (unsigned char x) + { + return (unsigned int) (~(unsigned short) x) == 0xffffff05U; /* { dg-bogus "comparison of promoted bitwise complement of an unsigned value with constant" } */ + } + + int + f6 (unsigned char x) + { + return (unsigned int) (~(unsigned short) x) == 0xffffff05ULL; /* { dg-bogus "comparison of promoted bitwise complement of an unsigned value with constant" } */ + } + + int + f7 (unsigned char x) + { + return (unsigned long long) (~(unsigned short) x) == 0xffffffffffffff05ULL; /* { dg-bogus "comparison of promoted bitwise complement of an unsigned value with constant" } */ + } + + typedef unsigned short T; + + int + f8 (T x) + { + return (unsigned short) (~(unsigned short) x) == 0; /* { dg-bogus "promoted bitwise complement of an unsigned value is always nonzero" } */ + } + + int + f9 (T x) + { + return (unsigned short) (~(unsigned short) x) == 5; /* { dg-bogus "comparison of promoted bitwise complement of an unsigned value with constant" } */ + } + + int + f10 (T x, unsigned char y) + { + return (unsigned short) (~(unsigned short) x) == y; /* { dg-bogus "comparison of promoted bitwise complement of an unsigned value with unsigned" } */ + } + + int + f11 (T x, unsigned char y) + { + return (unsigned short) (~(unsigned short) x) == y; /* { dg-bogus "comparison of promoted bitwise complement of an unsigned value with unsigned" } */ + } + + int + f12 (unsigned char x, unsigned char y) + { + return (unsigned short) (~(unsigned short) x) == y; /* { dg-warning "comparison of promoted bitwise complement of an unsigned value with unsigned" "" { target c } } */ + } + + int + f13 (unsigned char x, unsigned char y) + { + return (unsigned short) (~(unsigned short) x) == y; /* { dg-warning "comparison of promoted bitwise complement of an unsigned value with unsigned" "" { target c } } */ + } + + int + f14 (unsigned char x, unsigned int y) + { + return (unsigned long long) (~x) == y; /* { dg-warning "comparison of promoted bitwise complement of an unsigned value with unsigned" } */ + } + + int + f15 (unsigned short x, unsigned int y) + { + return (long long) (~x) == y; /* { dg-warning "comparison of promoted bitwise complement of an unsigned value with unsigned" } */ + } + + int + f16 (unsigned char x, unsigned short y) + { + return (unsigned short) (~(unsigned short) x) == y; /* { dg-bogus "comparison of promoted bitwise complement of an unsigned value with unsigned" } */ + } + + int + f17 (unsigned char x, unsigned short y) + { + return (unsigned short) (~(unsigned short) x) == y; /* { dg-bogus "comparison of promoted bitwise complement of an unsigned value with unsigned" } */ + } + + int + f18 (unsigned char x) + { + return (unsigned int) (short) (~(unsigned short) x) == 0xffffff05ULL; /* { dg-bogus "comparison of promoted bitwise complement of an unsigned value with constant" } */ + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/c-c++-common/cold-2.c gcc-11.4.0/gcc/testsuite/c-c++-common/cold-2.c *** gcc-11.3.0/gcc/testsuite/c-c++-common/cold-2.c Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/c-c++-common/cold-2.c Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,19 ---- + /* PR ipa/105685 */ + /* { dg-do compile } */ + /* { dg-options "-O2 -Wsuggest-attribute=cold" } */ + + extern void foo (char *, char const *, int); + + __attribute__((cold)) char * + bar (int x) + { + static char b[42]; + foo (b, "foo", x); + return b; + } + + __attribute__((cold)) char * + baz (int x) /* { dg-bogus "function might be candidate for attribute 'cold'" } */ + { + return bar (x); + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/c-c++-common/cpp/va-opt-10.c gcc-11.4.0/gcc/testsuite/c-c++-common/cpp/va-opt-10.c *** gcc-11.3.0/gcc/testsuite/c-c++-common/cpp/va-opt-10.c Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/c-c++-common/cpp/va-opt-10.c Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,18 ---- + /* PR preprocessor/105732 */ + /* { dg-do compile } */ + /* { dg-options "-std=gnu99" { target c } } */ + /* { dg-options "-std=c++20" { target c++ } } */ + + #define m1(p1, p2, p3) p3 + #define m2(p1, ...) 1##__VA_OPT__(foo) + #define m3(...) m1(1, 2, m2) + #define m4(p1, ...) 1 __VA_OPT__() + #define m5(...) m1(1, 2, m4) + #if m3(,)(,) + #else + #error + #endif + #if m5(,)(,) + #else + #error + #endif diff -Nrcpad gcc-11.3.0/gcc/testsuite/c-c++-common/gomp/doacross-8.c gcc-11.4.0/gcc/testsuite/c-c++-common/gomp/doacross-8.c *** gcc-11.3.0/gcc/testsuite/c-c++-common/gomp/doacross-8.c Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/c-c++-common/gomp/doacross-8.c Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,17 ---- + /* PR middle-end/108685 */ + /* { dg-do compile } */ + + void + foo (int a) + { + for (int m = 0; m < 10; m++) + #pragma omp for collapse(2) ordered(4) + for (int i = 0; i < 2; i++) + for (int j = 0; j < a; j++) + for (int k = 0; k < 2; k++) + for (int l = 0; l < a; l++) + { + #pragma omp ordered depend (source) + __builtin_abort (); + } + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/c-c++-common/gomp/pr106981.c gcc-11.4.0/gcc/testsuite/c-c++-common/gomp/pr106981.c *** gcc-11.3.0/gcc/testsuite/c-c++-common/gomp/pr106981.c Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/c-c++-common/gomp/pr106981.c Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,9 ---- + /* PR c/106981 */ + /* { dg-do compile } */ + + void + foo (int a, double *b, double *c, double *d, long long e) + { + #pragma omp atomic capture + c[a] = d[((int) (e / 10 + 1))] = b[a] + d[((int) e / 10 + 1)]; /* { dg-error "invalid form" } */ + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/c-c++-common/gomp/pr107001.c gcc-11.4.0/gcc/testsuite/c-c++-common/gomp/pr107001.c *** gcc-11.3.0/gcc/testsuite/c-c++-common/gomp/pr107001.c Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/c-c++-common/gomp/pr107001.c Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,14 ---- + /* PR c/107001 */ + /* { dg-do compile } */ + /* { dg-options "-O0 -fopenmp -fexceptions" } */ + /* { dg-require-effective-target exceptions } */ + + void bar (void); + void foo (void) + { + #pragma omp taskgroup + { + #pragma omp taskgroup + bar (); + } + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/c-c++-common/pr105998.c gcc-11.4.0/gcc/testsuite/c-c++-common/pr105998.c *** gcc-11.3.0/gcc/testsuite/c-c++-common/pr105998.c Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/c-c++-common/pr105998.c Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,12 ---- + /* PR middle-end/105998 */ + + typedef int __attribute__((__vector_size__ (sizeof (long long)))) V; + + V v; + + long long + foo (void) + { + long long l = (long long) ((0 | v) - ((V) { } == 0)); + return l; + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/c-c++-common/pr107358.c gcc-11.4.0/gcc/testsuite/c-c++-common/pr107358.c *** gcc-11.3.0/gcc/testsuite/c-c++-common/pr107358.c Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/c-c++-common/pr107358.c Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,30 ---- + /* PR c++/107358 */ + /* { dg-do compile { target c } } */ + /* { dg-options "-O2 -fexcess-precision=standard" } */ + + typedef float __attribute__((vector_size (4 * sizeof (float)))) A; + typedef double __attribute__((vector_size (2 * sizeof (double)))) B; + + void + foo (A *x) + { + *x = *x - 124.225514990f; + } + + void + bar (A *x, float y) + { + *x = *x - y; + } + + void + baz (B *x) + { + *x = *x + 124.225514990f; + } + + void + qux (B *x, double y) + { + *x = *x + y; + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/c-c++-common/pr107465.c gcc-11.4.0/gcc/testsuite/c-c++-common/pr107465.c *** gcc-11.3.0/gcc/testsuite/c-c++-common/pr107465.c Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/c-c++-common/pr107465.c Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,22 ---- + /* PR c/107465 */ + /* { dg-do compile } */ + /* { dg-options "-Wsign-compare" } */ + + void baz (void); + typedef unsigned short T; + + #if __SIZEOF_SHORT__ * __CHAR_BIT__ == 16 + void + foo (unsigned short x) + { + if (!(x ^ 0xFFFF)) + baz (); + } + + void + bar (T x) + { + if (!(x ^ 0xFFFF)) /* { dg-bogus "promoted bitwise complement of an unsigned value is always nonzero" } */ + baz (); + } + #endif diff -Nrcpad gcc-11.3.0/gcc/testsuite/c-c++-common/pr97498.c gcc-11.4.0/gcc/testsuite/c-c++-common/pr97498.c *** gcc-11.3.0/gcc/testsuite/c-c++-common/pr97498.c Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/c-c++-common/pr97498.c Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,4 ---- + /* { dg-do compile } */ + /* { dg-additional-options "-Wunused-function" } */ + #pragma GCC diagnostic ignored "-Wunused-function" + static void f() {} _Pragma("GCC diagnostic error \"-Wunused-function\"") /* { dg-bogus "-Wunused-function" } */ diff -Nrcpad gcc-11.3.0/gcc/testsuite/c-c++-common/ubsan/div-by-zero-8.c gcc-11.4.0/gcc/testsuite/c-c++-common/ubsan/div-by-zero-8.c *** gcc-11.3.0/gcc/testsuite/c-c++-common/ubsan/div-by-zero-8.c Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/c-c++-common/ubsan/div-by-zero-8.c Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,14 ---- + /* PR c/109151 */ + /* { dg-do run } */ + /* { dg-options "-fsanitize=integer-divide-by-zero -Wno-div-by-zero -fno-sanitize-recover=integer-divide-by-zero" } */ + /* { dg-shouldfail "ubsan" } */ + + int d; + + int + main () + { + d = ((short) (d == 1 | d > 9)) / 0; + } + + /* { dg-output "division by zero" } */ diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/concepts/explicit-spec1a.C gcc-11.4.0/gcc/testsuite/g++.dg/concepts/explicit-spec1a.C *** gcc-11.3.0/gcc/testsuite/g++.dg/concepts/explicit-spec1a.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/concepts/explicit-spec1a.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,11 ---- + // A version of explicit-spec1.C where the template g has trailing instead of + // template requirements. + // PR c++/107864 + // { dg-do compile { target concepts } } + + template concept C = __is_class(T); + struct Y { int n; } y; + template void g(T) requires C { } + int called; + template<> void g(Y) { called = 3; } + int main() { g(y); } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/coroutines/co-await-initlist1.C gcc-11.4.0/gcc/testsuite/g++.dg/coroutines/co-await-initlist1.C *** gcc-11.3.0/gcc/testsuite/g++.dg/coroutines/co-await-initlist1.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/coroutines/co-await-initlist1.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,21 ---- + // PR c++/103871 + // { dg-do compile { target c++20 } } + + #include + #include + + struct my_coro { + struct promise_type { + my_coro get_return_object(); + std::suspend_never initial_suspend(); + std::suspend_never final_suspend() noexcept; + void unhandled_exception(); + }; + }; + + std::suspend_never inner(std::initializer_list); + + my_coro doesnt_work() + { + co_await inner({ 1,2,3 }); + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/coroutines/co-await-moveonly1.C gcc-11.4.0/gcc/testsuite/g++.dg/coroutines/co-await-moveonly1.C *** gcc-11.3.0/gcc/testsuite/g++.dg/coroutines/co-await-moveonly1.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/coroutines/co-await-moveonly1.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,63 ---- + // PR c++/105406 + // { dg-do compile { target c++20 } } + + #include + #include + + // A move-only awaitable + class MoveOnlyAwaitable { + public: + MoveOnlyAwaitable() = default; + MoveOnlyAwaitable(MoveOnlyAwaitable &&) = default; + MoveOnlyAwaitable &operator=(MoveOnlyAwaitable &&) = default; + + MoveOnlyAwaitable(const MoveOnlyAwaitable &) = delete; + MoveOnlyAwaitable &operator=(const MoveOnlyAwaitable &) = delete; + + bool await_ready() const noexcept { return false; } + void await_suspend(std::coroutine_handle<>) noexcept {} + void await_resume() {} + }; + + struct task { + struct promise_type { + auto initial_suspend() const { return std::suspend_never{}; } + auto final_suspend() const noexcept { return std::suspend_never(); } + auto get_return_object() { return task{}; } + void return_void() {} + void unhandled_exception() {} + + template + T &&await_transform(T &&t) { + return static_cast(t); + } + + + }; + + bool await_ready() const { return false; } + void await_suspend(std::coroutine_handle<> awaiter) {} + void await_resume() {} + }; + + task myCoroutine() { + // GCC: OK + // clang: OK + { + co_await MoveOnlyAwaitable(); + } + // GCC: OK + // clang: OK + { + auto moveonly = MoveOnlyAwaitable(); + co_await std::move(moveonly); + } + + // GCC <= 11.2: OK + // GCC 11.3:ERROR: error: use of deleted function 'MoveOnlyAwaitable::MoveOnlyAwaitable(const MoveOnlyAwaitable&) + // clang: OK + { + auto moveonly = MoveOnlyAwaitable(); + co_await moveonly; + } + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/coroutines/pr106188.C gcc-11.4.0/gcc/testsuite/g++.dg/coroutines/pr106188.C *** gcc-11.3.0/gcc/testsuite/g++.dg/coroutines/pr106188.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/coroutines/pr106188.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,34 ---- + // { dg-do run { target c++20 } } + // test case from pr106188, w/o workaround + #include + + struct task { + struct promise_type { + task get_return_object() { return task{}; } + void return_void() {} + void unhandled_exception() {} + auto initial_suspend() noexcept { return std::suspend_never{}; } + auto final_suspend() noexcept { return std::suspend_never{}; } + }; + }; + + struct suspend_and_resume { + bool await_ready() const { return false; } + void await_suspend(std::coroutine_handle<> h) { h.resume(); } + void await_resume() {} + }; + + task f() { + if (co_await suspend_and_resume{}, false) {} + } + + task g() { + switch (co_await suspend_and_resume{}, 0) { + default: break; + } + } + + int main() { + f(); + g(); + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-105321.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-105321.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-105321.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-105321.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,18 ---- + // PR c++/105321 + // { dg-do compile { target c++11 } } + + bool handle_error(); + + constexpr int echo(int value, bool yes = true) noexcept + { + return (yes || handle_error()), value; + } + + static_assert(echo(10) == 10, ""); + + constexpr int echo2(int value, bool no = false) noexcept + { + return (!no || handle_error()), value; + } + + static_assert(echo2(10) == 10, ""); diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-fno-elide-ctors1.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-fno-elide-ctors1.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-fno-elide-ctors1.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-fno-elide-ctors1.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,89 ---- + // PR c++/104646 + // { dg-do compile { target c++11 } } + // { dg-additional-options -fno-elide-constructors } + + template struct pair { + _T1 first; + int second; + }; + template class __normal_iterator { + _Iterator __traits_type; + + public: + constexpr __normal_iterator() {} + }; + template class allocator; + template struct allocator_traits; + template struct allocator_traits> { + using value_type = _Tp; + template using rebind_alloc = allocator<_Up>; + }; + template struct __alloc_traits { + typedef allocator_traits<_Alloc> _Base_type; + typedef typename _Base_type::value_type &const_reference; + template struct rebind { + typedef typename _Base_type::template rebind_alloc<_Tp> other; + }; + }; + template struct _Vector_base { + typedef typename __alloc_traits<_Alloc>::template rebind<_Tp>::other _Tp_alloc_type; + }; + template > class vector { + public: + typename __alloc_traits< + typename _Vector_base<_Tp, _Alloc>::_Tp_alloc_type>::const_reference + operator[](long); + }; + enum match_flag_type {}; + template class Trans_NS___cxx11_basic_regex; + class Trans_NS___cxx11_match_results; + enum _RegexExecutorPolicy { _S_auto }; + template + bool __regex_algo_impl(Trans_NS___cxx11_match_results &, + const Trans_NS___cxx11_basic_regex<_CharT, _TraitsT> &); + template class _Executor; + template + class Trans_NS___cxx11_basic_regex {}; + class Trans_NS___cxx11_match_results : vector { + template + friend bool __regex_algo_impl(Trans_NS___cxx11_match_results &, + const Trans_NS___cxx11_basic_regex<_Cp, _Rp> &); + }; + template + void regex_search(_Bi_iter, _Alloc, + Trans_NS___cxx11_basic_regex<_Ch_type, _Rx_traits>) { + __regex_algo_impl<_Bi_iter, _Alloc, _Ch_type, _Rx_traits, _S_auto, false>; + } + match_flag_type __regex_algo_impl___flags; + template + bool __regex_algo_impl( + Trans_NS___cxx11_match_results &__m, + const Trans_NS___cxx11_basic_regex<_CharT, _TraitsT> &__re) { + __normal_iterator __e, __s; + _Executor __executor(__s, __e, __m, __re, + __regex_algo_impl___flags); + __executor._M_match(); + return false; + } + template class _Executor { + public: + _Executor(__normal_iterator, __normal_iterator, + vector, Trans_NS___cxx11_basic_regex, match_flag_type); + void _M_match() { _M_dfs(); } + void _M_dfs(); + vector>> _M_rep_count; + }; + long _M_rep_once_more___i; + template + void _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>::_M_dfs() { + auto __rep_count = _M_rep_count[_M_rep_once_more___i]; + } + char main___trans_tmp_1; + void main___trans_tmp_2() { + Trans_NS___cxx11_basic_regex re; + regex_search(main___trans_tmp_1, main___trans_tmp_2, re); + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-pmf3.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-pmf3.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/constexpr-pmf3.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/constexpr-pmf3.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,13 ---- + // PR c++/105996 + // { dg-do compile { target c++11 } } + + struct A { + void CB() {} + }; + struct B : public A { }; + + using APMF = void (A::*)(); + using BPMF = void (B::*)(); + + constexpr APMF foo () { return &A::CB; }; + static constexpr BPMF b = foo(); diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/decltype81.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/decltype81.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/decltype81.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/decltype81.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,15 ---- + // PR c++/105386 + // { dg-do compile { target c++11 } } + + template struct NoInst { + static_assert(sizeof(T) == 9999, "NoInst instantiated"); + }; + + template NoInst f(T); + + template + struct A { + using type = decltype(f(0)); + }; + + A a; diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/enum43.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/enum43.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/enum43.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/enum43.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,11 ---- + // PR c++/101869 + + enum E { A }; + E operator & (E e) + { + return e; + } + E f(void) + { + return &E::A; // { dg-error "not a class" "" { target c++98_only } } + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/initlist-new6.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/initlist-new6.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/initlist-new6.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/initlist-new6.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,39 ---- + // PR c++/105265 + // { dg-do run { target c++11 } } + + int c; + + class Block + { + public: + Block(int n) : data{new char[n]}, size{n} + { + ++c; + } + + ~Block() + { + --c; + delete[] data; + } + + private: + char* data; + int size; + }; + + struct Cargo + { + Block const& block; + }; + + int main() + { + { + Cargo* c = new Cargo{{4000}}; + delete c; + } + if (c != 0) + __builtin_abort (); + return 0; + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/initlist-nrv1.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/initlist-nrv1.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/initlist-nrv1.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/initlist-nrv1.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,34 ---- + // PR c++/101442 + // { dg-do run { target c++11 } } + + bool destroyed = false; + + struct A + { + A() {} + A(const A &) = delete; + A &operator=(const A &) = delete; + ~A() {destroyed = true;} + }; + + struct B + { + const A &a; + struct string { + string(const char*) { } + ~string() { } + } s; + }; + + B foo() + { + B ret{ A{}, "" }; + return ret; + } + + int main() + { + B b = foo(); + if (!destroyed) + __builtin_abort(); + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const11.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const11.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const11.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const11.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,14 ---- + // PR c++/108975 + // { dg-do compile { target c++11 } } + + template + void f() { + constexpr int dim = 1; + auto l = [&] { + int n[dim * 1]; + }; + // In f, we shouldn't actually capture dim. + static_assert (sizeof(l) == 1, ""); + } + + template void f(); diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-current-inst1.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-current-inst1.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-current-inst1.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-current-inst1.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,18 ---- + // PR c++/82980 + // { dg-do compile { target c++11 } } + + template + struct Outer + { + template + void f(); + + void bar(Outer outer) { + [outer](){ outer.f(); }; + } + void baz(Outer *p) { + [&](){ p->f(); }; + } + }; + + int main() { } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/overload-conv-5.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/overload-conv-5.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/overload-conv-5.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/overload-conv-5.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,21 ---- + // PR c++/106675 + // { dg-do compile { target c++11 } } + + struct foo { + int n_; + foo(int n) : n_(n) {} + }; + + struct bar { + int n_; + + operator foo() const { + return foo(n_); + } + operator foo &() { return *reinterpret_cast(n_); } + operator foo const &() = delete; + + void crashgcc() { + foo tmp(*this); // { dg-error "ambiguous" } + } + }; diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/pr107065.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/pr107065.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/pr107065.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/pr107065.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,14 ---- + // PR c++/107065 + // { dg-do compile { target c++11 } } + + template struct is_same { static constexpr bool value = false; }; + template struct is_same { static constexpr bool value = true; }; + + int + main () + { + bool b = true; + static_assert (is_same::value, ""); + auto bb = (!(!b)); + static_assert (is_same::value, ""); + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/ref-bind4.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/ref-bind4.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/ref-bind4.C Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/ref-bind4.C Mon May 29 08:46:30 2023 *************** g (int *p, const int *pc, const int **q) *** 51,56 **** similar types T1 and T2 (_conv.qual_), respectively, and the cv- qualification signature of type T1 is a proper subset of the cv- qualification signature of type T2 */ ! f8 (q); f9 (q); } --- 51,56 ---- similar types T1 and T2 (_conv.qual_), respectively, and the cv- qualification signature of type T1 is a proper subset of the cv- qualification signature of type T2 */ ! f8 (q); // { dg-error "call of overloaded" } f9 (q); } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/ref-bind8.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/ref-bind8.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp0x/ref-bind8.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/ref-bind8.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,10 ---- + // PR c++/97296 + // { dg-do compile } + + void f(const int * const &); + void f(const int *); + int *x; + int main() + { + f(x); // { dg-error "call of overloaded" } + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp1y/auto-fn64.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp1y/auto-fn64.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp1y/auto-fn64.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp1y/auto-fn64.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,12 ---- + // PR c++/105761 + // { dg-do compile { target c++14 } } + // { dg-additional-options -Wno-non-template-friend } + + template + class X { + friend auto f(X); + }; + + struct Y : X { + friend auto f(X) { return 0L; } + }; diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp1y/constexpr-105774.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp1y/constexpr-105774.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp1y/constexpr-105774.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp1y/constexpr-105774.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,15 ---- + // PR c++/105774 + // { dg-do compile { target c++14 } } + + constexpr signed char + foo () + { + #if __SCHAR_MAX__ < __INT_MAX__ + signed char x = __SCHAR_MAX__; + #else + signed char x = 0; + #endif + return ++x; + } + + constexpr auto a = foo (); diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp1y/constexpr-empty2.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp1y/constexpr-empty2.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp1y/constexpr-empty2.C Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp1y/constexpr-empty2.C Mon May 29 08:46:30 2023 *************** *** 1,4 **** --- 1,5 ---- // { dg-do compile { target c++14 } } + // { dg-additional-options -fno-elide-constructors } struct A { diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-enum2.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-enum2.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-enum2.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp1y/lambda-generic-enum2.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,15 ---- + // PR c++/105398 + // { dg-do compile { target c++14 } } + + auto f = [](auto &&m) { + enum E { _,e3,e2,e1,C4,C3,C2,C1 }; + static constexpr int x_coeffs[3][4] = { + {e1,C2,C3,C4}, + {e2,C1,C3,C4}, + {e3,C1,C2,C4}, + }; + }; + + int main() { + f(0); + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp1y/var-templ78.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp1y/var-templ78.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp1y/var-templ78.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp1y/var-templ78.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,12 ---- + // PR c++/108468 + // { dg-do compile { target c++14 } } + + template struct C { + template + static constexpr int x = 1; + }; + + template template + int C::x = 2; + + int y = C<0>::x; diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/aligned-new9.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/aligned-new9.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/aligned-new9.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/aligned-new9.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,30 ---- + // PR c++/102071 + // { dg-do run { target c++17 } } + // { dg-additional-options -faligned-new=2 } + + #include + + int nalign; + void *operator new (std::size_t s, std::align_val_t a) + { + nalign = (int)a; + return operator new (s); + } + + struct X { ~X(); int c; }; + + int align = (alignof (X) > alignof (std::size_t) + ? alignof (X) : alignof (std::size_t)); + + int n = 4; + + int main() + { + X *p = new X[n]; + if (nalign != align) + __builtin_abort (); + + X *p2 = new X; + if (nalign != alignof (X)) + __builtin_abort (); + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/class-deduction12.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/class-deduction12.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/class-deduction12.C Thu Apr 21 07:58:53 2022 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/class-deduction12.C Mon May 29 08:46:30 2023 *************** A a(&i,2,B<42>()); *** 15,17 **** --- 15,23 ---- template class same; template class same {}; same> s; + + #if __cpp_deduction_guides >= 201907 + template using C = A; + + same())), A> t; + #endif diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/class-deduction99.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/class-deduction99.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/class-deduction99.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/class-deduction99.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,35 ---- + // PR c++/102479 + // { dg-do compile { target c++17 } } + + template struct A; + + template + struct tuple { + tuple(T); + + template class Tmpl> + tuple(Tmpl); + + template class Tmpl, typename A>::type = 0> + tuple(Tmpl); + + template class Tmpl, typename A>::type = 0> + tuple(Tmpl); + }; + + template struct B { }; + + using ty1 = tuple; + using ty1 = decltype(tuple(0)); + using ty1 = decltype(tuple(B{})); + + #if __cpp_deduction_guides >= 201907 + template using const_tuple = tuple; + + using ty2 = const_tuple; + using ty2 = decltype(const_tuple(0)); + using ty2 = decltype(const_tuple(B{})); + + using ty3 = const_tuple>; + using ty3 = decltype(const_tuple(B{})); + #endif diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/constexpr-aggr-base1.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/constexpr-aggr-base1.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/constexpr-aggr-base1.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/constexpr-aggr-base1.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,27 ---- + // PR c++/105795 + // { dg-do compile { target c++17 } } + + struct empty + {}; + + template + struct tuple_holder + { + [[no_unique_address]] T value; + }; + + struct tuple : tuple_holder, tuple_holder + {}; + + constexpr auto make_tuple(int&& i, empty&& e) + { + return tuple{i, e}; + } + + constexpr int foo() + { + auto tuple = make_tuple(1, empty{}); + return static_cast&>(tuple).value; + } + + static_assert (foo() == 1); diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/constexpr-array2.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/constexpr-array2.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/constexpr-array2.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/constexpr-array2.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,12 ---- + // PR c++/102307 + // { dg-do compile { target c++11 } } + + #include + template struct Matrix { + constexpr Matrix(double const (&arr)[N][M]); // { dg-warning "never defined" } + constexpr Matrix(std::array, N> const &arr); + }; + int main() { + constexpr Matrix<2, 3> + mat {{ {1.0, 2.0, 3.0}, {4.0, 5.0, 6.0} }}; // { dg-error "before its definition" } + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda5.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda5.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda5.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/constexpr-if-lambda5.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,15 ---- + // PR c++/100295 + // { dg-do compile { target c++17 } } + + template + void f(Ts... ts) { + auto lambda = [=](auto x) { + if constexpr (sizeof((ts+x) + ...) != 0) + (..., ts); + }; + lambda(0); + } + + int main() { + f(0, 'a'); + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/decomp57.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/decomp57.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/decomp57.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/decomp57.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,27 ---- + // PR c++/108474 + // { dg-do link { target c++17 } } + + struct T { int i, j; }; + T h; + auto [i, j] = h; + int &r = i; + int s = i; + int *t = &i; + + void + foo (int **p, int *q) + { + static int &u = i; + static int v = i; + static int *w = &i; + int &x = i; + int y = i; + int *z = &i; + *p = &i; + *q = i; + } + + int + main () + { + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/decomp58.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/decomp58.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/decomp58.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/decomp58.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,39 ---- + // PR c++/108474 + // { dg-do link { target c++17 } } + + namespace std { + template struct tuple_size; + template struct tuple_element; + } + + struct A { + int i; + template int& get() { return i; } + }; + + template <> struct std::tuple_size { static const int value = 2; }; + template struct std::tuple_element { using type = int; }; + + struct A a; + auto [i, j] = a; + int &r = i; + int s = i; + int *t = &i; + + void + foo (int **p, int *q) + { + static int &u = i; + static int v = i; + static int *w = &i; + int &x = i; + int y = i; + int *z = &i; + *p = &i; + *q = i; + } + + int + main () + { + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/fold13.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/fold13.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/fold13.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/fold13.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,29 ---- + // { dg-do compile { target c++17 } } + // Verify constexpr evaluation of a large left fold logical expression + // isn't quadratic in the size of the expanded expression. + + template struct S { static constexpr bool value = true; }; + + template struct integer_sequence { }; + + template + using make_integer_sequence + #if __has_builtin(__make_integer_seq) + = __make_integer_seq; + #else + = integer_sequence; + #endif + + template + constexpr bool f_impl(integer_sequence) { + return (... && S::value); + } + + static_assert(f_impl(make_integer_sequence())); + + template + constexpr bool g_impl(integer_sequence) { + return (... || !S::value); + } + + static_assert(!g_impl(make_integer_sequence())); diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations3.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations3.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations3.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/has-unique-obj-representations3.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,10 ---- + // PR c++/109096 + // { dg-do compile { target c++11 } } + + #define INTB (__SIZEOF_INT__ * __CHAR_BIT__) + struct U { int i : INTB * 3 / 4; int : INTB / 4; }; + struct V { int : INTB * 3 / 4; int j : INTB / 4; }; + struct W { int i; int : 0; int j; }; + static_assert (__has_unique_object_representations (U) == false, ""); + static_assert (__has_unique_object_representations (V) == false, ""); + static_assert (sizeof (W) != 2 * sizeof (int) || __has_unique_object_representations (W) == true, ""); diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp23/lambda-attr1.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp23/lambda-attr1.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp23/lambda-attr1.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp23/lambda-attr1.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,29 ---- + // P2173R1 - Attributes on Lambda-Expressions + // { dg-do compile { target c++11 } } + + void + foo (bool x, bool y) + { + auto a = [][[noreturn]] () {}; // { dg-warning "'noreturn' function does return" } + if (x) + a (); + auto b = [][[noreturn]] {}; // { dg-warning "'noreturn' function does return" } + if (y) + b (); + auto c = [] [[ deprecated ]] () {}; // { dg-bogus "is deprecated" } + c (); // { dg-warning "'foo\\\(bool, bool\\\)::' is deprecated" } + auto d = [][[deprecated]] {}; // { dg-bogus "is deprecated" } + d (); // { dg-warning "'foo\\\(bool, bool\\\)::' is deprecated" } + #if __cpp_generic_lambdas >= 201304 + auto e = [] [[deprecated]] (auto x) {}; // { dg-bogus "is deprecated" } + e (0.0); // { dg-warning "'foo\\\(bool, bool\\\)::\[^\n\r]*' is deprecated" "" { target c++14 } } + #endif + #if __cpp_generic_lambdas >= 201707 + auto f = [] [[deprecated]] (T) {}; // { dg-bogus "is deprecated" } + f (1); // { dg-warning "'foo\\\(bool, bool\\\)::\[^\n\r]*' is deprecated" "" { target c++20 } } + #endif + auto g = [][[nodiscard]](int) { return 1; }; + g (1); // { dg-warning "ignoring return value of 'foo\\\(bool, bool\\\)::', declared with attribute 'nodiscard'" } + auto h = [] [[nodiscard]] { return 0; }; + h (); // { dg-warning "ignoring return value of 'foo\\\(bool, bool\\\)::', declared with attribute 'nodiscard'" } + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/concepts-requires30.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/concepts-requires30.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/concepts-requires30.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/concepts-requires30.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,10 ---- + // PR c++/105304 + // { dg-do compile { target c++20 } } + // { dg-additional-options "-Wall -Wsequence-point" } + + struct A { }; + + int main() { + if (requires { A(); }) + ; + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/concepts-requires31.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/concepts-requires31.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/concepts-requires31.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/concepts-requires31.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,15 ---- + // PR c++/107179 + // { dg-do compile { target c++20 } } + + template struct bool_constant { static constexpr bool value = B; }; + + template + struct is_implicitly_default_constructible + : bool_constant + { }; + + struct X { private: X(); }; + struct Y { }; + + static_assert( !is_implicitly_default_constructible::value ); + static_assert( is_implicitly_default_constructible::value ); diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/concepts-return-req4.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/concepts-return-req4.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/concepts-return-req4.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/concepts-return-req4.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,24 ---- + // PR c++/104527 + // { dg-do compile { target c++20 } } + + template + concept is_same = __is_same(T, U); + + template + struct A { + template + requires requires { { 0 } -> is_same; } + struct B {}; + + template + requires requires { { 1 } -> is_same; } + static void f(); + }; + + A::B<> a1; + A::B<> a2; // { dg-error "constraint" } + + int main() { + A::f(); + A::f(); // { dg-error "no match" } + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/concepts-traits3.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/concepts-traits3.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/concepts-traits3.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/concepts-traits3.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,66 ---- + // PR c++/100474 + // { dg-do compile { target c++20 } } + + struct S { S() = delete; S(const S&); }; + + template + concept Aggregate = __is_aggregate(T); + // { dg-message "'S' is not an aggregate" "" { target *-*-* } .-1 } + + template + concept TriviallyCopyable = __is_trivially_copyable(T); + // { dg-message "'S' is not trivially copyable" "" { target *-*-* } .-1 } + + template + concept Assignable = __is_assignable(T, U); + // { dg-message "'S' is not assignable from 'int'" "" { target *-*-* } .-1 } + + template + concept TriviallyAssignable = __is_trivially_assignable(T, U); + // { dg-message "'S' is not trivially assignable from 'int'" "" { target *-*-* } .-1 } + + template + concept NothrowAssignable = __is_nothrow_assignable(T, U); + // { dg-message "'S' is not 'nothrow' assignable from 'int'" "" { target *-*-* } .-1 } + + template + concept Constructible = __is_constructible(T, Args...); + // { dg-message "'S' is not default constructible" "" { target *-*-* } .-1 } + // { dg-message "'S' is not constructible from 'int'" "" { target *-*-* } .-2 } + // { dg-message "'S' is not constructible from 'int, char'" "" { target *-*-* } .-3 } + + template + concept TriviallyConstructible = __is_trivially_constructible(T, Args...); + // { dg-message "'S' is not trivially default constructible" "" { target *-*-* } .-1 } + // { dg-message "'S' is not trivially constructible from 'int'" "" { target *-*-* } .-2 } + // { dg-message "'S' is not trivially constructible from 'int, char'" "" { target *-*-* } .-3 } + + template + concept NothrowConstructible = __is_nothrow_constructible(T, Args...); + // { dg-message "'S' is not 'nothrow' default constructible" "" { target *-*-* } .-1 } + // { dg-message "'S' is not 'nothrow' constructible from 'int'" "" { target *-*-* } .-2 } + // { dg-message "'S' is not 'nothrow' constructible from 'int, char'" "" { target *-*-* } .-3 } + + template + concept UniqueObjReps = __has_unique_object_representations(T); + // { dg-message "'S' does not have unique object representations" "" { target *-*-* } .-1 } + + static_assert(Aggregate); // { dg-error "assert" } + static_assert(TriviallyCopyable); // { dg-error "assert" } + static_assert(Assignable); // { dg-error "assert" } + static_assert(TriviallyAssignable); // { dg-error "assert" } + static_assert(NothrowAssignable); // { dg-error "assert" } + + static_assert(Constructible); // { dg-error "assert" } + static_assert(Constructible); // { dg-error "assert" } + static_assert(Constructible); // { dg-error "assert" } + + static_assert(TriviallyConstructible); // { dg-error "assert" } + static_assert(TriviallyConstructible); // { dg-error "assert" } + static_assert(TriviallyConstructible); // { dg-error "assert" } + + static_assert(NothrowConstructible); // { dg-error "assert" } + static_assert(NothrowConstructible); // { dg-error "assert" } + static_assert(NothrowConstructible); // { dg-error "assert" } + + static_assert(UniqueObjReps); // { dg-error "assert" } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/constinit18.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/constinit18.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/constinit18.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/constinit18.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,12 ---- + // PR c++/104066 + // { dg-do compile { target c++20 } } + + constinit void (*p)() = nullptr; + constinit void (*pp)() = nullptr; + void fn(); + constinit void (&r)() = fn; + + extern constinit long (* const syscall_reexported) (long, ...); + + constinit void bad (); // { dg-error ".constinit. on function return type is not allowed" } + constinit void bad () { } // { dg-error ".constinit. on function return type is not allowed" } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/desig26.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/desig26.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/desig26.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/desig26.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,22 ---- + // PR c++/105925 + // { dg-do compile { target c++20 } } + + struct V + { + int i; + double d; + }; + + struct X + { + union + { + int x; + V y; + }; + }; + + X foo() + { + return {.y = {0, 0.0}}; + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/lambda-generic10.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/lambda-generic10.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/lambda-generic10.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/lambda-generic10.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,14 ---- + // PR c++/106024 + // { dg-do compile { target c++20 } } + + void sink(...); + template void f() + { + sink ([] (int...) { return 1; } + .operator()(args...)...); // { dg-error "" } + } // { dg-prune-output {expected '\)'} } + + int main() + { + f<1,2,3>(); + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/lambda-generic11.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/lambda-generic11.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/lambda-generic11.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/lambda-generic11.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,13 ---- + // PR c++/108999 + // { dg-do compile { target c++20 } } + + template + void ice(T a) { + auto aa = a; + auto lambda = []() { + if constexpr (sizeof(aa) + I != 42) { } + }; + lambda.template operator()<17>(); + } + + template void ice(int); diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/lambda-pack-init7.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/lambda-pack-init7.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/lambda-pack-init7.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/lambda-pack-init7.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,18 ---- + // PR c++/102629 + // { dg-do compile { target c++20 } } + + template T&& forward(T&); + template T&& forward(T&&); + + struct S {}; + + template + void foo(Args&&... args) { + [...args = forward /*(args)*/] { // { dg-error "" } + [](auto...) { } (forward(args)...); + }; + } + + void bar( ) { + foo(S{}); + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/spaceship-eq14.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/spaceship-eq14.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/spaceship-eq14.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/spaceship-eq14.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,17 ---- + // PR c++/106361 + // { dg-do compile { target c++20 } } + + struct foo { + int x; + }; + + struct bar { + foo f; // { dg-error "operator==" } + friend bool operator==(const bar& a, const bar& b); + }; + + bool operator==(const bar& a, const bar& b) = default; + + int main() { + return bar{} == bar{}; // { dg-error "deleted" } + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/volatile1.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/volatile1.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/volatile1.C Thu Apr 21 07:58:54 2022 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/volatile1.C Mon May 29 08:46:30 2023 *************** fn2 () *** 56,61 **** --- 56,64 ---- vi = i; vi = i = 42; i = vi = 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } } + i = vi |= 42; // { dg-warning "using value of assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } } + i = vi &= 42; // { dg-warning "using value of assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } } + i = vi ^= 42; // { dg-warning "using value of assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } } &(vi = i); // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } } (vi = 42, 45); (i = vi = 42, 10); // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } } *************** fn2 () *** 74,81 **** vi += i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } } vi -= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } } vi %= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } } ! vi ^= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } } ! vi |= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } } vi /= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } } vi = vi += 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } } vi += vi = 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } } --- 77,85 ---- vi += i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } } vi -= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } } vi %= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } } ! vi ^= i; // { dg-bogus "assignment with .volatile.-qualified left operand is deprecated" } ! vi |= i; // { dg-bogus "assignment with .volatile.-qualified left operand is deprecated" } ! vi &= i; // { dg-bogus "assignment with .volatile.-qualified left operand is deprecated" } vi /= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } } vi = vi += 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } } vi += vi = 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } } *************** void raccoon () *** 131,137 **** volatile T t, u; t = 42; u = t = 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } } ! t &= 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } } } void --- 135,142 ---- volatile T t, u; t = 42; u = t = 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } } ! t += 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" "" { target c++20 } } ! t &= 42; // { dg-bogus "assignment with .volatile.-qualified left operand is deprecated" } } void diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/volatile3.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/volatile3.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/volatile3.C Thu Apr 21 07:58:54 2022 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/volatile3.C Mon May 29 08:46:30 2023 *************** fn2 () *** 57,62 **** --- 57,65 ---- vi = i; vi = i = 42; i = vi = 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" } + i = vi |= 42; // { dg-warning "using value of assignment with .volatile.-qualified left operand is deprecated" } + i = vi &= 42; // { dg-warning "using value of assignment with .volatile.-qualified left operand is deprecated" } + i = vi ^= 42; // { dg-warning "using value of assignment with .volatile.-qualified left operand is deprecated" } &(vi = i); // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" } (vi = 42, 45); (i = vi = 42, 10); // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" } *************** fn2 () *** 75,82 **** vi += i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" } vi -= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" } vi %= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" } ! vi ^= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" } ! vi |= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" } vi /= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" } vi = vi += 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" } vi += vi = 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" } --- 78,86 ---- vi += i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" } vi -= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" } vi %= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" } ! vi ^= i; // { dg-bogus "assignment with .volatile.-qualified left operand is deprecated" } ! vi |= i; // { dg-bogus "assignment with .volatile.-qualified left operand is deprecated" } ! vi &= i; // { dg-bogus "assignment with .volatile.-qualified left operand is deprecated" } vi /= i; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" } vi = vi += 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" } vi += vi = 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" } *************** void raccoon () *** 132,138 **** volatile T t, u; t = 42; u = t = 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" } ! t &= 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" } } void --- 136,143 ---- volatile T t, u; t = 42; u = t = 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" } ! t += 42; // { dg-warning "assignment with .volatile.-qualified left operand is deprecated" } ! t &= 42; // { dg-bogus "assignment with .volatile.-qualified left operand is deprecated" } } void diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/volatile5.C gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/volatile5.C *** gcc-11.3.0/gcc/testsuite/g++.dg/cpp2a/volatile5.C Thu Apr 21 07:58:54 2022 --- gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/volatile5.C Mon May 29 08:46:30 2023 *************** f (bool b) *** 8,15 **** { (b ? x : y) = 1; (b ? x : y) += 1; // { dg-warning "compound assignment" "" { target c++20 } } ! z = (b ? x : y) = 1; // { dg-warning "using value of simple assignment" "" { target c++20 } } ! ((z = 2) ? x : y) = 1; // { dg-warning "using value of simple assignment" "" { target c++20 } } ! (b ? (x = 2) : y) = 1; // { dg-warning "using value of simple assignment" "" { target c++20 } } ! (b ? x : (y = 5)) = 1; // { dg-warning "using value of simple assignment" "" { target c++20 } } } --- 8,15 ---- { (b ? x : y) = 1; (b ? x : y) += 1; // { dg-warning "compound assignment" "" { target c++20 } } ! z = (b ? x : y) = 1; // { dg-warning "using value of assignment" "" { target c++20 } } ! ((z = 2) ? x : y) = 1; // { dg-warning "using value of assignment" "" { target c++20 } } ! (b ? (x = 2) : y) = 1; // { dg-warning "using value of assignment" "" { target c++20 } } ! (b ? x : (y = 5)) = 1; // { dg-warning "using value of assignment" "" { target c++20 } } } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/debug/dwarf2/pr108716.C gcc-11.4.0/gcc/testsuite/g++.dg/debug/dwarf2/pr108716.C *** gcc-11.3.0/gcc/testsuite/g++.dg/debug/dwarf2/pr108716.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/debug/dwarf2/pr108716.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,14 ---- + // PR debug/108716 + // { dg-options "-O0 -gdwarf-5 -dA -fno-merge-debug-strings" } + // { dg-final { scan-assembler "DIE \\(\[^\n\r\]*\\) DW_TAG_imported_module\[^\n\r\]*\[\n\r]*\[^\n\r\]* DW_AT_decl_file\[^\n\r\]*\[\n\r]*\[^\n\r\]*0xc\[^\n\r\]* DW_AT_decl_line\[^\n\r\]*\[\n\r]*(\[^\n\r\]*0x13\[^\n\r\]* DW_AT_decl_column\[^\n\r\]*\[\n\r]*)?" } } + + namespace M { + int x = 1; + } + + int + main () + { + using namespace M; + return 0; + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/debug/pr106261.C gcc-11.4.0/gcc/testsuite/g++.dg/debug/pr106261.C *** gcc-11.3.0/gcc/testsuite/g++.dg/debug/pr106261.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/debug/pr106261.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,36 ---- + // PR debug/106261 + // { dg-do compile } + // { dg-options "-dx -fno-dwarf2-cfi-asm" } + + struct A + { + virtual void foo (); + int a; + }; + class C : virtual public A + { + }; + struct B + { + A *b; + + B (A *x) : b (x) { b->foo (); } + }; + struct E + { + virtual ~E (); + }; + class D : public C, E + { + }; + struct F : D + { + F (int); + + static void bar () + { + F a (0); + B b (&a); + } + }; + void baz () { F::bar (); } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/debug/pr108967.C gcc-11.4.0/gcc/testsuite/g++.dg/debug/pr108967.C *** gcc-11.3.0/gcc/testsuite/g++.dg/debug/pr108967.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/debug/pr108967.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,41 ---- + // PR debug/108967 + // { dg-do compile } + + struct F { unsigned short r[8]; }; + extern void foo (F); + + static inline F + bar (F a, F b) + { + for (int i = 0; i < 8; ++i) + a.r[i] = a.r[i] + b.r[i] < (unsigned short) -1 ? a.r[i] + b.r[i] : (unsigned short) -1; + return a; + } + + static inline void + baz (F v) + { + foo (v); + } + + void + qux (F a, F b) + { + F c = bar (a, b); + baz (c); + } + + static inline F + corge (F a, F b) + { + for (int i = 0; i < 8; ++i) + a.r[i] = a.r[i] - b.r[i] > 0 ? a.r[i] - b.r[i] : 0; + return a; + } + + void + garply (F a, F b) + { + F c = corge (a, b); + baz (c); + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/gomp/pr106124.C gcc-11.4.0/gcc/testsuite/g++.dg/gomp/pr106124.C *** gcc-11.3.0/gcc/testsuite/g++.dg/gomp/pr106124.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/gomp/pr106124.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,19 ---- + // { dg-do compile } + // { dg-require-effective-target c++11 } + // { dg-options "-g -O2 -fopenmp -fkeep-inline-functions" } + + int q; + struct A + { + typedef int T; + #pragma omp declare reduction (x : T : omp_out += omp_in + [] (){ return q; }()) initializer (omp_priv = [](){ return 0; }()) + static void foo (); + }; + void bar (int &, int &); + void + A::foo () + { + int r = 0, s = 0; + #pragma omp parallel reduction (x : r, s) + bar (r, s); + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/gomp/pr106492.C gcc-11.4.0/gcc/testsuite/g++.dg/gomp/pr106492.C *** gcc-11.3.0/gcc/testsuite/g++.dg/gomp/pr106492.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/gomp/pr106492.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,49 ---- + /* PR middle-end/106492 */ + + template + struct S { + T a : 12; + S () : a(0) + { + #pragma omp for simd linear(a) + for (int k = 0; k < 64; ++k) + a++; + } + }; + struct U { + int a : 12; + U () : a(0) + { + #pragma omp for simd linear(a) + for (int k = 0; k < 64; ++k) + a++; + } + }; + + S s; + U u; + + + template + struct Sptr { + T a; + Sptr (T init) : a(init) + { + #pragma omp for simd linear(a) + for (int k = 0; k < 64; ++k) + a++; + } + }; + struct Uptr { + int *a; + Uptr (int *init) : a(init) + { + #pragma omp for simd linear(a) + for (int k = 0; k < 64; ++k) + a++; + } + }; + + int i[1024]; + Sptr sptr(i); + Uptr uptr(&i[100]); diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/gomp/pr107558.C gcc-11.4.0/gcc/testsuite/g++.dg/gomp/pr107558.C *** gcc-11.3.0/gcc/testsuite/g++.dg/gomp/pr107558.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/gomp/pr107558.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,14 ---- + // PR c++/107558 + // { dg-do compile { target c++11 } } + // { dg-additional-options "-fmerge-all-constants" } + // { dg-additional-options "-flto" { target lto } } + + int a = 15; + + void + foo () + { + auto &&l = [&]() { return a; }; + #pragma omp target parallel + l (); + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/gomp/pr108607.C gcc-11.4.0/gcc/testsuite/g++.dg/gomp/pr108607.C *** gcc-11.3.0/gcc/testsuite/g++.dg/gomp/pr108607.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/gomp/pr108607.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,33 ---- + // PR c++/108607 + // { dg-do compile { target c++14 } } + // { dg-options "-fopenmp" } + + constexpr int + bar (int x) + { + return x; + } + + constexpr int + baz (int x) + { + switch (x) + { + case 42: + return 0; + case 3: + #pragma omp parallel // { dg-error "statement is not a constant expression" } + x = bar (x); + return x; + case 4: + #pragma omp task // { dg-error "statement is not a constant expression" } + x = bar (x); + return x; + default: + return -1; + } + } + + constexpr int b = baz (42); + constexpr int d = baz (3); + constexpr int e = baz (4); diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/guality/guality.exp gcc-11.4.0/gcc/testsuite/g++.dg/guality/guality.exp *** gcc-11.3.0/gcc/testsuite/g++.dg/guality/guality.exp Thu Apr 21 07:58:54 2022 --- gcc-11.4.0/gcc/testsuite/g++.dg/guality/guality.exp Mon May 29 08:46:30 2023 *************** if { [istarget *-*-darwin*] } { *** 8,13 **** --- 8,17 ---- return } + if { [istarget hppa*-*-hpux*] } { + return + } + if { [istarget "powerpc-ibm-aix*"] } { set torture_execute_xfail "powerpc-ibm-aix*" return diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/init/pr53932.C gcc-11.4.0/gcc/testsuite/g++.dg/init/pr53932.C *** gcc-11.3.0/gcc/testsuite/g++.dg/init/pr53932.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/init/pr53932.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,25 ---- + // PR c++/53932 + // { dg-do link } + + static union { int i; }; + int &r = i; + int s = i; + int *t = &i; + + void + foo (int **p, int *q) + { + static int &u = i; + static int v = i; + static int *w = &i; + int &x = i; + int y = i; + int *z = &i; + *p = &i; + *q = i; + } + + int + main () + { + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/ipa/pr100413.C gcc-11.4.0/gcc/testsuite/g++.dg/ipa/pr100413.C *** gcc-11.3.0/gcc/testsuite/g++.dg/ipa/pr100413.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/ipa/pr100413.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,64 ---- + /* { dg-do compile } */ + /* { dg-options "-std=c++11 -O2 -fno-guess-branch-probability -fno-inline-functions-called-once -fipa-cp-clone -fipa-pta -fnon-call-exceptions --param=ipa-cp-eval-threshold=0" } */ + + + template class allocator { + public: + ~allocator(); + }; + template struct allocator_traits; + template struct allocator_traits> { + using allocator_type = allocator<_Tp>; + template using rebind_alloc = allocator<_Up>; + static void deallocate(allocator_type); + }; + template + void _Destroy(_ForwardIterator, _ForwardIterator, _Tp); + struct __alloc_traits : allocator_traits> { + struct rebind { + typedef rebind_alloc other; + }; + }; + struct _Vector_base { + struct _Vector_impl_data { + int _M_start; + int _M_finish; + }; + struct _Vector_impl : __alloc_traits::rebind::other, _Vector_impl_data {}; + __alloc_traits::rebind::other _M_get_Tp_allocator(); + ~_Vector_base() { _M_deallocate(); } + _Vector_impl _M_impl; + void _M_deallocate() { __alloc_traits::deallocate(_M_impl); } + }; + class vector : _Vector_base { + public: + vector() noexcept { + allocator __trans_tmp_1 = _M_get_Tp_allocator(); + _Destroy(_M_impl._M_start, _M_impl._M_finish, __trans_tmp_1); + } + void size(); + }; + struct HTTPCallback { + virtual void OnFailure(); + }; + struct ContentCallback { + virtual void OnDownloadProgress(); + }; + class ClientNetworkContentSocketHandler : ContentCallback, HTTPCallback { + vector requested; + vector infos; + vector lastActivity; + void OnFailure(); + public: + int IDLE_TIMEOUT = 0; + ClientNetworkContentSocketHandler(); + void DownloadSelectedContent(); + } _network_content_client; + void ClientNetworkContentSocketHandler::DownloadSelectedContent() { + vector content; + content.size(); + } + void ClientNetworkContentSocketHandler::OnFailure() { + DownloadSelectedContent(); + } + ClientNetworkContentSocketHandler::ClientNetworkContentSocketHandler() {} diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/lookup/friend24.C gcc-11.4.0/gcc/testsuite/g++.dg/lookup/friend24.C *** gcc-11.3.0/gcc/testsuite/g++.dg/lookup/friend24.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/lookup/friend24.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,9 ---- + // PR c++/69410 + + void a(); + void f() { + class A { + friend void ::a(); + friend class Z; + }; + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/modules/tpl-friend-2_a.C gcc-11.4.0/gcc/testsuite/g++.dg/modules/tpl-friend-2_a.C *** gcc-11.3.0/gcc/testsuite/g++.dg/modules/tpl-friend-2_a.C Thu Apr 21 07:58:54 2022 --- gcc-11.4.0/gcc/testsuite/g++.dg/modules/tpl-friend-2_a.C Mon May 29 08:46:30 2023 *************** template class TPL; // instantiate *** 16,20 **** void foo (int, void *); // { dg-final { scan-lang-dump {Cluster members:\n \[0\]=decl definition '::template TPL'\n( \[.\]=[^\n]*'\n)* \[.\]=decl declaration '::template foo'\n( \[.\]=[^\n]*'\n)* \[.\]=binding '::TPL'} module } } ! // { dg-final { scan-lang-dump {Cluster members:\n \[0\]=decl declaration '::foo'\n \[.\]=binding '::foo'} module } } // { dg-final { scan-lang-dump {Cluster members:\n \[0\]=specialization definition '::TPL'} module } } --- 16,20 ---- void foo (int, void *); // { dg-final { scan-lang-dump {Cluster members:\n \[0\]=decl definition '::template TPL'\n( \[.\]=[^\n]*'\n)* \[.\]=decl declaration '::template foo'\n( \[.\]=[^\n]*'\n)* \[.\]=binding '::TPL'} module } } ! // { dg-final { scan-lang-dump {Cluster members:\n \[0\]=decl declaration '::foo'\n \[.\]=binding '::foo'} module } } // { dg-final { scan-lang-dump {Cluster members:\n \[0\]=specialization definition '::TPL'} module } } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/opt/const7.C gcc-11.4.0/gcc/testsuite/g++.dg/opt/const7.C *** gcc-11.3.0/gcc/testsuite/g++.dg/opt/const7.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/opt/const7.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,7 ---- + // PR c++/104142 + // { dg-do compile { target c++11 } } + // { dg-additional-options -Wunused-variable } + + struct B { B()=default; }; + static const B b_var; // { dg-bogus "" } + // { dg-final { scan-assembler-symbol-section {b_var} {^\.(const|rodata)|\[RO\]} } } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/opt/pr108365.C gcc-11.4.0/gcc/testsuite/g++.dg/opt/pr108365.C *** gcc-11.3.0/gcc/testsuite/g++.dg/opt/pr108365.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/opt/pr108365.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,13 ---- + // PR c++/108365 + // { dg-do run } + + char b = 1; + + int + main () + { + #if __CHAR_BIT__ == 8 && __SIZEOF_SHORT__ == 2 && __SIZEOF_INT__ == 4 && __SIZEOF_LONG_LONG__ == 8 + while ((short) ((long long) (unsigned long long) (-__INT_MAX__ - 1) / (long long) (b ? -1 : 0))) + ; + #endif + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/opt/pr108854.C gcc-11.4.0/gcc/testsuite/g++.dg/opt/pr108854.C *** gcc-11.3.0/gcc/testsuite/g++.dg/opt/pr108854.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/opt/pr108854.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,37 ---- + // PR middle-end/108854 + // { dg-do compile { target c++11 } } + // { dg-options "-O3" } + // { dg-additional-options "-fPIC" { target fpic } } + + struct A { A (int); ~A (); }; + struct B { B (int, bool); ~B (); }; + template + struct C { void m1 (T); void m2 (T &&); }; + class D; + struct E { virtual void m3 (); }; + template + struct F { virtual bool m4 (D &); }; + struct D { virtual D m5 () { return D (); } }; + void foo (void *, void *); + struct G { + int a; + C b; + void m4 (D &r) { B l (a, true); r.m5 (); b.m1 (&r); b.m2 (&r); } + }; + struct H : E, F { + template + H (int, T); + bool m4 (D &r) { A l (a); b.m4 (r); if (c) return true; } // { dg-warning "control reaches end of non-void function" } + int a; + bool c; + G b; + }; + inline void bar (F &p) { D s, t; p.m4 (t); foo (&p, &s); } + enum I { I1, I2 }; + template + struct J; + template + void baz () { int g = 0, h = 0; T i (g, h); bar (i); } + template + void qux () { baz > (); } + void corge () { qux (); qux (); } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/parse/no-typename1.C gcc-11.4.0/gcc/testsuite/g++.dg/parse/no-typename1.C *** gcc-11.3.0/gcc/testsuite/g++.dg/parse/no-typename1.C Thu Apr 21 07:58:54 2022 --- gcc-11.4.0/gcc/testsuite/g++.dg/parse/no-typename1.C Mon May 29 08:46:30 2023 *************** template struct A *** 6,11 **** { template struct B { ! A::template B foo(); // { dg-error "" "" { target c++17_down } } }; }; --- 6,11 ---- { template struct B { ! A::template B foo(); }; }; diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/parse/qualified6.C gcc-11.4.0/gcc/testsuite/g++.dg/parse/qualified6.C *** gcc-11.3.0/gcc/testsuite/g++.dg/parse/qualified6.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/parse/qualified6.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,10 ---- + // PR c++/90107 + // { dg-do compile } + + struct A; + namespace N { extern A a; } + struct A {} ::N::a; + + struct A1; + struct B { static A1 a1; }; + struct A1 {} ::B::a1; diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/pr104869.C gcc-11.4.0/gcc/testsuite/g++.dg/pr104869.C *** gcc-11.3.0/gcc/testsuite/g++.dg/pr104869.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/pr104869.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,78 ---- + // PR rtl-optimization/104869 + // { dg-do run } + // { dg-options "-O2 -fvisibility=hidden -std=c++11" } + // { dg-require-visibility "" } + + struct QBasicAtomicInteger { + [[gnu::noipa]] int loadRelaxed() { return 1; } + }; + struct RefCount { + bool deref() { + int count = atomic.loadRelaxed(); + if (count) + return false; + return deref(); + } + QBasicAtomicInteger atomic; + }; + struct QArrayData { + RefCount ref; + }; + struct QString { + ~QString(); + QArrayData d; + }; + int ok; + QString::~QString() { d.ref.deref(); } + struct Label { + bool isValid() { return generator; } + int *generator; + int index; + }; + struct ControlFlow; + struct Codegen { + [[gnu::noipa]] bool visit(); + ControlFlow *controlFlow; + }; + struct ControlFlow { + enum UnwindType { EE }; + struct UnwindTarget { + Label linkLabel; + }; + ControlFlow *parent; + UnwindType unwindTarget_type; + UnwindTarget unwindTarget() { + QString label; + ControlFlow *flow = this; + while (flow) { + Label l = getUnwindTarget(unwindTarget_type, label); + if (l.isValid()) + return {l}; + flow = flow->parent; + } + return UnwindTarget(); + } + [[gnu::noipa]] Label getUnwindTarget(UnwindType, QString &) { + Label l = { &ok, 0 }; + return l; + } + }; + [[gnu::noipa]] void foo(int) { + ok = 1; + } + [[gnu::noipa]] bool Codegen::visit() { + if (!controlFlow) + return false; + ControlFlow::UnwindTarget target = controlFlow->unwindTarget(); + if (target.linkLabel.isValid()) + foo(2); + return false; + } + int + main() { + ControlFlow cf = { nullptr, ControlFlow::UnwindType::EE }; + Codegen c = { &cf }; + c.visit(); + if (!ok) + __builtin_abort (); + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/pr65240-1.C gcc-11.4.0/gcc/testsuite/g++.dg/pr65240-1.C *** gcc-11.3.0/gcc/testsuite/g++.dg/pr65240-1.C Thu Apr 21 07:58:54 2022 --- gcc-11.4.0/gcc/testsuite/g++.dg/pr65240-1.C Mon May 29 08:46:30 2023 *************** *** 1,8 **** /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ /* { dg-skip-if "" { powerpc*-*-darwin* } } */ /* { dg-require-effective-target powerpc_p8vector_ok } */ ! /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */ ! /* { dg-options "-mcpu=power8 -O3 -ffast-math -mcmodel=small -mno-fp-in-toc -Wno-return-type" } */ /* target/65240, compiler got a 'insn does not satisfy its constraints' error. */ --- 1,7 ---- /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ /* { dg-skip-if "" { powerpc*-*-darwin* } } */ /* { dg-require-effective-target powerpc_p8vector_ok } */ ! /* { dg-options "-mdejagnu-cpu=power8 -O3 -ffast-math -mcmodel=small -mno-fp-in-toc -Wno-return-type" } */ /* target/65240, compiler got a 'insn does not satisfy its constraints' error. */ diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/pr65240-2.C gcc-11.4.0/gcc/testsuite/g++.dg/pr65240-2.C *** gcc-11.3.0/gcc/testsuite/g++.dg/pr65240-2.C Thu Apr 21 07:58:54 2022 --- gcc-11.4.0/gcc/testsuite/g++.dg/pr65240-2.C Mon May 29 08:46:30 2023 *************** *** 1,8 **** /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ /* { dg-skip-if "" { powerpc*-*-darwin* } } */ /* { dg-require-effective-target powerpc_p8vector_ok } */ ! /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */ ! /* { dg-options "-mcpu=power8 -O3 -ffast-math -mcmodel=small -mfp-in-toc -Wno-return-type" } */ /* target/65240, compiler got a 'insn does not satisfy its constraints' error. */ --- 1,7 ---- /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ /* { dg-skip-if "" { powerpc*-*-darwin* } } */ /* { dg-require-effective-target powerpc_p8vector_ok } */ ! /* { dg-options "-mdejagnu-cpu=power8 -O3 -ffast-math -mcmodel=small -mfp-in-toc -Wno-return-type" } */ /* target/65240, compiler got a 'insn does not satisfy its constraints' error. */ diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/pr65240-3.C gcc-11.4.0/gcc/testsuite/g++.dg/pr65240-3.C *** gcc-11.3.0/gcc/testsuite/g++.dg/pr65240-3.C Thu Apr 21 07:58:54 2022 --- gcc-11.4.0/gcc/testsuite/g++.dg/pr65240-3.C Mon May 29 08:46:30 2023 *************** *** 1,8 **** /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ /* { dg-skip-if "" { powerpc*-*-darwin* } } */ /* { dg-require-effective-target powerpc_p8vector_ok } */ ! /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */ ! /* { dg-options "-mcpu=power8 -O3 -ffast-math -mcmodel=medium -Wno-return-type" } */ /* target/65240, compiler got a 'insn does not satisfy its constraints' error. */ --- 1,7 ---- /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ /* { dg-skip-if "" { powerpc*-*-darwin* } } */ /* { dg-require-effective-target powerpc_p8vector_ok } */ ! /* { dg-options "-mdejagnu-cpu=power8 -O3 -ffast-math -mcmodel=medium -Wno-return-type" } */ /* target/65240, compiler got a 'insn does not satisfy its constraints' error. */ diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/pr65240-4.C gcc-11.4.0/gcc/testsuite/g++.dg/pr65240-4.C *** gcc-11.3.0/gcc/testsuite/g++.dg/pr65240-4.C Thu Apr 21 07:58:54 2022 --- gcc-11.4.0/gcc/testsuite/g++.dg/pr65240-4.C Mon May 29 08:46:30 2023 *************** *** 1,8 **** /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ /* { dg-skip-if "" { powerpc*-*-darwin* } } */ /* { dg-require-effective-target powerpc_vsx_ok } */ ! /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power7" } } */ ! /* { dg-options "-mcpu=power7 -O3 -ffast-math -Wno-return-type" } */ /* target/65240, compiler got a 'insn does not satisfy its constraints' error. */ --- 1,7 ---- /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ /* { dg-skip-if "" { powerpc*-*-darwin* } } */ /* { dg-require-effective-target powerpc_vsx_ok } */ ! /* { dg-options "-mdejagnu-cpu=power7 -O3 -ffast-math -Wno-return-type" } */ /* target/65240, compiler got a 'insn does not satisfy its constraints' error. */ diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/pr65242.C gcc-11.4.0/gcc/testsuite/g++.dg/pr65242.C *** gcc-11.3.0/gcc/testsuite/g++.dg/pr65242.C Thu Apr 21 07:58:54 2022 --- gcc-11.4.0/gcc/testsuite/g++.dg/pr65242.C Mon May 29 08:46:30 2023 *************** *** 1,8 **** /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ /* { dg-skip-if "" { powerpc*-*-darwin* } } */ /* { dg-require-effective-target powerpc_p8vector_ok } */ ! /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */ ! /* { dg-options "-mcpu=power8 -O3" } */ class A { public: --- 1,7 ---- /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ /* { dg-skip-if "" { powerpc*-*-darwin* } } */ /* { dg-require-effective-target powerpc_p8vector_ok } */ ! /* { dg-options "-mdejagnu-cpu=power8 -O3" } */ class A { public: diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/pr67211.C gcc-11.4.0/gcc/testsuite/g++.dg/pr67211.C *** gcc-11.3.0/gcc/testsuite/g++.dg/pr67211.C Thu Apr 21 07:58:54 2022 --- gcc-11.4.0/gcc/testsuite/g++.dg/pr67211.C Mon May 29 08:46:30 2023 *************** *** 1,8 **** /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ /* { dg-skip-if "" { powerpc*-*-darwin* } } */ /* { dg-require-effective-target powerpc_p8vector_ok } */ ! /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power7" } } */ ! /* { dg-options "-mcpu=power7 -mtune=power8 -O3 -w" } */ /* target/67211, compiler got a 'insn does not satisfy its constraints' error. */ --- 1,7 ---- /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ /* { dg-skip-if "" { powerpc*-*-darwin* } } */ /* { dg-require-effective-target powerpc_p8vector_ok } */ ! /* { dg-options "-mdejagnu-cpu=power7 -mdejagnu-tune=power8 -O3 -w" } */ /* target/67211, compiler got a 'insn does not satisfy its constraints' error. */ diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/pr69667.C gcc-11.4.0/gcc/testsuite/g++.dg/pr69667.C *** gcc-11.3.0/gcc/testsuite/g++.dg/pr69667.C Thu Apr 21 07:58:54 2022 --- gcc-11.4.0/gcc/testsuite/g++.dg/pr69667.C Mon May 29 08:46:30 2023 *************** *** 1,8 **** /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ /* { dg-skip-if "" { powerpc*-*-darwin* } } */ /* { dg-require-effective-target powerpc_p8vector_ok } */ ! /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power7" } } */ ! /* { dg-options "-mcpu=power8 -w -std=c++14" } */ /* target/69667, compiler got internal compiler error: Max. number of generated reload insns per insn is achieved (90) */ --- 1,7 ---- /* { dg-do compile { target { powerpc*-*-* && lp64 } } } */ /* { dg-skip-if "" { powerpc*-*-darwin* } } */ /* { dg-require-effective-target powerpc_p8vector_ok } */ ! /* { dg-options "-mdejagnu-cpu=power8 -w -std=c++14" } */ /* target/69667, compiler got internal compiler error: Max. number of generated reload insns per insn is achieved (90) */ diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/pr71294.C gcc-11.4.0/gcc/testsuite/g++.dg/pr71294.C *** gcc-11.3.0/gcc/testsuite/g++.dg/pr71294.C Thu Apr 21 07:58:54 2022 --- gcc-11.4.0/gcc/testsuite/g++.dg/pr71294.C Mon May 29 08:46:30 2023 *************** *** 1,7 **** // { dg-do compile { target { powerpc64*-*-* && lp64 } } } // { dg-require-effective-target powerpc_p8vector_ok } */ ! // { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } ! // { dg-options "-mcpu=power8 -O3 -fstack-protector" } // PAR target/71294 failed because RELOAD could not figure how create a V2DI // vector that auto vectorization created with each element being the same --- 1,6 ---- // { dg-do compile { target { powerpc64*-*-* && lp64 } } } // { dg-require-effective-target powerpc_p8vector_ok } */ ! // { dg-options "-mdejagnu-cpu=power8 -O3 -fstack-protector" } // PAR target/71294 failed because RELOAD could not figure how create a V2DI // vector that auto vectorization created with each element being the same diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/pr84279.C gcc-11.4.0/gcc/testsuite/g++.dg/pr84279.C *** gcc-11.3.0/gcc/testsuite/g++.dg/pr84279.C Thu Apr 21 07:58:54 2022 --- gcc-11.4.0/gcc/testsuite/g++.dg/pr84279.C Mon May 29 08:46:30 2023 *************** *** 2,9 **** /* { dg-skip-if "" { powerpc*-*-darwin* } } */ /* { dg-require-effective-target powerpc_p8vector_ok } */ /* { dg-require-effective-target fpic } */ ! /* { dg-skip-if "do not override -mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */ ! /* { dg-options "-O3 -mcpu=power8 -g -fPIC -fvisibility=hidden -fstack-protector-strong" } */ template struct E { T e; }; struct J { --- 2,8 ---- /* { dg-skip-if "" { powerpc*-*-darwin* } } */ /* { dg-require-effective-target powerpc_p8vector_ok } */ /* { dg-require-effective-target fpic } */ ! /* { dg-options "-O3 -mdejagnu-cpu=power8 -g -fPIC -fvisibility=hidden -fstack-protector-strong" } */ template struct E { T e; }; struct J { diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/template/conv19.C gcc-11.4.0/gcc/testsuite/g++.dg/template/conv19.C *** gcc-11.3.0/gcc/testsuite/g++.dg/template/conv19.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/template/conv19.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,34 ---- + // PR c++/101698 + // { dg-do compile { target c++11 } } + + class Base { + public: + template + operator const T&() const = delete; + + virtual operator const int&() const { + static int res; + return res; + } + }; + + template + class Derive : public Base { + public: + operator const T&() const override { + using Y = int; + //static_assert(__is_same_as(T,Y), ""); + + static int res; + + res = Base::operator const Y&(); // OK + res = Base::operator const T&(); // { dg-bogus "deleted" } + return res; + } + }; + + int main() { + Derive a; + const int& b = a; + (void)b; + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/template/friend74.C gcc-11.4.0/gcc/testsuite/g++.dg/template/friend74.C *** gcc-11.3.0/gcc/testsuite/g++.dg/template/friend74.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/template/friend74.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,8 ---- + // PR c++/105852 + // { dg-additional-options -w } + + template struct Local { friend Local False(int *); }; + Local loc; + Local False(int *); + void New() { False; } + Local False(int *) { return Local(); } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/template/friend78.C gcc-11.4.0/gcc/testsuite/g++.dg/template/friend78.C *** gcc-11.3.0/gcc/testsuite/g++.dg/template/friend78.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/template/friend78.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,18 ---- + // PR c++/106740 + // { dg-additional-options -Wno-non-template-friend } + + template struct EnumClass { friend int toString(EnumClass); }; + struct AmhsConvInfoCoFw { + enum AftnTypeXMsgTypeEnum {}; + typedef EnumClass AftnTypeXMsgType; + const int getAftnTypeXMsgTypeAsStr() const; + struct MtcuAxgwInfo { + AftnTypeXMsgType mAftnTypeXMsgType; + }; + }; + const int AmhsConvInfoCoFw::getAftnTypeXMsgTypeAsStr() const { + MtcuAxgwInfo __trans_tmp_1; + toString(__trans_tmp_1.mAftnTypeXMsgType); + return 0; + } + int toString(AmhsConvInfoCoFw::AftnTypeXMsgType); diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/template/nested7.C gcc-11.4.0/gcc/testsuite/g++.dg/template/nested7.C *** gcc-11.3.0/gcc/testsuite/g++.dg/template/nested7.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/template/nested7.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,12 ---- + // PR c++/102300 + + template + struct holder + { + template struct fn {}; + + struct t1 : fn {}; // pass + struct t2 : holder::fn {}; // fail + struct t3 : holder::template fn {}; // fail + struct t4 : holder::template fn {}; // pass + }; diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/template/partial-specialization11.C gcc-11.4.0/gcc/testsuite/g++.dg/template/partial-specialization11.C *** gcc-11.3.0/gcc/testsuite/g++.dg/template/partial-specialization11.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/template/partial-specialization11.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,11 ---- + // PR c++/86193 + // CWG 455 (active) + // { dg-options "" } // clear -pedantic-errors + + template struct value_type; + + template::type V> + struct A; + + template + struct A { }; // { dg-warning "not more specialized" } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/template/partial-specialization12.C gcc-11.4.0/gcc/testsuite/g++.dg/template/partial-specialization12.C *** gcc-11.3.0/gcc/testsuite/g++.dg/template/partial-specialization12.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/template/partial-specialization12.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,12 ---- + // PR c++/105289 + // CWG 455 (active) + // { dg-do compile { target c++11 } } + + template + struct value_type; + + template::type Element> + struct push_front_vlist; + + template class XList, class T, T Arg, T... Vs> + struct push_front_vlist, Arg> { }; // { dg-error "not more specialized" } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/tls/thread_local13-aux.cc gcc-11.4.0/gcc/testsuite/g++.dg/tls/thread_local13-aux.cc *** gcc-11.3.0/gcc/testsuite/g++.dg/tls/thread_local13-aux.cc Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/tls/thread_local13-aux.cc Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,35 ---- + // PR c++/109164 + + struct S { virtual void foo (); int s; }; + extern bool baz (); + + void + S::foo () + { + if (s != 42) + __builtin_abort (); + } + + S s; + + S & + qux () + { + s.s = 42; + return s; + } + + thread_local S &t = qux (); + + bool + bar () + { + return false; + } + + int + main () + { + if (baz ()) + __builtin_abort (); + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/tls/thread_local13.C gcc-11.4.0/gcc/testsuite/g++.dg/tls/thread_local13.C *** gcc-11.3.0/gcc/testsuite/g++.dg/tls/thread_local13.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/tls/thread_local13.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,21 ---- + // PR c++/109164 + // { dg-do run { target c++11 } } + // { dg-options "-O2" } + // { dg-add-options tls } + // { dg-require-effective-target tls_runtime } + // { dg-additional-sources "thread_local13-aux.cc" } + + struct S { virtual void foo (); int s; }; + extern thread_local S &t; + bool bar (); + + bool + baz () + { + while (1) + { + t.foo (); + if (!bar ()) + return false; + } + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/tls/thread_local14-aux.cc gcc-11.4.0/gcc/testsuite/g++.dg/tls/thread_local14-aux.cc *** gcc-11.3.0/gcc/testsuite/g++.dg/tls/thread_local14-aux.cc Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/tls/thread_local14-aux.cc Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,26 ---- + // PR c++/109164 + + extern bool baz (); + + int + qux () + { + return 42; + } + + extern thread_local const int t = qux (); + + bool + bar (int x) + { + if (x != 42) + __builtin_abort (); + return false; + } + + int + main () + { + if (baz ()) + __builtin_abort (); + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/tls/thread_local14.C gcc-11.4.0/gcc/testsuite/g++.dg/tls/thread_local14.C *** gcc-11.3.0/gcc/testsuite/g++.dg/tls/thread_local14.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/tls/thread_local14.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,19 ---- + // PR c++/109164 + // { dg-do run { target c++11 } } + // { dg-options "-O2" } + // { dg-add-options tls } + // { dg-require-effective-target tls_runtime } + // { dg-additional-sources "thread_local14-aux.cc" } + + extern thread_local const int t; + bool bar (int); + + bool + baz () + { + while (1) + { + if (!bar (t)) + return false; + } + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/torture/ppc-ldst-array.C gcc-11.4.0/gcc/testsuite/g++.dg/torture/ppc-ldst-array.C *** gcc-11.3.0/gcc/testsuite/g++.dg/torture/ppc-ldst-array.C Thu Apr 21 07:58:54 2022 --- gcc-11.4.0/gcc/testsuite/g++.dg/torture/ppc-ldst-array.C Mon May 29 08:46:30 2023 *************** *** 1,6 **** /* { dg-do compile { target { powerpc64*-*-* } } } */ ! /* { dg-skip-if "do not override mcpu" { powerpc*-*-* } { "-mcpu=*" } { "-mcpu=power8" } } */ ! /* { dg-options "-mcpu=power8" } */ /* When compiled with C++, this code was breaking because of different tree representations of arrays between C and C++. */ --- 1,5 ---- /* { dg-do compile { target { powerpc64*-*-* } } } */ ! /* { dg-options "-mdejagnu-cpu=power8" } */ /* When compiled with C++, this code was breaking because of different tree representations of arrays between C and C++. */ diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/torture/pr104450.C gcc-11.4.0/gcc/testsuite/g++.dg/torture/pr104450.C *** gcc-11.3.0/gcc/testsuite/g++.dg/torture/pr104450.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/torture/pr104450.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,16 ---- + // { dg-do compile } + // { dg-additional-options "-fnon-call-exceptions" } + // { dg-additional-options "-mavx512f" { target x86_64-*-* i?86-*-* } } + + #define vectsize 64 + typedef int __attribute__((__vector_size__ (vectsize))) V; + typedef float __attribute__((__vector_size__ (vectsize))) F; + F f; + V v; + struct g{~g();}; + void + foo (void) + { + g t; + v += (V) (0 <= f); + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/torture/pr106131.C gcc-11.4.0/gcc/testsuite/g++.dg/torture/pr106131.C *** gcc-11.3.0/gcc/testsuite/g++.dg/torture/pr106131.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/torture/pr106131.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,34 ---- + // { dg-do run { target c++11 } } + + struct Pair { + int a, b; + Pair(const Pair &) = default; + Pair(int _a, int _b) : a(_a), b(_b) {} + Pair &operator=(const Pair &z) { + a = z.a; + b = z.b; + return *this; + } + }; + + const int &max(const int &a, const int &b) + { + return a < b ? b : a; + } + + int foo(Pair x, Pair y) + { + return max(x.b, y.b); + } + + int main() + { + auto f = new Pair[3] {{0, -11}, {0, -8}, {0, 2}}; + for (int i = 0; i < 1; i++) { + f[i] = f[0]; + if(i == 0) + f[i] = f[2]; + if (foo(f[i], f[1]) != 2) + __builtin_abort(); + } + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/torture/pr109724.C gcc-11.4.0/gcc/testsuite/g++.dg/torture/pr109724.C *** gcc-11.3.0/gcc/testsuite/g++.dg/torture/pr109724.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/torture/pr109724.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,32 ---- + // { dg-do compile } + + double &SkTMax(double &a, double &b) { return a ?: b; } + struct SkDPoint { + double fX; + }; + struct SkDCubic { + SkDPoint &operator[](int n) { return fPts[n]; } + SkDPoint fPts[4]; + }; + struct SkDCurve { + SkDCubic fCubic; + SkDPoint &operator[](int n) { return fCubic[n]; } + }; + struct SkDCurveSweep { + SkDCurve fCurve; + }; + int endsIntersect_rPts; + double endsIntersect_maxX; + struct SkOpAngle { + void endsIntersect(); + SkDCurveSweep fPart; + } endsIntersect_rh; + void SkOpAngle::endsIntersect() { + for (int index = 0;; ++index) { + SkDCurve &curve = index ? endsIntersect_rh.fPart.fCurve : fPart.fCurve; + for (int idx2 = 0; endsIntersect_rPts; ++idx2) { + SkDPoint &__trans_tmp_1 = curve[idx2]; + endsIntersect_maxX = SkTMax(endsIntersect_maxX, __trans_tmp_1.fX); + } + } + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/ubsan/pr105729.C gcc-11.4.0/gcc/testsuite/g++.dg/ubsan/pr105729.C *** gcc-11.3.0/gcc/testsuite/g++.dg/ubsan/pr105729.C Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/ubsan/pr105729.C Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,29 ---- + // PR sanitizer/105729 + // { dg-do run } + // { dg-options "-fsanitize=null -fno-sanitize-recover=null" } + + int + foo (int x) + { + throw 0; + } + + struct S {}; + struct T { + S *data; + T () : data (0) {} + const S &bar (int x) const { return data[foo (x)]; } + }; + + int + main () + { + T t; + try + { + t.bar (-1); + } + catch (...) + { + } + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/vect/pr105437.cc gcc-11.4.0/gcc/testsuite/g++.dg/vect/pr105437.cc *** gcc-11.3.0/gcc/testsuite/g++.dg/vect/pr105437.cc Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/vect/pr105437.cc Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,24 ---- + // { dg-do compile } + + struct ControlClass + { + virtual ~ControlClass(); + + int Width; + int Height; + unsigned IsToRepaint : 1; + }; + + struct SelectClass : ControlClass + { + SelectClass(void); + }; + + int Non_Folded_Value(); + + SelectClass::SelectClass(void) + { + int factor = Non_Folded_Value(); + Width = 32 << factor; + Height = 24 << factor; + } diff -Nrcpad gcc-11.3.0/gcc/testsuite/g++.dg/vect/pr109573.cc gcc-11.4.0/gcc/testsuite/g++.dg/vect/pr109573.cc *** gcc-11.3.0/gcc/testsuite/g++.dg/vect/pr109573.cc Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/gcc/testsuite/g++.dg/vect/pr109573.cc Mon May 29 08:46:30 2023 *************** *** 0 **** --- 1,91 ---- + // { dg-do compile } + // { dg-require-effective-target c++20 } + + void *operator new(__SIZE_TYPE__, void *__p) { return __p; } + template struct _Head_base { + _Head _M_head_impl; + }; + template struct _Tuple_impl; + template + struct _Tuple_impl<_Idx, _Head, _Tail...> : _Tuple_impl<_Idx + 1, _Tail...>, + _Head_base<_Head> { + template + _Tuple_impl(_UHead __head, _UTail... __tail) + : _Tuple_impl<_Idx + 1, _Tail...>(__tail...), _Head_base<_Head>(__head) {} + }; + template struct _Tuple_impl<_Idx, _Head> { + template _Tuple_impl(_UHead); + }; + template struct tuple : _Tuple_impl<0, _Elements...> { + template + tuple(_UElements... __elements) + : _Tuple_impl<0, _Elements...>(__elements...) {} + }; + unsigned long position_; + struct Zone { + template T *New(Args... args) { + return new (reinterpret_cast(position_)) T(args...); + } + }; + struct Label { + int pos_; + int near_link_pos_; + }; + enum Condition { below_equal }; + void bind(Label *); + Zone *zone(); + unsigned long deopt_info_address(); + int MakeDeferredCode___trans_tmp_2, MakeDeferredCode___trans_tmp_3, + Prologue___trans_tmp_6, MakeDeferredCode___trans_tmp_1; + struct MaglevAssembler { + template + void MakeDeferredCode(Function &&, Args &&...); + template + void JumpToDeferredIf(Condition, Function, Args... args) { + MakeDeferredCode(Function(), args...); + } + void Prologue(); + }; + struct ZoneLabelRef { + ZoneLabelRef(Zone *zone) : label_(zone->New


Table of Contents

The GNU C++ Library Manual
I. Introduction !
1. Status
Implementation Status
C++ 1998/2003
Implementation Status
Implementation Specific Behavior
C++ 2011
Implementation Specific Behavior
C++ 2014
Implementation Specific Behavior
Filesystem TS
C++ 2017
Implementation Specific Behavior
Parallelism 2 TS
C++ 2020
C++ 2023
C++ TR1
Implementation Specific Behavior
C++ TR 24733
C++ IS 29124
Implementation Specific Behavior
License
The Code: GPL
The Documentation: GPL, FDL
Bugs
Implementation Bugs
Standard Bugs
2. Setup
Prerequisites
Configure
Make
3. Using
Command Options
Headers
Header Files
Mixing Headers
The C Headers and namespace std
Precompiled Headers
Macros
Dual ABI
Troubleshooting
Namespaces
Available Namespaces
namespace std
Using Namespace Composition
Linking
Almost Nothing
Finding Dynamic or Shared Libraries
Experimental Library Extensions
Concurrency
Prerequisites
Thread Safety
Atomics
IO
Structure
Defaults
Future
Alternatives
Containers
Exceptions
Exception Safety
Exception Neutrality
Doing without
Compatibility
With C
With POSIX thread cancellation
Debugging Support
Using g++
Debug Versions of Library Binary Files
Memory Leak Hunting
Non-memory leaks in Pool and MT allocators
Data Race Hunting
Using gdb
Tracking uncaught exceptions
Debug Mode
Compile Time Checking
II. Standard Contents
4. Support diff -Nrcpad gcc-11.3.0/libstdc++-v3/doc/html/manual/bugs.html gcc-11.4.0/libstdc++-v3/doc/html/manual/bugs.html *** gcc-11.3.0/libstdc++-v3/doc/html/manual/bugs.html Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/doc/html/manual/bugs.html Mon May 29 08:46:33 2023 *************** *** 350,355 **** --- 350,358 ---- More algorithms that throw away information

The traditional HP / SGI return type and value is blessed by the resolution of the DR. +

1203: + More useful rvalue stream insertion +

Return the stream as its original type, not the base class.

1339: uninitialized_fill_n should return the end of its range

Return the end of the filled range. diff -Nrcpad gcc-11.3.0/libstdc++-v3/doc/html/manual/ext_demangling.html gcc-11.4.0/libstdc++-v3/doc/html/manual/ext_demangling.html *** gcc-11.3.0/libstdc++-v3/doc/html/manual/ext_demangling.html Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/doc/html/manual/ext_demangling.html Mon May 29 08:46:33 2023 *************** int main() *** 39,52 **** int status; char *realname; - // exception classes not in <stdexcept>, thrown by the implementation - // instead of the user - std::bad_exception e; - realname = abi::__cxa_demangle(e.what(), 0, 0, &status); - std::cout << e.what() << "\t=> " << realname << "\t: " << status << '\n'; - free(realname); - - // typeid bar<empty,17> u; const std::type_info &ti = typeid(u); --- 39,44 ---- *************** int main() *** 61,73 **** This prints

     
-       St13bad_exception       => std::bad_exception   : 0
        3barI5emptyLi17EE       => bar<empty, 17>       : 0
     
     

The demangler interface is described in the source documentation linked to above. It is actually written in C, so you don't need to be writing C++ in order to demangle C++. (That also means we have to ! use crummy memory management facilities, so don't forget to free() ! the returned char array.)

\ No newline at end of file --- 53,64 ---- This prints

     
        3barI5emptyLi17EE       => bar<empty, 17>       : 0
     
     

The demangler interface is described in the source documentation linked to above. It is actually written in C, so you don't need to be writing C++ in order to demangle C++. (That also means we have to ! use crummy memory management facilities, so don't forget to ! free() the returned char array.)

\ No newline at end of file diff -Nrcpad gcc-11.3.0/libstdc++-v3/doc/html/manual/extensions.html gcc-11.4.0/libstdc++-v3/doc/html/manual/extensions.html *** gcc-11.3.0/libstdc++-v3/doc/html/manual/extensions.html Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/doc/html/manual/extensions.html Mon May 29 08:46:33 2023 *************** *** 1,8 **** ! Part III.  Extensions

Part III.  Extensions

Table of Contents

16. Compile Time Checks
17. Debug Mode
Intro
Semantics
Using
Using the Debug Mode
Using a Specific Debug Container
Design
Goals
Methods
The Wrapper Model
Safe Iterators
Safe Sequences (Containers)
Precondition Checking
Release- and debug-mode coexistence
Compile-time coexistence of release- and debug-mode components
Link- and run-time coexistence of release- and --- 1,8 ---- ! Part III.  Extensions \ No newline at end of file --- 68,74 ---- Text modify Up
Text modify Down !
Observations
Associative
Priority_Queue
Acknowledgments
Bibliography
22. HP/SGI Extensions
Backwards Compatibility
Deprecated
23. Utilities
24. Algorithms
25. Numerics
26. Iterators
27. Input and Output
Derived filebufs
28. Demangling
29. Concurrency
Design
Interface to Locks and Mutexes
Interface to Atomic Functions
Implementation
Using Built-in Atomic Functions
Thread Abstraction
Use
\ No newline at end of file diff -Nrcpad gcc-11.3.0/libstdc++-v3/doc/html/manual/index.html gcc-11.4.0/libstdc++-v3/doc/html/manual/index.html *** gcc-11.3.0/libstdc++-v3/doc/html/manual/index.html Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/doc/html/manual/index.html Mon May 29 08:46:33 2023 *************** *** 1,10 **** ! The GNU C++ Library Manual

The GNU C++ Library Manual

Paolo Carlini

Phil Edwards

Doug Gregor

Benjamin Kosnik

Dhruv Matani

Jason Merrill

Mark Mitchell

Nathan Myers

Felix Natter

Stefan Olsson

Johannes Singler

Ami Tavory

Jonathan Wakely


Table of Contents

I. Introduction !
1. Status
Implementation Status
C++ 1998/2003
Implementation Status
Implementation Specific Behavior
C++ 2011
Implementation Specific Behavior
C++ 2014
Implementation Specific Behavior
Filesystem TS
C++ 2017
Implementation Specific Behavior
Parallelism 2 TS
C++ 2020
C++ TR1
Implementation Specific Behavior
C++ TR 24733
C++ IS 29124
Implementation Specific Behavior
License
The Code: GPL
The Documentation: GPL, FDL
Bugs
Implementation Bugs
Standard Bugs
2. Setup
Prerequisites
Configure
Make
3. Using
Command Options
Headers
Header Files
Mixing Headers
The C Headers and namespace std
Precompiled Headers
Macros
Dual ABI
Troubleshooting
Namespaces
Available Namespaces
namespace std
Using Namespace Composition
Linking
Almost Nothing
Finding Dynamic or Shared Libraries
Experimental Library Extensions
Concurrency
Prerequisites
Thread Safety
Atomics
IO
Structure
Defaults
Future
Alternatives
Containers
Exceptions
Exception Safety
Exception Neutrality
Doing without
Compatibility
With C
With POSIX thread cancellation
Debugging Support
Using g++
Debug Versions of Library Binary Files
Memory Leak Hunting
Non-memory leaks in Pool and MT allocators
Data Race Hunting
Using gdb
Tracking uncaught exceptions
Debug Mode
Compile Time Checking
II. Standard Contents
4. Support --- 1,10 ---- ! The GNU C++ Library Manual

The GNU C++ Library Manual

Paolo Carlini

Phil Edwards

Doug Gregor

Benjamin Kosnik

Dhruv Matani

Jason Merrill

Mark Mitchell

Nathan Myers

Felix Natter

Stefan Olsson

Johannes Singler

Ami Tavory

Jonathan Wakely


Table of Contents

I. Introduction !
1. Status
Implementation Status
C++ 1998/2003
Implementation Status
Implementation Specific Behavior
C++ 2011
Implementation Specific Behavior
C++ 2014
Implementation Specific Behavior
Filesystem TS
C++ 2017
Implementation Specific Behavior
Parallelism 2 TS
C++ 2020
C++ 2023
C++ TR1
Implementation Specific Behavior
C++ TR 24733
C++ IS 29124
Implementation Specific Behavior
License
The Code: GPL
The Documentation: GPL, FDL
Bugs
Implementation Bugs
Standard Bugs
2. Setup
Prerequisites
Configure
Make
3. Using
Command Options
Headers
Header Files
Mixing Headers
The C Headers and namespace std
Precompiled Headers
Macros
Dual ABI
Troubleshooting
Namespaces
Available Namespaces
namespace std
Using Namespace Composition
Linking
Almost Nothing
Finding Dynamic or Shared Libraries
Experimental Library Extensions
Concurrency
Prerequisites
Thread Safety
Atomics
IO
Structure
Defaults
Future
Alternatives
Containers
Exceptions
Exception Safety
Exception Neutrality
Doing without
Compatibility
With C
With POSIX thread cancellation
Debugging Support
Using g++
Debug Versions of Library Binary Files
Memory Leak Hunting
Non-memory leaks in Pool and MT allocators
Data Race Hunting
Using gdb
Tracking uncaught exceptions
Debug Mode
Compile Time Checking
II. Standard Contents
4. Support *************** Support for C++11 dialect. *** 145,151 ****
21.10. Non-unique Mapping Containers
21.11. Point Iterator Hierarchy
21.12. Invalidation Guarantee Tags Hierarchy
21.13. Container Tag Hierarchy
21.14. Hash functions, ranged-hash functions, and range-hashing functions
21.15. Insert hash sequence diagram
21.16. Insert hash sequence diagram with a null policy
21.17. Hash policy class diagram
21.18. Balls and bins
21.19. Insert resize sequence diagram
21.20. Standard resize policy trigger sequence diagram
21.21. Standard resize policy size sequence ! diagram
21.22. Tree node invariants
21.23. Tree node invalidation
21.24. A tree and its update policy
21.25. Restoring node invariants
21.26. Insert update sequence
21.27. Useless update path
21.28. A PATRICIA trie
21.29. A trie and its update policy
21.30. A simple list
21.31. The counter algorithm
21.32. Underlying Priority-Queue Data-Structures.
21.33. Priority-Queue Data-Structure Tags.
B.1. Configure and Build File Dependencies

List of Tables

1.1. C++ 1998/2003 Implementation Status
1.2. C++ 2011 Implementation Status
1.3. C++ 2014 Implementation Status
1.4. C++ Technical Specifications Implementation Status
1.5. C++ 2017 Library Features
1.6. C++ 2017 Implementation Status
1.7. C++ Technical Specifications Implementation Status
1.8. Support for Extended ABI Tags
1.9. C++ 2020 Library Features
1.10. C++ 2023 Library Features
1.11. C++ TR1 Implementation Status
1.12. C++ TR 24733 Implementation Status
1.13. C++ Special Functions Implementation Status
3.1. C++ Command Options
3.2. C++ 1998 Library Headers
3.3. C++ 1998 Library Headers for C Library Facilities
3.4. C++ 1998 Deprecated Library Header
3.5. C++ 2011 Library Headers
3.6. C++ 2011 Library Headers for C Library Facilities
3.7. C++ 2014 Library Header
3.8. C++ 2017 Library Headers
3.9. C++ 2020 Library Headers
3.10. C++ 2020 Obsolete Headers
3.11. File System TS Header
3.12. Library Fundamentals TS Headers
3.13. C++ TR 1 Library Headers
3.14. C++ TR 1 Library Headers for C Library Facilities
3.15. C++ TR 24733 Decimal Floating-Point Header
3.16. C++ ABI Headers
3.17. Extension Headers
3.18. Extension Debug Headers
3.19. Extension Parallel Headers
17.1. Debugging Containers
17.2. Debugging Containers C++11
18.1. Parallel Algorithms
20.1. Bitmap Allocator Memory Map
B.1. Doxygen Prerequisites
B.2. HTML to Doxygen Markup Comparison
B.3. Docbook Prerequisites
B.4. HTML to Docbook XML Markup Comparison
B.5. Docbook XML Element Use
B.6. Extension Allocators
B.7. Extension Allocators Continued
\ No newline at end of file --- 5,8 ---- Prev The GNU C++ Library Manual Next
\ No newline at end of file diff -Nrcpad gcc-11.3.0/libstdc++-v3/doc/html/manual/setup.html gcc-11.4.0/libstdc++-v3/doc/html/manual/setup.html *** gcc-11.3.0/libstdc++-v3/doc/html/manual/setup.html Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/doc/html/manual/setup.html Mon May 29 08:46:33 2023 *************** *** 42,47 **** --- 42,80 ----

Finally, a few system-specific requirements:

linux

+ The 'gnu' locale model makes use of iconv + for character set conversions. The relevant functions are provided + by Glibc and so are always available, however they can also be + provided by the separate GNU libiconv library. If GNU libiconv is + found when GCC is built (e.g., because its headers are installed + in /usr/local/include) + then the libstdc++.so.6 library will have a + run-time dependency on libiconv.so.2. + If you do not want that run-time dependency then you should do + one of the following: +

  • + Uninstall the libiconv headers before building GCC. + Glibc already provides iconv so you should + not need libiconv anyway. +

  • + + Download the libiconv sources and extract them into the + top level of the GCC source tree, e.g., +

    + wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz
    + tar xf libiconv-1.16.tar.gz
    + ln -s libiconv-1.16 libiconv
    + 

    + This will build libiconv as part of building GCC and link to + it statically, so there is no libiconv.so.2 + dependency. +

  • + Configure GCC with --with-libiconv-type=static. + This requires the static libiconv.a library, + which is not installed by default. You might need to reinstall + libiconv using the --enable-static configure + option to get the static library. +

If GCC 3.1.0 or later on is being used on GNU/Linux, an attempt will be made to use "C" library functionality necessary for C++ named locale support. For GCC 4.6.0 and later, this diff -Nrcpad gcc-11.3.0/libstdc++-v3/doc/html/manual/status.html gcc-11.4.0/libstdc++-v3/doc/html/manual/status.html *** gcc-11.3.0/libstdc++-v3/doc/html/manual/status.html Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/doc/html/manual/status.html Mon May 29 08:46:33 2023 *************** *** 2,8 **** Chapter 1. Status

Chapter 1. Status

Implementation Status

C++ 1998/2003

Implementation Status

This status table is based on the table of contents of ISO/IEC 14882:2003.

This section describes the C++ support in the GCC 11 release series. --- 2,8 ---- Chapter 1. Status

Chapter 1. Status

Implementation Status

C++ 1998/2003

Implementation Status

This status table is based on the table of contents of ISO/IEC 14882:2003.

This section describes the C++ support in the GCC 11 release series. *************** presence of the required flag. *** 1242,1249 **** This section describes the C++20 and library TS support in the GCC 11 release series.

! The following table lists new library features that have been accepted into ! the C++20 working draft. The "Proposal" column provides a link to the ISO C++ committee proposal that describes the feature, while the "Status" column indicates the first version of GCC that contains an implementation of this feature (if it has been implemented). --- 1242,1249 ---- This section describes the C++20 and library TS support in the GCC 11 release series.

! The following table lists new library features that are included in ! the C++20 standard. The "Proposal" column provides a link to the ISO C++ committee proposal that describes the feature, while the "Status" column indicates the first version of GCC that contains an implementation of this feature (if it has been implemented). *************** or any notes about the implementation. *** 1344,1353 **** 10.1 __cpp_lib_atomic_float >= 201711L C++ Synchronized Buffered Ostream P0053R7 ! 11 __cpp_lib_syncbuf >= 201711L Manipulators for C++ Synchronized Buffered Ostream P0753R2 ! 11 __cpp_lib_syncbuf >= 201803L Make std::memory_order a scoped enumeration P0439R0 9.1   The Curious Case of Padding Bits, Featuring Atomic Compare-and-Exchange --- 1344,1353 ---- 10.1 __cpp_lib_atomic_float >= 201711L C++ Synchronized Buffered Ostream P0053R7 ! 11.1 __cpp_lib_syncbuf >= 201711L Manipulators for C++ Synchronized Buffered Ostream P0753R2 ! 11.1 __cpp_lib_syncbuf >= 201803L Make std::memory_order a scoped enumeration P0439R0 9.1   The Curious Case of Padding Bits, Featuring Atomic Compare-and-Exchange *************** or any notes about the implementation. *** 1428,1434 **** string::reserve Should Not Shrink P0966R1 ! 11   char8_t: A type for UTF-8 characters and strings P0482R6 9.1 __cpp_lib_char8_t >= 201811L char8_t backward compatibility remediation --- 1428,1434 ---- string::reserve Should Not Shrink P0966R1 ! 11.1   char8_t: A type for UTF-8 characters and strings P0482R6 9.1 __cpp_lib_char8_t >= 201811L char8_t backward compatibility remediation *************** or any notes about the implementation. *** 1555,1561 ****   Bit-casting object representations P0476R2 ! 11 __cpp_lib_bit_cast >= 201806L Integral power-of-2 operations P0556R3 9.1 __cpp_lib_int_pow2 >= 201806L (since 9.4, see Note 1) On the names of low-level bit manipulation functions --- 1555,1561 ----   Bit-casting object representations P0476R2 ! 11.1 __cpp_lib_bit_cast >= 201806L Integral power-of-2 operations P0556R3 9.1 __cpp_lib_int_pow2 >= 201806L (since 9.4, see Note 1) On the names of low-level bit manipulation functions *************** or any notes about the implementation. *** 1675,1681 **** 8.1 __cpp_lib_endian >= 201907L Bit operations P0553R4 ! 10.1 __cpp_lib_bitops >= 201907L (since 9.4, see Note 1) Well-behaved interpolation for numbers and pointers P0811R3 9.1 __cpp_lib_interpolate >= 201902L Mathematical constants --- 1675,1681 ---- 8.1 __cpp_lib_endian >= 201907L Bit operations P0553R4 ! 9.1 __cpp_lib_bitops >= 201907L (since 9.4, see Note 1) Well-behaved interpolation for numbers and pointers P0811R3 9.1 __cpp_lib_interpolate >= 201902L Mathematical constants *************** or any notes about the implementation. *** 1684,1699 **** 10.1 __cpp_lib_math_constants >= 201907L std::source_location P1208R6 ! 11 __cpp_lib_source_location >= 201907L Efficient access to std::basic_stringbuf's Buffer P0408R7 ! 11  


Note 1: This feature is supported in older releases but the __cpp_lib macro is not defined to the right value (or not defined at all) until the version shown in parentheses. !

C++ TR1

This table is based on the table of contents of ISO/IEC DTR 19768 Doc No: N1836=05-0096 Date: 2005-06-24 Draft Technical Report on C++ Library Extensions --- 1684,1788 ---- 10.1 __cpp_lib_math_constants >= 201907L std::source_location P1208R6 ! 11.1 __cpp_lib_source_location >= 201907L Efficient access to std::basic_stringbuf's Buffer P0408R7 ! 11.1  


Note 1: This feature is supported in older releases but the __cpp_lib macro is not defined to the right value (or not defined at all) until the version shown in parentheses. !

C++ 2023

! In this implementation the -std=gnu++23 or ! -std=c++23 flag must be used to enable language ! and library ! features. See dialect ! options. The pre-defined symbol ! __cplusplus is used to check for the ! presence of the required flag. !

! This section describes the C++23 and library TS support in mainline GCC, ! not in any particular release. !

! The following table lists new library features that have been accepted into ! the C++23 working draft. The "Proposal" column provides a link to the ! ISO C++ committee proposal that describes the feature, while the "Status" ! column indicates the first version of GCC that contains an implementation of ! this feature (if it has been implemented). ! A dash (—) in the status column indicates that the changes in the proposal ! either do not affect the code in libstdc++, or the changes are not required for conformance. ! The "SD-6 Feature Test / Notes" column shows the corresponding macro or header from ! SD-6: ! Feature-testing recommendations for C++ (where applicable) ! or any notes about the implementation. !

Table 1.10. C++ 2023 Library Features

Library FeatureProposalStatusSD-6 Feature Test / Notes
! Ranges and Views !
Range constructor for std::string_view ! ! P1989R2 ! ! 11.1  
join_view should join all views of ranges ! ! P2328R1 ! ! 11.2  
Clarifying range adaptor objects ! ! P2281R1 ! ! 11.1  
Views should not be required to be default constructible ! ! P2325R3 ! ! 11.3 __cpp_lib_ranges >= 202106L
Conditionally borrowed ranges ! ! P2017R1 ! ! 11.1  
Require span & basic_string_view to be Trivially Copyable ! ! P2251R1 ! ! Yes  
! Compile-time programming !
A proposal for a type trait to detect scoped enumerations ! ! P1048R1 ! ! 11.1 __cpp_lib_is_scoped_enum >= 202011L
std::to_underlying for enumerations ! ! P1682R3 ! ! 11.1 __cpp_lib_to_underlying >= 202102L
Missing constexpr in std::optional and std::variant ! ! P2231R1 ! ! 11.3 (optional only) !
__cpp_lib_constexpr_optional >= 202106L
__cpp_lib_variant >= 202106L
!
! Strings and text !
string contains function ! ! P1679R3 ! ! 11.1 __cpp_lib_string_contains >= 202011L
! Miscellaneous !
Inheriting from std::variant ! ! P2162R2 ! ! 11.3 __cpp_lib_variant >= 202102L
Printing volatile Pointers ! ! P1147R1 ! ! 11.3  
Clarifying the status of the "C headers" ! ! P2340R1 ! ! Yes  
Relax Requirements for time_point::clock ! ! P2212R2 ! ! Yes  

C++ TR1

This table is based on the table of contents of ISO/IEC DTR 19768 Doc No: N1836=05-0096 Date: 2005-06-24 Draft Technical Report on C++ Library Extensions *************** In this implementation the header names *** 1703,1709 **** <tr1/memory>, and so on.

This page describes the TR1 support in the GCC 11 release series. !

Table 1.10. C++ TR1 Implementation Status

SectionDescriptionStatusComments
2General Utilities
2.1Reference wrappers  
2.1.1Additions to header <functional> synopsisY 
2.1.2Class template reference_wrapper  
2.1.2.1reference_wrapper construct/copy/destroyY 
2.1.2.2reference_wrapper assignmentY 
2.1.2.3reference_wrapper accessY 
2.1.2.4reference_wrapper invocationY 
2.1.2.5reference_wrapper helper functionsY 
2.2Smart pointers  
2.2.1Additions to header <memory> synopsisY 
2.2.2Class bad_weak_ptrY 
2.2.3Class template shared_ptr 

Uses code from boost::shared_ptr. --- 1792,1798 ---- <tr1/memory>, and so on.

This page describes the TR1 support in the GCC 11 release series. !

Table 1.11. C++ TR1 Implementation Status

SectionDescriptionStatusComments
2General Utilities
2.1Reference wrappers  
2.1.1Additions to header <functional> synopsisY 
2.1.2Class template reference_wrapper  
2.1.2.1reference_wrapper construct/copy/destroyY 
2.1.2.2reference_wrapper assignmentY 
2.1.2.3reference_wrapper accessY 
2.1.2.4reference_wrapper invocationY 
2.1.2.5reference_wrapper helper functionsY 
2.2Smart pointers  
2.2.1Additions to header <memory> synopsisY 
2.2.2Class bad_weak_ptrY 
2.2.3Class template shared_ptr 

Uses code from boost::shared_ptr. *************** Extension for the programming language C *** 1723,1729 **** decimal floating-point arithmetic

This page describes the TR 24733 support in the GCC 11 release series. !

Table 1.11. C++ TR 24733 Implementation Status

SectionDescriptionStatusComments
0 Introduction --- 1812,1818 ---- decimal floating-point arithmetic

This page describes the TR 24733 support in the GCC 11 release series. !

Table 1.12. C++ TR 24733 Implementation Status

SectionDescriptionStatusComments
0 Introduction *************** non-strict modes (i.e. __gnu_cxx. !

Table 1.12. C++ Special Functions Implementation Status

SectionDescriptionStatusComments
7Macro namesPartialNo diagnostic for inconsistent definitions of __STDCPP_WANT_MATH_SPEC_FUNCS__
8Mathematical special functionsY 
8.1Additions to header <cmath> synopsisY 
8.1.1associated Laguerre polynomialsY 
8.1.2associated Legendre functionsY 
8.1.3beta functionY 
8.1.4(complete) elliptic integral of the first kindY 
8.1.5(complete) elliptic integral of the second kindY 
8.1.6(complete) elliptic integral of the third kindY 
8.1.7regular modified cylindrical Bessel functionsY 
8.1.8cylindrical Bessel functions (of the first kind)Y 
8.1.9irregular modified cylindrical Bessel functionsY 
8.1.10cylindrical Neumann functionsY 
8.1.11(incomplete) elliptic integral of the first kindY 
8.1.12(incomplete) elliptic integral of the second kindY 
8.1.13(incomplete) elliptic integral of the third kindY 
8.1.14exponential integralY 
8.1.15Hermite polynomialsY 
8.1.16Laguerre polynomialsY 
8.1.17Legendre polynomialsY 
8.1.18Riemann zeta functionY 
8.1.19spherical Bessel functions (of the first kind)Y 
8.1.20spherical associated Legendre functionsY 
8.1.21spherical Neumann functionsY 
8.2Additions to header <math.h>Y 
8.3The header <ctgmath>PartialConflicts with C++ 2011 requirements.
8.4The header <tgmath.h>NConflicts with C++ 2011 requirements.

Implementation Specific Behavior

For behaviour which is specified by the 2011 standard, see C++ 2011 Implementation Specific Behavior. This section documents behaviour which --- 1852,1858 ---- hypergeometric functions and confluent hypergeometric functions from TR1 are also provided, defined in namespace __gnu_cxx. !

Table 1.13. C++ Special Functions Implementation Status

SectionDescriptionStatusComments
7Macro namesPartialNo diagnostic for inconsistent definitions of __STDCPP_WANT_MATH_SPEC_FUNCS__
8Mathematical special functionsY 
8.1Additions to header <cmath> synopsisY 
8.1.1associated Laguerre polynomialsY 
8.1.2associated Legendre functionsY 
8.1.3beta functionY 
8.1.4(complete) elliptic integral of the first kindY 
8.1.5(complete) elliptic integral of the second kindY 
8.1.6(complete) elliptic integral of the third kindY 
8.1.7regular modified cylindrical Bessel functionsY 
8.1.8cylindrical Bessel functions (of the first kind)Y 
8.1.9irregular modified cylindrical Bessel functionsY 
8.1.10cylindrical Neumann functionsY 
8.1.11(incomplete) elliptic integral of the first kindY 
8.1.12(incomplete) elliptic integral of the second kindY 
8.1.13(incomplete) elliptic integral of the third kindY 
8.1.14exponential integralY 
8.1.15Hermite polynomialsY 
8.1.16Laguerre polynomialsY 
8.1.17Legendre polynomialsY 
8.1.18Riemann zeta functionY 
8.1.19spherical Bessel functions (of the first kind)Y 
8.1.20spherical associated Legendre functionsY 
8.1.21spherical Neumann functionsY 
8.2Additions to header <math.h>Y 
8.3The header <ctgmath>PartialConflicts with C++ 2011 requirements.
8.4The header <tgmath.h>NConflicts with C++ 2011 requirements.

Implementation Specific Behavior

For behaviour which is specified by the 2011 standard, see C++ 2011 Implementation Specific Behavior. This section documents behaviour which diff -Nrcpad gcc-11.3.0/libstdc++-v3/doc/xml/authors.xml gcc-11.4.0/libstdc++-v3/doc/xml/authors.xml *** gcc-11.3.0/libstdc++-v3/doc/xml/authors.xml Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/doc/xml/authors.xml Mon May 29 08:46:33 2023 *************** *** 13,30 **** ! ! --> - - - - - PaoloCarlini TR1, LWG Active, Closed, Defects lists. --- 13,25 ---- ! ! --> PaoloCarlini TR1, LWG Active, Closed, Defects lists. diff -Nrcpad gcc-11.3.0/libstdc++-v3/doc/xml/manual/extensions.xml gcc-11.4.0/libstdc++-v3/doc/xml/manual/extensions.xml *** gcc-11.3.0/libstdc++-v3/doc/xml/manual/extensions.xml Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/doc/xml/manual/extensions.xml Mon May 29 08:46:33 2023 *************** int main() *** 534,547 **** int status; char *realname; - // exception classes not in <stdexcept>, thrown by the implementation - // instead of the user - std::bad_exception e; - realname = abi::__cxa_demangle(e.what(), 0, 0, &status); - std::cout << e.what() << "\t=> " << realname << "\t: " << status << '\n'; - free(realname); - - // typeid bar<empty,17> u; const std::type_info &ti = typeid(u); --- 534,539 ---- *************** int main() *** 559,565 **** - St13bad_exception => std::bad_exception : 0 3barI5emptyLi17EE => bar<empty, 17> : 0 --- 551,556 ---- *************** int main() *** 568,575 **** The demangler interface is described in the source documentation linked to above. It is actually written in C, so you don't need to be writing C++ in order to demangle C++. (That also means we have to ! use crummy memory management facilities, so don't forget to free() ! the returned char array.) --- 559,566 ---- The demangler interface is described in the source documentation linked to above. It is actually written in C, so you don't need to be writing C++ in order to demangle C++. (That also means we have to ! use crummy memory management facilities, so don't forget to ! free() the returned char array.) diff -Nrcpad gcc-11.3.0/libstdc++-v3/doc/xml/manual/intro.xml gcc-11.4.0/libstdc++-v3/doc/xml/manual/intro.xml *** gcc-11.3.0/libstdc++-v3/doc/xml/manual/intro.xml Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/doc/xml/manual/intro.xml Mon May 29 08:46:33 2023 *************** *** 47,61 **** ! ! ! --- 47,65 ---- ! ! ! ! ! ! ! *************** requirements of the license of GCC. *** 835,840 **** --- 839,850 ---- by the resolution of the DR. + 1203: + More useful rvalue stream insertion + + Return the stream as its original type, not the base class. + + 1339: uninitialized_fill_n should return the end of its range diff -Nrcpad gcc-11.3.0/libstdc++-v3/doc/xml/manual/prerequisites.xml gcc-11.4.0/libstdc++-v3/doc/xml/manual/prerequisites.xml *** gcc-11.3.0/libstdc++-v3/doc/xml/manual/prerequisites.xml Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/doc/xml/manual/prerequisites.xml Mon May 29 08:46:33 2023 *************** *** 50,55 **** --- 50,106 ---- + The 'gnu' locale model makes use of iconv + for character set conversions. The relevant functions are provided + by Glibc and so are always available, however they can also be + provided by the separate GNU libiconv library. If GNU libiconv is + found when GCC is built (e.g., because its headers are installed + in /usr/local/include) + then the libstdc++.so.6 library will have a + run-time dependency on libiconv.so.2. + If you do not want that run-time dependency then you should do + one of the following: + + + + + Uninstall the libiconv headers before building GCC. + Glibc already provides iconv so you should + not need libiconv anyway. + + + + + + Download the libiconv sources and extract them into the + top level of the GCC source tree, e.g., + + + wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz + tar xf libiconv-1.16.tar.gz + ln -s libiconv-1.16 libiconv + + + This will build libiconv as part of building GCC and link to + it statically, so there is no libiconv.so.2 + dependency. + + + + + Configure GCC with . + This requires the static libiconv.a library, + which is not installed by default. You might need to reinstall + libiconv using the configure + option to get the static library. + + + + + + + If GCC 3.1.0 or later on is being used on GNU/Linux, an attempt will be made to use "C" library functionality necessary for C++ named locale support. For GCC 4.6.0 and later, this diff -Nrcpad gcc-11.3.0/libstdc++-v3/doc/xml/manual/spine.xml gcc-11.4.0/libstdc++-v3/doc/xml/manual/spine.xml *** gcc-11.3.0/libstdc++-v3/doc/xml/manual/spine.xml Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/doc/xml/manual/spine.xml Mon May 29 08:46:33 2023 *************** *** 48,65 **** ! ! --> - - - - - PaoloCarlini TR1, LWG Active, Closed, Defects lists. --- 48,60 ---- ! ! --> PaoloCarlini TR1, LWG Active, Closed, Defects lists. diff -Nrcpad gcc-11.3.0/libstdc++-v3/doc/xml/manual/status_cxx2020.xml gcc-11.4.0/libstdc++-v3/doc/xml/manual/status_cxx2020.xml *** gcc-11.3.0/libstdc++-v3/doc/xml/manual/status_cxx2020.xml Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/doc/xml/manual/status_cxx2020.xml Mon May 29 08:46:33 2023 *************** release series. *** 25,32 **** ! The following table lists new library features that have been accepted into ! the C++20 working draft. The "Proposal" column provides a link to the ISO C++ committee proposal that describes the feature, while the "Status" column indicates the first version of GCC that contains an implementation of this feature (if it has been implemented). --- 25,32 ---- ! The following table lists new library features that are included in ! the C++20 standard. The "Proposal" column provides a link to the ISO C++ committee proposal that describes the feature, while the "Status" column indicates the first version of GCC that contains an implementation of this feature (if it has been implemented). *************** or any notes about the implementation. *** 362,368 **** P0053R7 ! 11 __cpp_lib_syncbuf >= 201711L --- 362,368 ---- P0053R7 ! 11.1 __cpp_lib_syncbuf >= 201711L *************** or any notes about the implementation. *** 372,378 **** P0753R2 ! 11 __cpp_lib_syncbuf >= 201803L --- 372,378 ---- P0753R2 ! 11.1 __cpp_lib_syncbuf >= 201803L *************** or any notes about the implementation. *** 647,653 **** P0966R1 ! 11 --- 647,653 ---- P0966R1 ! 11.1 *************** or any notes about the implementation. *** 1045,1051 **** P0476R2 ! 11 __cpp_lib_bit_cast >= 201806L --- 1045,1051 ---- P0476R2 ! 11.1 __cpp_lib_bit_cast >= 201806L *************** or any notes about the implementation. *** 1401,1407 **** P0553R4 ! 10.1 __cpp_lib_bitops >= 201907L (since 9.4, see Note 1) --- 1401,1407 ---- P0553R4 ! 9.1 __cpp_lib_bitops >= 201907L (since 9.4, see Note 1) *************** or any notes about the implementation. *** 1431,1437 **** P1208R6 ! 11 __cpp_lib_source_location >= 201907L --- 1431,1437 ---- P1208R6 ! 11.1 __cpp_lib_source_location >= 201907L *************** or any notes about the implementation. *** 1443,1449 **** P0408R7 ! 11 --- 1443,1449 ---- P0408R7 ! 11.1 diff -Nrcpad gcc-11.3.0/libstdc++-v3/doc/xml/manual/status_cxx2023.xml gcc-11.4.0/libstdc++-v3/doc/xml/manual/status_cxx2023.xml *** gcc-11.3.0/libstdc++-v3/doc/xml/manual/status_cxx2023.xml Thu Jan 1 00:00:00 1970 --- gcc-11.4.0/libstdc++-v3/doc/xml/manual/status_cxx2023.xml Mon May 29 08:46:33 2023 *************** *** 0 **** --- 1,249 ---- +

+ + + C++ 2023 + + ISO C++ + 2023 + + + + + In this implementation the -std=gnu++23 or + -std=c++23 flag must be used to enable language + and library + features. See dialect + options. The pre-defined symbol + __cplusplus is used to check for the + presence of the required flag. + + + + This section describes the C++23 and library TS support in mainline GCC, + not in any particular release. + + + + The following table lists new library features that have been accepted into + the C++23 working draft. The "Proposal" column provides a link to the + ISO C++ committee proposal that describes the feature, while the "Status" + column indicates the first version of GCC that contains an implementation of + this feature (if it has been implemented). + A dash (—) in the status column indicates that the changes in the proposal + either do not affect the code in libstdc++, or the changes are not required for conformance. + The "SD-6 Feature Test / Notes" column shows the corresponding macro or header from + SD-6: + Feature-testing recommendations for C++ (where applicable) + or any notes about the implementation. + + + + C++ 2023 Library Features + + + + + + + + + Library Feature + Proposal + Status + SD-6 Feature Test / Notes + + + + + + + + Ranges and Views + + + + + Range constructor for std::string_view + + + P1989R2 + + + 11.1 + + + + + join_view should join all views of ranges + + + P2328R1 + + + 11.2 + + + + + + Clarifying range adaptor objects + + + P2281R1 + + + 11.1 + + + + + Views should not be required to be default constructible + + + P2325R3 + + + 11.3 + __cpp_lib_ranges >= 202106L + + + + Conditionally borrowed ranges + + + P2017R1 + + + 11.1 + + + + + Require span & basic_string_view to be Trivially Copyable + + + P2251R1 + + + Yes + + + + + + Compile-time programming + + + + + A proposal for a type trait to detect scoped enumerations + + + P1048R1 + + + 11.1 + __cpp_lib_is_scoped_enum >= 202011L + + + + std::to_underlying for enumerations + + + P1682R3 + + + 11.1 + __cpp_lib_to_underlying >= 202102L + + + + + Missing constexpr in std::optional and std::variant + + + P2231R1 + + + 11.3 (optional only) + + + __cpp_lib_constexpr_optional >= 202106L + __cpp_lib_variant >= 202106L + + + + + + + Strings and text + + + + + string contains function + + + P1679R3 + + + 11.1 + __cpp_lib_string_contains >= 202011L + + + + + Miscellaneous + + + + + Inheriting from std::variant + + + P2162R2 + + + 11.3 + __cpp_lib_variant >= 202102L + + + + Printing volatile Pointers + + + P1147R1 + + + 11.3 + + + + + Clarifying the status of the "C headers" + + + P2340R1 + + + Yes + + + + + Relax Requirements for time_point::clock + + + P2212R2 + + + Yes + + + + + +
+ +
diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/Makefile.am gcc-11.4.0/libstdc++-v3/include/Makefile.am *** gcc-11.3.0/libstdc++-v3/include/Makefile.am Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/Makefile.am Mon May 29 08:46:33 2023 *************** stamp-float128: *** 1275,1281 **** endif # This header is not installed, it's only used to build libstdc++ itself. ! ${host_builddir}/largefile-config.h: ${CONFIG_HEADER} @rm -f $@.tmp @-grep 'define _DARWIN_USE_64_BIT_INODE' ${CONFIG_HEADER} >> $@.tmp @-grep 'define _FILE_OFFSET_BITS' ${CONFIG_HEADER} >> $@.tmp --- 1275,1281 ---- endif # This header is not installed, it's only used to build libstdc++ itself. ! ${host_builddir}/largefile-config.h: ${CONFIG_HEADER} stamp-${host_alias} @rm -f $@.tmp @-grep 'define _DARWIN_USE_64_BIT_INODE' ${CONFIG_HEADER} >> $@.tmp @-grep 'define _FILE_OFFSET_BITS' ${CONFIG_HEADER} >> $@.tmp diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/Makefile.in gcc-11.4.0/libstdc++-v3/include/Makefile.in *** gcc-11.3.0/libstdc++-v3/include/Makefile.in Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/Makefile.in Mon May 29 08:46:33 2023 *************** stamp-host: ${host_headers} ${bits_host_ *** 1761,1767 **** @ENABLE_FLOAT128_FALSE@ echo 'undef _GLIBCXX_USE_FLOAT128' > stamp-float128 # This header is not installed, it's only used to build libstdc++ itself. ! ${host_builddir}/largefile-config.h: ${CONFIG_HEADER} @rm -f $@.tmp @-grep 'define _DARWIN_USE_64_BIT_INODE' ${CONFIG_HEADER} >> $@.tmp @-grep 'define _FILE_OFFSET_BITS' ${CONFIG_HEADER} >> $@.tmp --- 1761,1767 ---- @ENABLE_FLOAT128_FALSE@ echo 'undef _GLIBCXX_USE_FLOAT128' > stamp-float128 # This header is not installed, it's only used to build libstdc++ itself. ! ${host_builddir}/largefile-config.h: ${CONFIG_HEADER} stamp-${host_alias} @rm -f $@.tmp @-grep 'define _DARWIN_USE_64_BIT_INODE' ${CONFIG_HEADER} >> $@.tmp @-grep 'define _FILE_OFFSET_BITS' ${CONFIG_HEADER} >> $@.tmp diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/atomic_base.h gcc-11.4.0/libstdc++-v3/include/bits/atomic_base.h *** gcc-11.3.0/libstdc++-v3/include/bits/atomic_base.h Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/atomic_base.h Mon May 29 08:46:33 2023 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 121,126 **** --- 121,133 ---- | __memory_order_modifier(__m & __memory_order_modifier_mask)); } + constexpr bool + __is_valid_cmpexch_failure_order(memory_order __m) noexcept + { + return (__m & __memory_order_mask) != memory_order_release + && (__m & __memory_order_mask) != memory_order_acq_rel; + } + _GLIBCXX_ALWAYS_INLINE void atomic_thread_fence(memory_order __m) noexcept { __atomic_thread_fence(int(__m)); } *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 245,257 **** // TODO add const volatile overload _GLIBCXX_ALWAYS_INLINE void ! notify_one() const noexcept { std::__atomic_notify_address(&_M_i, false); } // TODO add const volatile overload _GLIBCXX_ALWAYS_INLINE void ! notify_all() const noexcept { std::__atomic_notify_address(&_M_i, true); } // TODO add const volatile overload --- 252,264 ---- // TODO add const volatile overload _GLIBCXX_ALWAYS_INLINE void ! notify_one() noexcept { std::__atomic_notify_address(&_M_i, false); } // TODO add const volatile overload _GLIBCXX_ALWAYS_INLINE void ! notify_all() noexcept { std::__atomic_notify_address(&_M_i, true); } // TODO add const volatile overload *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 511,523 **** compare_exchange_weak(__int_type& __i1, __int_type __i2, memory_order __m1, memory_order __m2) noexcept { ! memory_order __b2 __attribute__ ((__unused__)) ! = __m2 & __memory_order_mask; ! memory_order __b1 __attribute__ ((__unused__)) ! = __m1 & __memory_order_mask; ! __glibcxx_assert(__b2 != memory_order_release); ! __glibcxx_assert(__b2 != memory_order_acq_rel); ! __glibcxx_assert(__b2 <= __b1); return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, int(__m1), int(__m2)); --- 518,524 ---- compare_exchange_weak(__int_type& __i1, __int_type __i2, memory_order __m1, memory_order __m2) noexcept { ! __glibcxx_assert(__is_valid_cmpexch_failure_order(__m2)); return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, int(__m1), int(__m2)); *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 528,540 **** memory_order __m1, memory_order __m2) volatile noexcept { ! memory_order __b2 __attribute__ ((__unused__)) ! = __m2 & __memory_order_mask; ! memory_order __b1 __attribute__ ((__unused__)) ! = __m1 & __memory_order_mask; ! __glibcxx_assert(__b2 != memory_order_release); ! __glibcxx_assert(__b2 != memory_order_acq_rel); ! __glibcxx_assert(__b2 <= __b1); return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, int(__m1), int(__m2)); --- 529,535 ---- memory_order __m1, memory_order __m2) volatile noexcept { ! __glibcxx_assert(__is_valid_cmpexch_failure_order(__m2)); return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 1, int(__m1), int(__m2)); *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 560,572 **** compare_exchange_strong(__int_type& __i1, __int_type __i2, memory_order __m1, memory_order __m2) noexcept { ! memory_order __b2 __attribute__ ((__unused__)) ! = __m2 & __memory_order_mask; ! memory_order __b1 __attribute__ ((__unused__)) ! = __m1 & __memory_order_mask; ! __glibcxx_assert(__b2 != memory_order_release); ! __glibcxx_assert(__b2 != memory_order_acq_rel); ! __glibcxx_assert(__b2 <= __b1); return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, int(__m1), int(__m2)); --- 555,561 ---- compare_exchange_strong(__int_type& __i1, __int_type __i2, memory_order __m1, memory_order __m2) noexcept { ! __glibcxx_assert(__is_valid_cmpexch_failure_order(__m2)); return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, int(__m1), int(__m2)); *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 577,590 **** memory_order __m1, memory_order __m2) volatile noexcept { ! memory_order __b2 __attribute__ ((__unused__)) ! = __m2 & __memory_order_mask; ! memory_order __b1 __attribute__ ((__unused__)) ! = __m1 & __memory_order_mask; ! ! __glibcxx_assert(__b2 != memory_order_release); ! __glibcxx_assert(__b2 != memory_order_acq_rel); ! __glibcxx_assert(__b2 <= __b1); return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, int(__m1), int(__m2)); --- 566,572 ---- memory_order __m1, memory_order __m2) volatile noexcept { ! __glibcxx_assert(__is_valid_cmpexch_failure_order(__m2)); return __atomic_compare_exchange_n(&_M_i, &__i1, __i2, 0, int(__m1), int(__m2)); *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 618,630 **** // TODO add const volatile overload _GLIBCXX_ALWAYS_INLINE void ! notify_one() const noexcept { std::__atomic_notify_address(&_M_i, false); } // TODO add const volatile overload _GLIBCXX_ALWAYS_INLINE void ! notify_all() const noexcept { std::__atomic_notify_address(&_M_i, true); } // TODO add const volatile overload --- 600,612 ---- // TODO add const volatile overload _GLIBCXX_ALWAYS_INLINE void ! notify_one() noexcept { std::__atomic_notify_address(&_M_i, false); } // TODO add const volatile overload _GLIBCXX_ALWAYS_INLINE void ! notify_all() noexcept { std::__atomic_notify_address(&_M_i, true); } // TODO add const volatile overload *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 869,881 **** memory_order __m1, memory_order __m2) noexcept { ! memory_order __b2 __attribute__ ((__unused__)) ! = __m2 & __memory_order_mask; ! memory_order __b1 __attribute__ ((__unused__)) ! = __m1 & __memory_order_mask; ! __glibcxx_assert(__b2 != memory_order_release); ! __glibcxx_assert(__b2 != memory_order_acq_rel); ! __glibcxx_assert(__b2 <= __b1); return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, int(__m1), int(__m2)); --- 851,857 ---- memory_order __m1, memory_order __m2) noexcept { ! __glibcxx_assert(__is_valid_cmpexch_failure_order(__m2)); return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, int(__m1), int(__m2)); *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 886,899 **** memory_order __m1, memory_order __m2) volatile noexcept { ! memory_order __b2 __attribute__ ((__unused__)) ! = __m2 & __memory_order_mask; ! memory_order __b1 __attribute__ ((__unused__)) ! = __m1 & __memory_order_mask; ! ! __glibcxx_assert(__b2 != memory_order_release); ! __glibcxx_assert(__b2 != memory_order_acq_rel); ! __glibcxx_assert(__b2 <= __b1); return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, int(__m1), int(__m2)); --- 862,868 ---- memory_order __m1, memory_order __m2) volatile noexcept { ! __glibcxx_assert(__is_valid_cmpexch_failure_order(__m2)); return __atomic_compare_exchange_n(&_M_p, &__p1, __p2, 0, int(__m1), int(__m2)); *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 996,1001 **** --- 965,972 ---- _Val<_Tp> __desired, memory_order __success, memory_order __failure) noexcept { + __glibcxx_assert(__is_valid_cmpexch_failure_order(__failure)); + return __atomic_compare_exchange(__ptr, std::__addressof(__expected), std::__addressof(__desired), true, int(__success), int(__failure)); *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 1007,1012 **** --- 978,985 ---- _Val<_Tp> __desired, memory_order __success, memory_order __failure) noexcept { + __glibcxx_assert(__is_valid_cmpexch_failure_order(__failure)); + return __atomic_compare_exchange(__ptr, std::__addressof(__expected), std::__addressof(__desired), false, int(__success), int(__failure)); diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/atomic_wait.h gcc-11.4.0/libstdc++-v3/include/bits/atomic_wait.h *** gcc-11.3.0/libstdc++-v3/include/bits/atomic_wait.h Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/atomic_wait.h Mon May 29 08:46:33 2023 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 142,149 **** #endif } ! constexpr auto __atomic_spin_count_1 = 12; ! constexpr auto __atomic_spin_count_2 = 4; struct __default_spin_policy { --- 142,149 ---- #endif } ! constexpr auto __atomic_spin_count_relax = 12; ! constexpr auto __atomic_spin_count = 16; struct __default_spin_policy { *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 157,174 **** bool __atomic_spin(_Pred& __pred, _Spin __spin = _Spin{ }) noexcept { ! for (auto __i = 0; __i < __atomic_spin_count_1; ++__i) { if (__pred()) return true; - __detail::__thread_relax(); - } ! for (auto __i = 0; __i < __atomic_spin_count_2; ++__i) ! { ! if (__pred()) ! return true; ! __detail::__thread_yield(); } while (__spin()) --- 157,171 ---- bool __atomic_spin(_Pred& __pred, _Spin __spin = _Spin{ }) noexcept { ! for (auto __i = 0; __i < __atomic_spin_count; ++__i) { if (__pred()) return true; ! if (__i < __atomic_spin_count_relax) ! __detail::__thread_relax(); ! else ! __detail::__thread_yield(); } while (__spin()) *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 226,243 **** } void ! _M_notify(const __platform_wait_t* __addr, bool __all, bool __bare) noexcept { - if (!(__bare || _M_waiting())) - return; - #ifdef _GLIBCXX_HAVE_PLATFORM_WAIT ! __platform_notify(__addr, __all); #else ! if (__all) _M_cv.notify_all(); - else - _M_cv.notify_one(); #endif } --- 223,247 ---- } void ! _M_notify(__platform_wait_t* __addr, [[maybe_unused]] bool __all, ! bool __bare) noexcept { #ifdef _GLIBCXX_HAVE_PLATFORM_WAIT ! if (__addr == &_M_ver) ! { ! __atomic_fetch_add(__addr, 1, __ATOMIC_SEQ_CST); ! __all = true; ! } ! ! if (__bare || _M_waiting()) ! __platform_notify(__addr, __all); #else ! { ! lock_guard __l(_M_mtx); ! __atomic_fetch_add(__addr, 1, __ATOMIC_RELAXED); ! } ! if (__bare || _M_waiting()) _M_cv.notify_all(); #endif } *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 264,270 **** if (__val == __old) { lock_guard __l(_M_mtx); ! _M_cv.wait(_M_mtx); } #endif // __GLIBCXX_HAVE_PLATFORM_WAIT } --- 268,276 ---- if (__val == __old) { lock_guard __l(_M_mtx); ! __atomic_load(__addr, &__val, __ATOMIC_RELAXED); ! if (__val == __old) ! _M_cv.wait(_M_mtx); } #endif // __GLIBCXX_HAVE_PLATFORM_WAIT } *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 302,321 **** , _M_addr(_S_wait_addr(__addr, &_M_w._M_ver)) { } - bool - _M_laundered() const - { return _M_addr == &_M_w._M_ver; } - void ! _M_notify(bool __all, bool __bare = false) ! { ! if (_M_laundered()) ! { ! __atomic_fetch_add(_M_addr, 1, __ATOMIC_SEQ_CST); ! __all = true; ! } ! _M_w._M_notify(_M_addr, __all, __bare); ! } template --- 308,316 ---- , _M_addr(_S_wait_addr(__addr, &_M_w._M_ver)) { } void ! _M_notify(bool __all, bool __bare = false) noexcept ! { _M_w._M_notify(_M_addr, __all, __bare); } template diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/forward_list.tcc gcc-11.4.0/libstdc++-v3/include/bits/forward_list.tcc *** gcc-11.3.0/libstdc++-v3/include/bits/forward_list.tcc Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/forward_list.tcc Mon May 29 08:46:33 2023 *************** _GLIBCXX_BEGIN_NAMESPACE_CONTAINER *** 367,372 **** --- 367,377 ---- forward_list<_Tp, _Alloc>:: merge(forward_list&& __list, _Comp __comp) { + // _GLIBCXX_RESOLVE_LIB_DEFECTS + // 3088. forward_list::merge behavior unclear when passed *this + if (std::__addressof(__list) == this) + return; + _Node_base* __node = &this->_M_impl._M_head; while (__node->_M_next && __list._M_impl._M_head._M_next) { diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/fs_ops.h gcc-11.4.0/libstdc++-v3/include/bits/fs_ops.h *** gcc-11.3.0/libstdc++-v3/include/bits/fs_ops.h Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/fs_ops.h Mon May 29 08:46:33 2023 *************** namespace filesystem *** 44,53 **** --- 44,59 ---- * @{ */ + [[nodiscard]] path absolute(const path& __p); + + [[nodiscard]] path absolute(const path& __p, error_code& __ec); + [[nodiscard]] path canonical(const path& __p); + + [[nodiscard]] path canonical(const path& __p, error_code& __ec); inline void *************** namespace filesystem *** 100,124 **** --- 106,139 ---- void create_symlink(const path& __to, const path& __new_symlink, error_code& __ec) noexcept; + [[nodiscard]] path current_path(); + + [[nodiscard]] path current_path(error_code& __ec); + void current_path(const path& __p); void current_path(const path& __p, error_code& __ec) noexcept; + [[nodiscard]] bool equivalent(const path& __p1, const path& __p2); + [[nodiscard]] bool equivalent(const path& __p1, const path& __p2, error_code& __ec) noexcept; + [[nodiscard]] inline bool exists(file_status __s) noexcept { return status_known(__s) && __s.type() != file_type::not_found; } + [[nodiscard]] inline bool exists(const path& __p) { return exists(status(__p)); } + [[nodiscard]] inline bool exists(const path& __p, error_code& __ec) noexcept { *************** namespace filesystem *** 131,193 **** --- 146,230 ---- return false; } + [[nodiscard]] uintmax_t file_size(const path& __p); + + [[nodiscard]] uintmax_t file_size(const path& __p, error_code& __ec) noexcept; + [[nodiscard]] uintmax_t hard_link_count(const path& __p); + + [[nodiscard]] uintmax_t hard_link_count(const path& __p, error_code& __ec) noexcept; + [[nodiscard]] inline bool is_block_file(file_status __s) noexcept { return __s.type() == file_type::block; } + [[nodiscard]] inline bool is_block_file(const path& __p) { return is_block_file(status(__p)); } + [[nodiscard]] inline bool is_block_file(const path& __p, error_code& __ec) noexcept { return is_block_file(status(__p, __ec)); } + [[nodiscard]] inline bool is_character_file(file_status __s) noexcept { return __s.type() == file_type::character; } + [[nodiscard]] inline bool is_character_file(const path& __p) { return is_character_file(status(__p)); } + [[nodiscard]] inline bool is_character_file(const path& __p, error_code& __ec) noexcept { return is_character_file(status(__p, __ec)); } + [[nodiscard]] inline bool is_directory(file_status __s) noexcept { return __s.type() == file_type::directory; } + [[nodiscard]] inline bool is_directory(const path& __p) { return is_directory(status(__p)); } + [[nodiscard]] inline bool is_directory(const path& __p, error_code& __ec) noexcept { return is_directory(status(__p, __ec)); } + [[nodiscard]] bool is_empty(const path& __p); + + [[nodiscard]] bool is_empty(const path& __p, error_code& __ec); + [[nodiscard]] inline bool is_fifo(file_status __s) noexcept { return __s.type() == file_type::fifo; } + [[nodiscard]] inline bool is_fifo(const path& __p) { return is_fifo(status(__p)); } + [[nodiscard]] inline bool is_fifo(const path& __p, error_code& __ec) noexcept { return is_fifo(status(__p, __ec)); } + [[nodiscard]] inline bool is_other(file_status __s) noexcept { *************** namespace filesystem *** 195,246 **** --- 232,298 ---- && !is_symlink(__s); } + [[nodiscard]] inline bool is_other(const path& __p) { return is_other(status(__p)); } + [[nodiscard]] inline bool is_other(const path& __p, error_code& __ec) noexcept { return is_other(status(__p, __ec)); } + [[nodiscard]] inline bool is_regular_file(file_status __s) noexcept { return __s.type() == file_type::regular; } + [[nodiscard]] inline bool is_regular_file(const path& __p) { return is_regular_file(status(__p)); } + [[nodiscard]] inline bool is_regular_file(const path& __p, error_code& __ec) noexcept { return is_regular_file(status(__p, __ec)); } + [[nodiscard]] inline bool is_socket(file_status __s) noexcept { return __s.type() == file_type::socket; } + [[nodiscard]] inline bool is_socket(const path& __p) { return is_socket(status(__p)); } + [[nodiscard]] inline bool is_socket(const path& __p, error_code& __ec) noexcept { return is_socket(status(__p, __ec)); } + [[nodiscard]] inline bool is_symlink(file_status __s) noexcept { return __s.type() == file_type::symlink; } + [[nodiscard]] inline bool is_symlink(const path& __p) { return is_symlink(symlink_status(__p)); } + [[nodiscard]] inline bool is_symlink(const path& __p, error_code& __ec) noexcept { return is_symlink(symlink_status(__p, __ec)); } + [[nodiscard]] file_time_type last_write_time(const path& __p); + + [[nodiscard]] file_time_type last_write_time(const path& __p, error_code& __ec) noexcept; + void last_write_time(const path& __p, file_time_type __new_time); void last_write_time(const path& __p, file_time_type __new_time, error_code& __ec) noexcept; *************** namespace filesystem *** 257,275 **** --- 309,338 ---- permissions(const path& __p, perms __prms, perm_options __opts, error_code& __ec) noexcept; + [[nodiscard]] inline path proximate(const path& __p, error_code& __ec) { return proximate(__p, current_path(), __ec); } + [[nodiscard]] path proximate(const path& __p, const path& __base = current_path()); + + [[nodiscard]] path proximate(const path& __p, const path& __base, error_code& __ec); + [[nodiscard]] path read_symlink(const path& __p); + + [[nodiscard]] path read_symlink(const path& __p, error_code& __ec); + [[nodiscard]] inline path relative(const path& __p, error_code& __ec) { return relative(__p, current_path(), __ec); } + [[nodiscard]] path relative(const path& __p, const path& __base = current_path()); + + [[nodiscard]] path relative(const path& __p, const path& __base, error_code& __ec); bool remove(const path& __p); *************** namespace filesystem *** 284,305 **** --- 347,384 ---- void resize_file(const path& __p, uintmax_t __size); void resize_file(const path& __p, uintmax_t __size, error_code& __ec) noexcept; + [[nodiscard]] space_info space(const path& __p); + + [[nodiscard]] space_info space(const path& __p, error_code& __ec) noexcept; + [[nodiscard]] file_status status(const path& __p); + + [[nodiscard]] file_status status(const path& __p, error_code& __ec) noexcept; + [[nodiscard]] inline bool status_known(file_status __s) noexcept { return __s.type() != file_type::none; } + [[nodiscard]] file_status symlink_status(const path& __p); + + [[nodiscard]] file_status symlink_status(const path& __p, error_code& __ec) noexcept; + [[nodiscard]] path temp_directory_path(); + + [[nodiscard]] path temp_directory_path(error_code& __ec); + [[nodiscard]] path weakly_canonical(const path& __p); + + [[nodiscard]] path weakly_canonical(const path& __p, error_code& __ec); /// @} group filesystem diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/fs_path.h gcc-11.4.0/libstdc++-v3/include/bits/fs_path.h *** gcc-11.3.0/libstdc++-v3/include/bits/fs_path.h Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/fs_path.h Mon May 29 08:46:33 2023 *************** namespace __detail *** 558,569 **** _Multi = 0, _Root_name, _Root_dir, _Filename }; ! path(basic_string_view __str, _Type __type) ! : _M_pathname(__str) ! { ! __glibcxx_assert(__type != _Type::_Multi); ! _M_cmpts.type(__type); ! } enum class _Split { _Stem, _Extension }; --- 558,564 ---- _Multi = 0, _Root_name, _Root_dir, _Filename }; ! path(basic_string_view __str, _Type __type); enum class _Split { _Stem, _Extension }; *************** namespace __detail *** 809,816 **** struct path::_Cmpt : path { ! _Cmpt(basic_string_view __s, _Type __t, size_t __pos) ! : path(__s, __t), _M_pos(__pos) { } _Cmpt() : _M_pos(-1) { } --- 804,810 ---- struct path::_Cmpt : path { ! _Cmpt(basic_string_view __s, _Type __t, size_t __pos); _Cmpt() : _M_pos(-1) { } *************** namespace __detail *** 1211,1219 **** { if (_M_pathname.back() == preferred_separator) return {}; ! auto& __last = *--end(); ! if (__last._M_type() == _Type::_Filename) ! return __last; } return {}; } --- 1205,1213 ---- { if (_M_pathname.back() == preferred_separator) return {}; ! auto __last = --end(); ! if (__last->_M_type() == _Type::_Filename) ! return *__last; } return {}; } *************** extern template class __shared_ptr is not enabled + template<> + struct hash + { + size_t + operator()(const filesystem::path& __p) const noexcept + { return filesystem::hash_value(__p); } + }; + _GLIBCXX_END_NAMESPACE_VERSION } // namespace std diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/gslice_array.h gcc-11.4.0/libstdc++-v3/include/bits/gslice_array.h *** gcc-11.3.0/libstdc++-v3/include/bits/gslice_array.h Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/gslice_array.h Mon May 29 08:46:33 2023 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 183,188 **** --- 183,189 ---- _Array(_M_index)); } + /// @cond undocumented #undef _DEFINE_VALARRAY_OPERATOR #define _DEFINE_VALARRAY_OPERATOR(_Op, _Name) \ template \ *************** _DEFINE_VALARRAY_OPERATOR(<<, __shift_le *** 214,219 **** --- 215,221 ---- _DEFINE_VALARRAY_OPERATOR(>>, __shift_right) #undef _DEFINE_VALARRAY_OPERATOR + /// @endcond /// @} group numeric_arrays diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/indirect_array.h gcc-11.4.0/libstdc++-v3/include/bits/indirect_array.h *** gcc-11.3.0/libstdc++-v3/include/bits/indirect_array.h Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/indirect_array.h Mon May 29 08:46:33 2023 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 174,179 **** --- 174,180 ---- indirect_array<_Tp>::operator=(const _Expr<_Dom, _Tp>& __e) const { std::__valarray_copy(__e, _M_sz, _M_array, _M_index); } + /// @cond undocumented #undef _DEFINE_VALARRAY_OPERATOR #define _DEFINE_VALARRAY_OPERATOR(_Op, _Name) \ template \ *************** _DEFINE_VALARRAY_OPERATOR(<<, __shift_le *** 203,208 **** --- 204,210 ---- _DEFINE_VALARRAY_OPERATOR(>>, __shift_right) #undef _DEFINE_VALARRAY_OPERATOR + /// @endcond /// @} group numeric_arrays diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/list.tcc gcc-11.4.0/libstdc++-v3/include/bits/list.tcc *** gcc-11.3.0/libstdc++-v3/include/bits/list.tcc Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/list.tcc Mon May 29 08:46:33 2023 *************** _GLIBCXX_BEGIN_NAMESPACE_CONTAINER *** 416,444 **** iterator __last1 = end(); iterator __first2 = __x.begin(); iterator __last2 = __x.end(); - const size_t __orig_size = __x.size(); - __try { - while (__first1 != __last1 && __first2 != __last2) - if (*__first2 < *__first1) - { - iterator __next = __first2; - _M_transfer(__first1, __first2, ++__next); - __first2 = __next; - } - else - ++__first1; - if (__first2 != __last2) - _M_transfer(__last1, __first2, __last2); ! this->_M_inc_size(__x._M_get_size()); ! __x._M_set_size(0); ! } ! __catch(...) { ! const size_t __dist = std::distance(__first2, __last2); ! this->_M_inc_size(__orig_size - __dist); ! __x._M_set_size(__dist); ! __throw_exception_again; } } } --- 416,437 ---- iterator __last1 = end(); iterator __first2 = __x.begin(); iterator __last2 = __x.end(); ! const _Finalize_merge __fin(*this, __x, __first2); ! ! while (__first1 != __last1 && __first2 != __last2) ! if (*__first2 < *__first1) ! { ! iterator __next = __first2; ! _M_transfer(__first1, __first2, ++__next); ! __first2 = __next; ! } ! else ! ++__first1; ! if (__first2 != __last2) { ! _M_transfer(__last1, __first2, __last2); ! __first2 = __last2; } } } *************** _GLIBCXX_BEGIN_NAMESPACE_CONTAINER *** 463,492 **** iterator __last1 = end(); iterator __first2 = __x.begin(); iterator __last2 = __x.end(); - const size_t __orig_size = __x.size(); - __try - { - while (__first1 != __last1 && __first2 != __last2) - if (__comp(*__first2, *__first1)) - { - iterator __next = __first2; - _M_transfer(__first1, __first2, ++__next); - __first2 = __next; - } - else - ++__first1; - if (__first2 != __last2) - _M_transfer(__last1, __first2, __last2); ! this->_M_inc_size(__x._M_get_size()); ! __x._M_set_size(0); ! } ! __catch(...) { ! const size_t __dist = std::distance(__first2, __last2); ! this->_M_inc_size(__orig_size - __dist); ! __x._M_set_size(__dist); ! __throw_exception_again; } } } --- 456,477 ---- iterator __last1 = end(); iterator __first2 = __x.begin(); iterator __last2 = __x.end(); ! const _Finalize_merge __fin(*this, __x, __first2); ! ! while (__first1 != __last1 && __first2 != __last2) ! if (__comp(*__first2, *__first1)) ! { ! iterator __next = __first2; ! _M_transfer(__first1, __first2, ++__next); ! __first2 = __next; ! } ! else ! ++__first1; ! if (__first2 != __last2) { ! _M_transfer(__last1, __first2, __last2); ! __first2 = __last2; } } } diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/locale_facets_nonio.tcc gcc-11.4.0/libstdc++-v3/include/bits/locale_facets_nonio.tcc *** gcc-11.3.0/libstdc++-v3/include/bits/locale_facets_nonio.tcc Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/locale_facets_nonio.tcc Mon May 29 08:46:33 2023 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 78,109 **** char* __grouping = 0; _CharT* __curr_symbol = 0; _CharT* __positive_sign = 0; ! _CharT* __negative_sign = 0; __try { const string& __g = __mp.grouping(); ! _M_grouping_size = __g.size(); ! __grouping = new char[_M_grouping_size]; ! __g.copy(__grouping, _M_grouping_size); _M_use_grouping = (_M_grouping_size && static_cast(__grouping[0]) > 0 && (__grouping[0] != __gnu_cxx::__numeric_traits::__max)); const basic_string<_CharT>& __cs = __mp.curr_symbol(); ! _M_curr_symbol_size = __cs.size(); ! __curr_symbol = new _CharT[_M_curr_symbol_size]; ! __cs.copy(__curr_symbol, _M_curr_symbol_size); const basic_string<_CharT>& __ps = __mp.positive_sign(); ! _M_positive_sign_size = __ps.size(); ! __positive_sign = new _CharT[_M_positive_sign_size]; ! __ps.copy(__positive_sign, _M_positive_sign_size); const basic_string<_CharT>& __ns = __mp.negative_sign(); ! _M_negative_sign_size = __ns.size(); ! __negative_sign = new _CharT[_M_negative_sign_size]; ! __ns.copy(__negative_sign, _M_negative_sign_size); _M_pos_format = __mp.pos_format(); _M_neg_format = __mp.neg_format(); --- 78,110 ---- char* __grouping = 0; _CharT* __curr_symbol = 0; _CharT* __positive_sign = 0; ! _CharT* __negative_sign = 0; ! size_t __sz; __try { const string& __g = __mp.grouping(); ! __sz = _M_grouping_size = __g.size(); ! __grouping = new char[__sz]; ! __g.copy(__grouping, __sz); _M_use_grouping = (_M_grouping_size && static_cast(__grouping[0]) > 0 && (__grouping[0] != __gnu_cxx::__numeric_traits::__max)); const basic_string<_CharT>& __cs = __mp.curr_symbol(); ! __sz = _M_curr_symbol_size = __cs.size(); ! __curr_symbol = new _CharT[__sz]; ! __cs.copy(__curr_symbol, __sz); const basic_string<_CharT>& __ps = __mp.positive_sign(); ! __sz = _M_positive_sign_size = __ps.size(); ! __positive_sign = new _CharT[__sz]; ! __ps.copy(__positive_sign, __sz); const basic_string<_CharT>& __ns = __mp.negative_sign(); ! __sz = _M_negative_sign_size = __ns.size(); ! __negative_sign = new _CharT[__sz]; ! __ns.copy(__negative_sign, __sz); _M_pos_format = __mp.pos_format(); _M_neg_format = __mp.neg_format(); diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/mask_array.h gcc-11.4.0/libstdc++-v3/include/bits/mask_array.h *** gcc-11.3.0/libstdc++-v3/include/bits/mask_array.h Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/mask_array.h Mon May 29 08:46:33 2023 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 174,179 **** --- 174,180 ---- mask_array<_Tp>::operator=(const _Expr<_Ex, _Tp>& __e) const { std::__valarray_copy(__e, __e.size(), _M_array, _M_mask); } + /// @cond undocumented #undef _DEFINE_VALARRAY_OPERATOR #define _DEFINE_VALARRAY_OPERATOR(_Op, _Name) \ template \ *************** _DEFINE_VALARRAY_OPERATOR(<<, __shift_le *** 204,209 **** --- 205,211 ---- _DEFINE_VALARRAY_OPERATOR(>>, __shift_right) #undef _DEFINE_VALARRAY_OPERATOR + /// @endcond /// @} group numeric_arrays diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/max_size_type.h gcc-11.4.0/libstdc++-v3/include/bits/max_size_type.h *** gcc-11.3.0/libstdc++-v3/include/bits/max_size_type.h Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/max_size_type.h Mon May 29 08:46:33 2023 *************** namespace ranges *** 559,565 **** // Arithmetic right shift. const auto __msb = _M_rep._M_msb; _M_rep >>= __r._M_rep; ! _M_rep._M_msb |= __msb; return *this; } --- 559,566 ---- // Arithmetic right shift. const auto __msb = _M_rep._M_msb; _M_rep >>= __r._M_rep; ! if (__msb) ! _M_rep |= ~(__max_size_type(-1) >> __r._M_rep); return *this; } diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/random.tcc gcc-11.4.0/libstdc++-v3/include/bits/random.tcc *** gcc-11.3.0/libstdc++-v3/include/bits/random.tcc Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/random.tcc Mon May 29 08:46:33 2023 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 1955,1961 **** bool __saved_avail; if (__is >> __mean >> __stddev >> __saved_avail) { ! if (__saved_avail && (__is >> __x._M_saved)) { __x._M_saved_available = __saved_avail; __x.param(param_type(__mean, __stddev)); --- 1955,1961 ---- bool __saved_avail; if (__is >> __mean >> __stddev >> __saved_avail) { ! if (!__saved_avail || (__is >> __x._M_saved)) { __x._M_saved_available = __saved_avail; __x.param(param_type(__mean, __stddev)); diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/ranges_algobase.h gcc-11.4.0/libstdc++-v3/include/bits/ranges_algobase.h *** gcc-11.3.0/libstdc++-v3/include/bits/ranges_algobase.h Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/ranges_algobase.h Mon May 29 08:46:33 2023 *************** namespace ranges *** 238,244 **** { auto [__in,__out] = ranges::__copy_or_move<_IsMove>(__first.base(), __last.base(), ! __result); return {decltype(__first){__in}, std::move(__out)}; } else if constexpr (__is_normal_iterator<_Out>) --- 238,244 ---- { auto [__in,__out] = ranges::__copy_or_move<_IsMove>(__first.base(), __last.base(), ! std::move(__result)); return {decltype(__first){__in}, std::move(__out)}; } else if constexpr (__is_normal_iterator<_Out>) diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/ranges_base.h gcc-11.4.0/libstdc++-v3/include/bits/ranges_base.h *** gcc-11.3.0/libstdc++-v3/include/bits/ranges_base.h Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/ranges_base.h Mon May 29 08:46:33 2023 *************** namespace ranges *** 379,384 **** --- 379,386 ---- template concept __sentinel_size = requires(_Tp& __t) { + requires (!is_unbounded_array_v>); + { _Begin{}(__t) } -> forward_iterator; { _End{}(__t) } -> sized_sentinel_for; *************** namespace ranges *** 462,467 **** --- 464,471 ---- template concept __eq_iter_empty = requires(_Tp& __t) { + requires (!is_unbounded_array_v>); + { _Begin{}(__t) } -> forward_iterator; bool(_Begin{}(__t) == _End{}(__t)); *************** namespace ranges *** 728,747 **** { const auto __diff = __bound - __it; ! // n and bound must not lead in opposite directions: ! __glibcxx_assert(__n == 0 || __diff == 0 || (__n < 0 == __diff < 0)); ! const auto __absdiff = __diff < 0 ? -__diff : __diff; ! const auto __absn = __n < 0 ? -__n : __n;; ! if (__absn >= __absdiff) { (*this)(__it, __bound); return __n - __diff; } ! else { (*this)(__it, __n); return 0; } } else if (__it == __bound || __n == 0) return __n; --- 732,754 ---- { const auto __diff = __bound - __it; ! if (__diff == 0) ! return __n; ! else if (__diff > 0 ? __n >= __diff : __n <= __diff) { (*this)(__it, __bound); return __n - __diff; } ! else if (__n != 0) [[likely]] { + // n and bound must not lead in opposite directions: + __glibcxx_assert(__n < 0 == __diff < 0); + (*this)(__it, __n); return 0; } + else + return 0; } else if (__it == __bound || __n == 0) return __n; diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/regex.h gcc-11.4.0/libstdc++-v3/include/bits/regex.h *** gcc-11.3.0/libstdc++-v3/include/bits/regex.h Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/regex.h Mon May 29 08:46:33 2023 *************** namespace __detail *** 57,62 **** --- 57,72 ---- template class _Executor; + + template + struct __is_contiguous_iter : false_type { }; + + template + struct __is_contiguous_iter<_Tp*> : true_type { }; + + template + struct __is_contiguous_iter<__gnu_cxx::__normal_iterator<_Tp*, _Cont>> + : true_type { }; } _GLIBCXX_BEGIN_NAMESPACE_CXX11 *************** _GLIBCXX_BEGIN_NAMESPACE_CXX11 *** 414,419 **** --- 424,432 ---- static constexpr flag_type awk = regex_constants::awk; static constexpr flag_type grep = regex_constants::grep; static constexpr flag_type egrep = regex_constants::egrep; + #if __cplusplus >= 201703L || !defined __STRICT_ANSI__ + static constexpr flag_type multiline = regex_constants::multiline; + #endif ///@} // [7.8.2] construct/copy/destroy *************** _GLIBCXX_BEGIN_NAMESPACE_CXX11 *** 421,427 **** * Constructs a basic regular expression that does not match any * character sequence. */ ! basic_regex() : _M_flags(ECMAScript), _M_loc(), _M_automaton(nullptr) { } --- 434,440 ---- * Constructs a basic regular expression that does not match any * character sequence. */ ! basic_regex() noexcept : _M_flags(ECMAScript), _M_loc(), _M_automaton(nullptr) { } *************** _GLIBCXX_BEGIN_NAMESPACE_CXX11 *** 438,445 **** */ explicit basic_regex(const _Ch_type* __p, flag_type __f = ECMAScript) ! : basic_regex(__p, __p + char_traits<_Ch_type>::length(__p), __f) ! { } /** * @brief Constructs a basic regular expression from the sequence --- 451,457 ---- */ explicit basic_regex(const _Ch_type* __p, flag_type __f = ECMAScript) ! { _M_compile(__p, __p + _Rx_traits::length(__p), __f); } /** * @brief Constructs a basic regular expression from the sequence *************** _GLIBCXX_BEGIN_NAMESPACE_CXX11 *** 455,462 **** */ basic_regex(const _Ch_type* __p, std::size_t __len, flag_type __f = ECMAScript) ! : basic_regex(__p, __p + __len, __f) ! { } /** * @brief Copy-constructs a basic regular expression. --- 467,473 ---- */ basic_regex(const _Ch_type* __p, std::size_t __len, flag_type __f = ECMAScript) ! { _M_compile(__p, __p + __len, __f); } /** * @brief Copy-constructs a basic regular expression. *************** _GLIBCXX_BEGIN_NAMESPACE_CXX11 *** 486,493 **** basic_regex(const std::basic_string<_Ch_type, _Ch_traits, _Ch_alloc>& __s, flag_type __f = ECMAScript) ! : basic_regex(__s.data(), __s.data() + __s.size(), __f) ! { } /** * @brief Constructs a basic regular expression from the range --- 497,503 ---- basic_regex(const std::basic_string<_Ch_type, _Ch_traits, _Ch_alloc>& __s, flag_type __f = ECMAScript) ! { _M_compile(__s.data(), __s.data() + __s.size(), __f); } /** * @brief Constructs a basic regular expression from the range *************** _GLIBCXX_BEGIN_NAMESPACE_CXX11 *** 505,512 **** template basic_regex(_FwdIter __first, _FwdIter __last, flag_type __f = ECMAScript) ! : basic_regex(std::move(__first), std::move(__last), locale_type(), __f) ! { } /** * @brief Constructs a basic regular expression from an initializer list. --- 515,521 ---- template basic_regex(_FwdIter __first, _FwdIter __last, flag_type __f = ECMAScript) ! { this->assign(__first, __last, __f); } /** * @brief Constructs a basic regular expression from an initializer list. *************** _GLIBCXX_BEGIN_NAMESPACE_CXX11 *** 517,524 **** * @throws regex_error if @p __l is not a valid regular expression. */ basic_regex(initializer_list<_Ch_type> __l, flag_type __f = ECMAScript) ! : basic_regex(__l.begin(), __l.end(), __f) ! { } /** * @brief Destroys a basic regular expression. --- 526,532 ---- * @throws regex_error if @p __l is not a valid regular expression. */ basic_regex(initializer_list<_Ch_type> __l, flag_type __f = ECMAScript) ! { _M_compile(__l.begin(), __l.end(), __f); } /** * @brief Destroys a basic regular expression. *************** _GLIBCXX_BEGIN_NAMESPACE_CXX11 *** 530,544 **** * @brief Assigns one regular expression to another. */ basic_regex& ! operator=(const basic_regex& __rhs) ! { return this->assign(__rhs); } /** * @brief Move-assigns one regular expression to another. */ basic_regex& ! operator=(basic_regex&& __rhs) noexcept ! { return this->assign(std::move(__rhs)); } /** * @brief Replaces a regular expression with a new one constructed from --- 538,550 ---- * @brief Assigns one regular expression to another. */ basic_regex& ! operator=(const basic_regex&) = default; /** * @brief Move-assigns one regular expression to another. */ basic_regex& ! operator=(basic_regex&&) = default; /** * @brief Replaces a regular expression with a new one constructed from *************** _GLIBCXX_BEGIN_NAMESPACE_CXX11 *** 561,567 **** */ basic_regex& operator=(initializer_list<_Ch_type> __l) ! { return this->assign(__l.begin(), __l.end()); } /** * @brief Replaces a regular expression with a new one constructed from --- 567,573 ---- */ basic_regex& operator=(initializer_list<_Ch_type> __l) ! { return this->assign(__l); } /** * @brief Replaces a regular expression with a new one constructed from *************** _GLIBCXX_BEGIN_NAMESPACE_CXX11 *** 576,605 **** // [7.8.3] assign /** ! * @brief the real assignment operator. * * @param __rhs Another regular expression object. */ basic_regex& ! assign(const basic_regex& __rhs) ! { ! basic_regex __tmp(__rhs); ! this->swap(__tmp); ! return *this; ! } /** ! * @brief The move-assignment operator. * * @param __rhs Another regular expression object. */ basic_regex& assign(basic_regex&& __rhs) noexcept ! { ! basic_regex __tmp(std::move(__rhs)); ! this->swap(__tmp); ! return *this; ! } /** * @brief Assigns a new regular expression to a regex object from a --- 582,603 ---- // [7.8.3] assign /** ! * @brief Assigns one regular expression to another. * * @param __rhs Another regular expression object. */ basic_regex& ! assign(const basic_regex& __rhs) noexcept ! { return *this = __rhs; } /** ! * @brief Move-assigns one regular expression to another. * * @param __rhs Another regular expression object. */ basic_regex& assign(basic_regex&& __rhs) noexcept ! { return *this = std::move(__rhs); } /** * @brief Assigns a new regular expression to a regex object from a *************** _GLIBCXX_BEGIN_NAMESPACE_CXX11 *** 616,622 **** */ basic_regex& assign(const _Ch_type* __p, flag_type __flags = ECMAScript) ! { return this->assign(string_type(__p), __flags); } /** * @brief Assigns a new regular expression to a regex object from a --- 614,623 ---- */ basic_regex& assign(const _Ch_type* __p, flag_type __flags = ECMAScript) ! { ! _M_compile(__p, __p + _Rx_traits::length(__p), __flags); ! return *this; ! } /** * @brief Assigns a new regular expression to a regex object from a *************** _GLIBCXX_BEGIN_NAMESPACE_CXX11 *** 635,641 **** // 3296. Inconsistent default argument for basic_regex<>::assign basic_regex& assign(const _Ch_type* __p, size_t __len, flag_type __flags = ECMAScript) ! { return this->assign(string_type(__p, __len), __flags); } /** * @brief Assigns a new regular expression to a regex object from a --- 636,645 ---- // 3296. Inconsistent default argument for basic_regex<>::assign basic_regex& assign(const _Ch_type* __p, size_t __len, flag_type __flags = ECMAScript) ! { ! _M_compile(__p, __p + __len, __flags); ! return *this; ! } /** * @brief Assigns a new regular expression to a regex object from a *************** _GLIBCXX_BEGIN_NAMESPACE_CXX11 *** 653,660 **** assign(const basic_string<_Ch_type, _Ch_traits, _Alloc>& __s, flag_type __flags = ECMAScript) { ! return this->assign(basic_regex(__s.data(), __s.data() + __s.size(), ! _M_loc, __flags)); } /** --- 657,664 ---- assign(const basic_string<_Ch_type, _Ch_traits, _Alloc>& __s, flag_type __flags = ECMAScript) { ! _M_compile(__s.data(), __s.data() + __s.size(), __flags); ! return *this; } /** *************** _GLIBCXX_BEGIN_NAMESPACE_CXX11 *** 674,680 **** basic_regex& assign(_InputIterator __first, _InputIterator __last, flag_type __flags = ECMAScript) ! { return this->assign(string_type(__first, __last), __flags); } /** * @brief Assigns a new regular expression to a regex object. --- 678,698 ---- basic_regex& assign(_InputIterator __first, _InputIterator __last, flag_type __flags = ECMAScript) ! { ! #if __cplusplus >= 201703L ! using _ValT = typename iterator_traits<_InputIterator>::value_type; ! if constexpr (__detail::__is_contiguous_iter<_InputIterator>::value ! && is_same_v<_ValT, value_type>) ! { ! const auto __len = __last - __first; ! const _Ch_type* __p = std::__to_address(__first); ! _M_compile(__p, __p + __len, __flags); ! } ! else ! #endif ! this->assign(string_type(__first, __last), __flags); ! return *this; ! } /** * @brief Assigns a new regular expression to a regex object. *************** _GLIBCXX_BEGIN_NAMESPACE_CXX11 *** 689,695 **** */ basic_regex& assign(initializer_list<_Ch_type> __l, flag_type __flags = ECMAScript) ! { return this->assign(__l.begin(), __l.end(), __flags); } // [7.8.4] const operations /** --- 707,716 ---- */ basic_regex& assign(initializer_list<_Ch_type> __l, flag_type __flags = ECMAScript) ! { ! _M_compile(__l.begin(), __l.end(), __flags); ! return *this; ! } // [7.8.4] const operations /** *************** _GLIBCXX_BEGIN_NAMESPACE_CXX11 *** 697,703 **** * expression. */ unsigned int ! mark_count() const { if (_M_automaton) return _M_automaton->_M_sub_count() - 1; --- 718,724 ---- * expression. */ unsigned int ! mark_count() const noexcept { if (_M_automaton) return _M_automaton->_M_sub_count() - 1; *************** _GLIBCXX_BEGIN_NAMESPACE_CXX11 *** 709,715 **** * or in the last call to assign(). */ flag_type ! flags() const { return _M_flags; } // [7.8.5] locale --- 730,736 ---- * or in the last call to assign(). */ flag_type ! flags() const noexcept { return _M_flags; } // [7.8.5] locale *************** _GLIBCXX_BEGIN_NAMESPACE_CXX11 *** 731,737 **** * object. */ locale_type ! getloc() const { return _M_loc; } // [7.8.6] swap --- 752,758 ---- * object. */ locale_type ! getloc() const noexcept { return _M_loc; } // [7.8.6] swap *************** _GLIBCXX_BEGIN_NAMESPACE_CXX11 *** 741,747 **** * @param __rhs Another regular expression object. */ void ! swap(basic_regex& __rhs) { std::swap(_M_flags, __rhs._M_flags); std::swap(_M_loc, __rhs._M_loc); --- 762,768 ---- * @param __rhs Another regular expression object. */ void ! swap(basic_regex& __rhs) noexcept { std::swap(_M_flags, __rhs._M_flags); std::swap(_M_loc, __rhs._M_loc); *************** _GLIBCXX_BEGIN_NAMESPACE_CXX11 *** 757,769 **** private: typedef std::shared_ptr> _AutomatonPtr; ! template ! basic_regex(_FwdIter __first, _FwdIter __last, locale_type __loc, ! flag_type __f) ! : _M_flags(__f), _M_loc(std::move(__loc)), ! _M_automaton(__detail::__compile_nfa<_Rx_traits>( ! std::move(__first), std::move(__last), _M_loc, _M_flags)) ! { } template --- 778,791 ---- private: typedef std::shared_ptr> _AutomatonPtr; ! void ! _M_compile(const _Ch_type* __first, const _Ch_type* __last, ! flag_type __f) ! { ! __detail::_Compiler<_Rx_traits> __c(__first, __last, _M_loc, __f); ! _M_automaton = __c._M_get_nfa(); ! _M_flags = __f; ! } template *************** _GLIBCXX_BEGIN_NAMESPACE_CXX11 *** 848,854 **** template inline void swap(basic_regex<_Ch_type, _Rx_traits>& __lhs, ! basic_regex<_Ch_type, _Rx_traits>& __rhs) { __lhs.swap(__rhs); } --- 870,876 ---- template inline void swap(basic_regex<_Ch_type, _Rx_traits>& __lhs, ! basic_regex<_Ch_type, _Rx_traits>& __rhs) noexcept { __lhs.swap(__rhs); } *************** _GLIBCXX_END_NAMESPACE_CXX11 *** 2459,2464 **** --- 2481,2495 ---- = regex_constants::match_default) = delete; // std [28.11.4] Function template regex_replace + + template + _Out_iter + __regex_replace(_Out_iter __out, _Bi_iter __first, _Bi_iter __last, + const basic_regex<_Ch_type, _Rx_traits>& __e, + const _Ch_type* __fmt, size_t __len, + regex_constants::match_flag_type __flags); + /** * @brief Search for a regular expression within a range for multiple times, and replace the matched parts through filling a format string. *************** _GLIBCXX_END_NAMESPACE_CXX11 *** 2482,2488 **** regex_constants::match_flag_type __flags = regex_constants::match_default) { ! return regex_replace(__out, __first, __last, __e, __fmt.c_str(), __flags); } /** --- 2513,2520 ---- regex_constants::match_flag_type __flags = regex_constants::match_default) { ! return std::__regex_replace(__out, __first, __last, __e, __fmt.c_str(), ! __fmt.length(), __flags); } /** *************** _GLIBCXX_END_NAMESPACE_CXX11 *** 2505,2511 **** const basic_regex<_Ch_type, _Rx_traits>& __e, const _Ch_type* __fmt, regex_constants::match_flag_type __flags ! = regex_constants::match_default); /** * @brief Search for a regular expression within a string for multiple times, --- 2537,2549 ---- const basic_regex<_Ch_type, _Rx_traits>& __e, const _Ch_type* __fmt, regex_constants::match_flag_type __flags ! = regex_constants::match_default) ! { ! return std::__regex_replace(__out, __first, __last, __e, __fmt, ! char_traits<_Ch_type>::length(__fmt), ! __flags); ! } ! /** * @brief Search for a regular expression within a string for multiple times, diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/regex.tcc gcc-11.4.0/libstdc++-v3/include/bits/regex.tcc *** gcc-11.3.0/libstdc++-v3/include/bits/regex.tcc Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/regex.tcc Mon May 29 08:46:33 2023 *************** namespace __detail *** 461,470 **** template _Out_iter ! regex_replace(_Out_iter __out, _Bi_iter __first, _Bi_iter __last, ! const basic_regex<_Ch_type, _Rx_traits>& __e, ! const _Ch_type* __fmt, ! regex_constants::match_flag_type __flags) { typedef regex_iterator<_Bi_iter, _Ch_type, _Rx_traits> _IterT; _IterT __i(__first, __last, __e, __flags); --- 461,470 ---- template _Out_iter ! __regex_replace(_Out_iter __out, _Bi_iter __first, _Bi_iter __last, ! const basic_regex<_Ch_type, _Rx_traits>& __e, ! const _Ch_type* __fmt, size_t __len, ! regex_constants::match_flag_type __flags) { typedef regex_iterator<_Bi_iter, _Ch_type, _Rx_traits> _IterT; _IterT __i(__first, __last, __e, __flags); *************** namespace __detail *** 477,483 **** else { sub_match<_Bi_iter> __last; - auto __len = char_traits<_Ch_type>::length(__fmt); for (; __i != __end; ++__i) { if (!(__flags & regex_constants::format_no_copy)) --- 477,482 ---- diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/regex_automaton.h gcc-11.4.0/libstdc++-v3/include/bits/regex_automaton.h *** gcc-11.3.0/libstdc++-v3/include/bits/regex_automaton.h Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/regex_automaton.h Mon May 29 08:46:33 2023 *************** namespace __detail *** 95,107 **** }; protected: ! explicit _State_base(_Opcode __opcode) : _M_opcode(__opcode), _M_next(_S_invalid_state_id) { } public: bool ! _M_has_alt() { return _M_opcode == _S_opcode_alternative || _M_opcode == _S_opcode_repeat --- 95,107 ---- }; protected: ! explicit _State_base(_Opcode __opcode) noexcept : _M_opcode(__opcode), _M_next(_S_invalid_state_id) { } public: bool ! _M_has_alt() const noexcept { return _M_opcode == _S_opcode_alternative || _M_opcode == _S_opcode_repeat *************** namespace __detail *** 130,136 **** "std::function"); explicit ! _State(_Opcode __opcode) : _State_base(__opcode) { if (_M_opcode() == _S_opcode_match) new (this->_M_matcher_storage._M_addr()) _MatcherT(); --- 130,136 ---- "std::function"); explicit ! _State(_Opcode __opcode) noexcept : _State_base(__opcode) { if (_M_opcode() == _S_opcode_match) new (this->_M_matcher_storage._M_addr()) _MatcherT(); *************** namespace __detail *** 143,149 **** _MatcherT(__rhs._M_get_matcher()); } ! _State(_State&& __rhs) : _State_base(__rhs) { if (__rhs._M_opcode() == _S_opcode_match) new (this->_M_matcher_storage._M_addr()) --- 143,149 ---- _MatcherT(__rhs._M_get_matcher()); } ! _State(_State&& __rhs) noexcept : _State_base(__rhs) { if (__rhs._M_opcode() == _S_opcode_match) new (this->_M_matcher_storage._M_addr()) *************** namespace __detail *** 162,168 **** // Since correct ctor and dtor rely on _M_opcode, it's better not to // change it over time. _Opcode ! _M_opcode() const { return _State_base::_M_opcode; } bool --- 162,168 ---- // Since correct ctor and dtor rely on _M_opcode, it's better not to // change it over time. _Opcode ! _M_opcode() const noexcept { return _State_base::_M_opcode; } bool *************** namespace __detail *** 170,180 **** { return _M_get_matcher()(__char); } _MatcherT& ! _M_get_matcher() { return *static_cast<_MatcherT*>(this->_M_matcher_storage._M_addr()); } const _MatcherT& ! _M_get_matcher() const { return *static_cast( this->_M_matcher_storage._M_addr()); --- 170,180 ---- { return _M_get_matcher()(__char); } _MatcherT& ! _M_get_matcher() noexcept { return *static_cast<_MatcherT*>(this->_M_matcher_storage._M_addr()); } const _MatcherT& ! _M_get_matcher() const noexcept { return *static_cast( this->_M_matcher_storage._M_addr()); *************** namespace __detail *** 183,193 **** struct _NFA_base { - typedef size_t _SizeT; typedef regex_constants::syntax_option_type _FlagT; explicit ! _NFA_base(_FlagT __f) : _M_flags(__f), _M_start_state(0), _M_subexpr_count(0), _M_has_backref(false) { } --- 183,192 ---- struct _NFA_base { typedef regex_constants::syntax_option_type _FlagT; explicit ! _NFA_base(_FlagT __f) noexcept : _M_flags(__f), _M_start_state(0), _M_subexpr_count(0), _M_has_backref(false) { } *************** namespace __detail *** 199,219 **** public: _FlagT ! _M_options() const { return _M_flags; } _StateIdT ! _M_start() const { return _M_start_state; } ! _SizeT ! _M_sub_count() const { return _M_subexpr_count; } _GLIBCXX_STD_C::vector _M_paren_stack; _FlagT _M_flags; _StateIdT _M_start_state; ! _SizeT _M_subexpr_count; bool _M_has_backref; }; --- 198,218 ---- public: _FlagT ! _M_options() const noexcept { return _M_flags; } _StateIdT ! _M_start() const noexcept { return _M_start_state; } ! size_t ! _M_sub_count() const noexcept { return _M_subexpr_count; } _GLIBCXX_STD_C::vector _M_paren_stack; _FlagT _M_flags; _StateIdT _M_start_state; ! size_t _M_subexpr_count; bool _M_has_backref; }; diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/regex_compiler.h gcc-11.4.0/libstdc++-v3/include/bits/regex_compiler.h *** gcc-11.3.0/libstdc++-v3/include/bits/regex_compiler.h Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/regex_compiler.h Mon May 29 08:46:33 2023 *************** namespace __detail *** 58,72 **** { public: typedef typename _TraitsT::char_type _CharT; - typedef const _CharT* _IterT; typedef _NFA<_TraitsT> _RegexT; typedef regex_constants::syntax_option_type _FlagT; ! _Compiler(_IterT __b, _IterT __e, const typename _TraitsT::locale_type& __traits, _FlagT __flags); shared_ptr ! _M_get_nfa() { return std::move(_M_nfa); } private: --- 58,71 ---- { public: typedef typename _TraitsT::char_type _CharT; typedef _NFA<_TraitsT> _RegexT; typedef regex_constants::syntax_option_type _FlagT; ! _Compiler(const _CharT* __b, const _CharT* __e, const typename _TraitsT::locale_type& __traits, _FlagT __flags); shared_ptr ! _M_get_nfa() noexcept { return std::move(_M_nfa); } private: *************** namespace __detail *** 122,134 **** void _M_insert_bracket_matcher(bool __neg); ! // Returns true if successfully matched one term and should continue. // Returns false if the compiler should move on. template bool ! _M_expression_term(pair& __last_char, ! _BracketMatcher<_TraitsT, __icase, __collate>& ! __matcher); int _M_cur_int_value(int __radix); --- 121,165 ---- void _M_insert_bracket_matcher(bool __neg); ! // Cache of the last atom seen in a bracketed range expression. ! struct _BracketState ! { ! enum class _Type : char { _None, _Char, _Class } _M_type = _Type::_None; ! _CharT _M_char; ! ! void ! set(_CharT __c) noexcept { _M_type = _Type::_Char; _M_char = __c; } ! ! _GLIBCXX_NODISCARD _CharT ! get() const noexcept { return _M_char; } ! ! void ! reset(_Type __t = _Type::_None) noexcept { _M_type = __t; } ! ! explicit operator bool() const noexcept ! { return _M_type != _Type::_None; } ! ! // Previous token was a single character. ! _GLIBCXX_NODISCARD bool ! _M_is_char() const noexcept { return _M_type == _Type::_Char; } ! ! // Previous token was a character class, equivalent class, ! // collating symbol etc. ! _GLIBCXX_NODISCARD bool ! _M_is_class() const noexcept { return _M_type == _Type::_Class; } ! }; ! ! template ! using _BracketMatcher ! = std::__detail::_BracketMatcher<_TraitsT, __icase, __collate>; ! ! // Returns true if successfully parsed one term and should continue ! // compiling a bracket expression. // Returns false if the compiler should move on. template bool ! _M_expression_term(_BracketState& __last_char, ! _BracketMatcher<__icase, __collate>& __matcher); int _M_cur_int_value(int __radix); *************** namespace __detail *** 144,149 **** --- 175,200 ---- return ret; } + static _FlagT + _S_validate(_FlagT __f) + { + using namespace regex_constants; + switch (__f & (ECMAScript|basic|extended|awk|grep|egrep)) + { + case ECMAScript: + case basic: + case extended: + case awk: + case grep: + case egrep: + return __f; + case _FlagT(0): + return __f | ECMAScript; + default: + std::__throw_regex_error(_S_grammar, "conflicting grammar options"); + } + } + _FlagT _M_flags; _ScannerT _M_scanner; shared_ptr<_RegexT> _M_nfa; *************** namespace __detail *** 153,199 **** const _CtypeT& _M_ctype; }; - template - struct __is_contiguous_iter : is_pointer<_Tp>::type { }; - - template - struct - __is_contiguous_iter<__gnu_cxx::__normal_iterator<_Tp*, _Cont>> - : true_type { }; - - template - using __enable_if_contiguous_iter - = __enable_if_t< __is_contiguous_iter<_Iter>::value, - std::shared_ptr> >; - - template - using __disable_if_contiguous_iter - = __enable_if_t< !__is_contiguous_iter<_Iter>::value, - std::shared_ptr> >; - - template - inline __enable_if_contiguous_iter<_FwdIter, _TraitsT> - __compile_nfa(_FwdIter __first, _FwdIter __last, - const typename _TraitsT::locale_type& __loc, - regex_constants::syntax_option_type __flags) - { - size_t __len = __last - __first; - const auto* __cfirst = __len ? std::__addressof(*__first) : nullptr; - using _Cmplr = _Compiler<_TraitsT>; - return _Cmplr(__cfirst, __cfirst + __len, __loc, __flags)._M_get_nfa(); - } - - template - inline __disable_if_contiguous_iter<_FwdIter, _TraitsT> - __compile_nfa(_FwdIter __first, _FwdIter __last, - const typename _TraitsT::locale_type& __loc, - regex_constants::syntax_option_type __flags) - { - const basic_string __str(__first, __last); - return __compile_nfa<_TraitsT>(__str.data(), __str.data() + __str.size(), - __loc, __flags); - } - // [28.13.14] template class _RegexTranslatorBase --- 204,209 ---- diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/regex_compiler.tcc gcc-11.4.0/libstdc++-v3/include/bits/regex_compiler.tcc *** gcc-11.3.0/libstdc++-v3/include/bits/regex_compiler.tcc Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/regex_compiler.tcc Mon May 29 08:46:33 2023 *************** namespace __detail *** 63,79 **** { template _Compiler<_TraitsT>:: ! _Compiler(_IterT __b, _IterT __e, const typename _TraitsT::locale_type& __loc, _FlagT __flags) ! : _M_flags((__flags ! & (regex_constants::ECMAScript ! | regex_constants::basic ! | regex_constants::extended ! | regex_constants::grep ! | regex_constants::egrep ! | regex_constants::awk)) ! ? __flags ! : __flags | regex_constants::ECMAScript), _M_scanner(__b, __e, _M_flags, __loc), _M_nfa(make_shared<_RegexT>(__loc, _M_flags)), _M_traits(_M_nfa->_M_traits), --- 63,71 ---- { template _Compiler<_TraitsT>:: ! _Compiler(const _CharT* __b, const _CharT* __e, const typename _TraitsT::locale_type& __loc, _FlagT __flags) ! : _M_flags(_S_validate(__flags)), _M_scanner(__b, __e, _M_flags, __loc), _M_nfa(make_shared<_RegexT>(__loc, _M_flags)), _M_traits(_M_nfa->_M_traits), *************** namespace __detail *** 140,146 **** return true; if (this->_M_atom()) { ! while (this->_M_quantifier()); return true; } return false; --- 132,139 ---- return true; if (this->_M_atom()) { ! while (this->_M_quantifier()) ! ; return true; } return false; *************** namespace __detail *** 410,416 **** _M_insert_character_class_matcher() { __glibcxx_assert(_M_value.size() == 1); ! _BracketMatcher<_TraitsT, __icase, __collate> __matcher (_M_ctype.is(_CtypeT::upper, _M_value[0]), _M_traits); __matcher._M_add_character_class(_M_value, false); __matcher._M_ready(); --- 403,409 ---- _M_insert_character_class_matcher() { __glibcxx_assert(_M_value.size() == 1); ! _BracketMatcher<__icase, __collate> __matcher (_M_ctype.is(_CtypeT::upper, _M_value[0]), _M_traits); __matcher._M_add_character_class(_M_value, false); __matcher._M_ready(); *************** namespace __detail *** 424,448 **** _Compiler<_TraitsT>:: _M_insert_bracket_matcher(bool __neg) { ! _BracketMatcher<_TraitsT, __icase, __collate> __matcher(__neg, _M_traits); ! pair __last_char; // Optional<_CharT> ! __last_char.first = false; ! if (!(_M_flags & regex_constants::ECMAScript)) ! { ! if (_M_try_char()) ! { ! __last_char.first = true; ! __last_char.second = _M_value[0]; ! } ! else if (_M_match_token(_ScannerT::_S_token_bracket_dash)) ! { ! __last_char.first = true; ! __last_char.second = '-'; ! } ! } ! while (_M_expression_term(__last_char, __matcher)); ! if (__last_char.first) ! __matcher._M_add_char(__last_char.second); __matcher._M_ready(); _M_stack.push(_StateSeqT( *_M_nfa, --- 417,433 ---- _Compiler<_TraitsT>:: _M_insert_bracket_matcher(bool __neg) { ! _BracketMatcher<__icase, __collate> __matcher(__neg, _M_traits); ! _BracketState __last_char; ! if (_M_try_char()) ! __last_char.set(_M_value[0]); ! else if (_M_match_token(_ScannerT::_S_token_bracket_dash)) ! // Dash as first character is a normal character. ! __last_char.set('-'); ! while (_M_expression_term(__last_char, __matcher)) ! ; ! if (__last_char._M_is_char()) ! __matcher._M_add_char(__last_char.get()); __matcher._M_ready(); _M_stack.push(_StateSeqT( *_M_nfa, *************** namespace __detail *** 453,479 **** template bool _Compiler<_TraitsT>:: ! _M_expression_term(pair& __last_char, ! _BracketMatcher<_TraitsT, __icase, __collate>& __matcher) { if (_M_match_token(_ScannerT::_S_token_bracket_end)) return false; const auto __push_char = [&](_CharT __ch) { ! if (__last_char.first) ! __matcher._M_add_char(__last_char.second); ! else ! __last_char.first = true; ! __last_char.second = __ch; }; ! const auto __flush = [&] { ! if (__last_char.first) ! { ! __matcher._M_add_char(__last_char.second); ! __last_char.first = false; ! } }; if (_M_match_token(_ScannerT::_S_token_collsymbol)) --- 438,464 ---- template bool _Compiler<_TraitsT>:: ! _M_expression_term(_BracketState& __last_char, ! _BracketMatcher<__icase, __collate>& __matcher) { if (_M_match_token(_ScannerT::_S_token_bracket_end)) return false; + // Add any previously cached char into the matcher and update cache. const auto __push_char = [&](_CharT __ch) { ! if (__last_char._M_is_char()) ! __matcher._M_add_char(__last_char.get()); ! __last_char.set(__ch); }; ! // Add any previously cached char into the matcher and update cache. ! const auto __push_class = [&] { ! if (__last_char._M_is_char()) ! __matcher._M_add_char(__last_char.get()); ! // We don't cache anything here, just record that the last thing ! // processed was a character class (or similar). ! __last_char.reset(_BracketState::_Type::_Class); }; if (_M_match_token(_ScannerT::_S_token_collsymbol)) *************** namespace __detail *** 482,497 **** if (__symbol.size() == 1) __push_char(__symbol[0]); else ! __flush(); } else if (_M_match_token(_ScannerT::_S_token_equiv_class_name)) { ! __flush(); __matcher._M_add_equivalence_class(_M_value); } else if (_M_match_token(_ScannerT::_S_token_char_class_name)) { ! __flush(); __matcher._M_add_character_class(_M_value, false); } else if (_M_try_char()) --- 467,482 ---- if (__symbol.size() == 1) __push_char(__symbol[0]); else ! __push_class(); } else if (_M_match_token(_ScannerT::_S_token_equiv_class_name)) { ! __push_class(); __matcher._M_add_equivalence_class(_M_value); } else if (_M_match_token(_ScannerT::_S_token_char_class_name)) { ! __push_class(); __matcher._M_add_character_class(_M_value, false); } else if (_M_try_char()) *************** namespace __detail *** 508,556 **** // It turns out that no one reads BNFs ;) else if (_M_match_token(_ScannerT::_S_token_bracket_dash)) { ! if (!__last_char.first) { ! if (!(_M_flags & regex_constants::ECMAScript)) ! { ! if (_M_match_token(_ScannerT::_S_token_bracket_end)) ! { ! __push_char('-'); ! return false; ! } ! __throw_regex_error( ! regex_constants::error_range, ! "Unexpected dash in bracket expression. For POSIX syntax, " ! "a dash is not treated literally only when it is at " ! "beginning or end."); ! } __push_char('-'); } ! else { if (_M_try_char()) { ! __matcher._M_make_range(__last_char.second, _M_value[0]); ! __last_char.first = false; } else if (_M_match_token(_ScannerT::_S_token_bracket_dash)) { ! __matcher._M_make_range(__last_char.second, '-'); ! __last_char.first = false; } else ! { ! if (_M_scanner._M_get_token() ! != _ScannerT::_S_token_bracket_end) ! __throw_regex_error( ! regex_constants::error_range, ! "Character is expected after a dash."); ! __push_char('-'); ! } } } else if (_M_match_token(_ScannerT::_S_token_quoted_class)) { ! __flush(); __matcher._M_add_character_class(_M_value, _M_ctype.is(_CtypeT::upper, _M_value[0])); --- 493,542 ---- // It turns out that no one reads BNFs ;) else if (_M_match_token(_ScannerT::_S_token_bracket_dash)) { ! if (_M_match_token(_ScannerT::_S_token_bracket_end)) { ! // For "-]" the dash is a literal character. __push_char('-'); + return false; } ! else if (__last_char._M_is_class()) ! { ! // "\\w-" is invalid, start of range must be a single char. ! __throw_regex_error(regex_constants::error_range, ! "Invalid start of range in bracket expression."); ! } ! else if (__last_char._M_is_char()) { if (_M_try_char()) { ! // "x-y" ! __matcher._M_make_range(__last_char.get(), _M_value[0]); ! __last_char.reset(); } else if (_M_match_token(_ScannerT::_S_token_bracket_dash)) { ! // "x--" ! __matcher._M_make_range(__last_char.get(), '-'); ! __last_char.reset(); } else ! __throw_regex_error(regex_constants::error_range, ! "Invalid end of range in bracket expression."); } + else if (_M_flags & regex_constants::ECMAScript) + { + // A dash that is not part of an existing range. Might be the + // start of a new range, or might just be a literal '-' char. + // Only ECMAScript allows that in the middle of a bracket expr. + __push_char('-'); + } + else + __throw_regex_error(regex_constants::error_range, + "Invalid dash in bracket expression."); } else if (_M_match_token(_ScannerT::_S_token_quoted_class)) { ! __push_class(); __matcher._M_add_character_class(_M_value, _M_ctype.is(_CtypeT::upper, _M_value[0])); *************** namespace __detail *** 586,594 **** template bool _Compiler<_TraitsT>:: ! _M_match_token(_TokenT token) { ! if (token == _M_scanner._M_get_token()) { _M_value = _M_scanner._M_get_value(); _M_scanner._M_advance(); --- 572,580 ---- template bool _Compiler<_TraitsT>:: ! _M_match_token(_TokenT __token) { ! if (__token == _M_scanner._M_get_token()) { _M_value = _M_scanner._M_get_value(); _M_scanner._M_advance(); *************** namespace __detail *** 602,611 **** _Compiler<_TraitsT>:: _M_cur_int_value(int __radix) { ! long __v = 0; ! for (typename _StringT::size_type __i = 0; ! __i < _M_value.length(); ++__i) ! __v =__v * __radix + _M_traits.value(_M_value[__i], __radix); return __v; } --- 588,599 ---- _Compiler<_TraitsT>:: _M_cur_int_value(int __radix) { ! int __v = 0; ! for (_CharT __c : _M_value) ! if (__builtin_mul_overflow(__v, __radix, &__v) ! || __builtin_add_overflow(__v, _M_traits.value(__c, __radix), &__v)) ! std::__throw_regex_error(regex_constants::error_backref, ! "invalid back reference"); return __v; } diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/regex_constants.h gcc-11.4.0/libstdc++-v3/include/bits/regex_constants.h *** gcc-11.3.0/libstdc++-v3/include/bits/regex_constants.h Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/regex_constants.h Mon May 29 08:46:33 2023 *************** namespace regex_constants *** 64,70 **** _S_grep, _S_egrep, _S_polynomial, ! _S_syntax_last }; /** --- 64,70 ---- _S_grep, _S_egrep, _S_polynomial, ! _S_multiline }; /** *************** namespace regex_constants *** 170,175 **** --- 170,193 ---- _GLIBCXX17_INLINE constexpr syntax_option_type egrep = static_cast(1 << _S_egrep); + #if __cplusplus >= 201703L || !defined __STRICT_ANSI__ + // _GLIBCXX_RESOLVE_LIB_DEFECTS + // 2503. multiline option should be added to syntax_option_type + /** + * Specifies that the `^` anchor matches at the beginning of a line, + * and the `$` anchor matches at the end of a line, not only at the + * beginning/end of the input. + * Valid for the ECMAScript syntax, ignored otherwise. + * @since C++17 + */ + _GLIBCXX17_INLINE constexpr syntax_option_type multiline = + static_cast(1 << _S_multiline); + #endif + + /// Extension: Equivalent to regex_constants::multiline for C++11 and C++14. + _GLIBCXX17_INLINE constexpr syntax_option_type __multiline = + static_cast(1 << _S_multiline); + /** * Extension: Ensure both space complexity of compiled regex and * time complexity execution are not exponential. *************** namespace regex_constants *** 310,318 **** static_cast(1 << _S_continuous); /** ! * --first is a valid iterator position. When this flag is set then the ! * flags match_not_bol and match_not_bow are ignored by the regular ! * expression algorithms 28.11 and iterators 28.12. */ _GLIBCXX17_INLINE constexpr match_flag_type match_prev_avail = static_cast(1 << _S_prev_avail); --- 328,337 ---- static_cast(1 << _S_continuous); /** ! * `--first` is a valid iterator position. When this flag is set then the ! * flags `match_not_bol` and `match_not_bow` are ignored by the algorithms ! * `regex_match`, `regex_search`, and `regex_replace`, and by the iterators ! * `regex_iterator` and `regex_token_iterator`. */ _GLIBCXX17_INLINE constexpr match_flag_type match_prev_avail = static_cast(1 << _S_prev_avail); diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/regex_error.h gcc-11.4.0/libstdc++-v3/include/bits/regex_error.h *** gcc-11.3.0/libstdc++-v3/include/bits/regex_error.h Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/regex_error.h Mon May 29 08:46:33 2023 *************** namespace regex_constants *** 61,66 **** --- 61,68 ---- _S_error_badrepeat, _S_error_complexity, _S_error_stack, + _S_null, + _S_grammar }; /** The expression contained an invalid collating element name. */ *************** namespace regex_constants *** 150,156 **** * @returns the regex error code. */ regex_constants::error_type ! code() const { return _M_code; } private: --- 152,158 ---- * @returns the regex error code. */ regex_constants::error_type ! code() const noexcept { return _M_code; } private: diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/regex_executor.h gcc-11.4.0/libstdc++-v3/include/bits/regex_executor.h *** gcc-11.3.0/libstdc++-v3/include/bits/regex_executor.h Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/regex_executor.h Mon May 29 08:46:33 2023 *************** namespace __detail *** 78,89 **** _M_results(__results), _M_rep_count(_M_nfa.size()), _M_states(_M_nfa._M_start(), _M_nfa.size()), ! _M_flags((__flags & regex_constants::match_prev_avail) ! ? (__flags ! & ~regex_constants::match_not_bol ! & ~regex_constants::match_not_bow) ! : __flags) ! { } // Set matched when string exactly matches the pattern. bool --- 78,89 ---- _M_results(__results), _M_rep_count(_M_nfa.size()), _M_states(_M_nfa._M_start(), _M_nfa.size()), ! _M_flags(__flags) ! { ! using namespace regex_constants; ! if (__flags & match_prev_avail) // ignore not_bol and not_bow ! _M_flags &= ~(match_not_bol | match_not_bow); ! } // Set matched when string exactly matches the pattern. bool *************** namespace __detail *** 165,180 **** bool _M_at_begin() const { ! return _M_current == _M_begin ! && !(_M_flags & (regex_constants::match_not_bol ! | regex_constants::match_prev_avail)); } bool _M_at_end() const { ! return _M_current == _M_end ! && !(_M_flags & regex_constants::match_not_eol); } bool --- 165,203 ---- bool _M_at_begin() const { ! if (_M_current == _M_begin) ! { ! // match_not_bol means ^ does not match [_M_begin,_M_begin) ! if (_M_flags & regex_constants::match_not_bol) ! return false; ! // match_prev_avail means _M_begin is not the start of the input. ! if (_M_flags & regex_constants::match_prev_avail) ! { ! // For ECMAScript multiline matches, check if the previous ! // character is a line terminator. ! if (_M_match_multiline()) ! return _M_is_line_terminator(*std::prev(_M_current)); ! else ! return false; ! } ! else // ^ matches at _M_begin ! return true; ! } ! else if (_M_match_multiline()) ! return _M_is_line_terminator(*std::prev(_M_current)); ! else ! return false; } bool _M_at_end() const { ! if (_M_current == _M_end) ! return !(_M_flags & regex_constants::match_not_eol); ! else if (_M_match_multiline()) ! return _M_is_line_terminator(*_M_current); ! else ! return false; } bool *************** namespace __detail *** 183,188 **** --- 206,236 ---- bool _M_lookahead(_StateIdT __next); + bool + _M_is_line_terminator(_CharT __c) const + { + const auto& __traits = _M_re._M_automaton->_M_traits; + const auto& __ct = use_facet>(__traits.getloc()); + const char __n{ __ct.narrow(__c, ' ') }; + if (__n == '\n') + return true; + if (_M_re._M_automaton->_M_options() & regex_constants::ECMAScript) + { + if (__n == '\r') + return true; + // FIXME: U+2028 (line separator) and U+2029 (paragraph separator) + } + return false; + } + + bool + _M_match_multiline() const noexcept + { + constexpr auto __m + = regex_constants::ECMAScript | regex_constants::__multiline; + return (_M_re._M_automaton->_M_options() & __m) == __m; + } + // Holds additional information used in BFS-mode. template struct _State_info; diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/regex_executor.tcc gcc-11.4.0/libstdc++-v3/include/bits/regex_executor.tcc *** gcc-11.3.0/libstdc++-v3/include/bits/regex_executor.tcc Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/regex_executor.tcc Mon May 29 08:46:33 2023 *************** namespace __detail *** 423,429 **** template void _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>:: ! _M_handle_accept(_Match_mode __match_mode, _StateIdT __i) { if (__dfs_mode) { --- 423,429 ---- template void _Executor<_BiIter, _Alloc, _TraitsT, __dfs_mode>:: ! _M_handle_accept(_Match_mode __match_mode, _StateIdT) { if (__dfs_mode) { diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/regex_scanner.h gcc-11.4.0/libstdc++-v3/include/bits/regex_scanner.h *** gcc-11.3.0/libstdc++-v3/include/bits/regex_scanner.h Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/regex_scanner.h Mon May 29 08:46:33 2023 *************** namespace __detail *** 211,233 **** : public _ScannerBase { public: - typedef const _CharT* _IterT; typedef std::basic_string<_CharT> _StringT; typedef regex_constants::syntax_option_type _FlagT; typedef const std::ctype<_CharT> _CtypeT; ! _Scanner(_IterT __begin, _IterT __end, _FlagT __flags, std::locale __loc); void _M_advance(); _TokenT ! _M_get_token() const { return _M_token; } const _StringT& ! _M_get_value() const { return _M_value; } #ifdef _GLIBCXX_DEBUG --- 211,232 ---- : public _ScannerBase { public: typedef std::basic_string<_CharT> _StringT; typedef regex_constants::syntax_option_type _FlagT; typedef const std::ctype<_CharT> _CtypeT; ! _Scanner(const _CharT* __begin, const _CharT* __end, _FlagT __flags, std::locale __loc); void _M_advance(); _TokenT ! _M_get_token() const noexcept { return _M_token; } const _StringT& ! _M_get_value() const noexcept { return _M_value; } #ifdef _GLIBCXX_DEBUG *************** namespace __detail *** 257,264 **** void _M_eat_class(char); ! _IterT _M_current; ! _IterT _M_end; _CtypeT& _M_ctype; _StringT _M_value; void (_Scanner::* _M_eat_escape)(); --- 256,263 ---- void _M_eat_class(char); ! const _CharT* _M_current; ! const _CharT* _M_end; _CtypeT& _M_ctype; _StringT _M_value; void (_Scanner::* _M_eat_escape)(); diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/regex_scanner.tcc gcc-11.4.0/libstdc++-v3/include/bits/regex_scanner.tcc *** gcc-11.3.0/libstdc++-v3/include/bits/regex_scanner.tcc Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/regex_scanner.tcc Mon May 29 08:46:33 2023 *************** namespace __detail *** 54,61 **** { template _Scanner<_CharT>:: ! _Scanner(typename _Scanner::_IterT __begin, ! typename _Scanner::_IterT __end, _FlagT __flags, std::locale __loc) : _ScannerBase(__flags), _M_current(__begin), _M_end(__end), --- 54,60 ---- { template _Scanner<_CharT>:: ! _Scanner(const _CharT* __begin, const _CharT* __end, _FlagT __flags, std::locale __loc) : _ScannerBase(__flags), _M_current(__begin), _M_end(__end), *************** namespace __detail *** 176,181 **** --- 175,190 ---- _M_state = _S_state_in_brace; _M_token = _S_token_interval_begin; } + else if (__builtin_expect(__c == _CharT(0), false)) + { + if (!_M_is_ecma()) + { + __throw_regex_error(regex_constants::_S_null, + "Unexpected null character in regular expression"); + } + _M_token = _S_token_ord_char; + _M_value.assign(1, __c); + } else if (__c != ']' && __c != '}') { auto __it = _M_token_tbl; diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/shared_ptr_base.h gcc-11.4.0/libstdc++-v3/include/bits/shared_ptr_base.h *** gcc-11.3.0/libstdc++-v3/include/bits/shared_ptr_base.h Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/shared_ptr_base.h Mon May 29 08:46:33 2023 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 1666,1674 **** __weak_ptr& operator=(__weak_ptr&& __r) noexcept { ! _M_ptr = __r._M_ptr; ! _M_refcount = std::move(__r._M_refcount); ! __r._M_ptr = nullptr; return *this; } --- 1666,1672 ---- __weak_ptr& operator=(__weak_ptr&& __r) noexcept { ! __weak_ptr(std::move(__r)).swap(*this); return *this; } diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/slice_array.h gcc-11.4.0/libstdc++-v3/include/bits/slice_array.h *** gcc-11.3.0/libstdc++-v3/include/bits/slice_array.h Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/slice_array.h Mon May 29 08:46:33 2023 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 245,250 **** --- 245,251 ---- slice_array<_Tp>::operator=(const _Expr<_Dom,_Tp>& __e) const { std::__valarray_copy(__e, _M_sz, _M_array, _M_stride); } + /// @cond undocumented #undef _DEFINE_VALARRAY_OPERATOR #define _DEFINE_VALARRAY_OPERATOR(_Op,_Name) \ template \ *************** _DEFINE_VALARRAY_OPERATOR(<<, __shift_le *** 275,280 **** --- 276,282 ---- _DEFINE_VALARRAY_OPERATOR(>>, __shift_right) #undef _DEFINE_VALARRAY_OPERATOR + /// @endcond /// @} group numeric_arrays diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/std_thread.h gcc-11.4.0/libstdc++-v3/include/bits/std_thread.h *** gcc-11.3.0/libstdc++-v3/include/bits/std_thread.h Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/std_thread.h Mon May 29 08:46:33 2023 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 204,210 **** template _State_impl(_Args&&... __args) ! : _M_func{{std::forward<_Args>(__args)...}} { } void --- 204,210 ---- template _State_impl(_Args&&... __args) ! : _M_func(std::forward<_Args>(__args)...) { } void *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 238,243 **** --- 238,249 ---- template struct _Invoker { + template + explicit + _Invoker(_Args&&... __args) + : _M_t(std::forward<_Args>(__args)...) + { } + _Tuple _M_t; template diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/stl_construct.h gcc-11.4.0/libstdc++-v3/include/bits/stl_construct.h *** gcc-11.3.0/libstdc++-v3/include/bits/stl_construct.h Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/stl_construct.h Mon May 29 08:46:33 2023 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 116,122 **** return; } #endif ! ::new(static_cast(__p)) _Tp(std::forward<_Args>(__args)...); } #else template --- 116,122 ---- return; } #endif ! ::new((void*)__p) _Tp(std::forward<_Args>(__args)...); } #else template *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 132,138 **** template inline void _Construct_novalue(_T1* __p) ! { ::new(static_cast(__p)) _T1; } template _GLIBCXX20_CONSTEXPR void --- 132,138 ---- template inline void _Construct_novalue(_T1* __p) ! { ::new((void*)__p) _T1; } template _GLIBCXX20_CONSTEXPR void diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/stl_deque.h gcc-11.4.0/libstdc++-v3/include/bits/stl_deque.h *** gcc-11.3.0/libstdc++-v3/include/bits/stl_deque.h Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/stl_deque.h Mon May 29 08:46:33 2023 *************** _GLIBCXX_BEGIN_NAMESPACE_CONTAINER *** 353,359 **** operator-(const _Self& __x, const _Self& __y) _GLIBCXX_NOEXCEPT { return difference_type(_S_buffer_size()) ! * (__x._M_node - __y._M_node - int(__x._M_node != 0)) + (__x._M_cur - __x._M_first) + (__y._M_last - __y._M_cur); } --- 353,359 ---- operator-(const _Self& __x, const _Self& __y) _GLIBCXX_NOEXCEPT { return difference_type(_S_buffer_size()) ! * (__x._M_node - __y._M_node - bool(__x._M_node)) + (__x._M_cur - __x._M_first) + (__y._M_last - __y._M_cur); } *************** _GLIBCXX_BEGIN_NAMESPACE_CONTAINER *** 365,374 **** template friend difference_type operator-(const _Self& __x, ! const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) _GLIBCXX_NOEXCEPT { return difference_type(_S_buffer_size()) ! * (__x._M_node - __y._M_node - int(__x._M_node != 0)) + (__x._M_cur - __x._M_first) + (__y._M_last - __y._M_cur); } --- 365,375 ---- template friend difference_type operator-(const _Self& __x, ! const _Deque_iterator<_Tp, _RefR, _PtrR>& __y) ! _GLIBCXX_NOEXCEPT { return difference_type(_S_buffer_size()) ! * (__x._M_node - __y._M_node - bool(__x._M_node)) + (__x._M_cur - __x._M_first) + (__y._M_last - __y._M_cur); } diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/stl_iterator.h gcc-11.4.0/libstdc++-v3/include/bits/stl_iterator.h *** gcc-11.3.0/libstdc++-v3/include/bits/stl_iterator.h Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/stl_iterator.h Mon May 29 08:46:33 2023 *************** *** 77,87 **** # define __cpp_lib_array_constexpr 201803L #endif ! #if __cplusplus > 201703L # include # include # include # include #endif namespace std _GLIBCXX_VISIBILITY(default) --- 77,88 ---- # define __cpp_lib_array_constexpr 201803L #endif ! #if __cplusplus >= 202002L # include # include # include # include + # include #endif namespace std _GLIBCXX_VISIBILITY(default) *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 537,542 **** --- 538,559 ---- operator<=>(const reverse_iterator<_IteratorL>& __x, const reverse_iterator<_IteratorR>& __y) { return __y.base() <=> __x.base(); } + + // Additional, non-standard overloads to avoid ambiguities with greedy, + // unconstrained overloads in associated namespaces. + + template + constexpr bool + operator==(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + requires requires { { __x.base() == __y.base() } -> convertible_to; } + { return __x.base() == __y.base(); } + + template + constexpr compare_three_way_result_t<_Iterator, _Iterator> + operator<=>(const reverse_iterator<_Iterator>& __x, + const reverse_iterator<_Iterator>& __y) + { return __y.base() <=> __x.base(); } #endif // C++20 ///@} *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 1113,1118 **** --- 1130,1152 ---- const __normal_iterator<_IteratorR, _Container>& __rhs) noexcept(noexcept(std::__detail::__synth3way(__lhs.base(), __rhs.base()))) { return std::__detail::__synth3way(__lhs.base(), __rhs.base()); } + + template + constexpr bool + operator==(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept(noexcept(__lhs.base() == __rhs.base())) + requires requires { + { __lhs.base() == __rhs.base() } -> std::convertible_to; + } + { return __lhs.base() == __rhs.base(); } + + template + constexpr std::__detail::__synth3way_t<_Iterator> + operator<=>(const __normal_iterator<_Iterator, _Container>& __lhs, + const __normal_iterator<_Iterator, _Container>& __rhs) + noexcept(noexcept(std::__detail::__synth3way(__lhs.base(), __rhs.base()))) + { return std::__detail::__synth3way(__lhs.base(), __rhs.base()); } #else // Forward iterator requirements template *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 1356,1366 **** && convertible_to; #endif public: using iterator_type = _Iterator; #if __cplusplus > 201703L && __cpp_lib_concepts ! using iterator_concept = input_iterator_tag; // iterator_category defined in __move_iter_cat using value_type = iter_value_t<_Iterator>; using difference_type = iter_difference_t<_Iterator>; --- 1390,1418 ---- && convertible_to; #endif + #if __cplusplus > 201703L && __cpp_lib_concepts + static auto + _S_iter_concept() + { + if constexpr (random_access_iterator<_Iterator>) + return random_access_iterator_tag{}; + else if constexpr (bidirectional_iterator<_Iterator>) + return bidirectional_iterator_tag{}; + else if constexpr (forward_iterator<_Iterator>) + return forward_iterator_tag{}; + else + return input_iterator_tag{}; + } + #endif + public: using iterator_type = _Iterator; #if __cplusplus > 201703L && __cpp_lib_concepts ! // This is P2520R0, a C++23 change, but we treat it as a DR against C++20. ! # define __cpp_lib_move_iterator_concept 202207L ! using iterator_concept = decltype(_S_iter_concept()); ! // iterator_category defined in __move_iter_cat using value_type = iter_value_t<_Iterator>; using difference_type = iter_difference_t<_Iterator>; *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 1588,1607 **** #endif { return !(__x < __y); } - #if ! (__cplusplus > 201703L && __cpp_lib_concepts) // Note: See __normal_iterator operators note from Gaby to understand // why we have these extra overloads for some move_iterator operators. - // These extra overloads are not needed in C++20, because the ones above - // are constrained with a requires-clause and so overload resolution will - // prefer them to greedy unconstrained function templates. - template inline _GLIBCXX17_CONSTEXPR bool operator==(const move_iterator<_Iterator>& __x, const move_iterator<_Iterator>& __y) { return __x.base() == __y.base(); } template inline _GLIBCXX17_CONSTEXPR bool operator!=(const move_iterator<_Iterator>& __x, --- 1640,1661 ---- #endif { return !(__x < __y); } // Note: See __normal_iterator operators note from Gaby to understand // why we have these extra overloads for some move_iterator operators. template inline _GLIBCXX17_CONSTEXPR bool operator==(const move_iterator<_Iterator>& __x, const move_iterator<_Iterator>& __y) { return __x.base() == __y.base(); } + #if __cpp_lib_three_way_comparison + template + constexpr compare_three_way_result_t<_Iterator> + operator<=>(const move_iterator<_Iterator>& __x, + const move_iterator<_Iterator>& __y) + { return __x.base() <=> __y.base(); } + #else template inline _GLIBCXX17_CONSTEXPR bool operator!=(const move_iterator<_Iterator>& __x, *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 1697,1703 **** _S_noexcept1() { if constexpr (is_trivially_default_constructible_v<_Tp>) ! return is_nothrow_assignable_v<_Tp, _Up>; else return is_nothrow_constructible_v<_Tp, _Up>; } --- 1751,1757 ---- _S_noexcept1() { if constexpr (is_trivially_default_constructible_v<_Tp>) ! return is_nothrow_assignable_v<_Tp&, _Up>; else return is_nothrow_constructible_v<_Tp, _Up>; } *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 1767,1785 **** noexcept(_S_noexcept()) : _M_valueless(), _M_index(__x._M_index) { if (_M_index == 0) { if constexpr (is_trivially_default_constructible_v<_It>) _M_it = std::move(__x._M_it); else ! ::new((void*)std::__addressof(_M_it)) _It(__x._M_it); } else if (_M_index == 1) { if constexpr (is_trivially_default_constructible_v<_Sent>) _M_sent = std::move(__x._M_sent); else ! ::new((void*)std::__addressof(_M_sent)) _Sent(__x._M_sent); } } --- 1821,1840 ---- noexcept(_S_noexcept()) : _M_valueless(), _M_index(__x._M_index) { + __glibcxx_assert(__x._M_has_value()); if (_M_index == 0) { if constexpr (is_trivially_default_constructible_v<_It>) _M_it = std::move(__x._M_it); else ! std::construct_at(std::__addressof(_M_it), __x._M_it); } else if (_M_index == 1) { if constexpr (is_trivially_default_constructible_v<_Sent>) _M_sent = std::move(__x._M_sent); else ! std::construct_at(std::__addressof(_M_sent), __x._M_sent); } } *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 1791,1817 **** if (_M_index == 0) { if constexpr (is_trivially_default_constructible_v<_It>) _M_it = std::move(__x._M_it); else ! ::new((void*)std::__addressof(_M_it)) _It(__x._M_it); } else if (_M_index == 1) { if constexpr (is_trivially_default_constructible_v<_Sent>) _M_sent = std::move(__x._M_sent); else ! ::new((void*)std::__addressof(_M_sent)) _Sent(__x._M_sent); } } ! common_iterator& operator=(const common_iterator& __x) noexcept(is_nothrow_copy_assignable_v<_It> && is_nothrow_copy_assignable_v<_Sent> && is_nothrow_copy_constructible_v<_It> && is_nothrow_copy_constructible_v<_Sent>) { ! return this->operator=<_It, _Sent>(__x); } template --- 1846,1916 ---- if (_M_index == 0) { if constexpr (is_trivially_default_constructible_v<_It>) + _M_it = __x._M_it; + else + std::construct_at(std::__addressof(_M_it), __x._M_it); + } + else if (_M_index == 1) + { + if constexpr (is_trivially_default_constructible_v<_Sent>) + _M_sent = __x._M_sent; + else + std::construct_at(std::__addressof(_M_sent), __x._M_sent); + } + } + + constexpr + common_iterator(common_iterator&& __x) + noexcept(_S_noexcept<_It, _Sent>()) + : _M_valueless(), _M_index(__x._M_index) + { + if (_M_index == 0) + { + if constexpr (is_trivially_default_constructible_v<_It>) _M_it = std::move(__x._M_it); else ! std::construct_at(std::__addressof(_M_it), std::move(__x._M_it)); } else if (_M_index == 1) { if constexpr (is_trivially_default_constructible_v<_Sent>) _M_sent = std::move(__x._M_sent); else ! std::construct_at(std::__addressof(_M_sent), ! std::move(__x._M_sent)); } } ! constexpr common_iterator& ! operator=(const common_iterator&) = default; ! ! constexpr common_iterator& operator=(const common_iterator& __x) noexcept(is_nothrow_copy_assignable_v<_It> && is_nothrow_copy_assignable_v<_Sent> && is_nothrow_copy_constructible_v<_It> && is_nothrow_copy_constructible_v<_Sent>) + requires (!is_trivially_copy_assignable_v<_It> + || !is_trivially_copy_assignable_v<_Sent>) { ! _M_assign(__x); ! return *this; ! } ! ! constexpr common_iterator& ! operator=(common_iterator&&) = default; ! ! constexpr common_iterator& ! operator=(common_iterator&& __x) ! noexcept(is_nothrow_move_assignable_v<_It> ! && is_nothrow_move_assignable_v<_Sent> ! && is_nothrow_move_constructible_v<_It> ! && is_nothrow_move_constructible_v<_Sent>) ! requires (!is_trivially_move_assignable_v<_It> ! || !is_trivially_move_assignable_v<_Sent>) ! { ! _M_assign(std::move(__x)); ! return *this; } template *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 1819,1890 **** && convertible_to && assignable_from<_It&, const _It2&> && assignable_from<_Sent&, const _Sent2&> ! common_iterator& operator=(const common_iterator<_It2, _Sent2>& __x) noexcept(is_nothrow_constructible_v<_It, const _It2&> && is_nothrow_constructible_v<_Sent, const _Sent2&> ! && is_nothrow_assignable_v<_It, const _It2&> ! && is_nothrow_assignable_v<_Sent, const _Sent2&>) { ! switch(_M_index << 2 | __x._M_index) ! { ! case 0b0000: ! _M_it = __x._M_it; ! break; ! case 0b0101: ! _M_sent = __x._M_sent; ! break; ! case 0b0001: ! _M_it.~_It(); ! _M_index = -1; ! [[fallthrough]]; ! case 0b1001: ! ::new((void*)std::__addressof(_M_sent)) _Sent(__x._M_sent); ! _M_index = 1; ! break; ! case 0b0100: ! _M_sent.~_Sent(); ! _M_index = -1; ! [[fallthrough]]; ! case 0b1000: ! ::new((void*)std::__addressof(_M_it)) _It(__x._M_it); ! _M_index = 0; ! break; ! default: ! __glibcxx_assert(__x._M_has_value()); ! __builtin_unreachable(); ! } return *this; } ~common_iterator() { ! switch (_M_index) ! { ! case 0: ! _M_it.~_It(); ! break; ! case 1: ! _M_sent.~_Sent(); ! break; ! } } ! decltype(auto) operator*() { __glibcxx_assert(_M_index == 0); return *_M_it; } ! decltype(auto) operator*() const requires __detail::__dereferenceable { __glibcxx_assert(_M_index == 0); return *_M_it; } ! decltype(auto) operator->() const requires __detail::__common_iter_has_arrow<_It> { __glibcxx_assert(_M_index == 0); --- 1918,1962 ---- && convertible_to && assignable_from<_It&, const _It2&> && assignable_from<_Sent&, const _Sent2&> ! constexpr common_iterator& operator=(const common_iterator<_It2, _Sent2>& __x) noexcept(is_nothrow_constructible_v<_It, const _It2&> && is_nothrow_constructible_v<_Sent, const _Sent2&> ! && is_nothrow_assignable_v<_It&, const _It2&> ! && is_nothrow_assignable_v<_Sent&, const _Sent2&>) { ! __glibcxx_assert(__x._M_has_value()); ! _M_assign(__x); return *this; } + constexpr ~common_iterator() { ! if (_M_index == 0) ! _M_it.~_It(); ! else if (_M_index == 1) ! _M_sent.~_Sent(); } ! [[nodiscard]] ! constexpr decltype(auto) operator*() { __glibcxx_assert(_M_index == 0); return *_M_it; } ! [[nodiscard]] ! constexpr decltype(auto) operator*() const requires __detail::__dereferenceable { __glibcxx_assert(_M_index == 0); return *_M_it; } ! [[nodiscard]] ! constexpr auto operator->() const requires __detail::__common_iter_has_arrow<_It> { __glibcxx_assert(_M_index == 0); *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 1899,1905 **** return __arrow_proxy{*_M_it}; } ! common_iterator& operator++() { __glibcxx_assert(_M_index == 0); --- 1971,1977 ---- return __arrow_proxy{*_M_it}; } ! constexpr common_iterator& operator++() { __glibcxx_assert(_M_index == 0); *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 1907,1913 **** return *this; } ! decltype(auto) operator++(int) { __glibcxx_assert(_M_index == 0); --- 1979,1985 ---- return *this; } ! constexpr decltype(auto) operator++(int) { __glibcxx_assert(_M_index == 0); *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 1929,1937 **** template _Sent2> requires sentinel_for<_Sent, _It2> ! friend bool ! operator==(const common_iterator& __x, ! const common_iterator<_It2, _Sent2>& __y) { switch(__x._M_index << 2 | __y._M_index) { --- 2001,2009 ---- template _Sent2> requires sentinel_for<_Sent, _It2> ! friend constexpr bool ! operator== [[nodiscard]] (const common_iterator& __x, ! const common_iterator<_It2, _Sent2>& __y) { switch(__x._M_index << 2 | __y._M_index) { *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 1951,1959 **** template _Sent2> requires sentinel_for<_Sent, _It2> && equality_comparable_with<_It, _It2> ! friend bool ! operator==(const common_iterator& __x, ! const common_iterator<_It2, _Sent2>& __y) { switch(__x._M_index << 2 | __y._M_index) { --- 2023,2031 ---- template _Sent2> requires sentinel_for<_Sent, _It2> && equality_comparable_with<_It, _It2> ! friend constexpr bool ! operator== [[nodiscard]] (const common_iterator& __x, ! const common_iterator<_It2, _Sent2>& __y) { switch(__x._M_index << 2 | __y._M_index) { *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 1974,1982 **** template _It2, sized_sentinel_for<_It> _Sent2> requires sized_sentinel_for<_Sent, _It2> ! friend iter_difference_t<_It2> ! operator-(const common_iterator& __x, ! const common_iterator<_It2, _Sent2>& __y) { switch(__x._M_index << 2 | __y._M_index) { --- 2046,2054 ---- template _It2, sized_sentinel_for<_It> _Sent2> requires sized_sentinel_for<_Sent, _It2> ! friend constexpr iter_difference_t<_It2> ! operator- [[nodiscard]] (const common_iterator& __x, ! const common_iterator<_It2, _Sent2>& __y) { switch(__x._M_index << 2 | __y._M_index) { *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 1995,2001 **** } } ! friend iter_rvalue_reference_t<_It> iter_move(const common_iterator& __i) noexcept(noexcept(ranges::iter_move(std::declval()))) requires input_iterator<_It> --- 2067,2074 ---- } } ! [[nodiscard]] ! friend constexpr iter_rvalue_reference_t<_It> iter_move(const common_iterator& __i) noexcept(noexcept(ranges::iter_move(std::declval()))) requires input_iterator<_It> *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 2005,2011 **** } template _It2, typename _Sent2> ! friend void iter_swap(const common_iterator& __x, const common_iterator<_It2, _Sent2>& __y) noexcept(noexcept(ranges::iter_swap(std::declval(), --- 2078,2084 ---- } template _It2, typename _Sent2> ! friend constexpr void iter_swap(const common_iterator& __x, const common_iterator<_It2, _Sent2>& __y) noexcept(noexcept(ranges::iter_swap(std::declval(), *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 2018,2026 **** private: template _Sent2> friend class common_iterator; ! bool _M_has_value() const noexcept { return _M_index < 2; } union { --- 2091,2130 ---- private: template _Sent2> + requires (!same_as<_It2, _Sent2>) && copyable<_It2> friend class common_iterator; ! constexpr bool ! _M_has_value() const noexcept { return _M_index != _S_valueless; } ! ! template ! constexpr void ! _M_assign(_CIt&& __x) ! { ! if (_M_index == __x._M_index) ! { ! if (_M_index == 0) ! _M_it = std::forward<_CIt>(__x)._M_it; ! else if (_M_index == 1) ! _M_sent = std::forward<_CIt>(__x)._M_sent; ! } ! else ! { ! if (_M_index == 0) ! _M_it.~_It(); ! else if (_M_index == 1) ! _M_sent.~_Sent(); ! _M_index = _S_valueless; ! ! if (__x._M_index == 0) ! std::construct_at(std::__addressof(_M_it), ! std::forward<_CIt>(__x)._M_it); ! else if (__x._M_index == 1) ! std::construct_at(std::__addressof(_M_sent), ! std::forward<_CIt>(__x)._M_sent); ! _M_index = __x._M_index; ! } ! } union { *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 2028,2034 **** _Sent _M_sent; unsigned char _M_valueless; }; ! unsigned char _M_index; // 0==_M_it, 1==_M_sent, 2==valueless }; template --- 2132,2140 ---- _Sent _M_sent; unsigned char _M_valueless; }; ! unsigned char _M_index; // 0 == _M_it, 1 == _M_sent, 2 == valueless ! ! static constexpr unsigned char _S_valueless{2}; }; template *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 2188,2194 **** return *this; } ! decltype(auto) operator++(int) { __glibcxx_assert(_M_length > 0); --- 2294,2300 ---- return *this; } ! constexpr decltype(auto) operator++(int) { __glibcxx_assert(_M_length > 0); *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 2200,2206 **** ++_M_length; __throw_exception_again; } - } constexpr counted_iterator --- 2306,2311 ---- diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/stl_list.h gcc-11.4.0/libstdc++-v3/include/bits/stl_list.h *** gcc-11.3.0/libstdc++-v3/include/bits/stl_list.h Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/stl_list.h Mon May 29 08:46:33 2023 *************** *** 1,6 **** --- 1,7 ---- // List implementation -*- C++ -*- // Copyright (C) 2001-2021 Free Software Foundation, Inc. + // Copyright The GNU Toolchain Authors. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the *************** _GLIBCXX_BEGIN_NAMESPACE_CXX11 *** 1966,1971 **** --- 1967,2006 ---- __false_type{}); } #endif + + #if _GLIBCXX_USE_CXX11_ABI + // Update _M_size members after merging (some of) __src into __dest. + struct _Finalize_merge + { + explicit + _Finalize_merge(list& __dest, list& __src, const iterator& __src_next) + : _M_dest(__dest), _M_src(__src), _M_next(__src_next) + { } + + ~_Finalize_merge() + { + // For the common case, _M_next == _M_sec.end() and the std::distance + // call is fast. But if any *iter1 < *iter2 comparison throws then we + // have to count how many elements remain in _M_src. + const size_t __num_unmerged = std::distance(_M_next, _M_src.end()); + const size_t __orig_size = _M_src._M_get_size(); + _M_dest._M_inc_size(__orig_size - __num_unmerged); + _M_src._M_set_size(__num_unmerged); + } + + list& _M_dest; + list& _M_src; + const iterator& _M_next; + + #if __cplusplus >= 201103L + _Finalize_merge(const _Finalize_merge&) = delete; + #endif + }; + #else + struct _Finalize_merge + { explicit _Finalize_merge(list&, list&, const iterator&) { } }; + #endif + }; #if __cpp_deduction_guides >= 201606 diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/this_thread_sleep.h gcc-11.4.0/libstdc++-v3/include/bits/this_thread_sleep.h *** gcc-11.3.0/libstdc++-v3/include/bits/this_thread_sleep.h Thu Apr 21 07:58:56 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/this_thread_sleep.h Mon May 29 08:46:33 2023 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 107,114 **** __now = _Clock::now(); } } - } // namespace this_thread #endif // ! NO_SLEEP /// @} --- 107,114 ---- __now = _Clock::now(); } } #endif // ! NO_SLEEP + } // namespace this_thread /// @} diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/bits/uses_allocator_args.h gcc-11.4.0/libstdc++-v3/include/bits/uses_allocator_args.h *** gcc-11.3.0/libstdc++-v3/include/bits/uses_allocator_args.h Thu Apr 21 07:58:57 2022 --- gcc-11.4.0/libstdc++-v3/include/bits/uses_allocator_args.h Mon May 29 08:46:33 2023 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 180,190 **** using _Tp1 = typename _Tp::first_type; using _Tp2 = typename _Tp::second_type; return std::make_tuple(piecewise_construct, std::uses_allocator_construction_args<_Tp1>(__a, ! std::move(__pr).first), std::uses_allocator_construction_args<_Tp2>(__a, ! std::move(__pr).second)); } template --- 180,193 ---- using _Tp1 = typename _Tp::first_type; using _Tp2 = typename _Tp::second_type; + // _GLIBCXX_RESOLVE_LIB_DEFECTS + // 3527. uses_allocator_construction_args handles rvalue pairs + // of rvalue references incorrectly return std::make_tuple(piecewise_construct, std::uses_allocator_construction_args<_Tp1>(__a, ! std::get<0>(std::move(__pr))), std::uses_allocator_construction_args<_Tp2>(__a, ! std::get<1>(std::move(__pr)))); } template diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/c_global/cstddef gcc-11.4.0/libstdc++-v3/include/c_global/cstddef *** gcc-11.3.0/libstdc++-v3/include/c_global/cstddef Thu Apr 21 07:58:57 2022 --- gcc-11.4.0/libstdc++-v3/include/c_global/cstddef Mon May 29 08:46:33 2023 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 121,175 **** using __byte_op_t = typename __byte_operand<_IntegerType>::__type; template constexpr __byte_op_t<_IntegerType> operator<<(byte __b, _IntegerType __shift) noexcept { return (byte)(unsigned char)((unsigned)__b << __shift); } template constexpr __byte_op_t<_IntegerType> operator>>(byte __b, _IntegerType __shift) noexcept { return (byte)(unsigned char)((unsigned)__b >> __shift); } constexpr byte operator|(byte __l, byte __r) noexcept { return (byte)(unsigned char)((unsigned)__l | (unsigned)__r); } constexpr byte operator&(byte __l, byte __r) noexcept { return (byte)(unsigned char)((unsigned)__l & (unsigned)__r); } constexpr byte operator^(byte __l, byte __r) noexcept { return (byte)(unsigned char)((unsigned)__l ^ (unsigned)__r); } constexpr byte operator~(byte __b) noexcept { return (byte)(unsigned char)~(unsigned)__b; } template constexpr __byte_op_t<_IntegerType>& operator<<=(byte& __b, _IntegerType __shift) noexcept { return __b = __b << __shift; } template constexpr __byte_op_t<_IntegerType>& operator>>=(byte& __b, _IntegerType __shift) noexcept { return __b = __b >> __shift; } constexpr byte& operator|=(byte& __l, byte __r) noexcept { return __l = __l | __r; } constexpr byte& operator&=(byte& __l, byte __r) noexcept { return __l = __l & __r; } constexpr byte& operator^=(byte& __l, byte __r) noexcept { return __l = __l ^ __r; } template ! [[nodiscard]] constexpr _IntegerType to_integer(__byte_op_t<_IntegerType> __b) noexcept { return _IntegerType(__b); } --- 121,186 ---- using __byte_op_t = typename __byte_operand<_IntegerType>::__type; template + [[__gnu__::__always_inline__]] constexpr __byte_op_t<_IntegerType> operator<<(byte __b, _IntegerType __shift) noexcept { return (byte)(unsigned char)((unsigned)__b << __shift); } template + [[__gnu__::__always_inline__]] constexpr __byte_op_t<_IntegerType> operator>>(byte __b, _IntegerType __shift) noexcept { return (byte)(unsigned char)((unsigned)__b >> __shift); } + [[__gnu__::__always_inline__]] constexpr byte operator|(byte __l, byte __r) noexcept { return (byte)(unsigned char)((unsigned)__l | (unsigned)__r); } + [[__gnu__::__always_inline__]] constexpr byte operator&(byte __l, byte __r) noexcept { return (byte)(unsigned char)((unsigned)__l & (unsigned)__r); } + [[__gnu__::__always_inline__]] constexpr byte operator^(byte __l, byte __r) noexcept { return (byte)(unsigned char)((unsigned)__l ^ (unsigned)__r); } + [[__gnu__::__always_inline__]] constexpr byte operator~(byte __b) noexcept { return (byte)(unsigned char)~(unsigned)__b; } template + [[__gnu__::__always_inline__]] constexpr __byte_op_t<_IntegerType>& operator<<=(byte& __b, _IntegerType __shift) noexcept { return __b = __b << __shift; } template + [[__gnu__::__always_inline__]] constexpr __byte_op_t<_IntegerType>& operator>>=(byte& __b, _IntegerType __shift) noexcept { return __b = __b >> __shift; } + [[__gnu__::__always_inline__]] constexpr byte& operator|=(byte& __l, byte __r) noexcept { return __l = __l | __r; } + [[__gnu__::__always_inline__]] constexpr byte& operator&=(byte& __l, byte __r) noexcept { return __l = __l & __r; } + [[__gnu__::__always_inline__]] constexpr byte& operator^=(byte& __l, byte __r) noexcept { return __l = __l ^ __r; } template ! [[nodiscard,__gnu__::__always_inline__]] constexpr _IntegerType to_integer(__byte_op_t<_IntegerType> __b) noexcept { return _IntegerType(__b); } diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/experimental/bits/fs_ops.h gcc-11.4.0/libstdc++-v3/include/experimental/bits/fs_ops.h *** gcc-11.3.0/libstdc++-v3/include/experimental/bits/fs_ops.h Thu Apr 21 07:58:57 2022 --- gcc-11.4.0/libstdc++-v3/include/experimental/bits/fs_ops.h Mon May 29 08:46:33 2023 *************** inline namespace v1 *** 51,60 **** --- 51,66 ---- * @{ */ + [[__nodiscard__]] path absolute(const path& __p, const path& __base = current_path()); + [[__nodiscard__]] path canonical(const path& __p, const path& __base = current_path()); + + [[__nodiscard__]] path canonical(const path& __p, error_code& __ec); + + [[__nodiscard__]] path canonical(const path& __p, const path& __base, error_code& __ec); inline void *************** inline namespace v1 *** 66,71 **** --- 72,78 ---- { copy(__from, __to, copy_options::none, __ec); } void copy(const path& __from, const path& __to, copy_options __options); + void copy(const path& __from, const path& __to, copy_options __options, error_code& __ec) noexcept; *************** inline namespace v1 *** 107,131 **** --- 114,147 ---- void create_symlink(const path& __to, const path& __new_symlink, error_code& __ec) noexcept; + [[__nodiscard__]] path current_path(); + + [[__nodiscard__]] path current_path(error_code& __ec); + void current_path(const path& __p); void current_path(const path& __p, error_code& __ec) noexcept; + [[__nodiscard__]] bool equivalent(const path& __p1, const path& __p2); + [[__nodiscard__]] bool equivalent(const path& __p1, const path& __p2, error_code& __ec) noexcept; + [[__nodiscard__]] inline bool exists(file_status __s) noexcept { return status_known(__s) && __s.type() != file_type::not_found; } + [[__nodiscard__]] inline bool exists(const path& __p) { return exists(status(__p)); } + [[__nodiscard__]] inline bool exists(const path& __p, error_code& __ec) noexcept { *************** inline namespace v1 *** 138,200 **** --- 154,237 ---- return false; } + [[__nodiscard__]] uintmax_t file_size(const path& __p); + + [[__nodiscard__]] uintmax_t file_size(const path& __p, error_code& __ec) noexcept; + [[__nodiscard__]] uintmax_t hard_link_count(const path& __p); + + [[__nodiscard__]] uintmax_t hard_link_count(const path& __p, error_code& __ec) noexcept; + [[__nodiscard__]] inline bool is_block_file(file_status __s) noexcept { return __s.type() == file_type::block; } + [[__nodiscard__]] inline bool is_block_file(const path& __p) { return is_block_file(status(__p)); } + [[__nodiscard__]] inline bool is_block_file(const path& __p, error_code& __ec) noexcept { return is_block_file(status(__p, __ec)); } + [[__nodiscard__]] inline bool is_character_file(file_status __s) noexcept { return __s.type() == file_type::character; } + [[__nodiscard__]] inline bool is_character_file(const path& __p) { return is_character_file(status(__p)); } + [[__nodiscard__]] inline bool is_character_file(const path& __p, error_code& __ec) noexcept { return is_character_file(status(__p, __ec)); } + [[__nodiscard__]] inline bool is_directory(file_status __s) noexcept { return __s.type() == file_type::directory; } + [[__nodiscard__]] inline bool is_directory(const path& __p) { return is_directory(status(__p)); } + [[__nodiscard__]] inline bool is_directory(const path& __p, error_code& __ec) noexcept { return is_directory(status(__p, __ec)); } + [[__nodiscard__]] bool is_empty(const path& __p); + [[__nodiscard__]] bool is_empty(const path& __p, error_code& __ec) noexcept; + [[__nodiscard__]] inline bool is_fifo(file_status __s) noexcept { return __s.type() == file_type::fifo; } + [[__nodiscard__]] inline bool is_fifo(const path& __p) { return is_fifo(status(__p)); } + [[__nodiscard__]] inline bool is_fifo(const path& __p, error_code& __ec) noexcept { return is_fifo(status(__p, __ec)); } + [[__nodiscard__]] inline bool is_other(file_status __s) noexcept { *************** inline namespace v1 *** 202,253 **** --- 239,305 ---- && !is_symlink(__s); } + [[__nodiscard__]] inline bool is_other(const path& __p) { return is_other(status(__p)); } + [[__nodiscard__]] inline bool is_other(const path& __p, error_code& __ec) noexcept { return is_other(status(__p, __ec)); } + [[__nodiscard__]] inline bool is_regular_file(file_status __s) noexcept { return __s.type() == file_type::regular; } + [[__nodiscard__]] inline bool is_regular_file(const path& __p) { return is_regular_file(status(__p)); } + [[__nodiscard__]] inline bool is_regular_file(const path& __p, error_code& __ec) noexcept { return is_regular_file(status(__p, __ec)); } + [[__nodiscard__]] inline bool is_socket(file_status __s) noexcept { return __s.type() == file_type::socket; } + [[__nodiscard__]] inline bool is_socket(const path& __p) { return is_socket(status(__p)); } + [[__nodiscard__]] inline bool is_socket(const path& __p, error_code& __ec) noexcept { return is_socket(status(__p, __ec)); } + [[__nodiscard__]] inline bool is_symlink(file_status __s) noexcept { return __s.type() == file_type::symlink; } + [[__nodiscard__]] inline bool is_symlink(const path& __p) { return is_symlink(symlink_status(__p)); } + [[__nodiscard__]] inline bool is_symlink(const path& __p, error_code& __ec) noexcept { return is_symlink(symlink_status(__p, __ec)); } + [[__nodiscard__]] file_time_type last_write_time(const path& __p); + + [[__nodiscard__]] file_time_type last_write_time(const path& __p, error_code& __ec) noexcept; + void last_write_time(const path& __p, file_time_type __new_time); void last_write_time(const path& __p, file_time_type __new_time, error_code& __ec) noexcept; *************** inline namespace v1 *** 255,261 **** --- 307,316 ---- void permissions(const path& __p, perms __prms); void permissions(const path& __p, perms __prms, error_code& __ec) noexcept; + [[__nodiscard__]] path read_symlink(const path& __p); + + [[__nodiscard__]] path read_symlink(const path& __p, error_code& __ec); bool remove(const path& __p); *************** inline namespace v1 *** 270,291 **** --- 325,362 ---- void resize_file(const path& __p, uintmax_t __size); void resize_file(const path& __p, uintmax_t __size, error_code& __ec) noexcept; + [[__nodiscard__]] space_info space(const path& __p); + + [[__nodiscard__]] space_info space(const path& __p, error_code& __ec) noexcept; + [[__nodiscard__]] file_status status(const path& __p); + + [[__nodiscard__]] file_status status(const path& __p, error_code& __ec) noexcept; + [[__nodiscard__]] inline bool status_known(file_status __s) noexcept { return __s.type() != file_type::none; } + [[__nodiscard__]] file_status symlink_status(const path& __p); + + [[__nodiscard__]] file_status symlink_status(const path& __p, error_code& __ec) noexcept; + [[__nodiscard__]] path system_complete(const path& __p); + + [[__nodiscard__]] path system_complete(const path& __p, error_code& __ec); + [[__nodiscard__]] path temp_directory_path(); + + [[__nodiscard__]] path temp_directory_path(error_code& __ec); /// @} group filesystem-ts diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/experimental/bits/fs_path.h gcc-11.4.0/libstdc++-v3/include/experimental/bits/fs_path.h *** gcc-11.3.0/libstdc++-v3/include/experimental/bits/fs_path.h Thu Apr 21 07:58:57 2022 --- gcc-11.4.0/libstdc++-v3/include/experimental/bits/fs_path.h Mon May 29 08:46:33 2023 *************** namespace __detail *** 140,149 **** inline _Source _S_range_begin(_Source __begin) { return __begin; } ! struct __null_terminated { }; template ! inline __null_terminated _S_range_end(_Source) { return {}; } template --- 140,149 ---- inline _Source _S_range_begin(_Source __begin) { return __begin; } ! struct __nul_terminated { }; template ! inline __nul_terminated _S_range_end(_Source) { return {}; } template *************** namespace __detail *** 425,432 **** class iterator; typedef iterator const_iterator; ! iterator begin() const noexcept; ! iterator end() const noexcept; /// @cond undocumented // Create a basic_string by reading until a null character. --- 425,432 ---- class iterator; typedef iterator const_iterator; ! iterator begin() const; ! iterator end() const; /// @cond undocumented // Create a basic_string by reading until a null character. *************** namespace __detail *** 473,483 **** struct _Cvt; static string_type ! _S_convert(value_type* __src, __detail::__null_terminated) { return string_type(__src); } static string_type ! _S_convert(const value_type* __src, __detail::__null_terminated) { return string_type(__src); } template --- 473,483 ---- struct _Cvt; static string_type ! _S_convert(value_type* __src, __detail::__nul_terminated) { return string_type(__src); } static string_type ! _S_convert(const value_type* __src, __detail::__nul_terminated) { return string_type(__src); } template *************** namespace __detail *** 491,497 **** template static string_type ! _S_convert(_InputIterator __src, __detail::__null_terminated) { auto __s = _S_string_from_iter(__src); return _S_convert(__s.c_str(), __s.c_str() + __s.size()); --- 491,497 ---- template static string_type ! _S_convert(_InputIterator __src, __detail::__nul_terminated) { auto __s = _S_string_from_iter(__src); return _S_convert(__s.c_str(), __s.c_str() + __s.size()); *************** namespace __detail *** 518,524 **** template static string_type ! _S_convert_loc(_InputIterator __src, __detail::__null_terminated, const std::locale& __loc) { const std::string __s = _S_string_from_iter(__src); --- 518,524 ---- template static string_type ! _S_convert_loc(_InputIterator __src, __detail::__nul_terminated, const std::locale& __loc) { const std::string __s = _S_string_from_iter(__src); diff -Nrcpad gcc-11.3.0/libstdc++-v3/include/experimental/bits/simd.h gcc-11.4.0/libstdc++-v3/include/experimental/bits/simd.h *** gcc-11.3.0/libstdc++-v3/include/experimental/bits/simd.h Thu Apr 21 07:58:57 2022 --- gcc-11.4.0/libstdc++-v3/include/experimental/bits/simd.h Mon May 29 08:46:33 2023 *************** struct vector_aligned_tag *** 179,188 **** template _GLIBCXX_SIMD_INTRINSIC static constexpr _Up* _S_apply(_Up* __ptr) ! { ! return static_cast<_Up*>( ! __builtin_assume_aligned(__ptr, _S_alignment<_Tp, _Up>)); ! } }; template struct overaligned_tag --- 179,185 ---- template _GLIBCXX_SIMD_INTRINSIC static constexpr _Up* _S_apply(_Up* __ptr) ! { return static_cast<_Up*>(__builtin_assume_aligned(__ptr, _S_alignment<_Tp, _Up>)); } }; template struct overaligned_tag *************** template *** 420,447 **** operator&(_Ip __rhs) const { return __generate_from_n_evaluations<_Np, _Ip>( ! [&](auto __i) { return __rhs._M_data[__i] & _M_data[__i]; }); } _GLIBCXX_SIMD_INTRINSIC constexpr _Ip operator|(_Ip __rhs) const { return __generate_from_n_evaluations<_Np, _Ip>( ! [&](auto __i) { return __rhs._M_data[__i] | _M_data[__i]; }); } _GLIBCXX_SIMD_INTRINSIC constexpr _Ip operator^(_Ip __rhs) const { return __generate_from_n_evaluations<_Np, _Ip>( ! [&](auto __i) { return __rhs._M_data[__i] ^ _M_data[__i]; }); } _GLIBCXX_SIMD_INTRINSIC constexpr _Ip operator~() const { return __generate_from_n_evaluations<_Np, _Ip>( ! [&](auto __i) { return ~_M_data[__i]; }); } }; return _Ip{}; --- 417,450 ---- operator&(_Ip __rhs) const { return __generate_from_n_evaluations<_Np, _Ip>( ! [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { ! return __rhs._M_data[__i] & _M_data[__i]; ! }); } _GLIBCXX_SIMD_INTRINSIC constexpr _Ip operator|(_Ip __rhs) const { return __generate_from_n_evaluations<_Np, _Ip>( ! [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { ! return __rhs._M_data[__i] | _M_data[__i]; ! }); } _GLIBCXX_SIMD_INTRINSIC constexpr _Ip operator^(_Ip __rhs) const { return __generate_from_n_evaluations<_Np, _Ip>( ! [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { ! return __rhs._M_data[__i] ^ _M_data[__i]; ! }); } _GLIBCXX_SIMD_INTRINSIC constexpr _Ip operator~() const { return __generate_from_n_evaluations<_Np, _Ip>( ! [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { return ~_M_data[__i]; }); } }; return _Ip{}; *************** template *** 619,626 **** // __invoke_ub{{{ template [[noreturn]] _GLIBCXX_SIMD_ALWAYS_INLINE void ! __invoke_ub([[maybe_unused]] const char* __msg, ! [[maybe_unused]] const _Args&... __args) { #ifdef _GLIBCXX_DEBUG_UB __builtin_fprintf(stderr, __msg, __args...); --- 622,628 ---- // __invoke_ub{{{ template [[noreturn]] _GLIBCXX_SIMD_ALWAYS_INLINE void ! __invoke_ub([[maybe_unused]] const char* __msg, [[maybe_unused]] const _Args&... __args) { #ifdef _GLIBCXX_DEBUG_UB __builtin_fprintf(stderr, __msg, __args...); *************** class _ExactBool *** 665,675 **** const bool _M_data; public: ! _GLIBCXX_SIMD_INTRINSIC constexpr _ExactBool(bool __b) : _M_data(__b) {} _ExactBool(int) = delete; ! _GLIBCXX_SIMD_INTRINSIC constexpr operator bool() const { return _M_data; } }; // }}} --- 667,680 ---- const bool _M_data; public: ! _GLIBCXX_SIMD_INTRINSIC constexpr ! _ExactBool(bool __b) : _M_data(__b) {} _ExactBool(int) = delete; ! _GLIBCXX_SIMD_INTRINSIC constexpr ! operator bool() const ! { return _M_data; } }; // }}} *************** template *** 1267,1273 **** operator^=(const _BitMask& __b) & noexcept { __execute_n_times<_S_array_size>( ! [&](auto __i) { _M_bits[__i] ^= __b._M_bits[__i]; }); return *this; } --- 1272,1278 ---- operator^=(const _BitMask& __b) & noexcept { __execute_n_times<_S_array_size>( ! [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { _M_bits[__i] ^= __b._M_bits[__i]; }); return *this; } *************** template *** 1275,1281 **** operator|=(const _BitMask& __b) & noexcept { __execute_n_times<_S_array_size>( ! [&](auto __i) { _M_bits[__i] |= __b._M_bits[__i]; }); return *this; } --- 1280,1286 ---- operator|=(const _BitMask& __b) & noexcept { __execute_n_times<_S_array_size>( ! [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { _M_bits[__i] |= __b._M_bits[__i]; }); return *this; } *************** template *** 1283,1289 **** operator&=(const _BitMask& __b) & noexcept { __execute_n_times<_S_array_size>( ! [&](auto __i) { _M_bits[__i] &= __b._M_bits[__i]; }); return *this; } --- 1288,1294 ---- operator&=(const _BitMask& __b) & noexcept { __execute_n_times<_S_array_size>( ! [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { _M_bits[__i] &= __b._M_bits[__i]; }); return *this; } *************** template *** 1358,1365 **** // else, use GNU-style builtin vector types template ! struct __vector_type_n<_Tp, _Np, ! enable_if_t<__is_vectorizable_v<_Tp> && _Np >= 2>> { static constexpr size_t _S_Np2 = std::__bit_ceil(_Np * sizeof(_Tp)); --- 1363,1369 ---- // else, use GNU-style builtin vector types template ! struct __vector_type_n<_Tp, _Np, enable_if_t<__is_vectorizable_v<_Tp> && _Np >= 2>> { static constexpr size_t _S_Np2 = std::__bit_ceil(_Np * sizeof(_Tp)); *************** template *** 1637,1644 **** // }}} // __to_intrin {{{ template , ! typename _R ! = __intrinsic_type_t> _GLIBCXX_SIMD_INTRINSIC constexpr _R __to_intrin(_Tp __x) { --- 1641,1647 ---- // }}} // __to_intrin {{{ template , ! typename _R = __intrinsic_type_t> _GLIBCXX_SIMD_INTRINSIC constexpr _R __to_intrin(_Tp __x) { *************** template _GLIBCXX_SIMD_INTRINSIC constexpr __vector_type_t<_Tp, sizeof...(_Args)> __make_vector(const _Args&... __args) ! { ! return __vector_type_t<_Tp, sizeof...(_Args)>{static_cast<_Tp>(__args)...}; ! } // }}} // __vector_broadcast{{{ template _GLIBCXX_SIMD_INTRINSIC constexpr __vector_type_t<_Tp, _Np> __vector_broadcast(_Tp __x) ! { ! return __call_with_n_evaluations<_Np>( ! [](auto... __xx) { return __vector_type_t<_Tp, _Np>{__xx...}; }, ! [&__x](int) { return __x; }); ! } // }}} // __generate_vector{{{ template _GLIBCXX_SIMD_INTRINSIC constexpr __vector_type_t<_Tp, _Np> __generate_vector_impl(_Gp&& __gen, index_sequence<_I...>) ! { ! return __vector_type_t<_Tp, _Np>{ ! static_cast<_Tp>(__gen(_SizeConstant<_I>()))...}; ! } template , typename _Gp> _GLIBCXX_SIMD_INTRINSIC constexpr _V --- 1662,1687 ---- template _GLIBCXX_SIMD_INTRINSIC constexpr __vector_type_t<_Tp, sizeof...(_Args)> __make_vector(const _Args&... __args) ! { return __vector_type_t<_Tp, sizeof...(_Args)>{static_cast<_Tp>(__args)...}; } // }}} // __vector_broadcast{{{ + template + _GLIBCXX_SIMD_INTRINSIC constexpr __vector_type_t<_Tp, _Np> + __vector_broadcast_impl(_Tp __x, index_sequence<_I...>) + { return __vector_type_t<_Tp, _Np>{((void)_I, __x)...}; } + template _GLIBCXX_SIMD_INTRINSIC constexpr __vector_type_t<_Tp, _Np> __vector_broadcast(_Tp __x) ! { return __vector_broadcast_impl<_Np, _Tp>(__x, make_index_sequence<_Np>()); } // }}} // __generate_vector{{{ template _GLIBCXX_SIMD_INTRINSIC constexpr __vector_type_t<_Tp, _Np> __generate_vector_impl(_Gp&& __gen, index_sequence<_I...>) ! { return __vector_type_t<_Tp, _Np>{ static_cast<_Tp>(__gen(_SizeConstant<_I>()))...}; } template , typename _Gp> _GLIBCXX_SIMD_INTRINSIC constexpr _V *************** template , ! typename _R = __vector_type_t> constexpr _R __concat(_Tp a_, _Tp b_) { --- 1894,1900 ---- // }}} // __concat{{{ template , ! typename _R = __vector_type_t> constexpr _R __concat(_Tp a_, _Tp b_) { *************** template , ! typename _R = __vector_type_t> _GLIBCXX_SIMD_INTRINSIC constexpr _R __extract(_Tp __in) { --- 2038,2044 ---- int _SplitBy, typename _Tp, typename _TVT = _VectorTraits<_Tp>, ! typename _R = __vector_type_t> _GLIBCXX_SIMD_INTRINSIC constexpr _R __extract(_Tp __in) { *************** template ( ! __x, [](auto... __entries) { return reinterpret_cast<_R>(_Up{__entries...}); }); } --- 2075,2081 ---- #endif constexpr int _O = _Offset * __return_width; return __call_with_subscripts<__return_width, _O>( ! __x, [](auto... __entries) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { return reinterpret_cast<_R>(_Up{__entries...}); }); } *************** template ::value_type>> _GLIBCXX_SIMD_INTRINSIC constexpr _R __lo64(_Tp __x) { --- 2084,2090 ---- // }}} // __lo/__hi64[z]{{{ template ::value_type>> _GLIBCXX_SIMD_INTRINSIC constexpr _R __lo64(_Tp __x) { *************** template ::value_type>> _GLIBCXX_SIMD_INTRINSIC constexpr _R __hi64(_Tp __x) { --- 2094,2100 ---- } template ::value_type>> _GLIBCXX_SIMD_INTRINSIC constexpr _R __hi64(_Tp __x) { *************** template ::value_type>> _GLIBCXX_SIMD_INTRINSIC constexpr _R __hi64z([[maybe_unused]] _Tp __x) { --- 2105,2111 ---- } template ::value_type>> _GLIBCXX_SIMD_INTRINSIC constexpr _R __hi64z([[maybe_unused]] _Tp __x) { *************** template <> *** 2222,2239 **** // the following excludes bool via __is_vectorizable #if _GLIBCXX_SIMD_HAVE_SSE template ! struct __intrinsic_type<_Tp, _Bytes, ! enable_if_t<__is_vectorizable_v<_Tp> && _Bytes <= 64>> { static_assert(!is_same_v<_Tp, long double>, "no __intrinsic_type support for long double on x86"); ! static constexpr size_t _S_VBytes = _Bytes <= 16 ? 16 ! : _Bytes <= 32 ? 32 ! : 64; using type [[__gnu__::__vector_size__(_S_VBytes)]] ! = conditional_t, long long int, _Tp>; }; #endif // _GLIBCXX_SIMD_HAVE_SSE --- 2216,2230 ---- // the following excludes bool via __is_vectorizable #if _GLIBCXX_SIMD_HAVE_SSE template ! struct __intrinsic_type<_Tp, _Bytes, enable_if_t<__is_vectorizable_v<_Tp> && _Bytes <= 64>> { static_assert(!is_same_v<_Tp, long double>, "no __intrinsic_type support for long double on x86"); ! static constexpr size_t _S_VBytes = _Bytes <= 16 ? 16 : _Bytes <= 32 ? 32 : 64; using type [[__gnu__::__vector_size__(_S_VBytes)]] ! = conditional_t, long long int, _Tp>; }; #endif // _GLIBCXX_SIMD_HAVE_SSE *************** template <> *** 2249,2263 **** struct __intrinsic_type { using type = float32x4_t; }; - #if _GLIBCXX_SIMD_HAVE_NEON_A64 template <> struct __intrinsic_type ! { using type = float64x1_t; }; template <> struct __intrinsic_type ! { using type = float64x2_t; }; #endif #define _GLIBCXX_SIMD_ARM_INTRIN(_Bits, _Np) \ template <> \ --- 2240,2260 ---- struct __intrinsic_type { using type = float32x4_t; }; template <> struct __intrinsic_type ! { ! #if _GLIBCXX_SIMD_HAVE_NEON_A64 ! using type = float64x1_t; ! #endif ! }; template <> struct __intrinsic_type ! { ! #if _GLIBCXX_SIMD_HAVE_NEON_A64 ! using type = float64x2_t; #endif + }; #define _GLIBCXX_SIMD_ARM_INTRIN(_Bits, _Np) \ template <> \ *************** _GLIBCXX_SIMD_ARM_INTRIN(64, 2); *** 2279,2294 **** #undef _GLIBCXX_SIMD_ARM_INTRIN template ! struct __intrinsic_type<_Tp, _Bytes, ! enable_if_t<__is_vectorizable_v<_Tp> && _Bytes <= 16>> { static constexpr int _SVecBytes = _Bytes <= 8 ? 8 : 16; using _Ip = __int_for_sizeof_t<_Tp>; using _Up = conditional_t< is_floating_point_v<_Tp>, _Tp, conditional_t, make_unsigned_t<_Ip>, _Ip>>; static_assert(!is_same_v<_Tp, _Up> || _SVecBytes != _Bytes, "should use explicit specialization above"); using type = typename __intrinsic_type<_Up, _SVecBytes>::type; }; #endif // _GLIBCXX_SIMD_HAVE_NEON --- 2276,2294 ---- #undef _GLIBCXX_SIMD_ARM_INTRIN template ! struct __intrinsic_type<_Tp, _Bytes, enable_if_t<__is_vectorizable_v<_Tp> && _Bytes <= 16>> { static constexpr int _SVecBytes = _Bytes <= 8 ? 8 : 16; + using _Ip = __int_for_sizeof_t<_Tp>; + using _Up = conditional_t< is_floating_point_v<_Tp>, _Tp, conditional_t, make_unsigned_t<_Ip>, _Ip>>; + static_assert(!is_same_v<_Tp, _Up> || _SVecBytes != _Bytes, "should use explicit specialization above"); + using type = typename __intrinsic_type<_Up, _SVecBytes>::type; }; #endif // _GLIBCXX_SIMD_HAVE_NEON *************** template *** 2303,2338 **** template <> \ struct __intrinsic_type_impl<_Tp> { using type = __vector _Tp; } _GLIBCXX_SIMD_PPC_INTRIN(float); _GLIBCXX_SIMD_PPC_INTRIN(double); _GLIBCXX_SIMD_PPC_INTRIN(signed char); _GLIBCXX_SIMD_PPC_INTRIN(unsigned char); _GLIBCXX_SIMD_PPC_INTRIN(signed short); _GLIBCXX_SIMD_PPC_INTRIN(unsigned short); _GLIBCXX_SIMD_PPC_INTRIN(signed int); _GLIBCXX_SIMD_PPC_INTRIN(unsigned int); _GLIBCXX_SIMD_PPC_INTRIN(signed long); _GLIBCXX_SIMD_PPC_INTRIN(unsigned long); _GLIBCXX_SIMD_PPC_INTRIN(signed long long); _GLIBCXX_SIMD_PPC_INTRIN(unsigned long long); #undef _GLIBCXX_SIMD_PPC_INTRIN template ! struct __intrinsic_type<_Tp, _Bytes, ! enable_if_t<__is_vectorizable_v<_Tp> && _Bytes <= 16>> { static constexpr bool _S_is_ldouble = is_same_v<_Tp, long double>; // allow _Tp == long double with -mlong-double-64 static_assert(!(_S_is_ldouble && sizeof(long double) > sizeof(double)), ! "no __intrinsic_type support for long double on PPC"); #ifndef __VSX__ ! static_assert(!is_same_v<_Tp, double>, ! "no __intrinsic_type support for double on PPC w/o VSX"); #endif ! using type = ! typename __intrinsic_type_impl< ! conditional_t, ! conditional_t<_S_is_ldouble, double, _Tp>, ! __int_for_sizeof_t<_Tp>>>::type; }; #endif // __ALTIVEC__ --- 2303,2376 ---- template <> \ struct __intrinsic_type_impl<_Tp> { using type = __vector _Tp; } _GLIBCXX_SIMD_PPC_INTRIN(float); + #ifdef __VSX__ _GLIBCXX_SIMD_PPC_INTRIN(double); + #endif _GLIBCXX_SIMD_PPC_INTRIN(signed char); _GLIBCXX_SIMD_PPC_INTRIN(unsigned char); _GLIBCXX_SIMD_PPC_INTRIN(signed short); _GLIBCXX_SIMD_PPC_INTRIN(unsigned short); _GLIBCXX_SIMD_PPC_INTRIN(signed int); _GLIBCXX_SIMD_PPC_INTRIN(unsigned int); + #if defined __VSX__ || __SIZEOF_LONG__ == 4 _GLIBCXX_SIMD_PPC_INTRIN(signed long); _GLIBCXX_SIMD_PPC_INTRIN(unsigned long); + #endif + #ifdef __VSX__ _GLIBCXX_SIMD_PPC_INTRIN(signed long long); _GLIBCXX_SIMD_PPC_INTRIN(unsigned long long); + #endif #undef _GLIBCXX_SIMD_PPC_INTRIN template ! struct __intrinsic_type<_Tp, _Bytes, enable_if_t<__is_vectorizable_v<_Tp> && _Bytes <= 16>> { static constexpr bool _S_is_ldouble = is_same_v<_Tp, long double>; + // allow _Tp == long double with -mlong-double-64 static_assert(!(_S_is_ldouble && sizeof(long double) > sizeof(double)), ! "no __intrinsic_type support for 128-bit floating point on PowerPC"); ! #ifndef __VSX__ ! static_assert(!(is_same_v<_Tp, double> ! || (_S_is_ldouble && sizeof(long double) == sizeof(double))), ! "no __intrinsic_type support for 64-bit floating point on PowerPC w/o VSX"); #endif ! ! static constexpr auto __element_type() ! { ! if constexpr (is_floating_point_v<_Tp>) ! { ! if constexpr (_S_is_ldouble) ! return double {}; ! else ! return _Tp {}; ! } ! else if constexpr (is_signed_v<_Tp>) ! { ! if constexpr (sizeof(_Tp) == sizeof(_SChar)) ! return _SChar {}; ! else if constexpr (sizeof(_Tp) == sizeof(short)) ! return short {}; ! else if constexpr (sizeof(_Tp) == sizeof(int)) ! return int {}; ! else if constexpr (sizeof(_Tp) == sizeof(_LLong)) ! return _LLong {}; ! } ! else ! { ! if constexpr (sizeof(_Tp) == sizeof(_UChar)) ! return _UChar {}; ! else if constexpr (sizeof(_Tp) == sizeof(_UShort)) ! return _UShort {}; ! else if constexpr (sizeof(_Tp) == sizeof(_UInt)) ! return _UInt {}; ! else if constexpr (sizeof(_Tp) == sizeof(_ULLong)) ! return _ULLong {}; ! } ! } ! ! using type = typename __intrinsic_type_impl::type; }; #endif // __ALTIVEC__ *************** template *** 2348,2369 **** static constexpr size_t _S_full_size = sizeof(_BuiltinType) * __CHAR_BIT__; _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapper ! __as_full_vector() const { return _M_data; } ! _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapper() = default; ! _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapper(_BuiltinType __k) ! : _M_data(__k) {}; ! _GLIBCXX_SIMD_INTRINSIC operator const _BuiltinType&() const { return _M_data; } ! _GLIBCXX_SIMD_INTRINSIC operator _BuiltinType&() { return _M_data; } ! _GLIBCXX_SIMD_INTRINSIC _BuiltinType __intrin() const { return _M_data; } ! _GLIBCXX_SIMD_INTRINSIC constexpr value_type operator[](size_t __i) const { return _M_data & (_BuiltinType(1) << __i); } template --- 2386,2414 ---- static constexpr size_t _S_full_size = sizeof(_BuiltinType) * __CHAR_BIT__; _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapper ! __as_full_vector() const ! { return _M_data; } ! _GLIBCXX_SIMD_INTRINSIC constexpr ! _SimdWrapper() = default; ! _GLIBCXX_SIMD_INTRINSIC constexpr ! _SimdWrapper(_BuiltinType __k) : _M_data(__k) {}; ! ! _GLIBCXX_SIMD_INTRINSIC ! operator const _BuiltinType&() const { return _M_data; } ! _GLIBCXX_SIMD_INTRINSIC ! operator _BuiltinType&() { return _M_data; } ! _GLIBCXX_SIMD_INTRINSIC _BuiltinType ! __intrin() const { return _M_data; } ! _GLIBCXX_SIMD_INTRINSIC constexpr value_type ! operator[](size_t __i) const { return _M_data & (_BuiltinType(1) << __i); } template *************** template *** 2371,2377 **** operator[](_SizeConstant<__i>) const { return _M_data & (_BuiltinType(1) << __i); } ! _GLIBCXX_SIMD_INTRINSIC constexpr void _M_set(size_t __i, value_type __x) { if (__x) _M_data |= (_BuiltinType(1) << __i); --- 2416,2423 ---- operator[](_SizeConstant<__i>) const { return _M_data & (_BuiltinType(1) << __i); } ! _GLIBCXX_SIMD_INTRINSIC constexpr void ! _M_set(size_t __i, value_type __x) { if (__x) _M_data |= (_BuiltinType(1) << __i); *************** template *** 2379,2389 **** _M_data &= ~(_BuiltinType(1) << __i); } ! _GLIBCXX_SIMD_INTRINSIC ! constexpr bool _M_is_constprop() const { return __builtin_constant_p(_M_data); } ! _GLIBCXX_SIMD_INTRINSIC constexpr bool _M_is_constprop_none_of() const { if (__builtin_constant_p(_M_data)) { --- 2425,2436 ---- _M_data &= ~(_BuiltinType(1) << __i); } ! _GLIBCXX_SIMD_INTRINSIC constexpr bool ! _M_is_constprop() const { return __builtin_constant_p(_M_data); } ! _GLIBCXX_SIMD_INTRINSIC constexpr bool ! _M_is_constprop_none_of() const { if (__builtin_constant_p(_M_data)) { *************** template *** 2395,2401 **** return false; } ! _GLIBCXX_SIMD_INTRINSIC constexpr bool _M_is_constprop_all_of() const { if (__builtin_constant_p(_M_data)) { --- 2442,2449 ---- return false; } ! _GLIBCXX_SIMD_INTRINSIC constexpr bool ! _M_is_constprop_all_of() const { if (__builtin_constant_p(_M_data)) { *************** template struct _SimdWrapperBase // no padding or no SNaNs { ! _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapperBase() = default; ! _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapperBase(_BuiltinType __init) ! : _M_data(__init) ! {} _BuiltinType _M_data; }; --- 2465,2475 ---- template struct _SimdWrapperBase // no padding or no SNaNs { ! _GLIBCXX_SIMD_INTRINSIC constexpr ! _SimdWrapperBase() = default; ! ! _GLIBCXX_SIMD_INTRINSIC constexpr ! _SimdWrapperBase(_BuiltinType __init) : _M_data(__init) {} _BuiltinType _M_data; }; *************** template *** 2429,2438 **** struct _SimdWrapperBase // with padding that needs to // never become SNaN { ! _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapperBase() : _M_data() {} ! _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapperBase(_BuiltinType __init) ! : _M_data(__init) ! {} _BuiltinType _M_data; }; --- 2478,2488 ---- struct _SimdWrapperBase // with padding that needs to // never become SNaN { ! _GLIBCXX_SIMD_INTRINSIC constexpr ! _SimdWrapperBase() : _M_data() {} ! ! _GLIBCXX_SIMD_INTRINSIC constexpr ! _SimdWrapperBase(_BuiltinType __init) : _M_data(__init) {} _BuiltinType _M_data; }; *************** template *** 2471,2494 **** __as_full_vector() const { return _M_data; } ! _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapper(initializer_list<_Tp> __init) ! : _Base(__generate_from_n_evaluations<_Width, _BuiltinType>( ! [&](auto __i) { return __init.begin()[__i.value]; })) {} ! _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapper() = default; ! _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapper(const _SimdWrapper&) ! = default; ! _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapper(_SimdWrapper&&) = default; _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapper& operator=(const _SimdWrapper&) = default; _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapper& operator=(_SimdWrapper&&) = default; template >, is_same<_V, __intrinsic_type_t<_Tp, _Width>>>>> ! _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapper(_V __x) // __vector_bitcast can convert e.g. __m128 to __vector(2) float : _Base(__vector_bitcast<_Tp, _Width>(__x)) {} --- 2521,2553 ---- __as_full_vector() const { return _M_data; } ! _GLIBCXX_SIMD_INTRINSIC constexpr ! _SimdWrapper(initializer_list<_Tp> __init) ! : _Base(__generate_from_n_evaluations<_Width, _BuiltinType>( ! [&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { ! return __init.begin()[__i.value]; ! })) {} ! _GLIBCXX_SIMD_INTRINSIC constexpr ! _SimdWrapper() = default; ! ! _GLIBCXX_SIMD_INTRINSIC constexpr ! _SimdWrapper(const _SimdWrapper&) = default; ! ! _GLIBCXX_SIMD_INTRINSIC constexpr ! _SimdWrapper(_SimdWrapper&&) = default; _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapper& operator=(const _SimdWrapper&) = default; + _GLIBCXX_SIMD_INTRINSIC constexpr _SimdWrapper& operator=(_SimdWrapper&&) = default; template >, is_same<_V, __intrinsic_type_t<_Tp, _Width>>>>> ! _GLIBCXX_SIMD_INTRINSIC constexpr ! _SimdWrapper(_V __x) // __vector_bitcast can convert e.g. __m128 to __vector(2) float : _Base(__vector_bitcast<_Tp, _Width>(__x)) {} *************** template *** 2498,2530 **** _GLIBCXX_SIMD_INTRINSIC constexpr operator _SimdTuple<_Tp, _As...>() const { ! const auto& dd = _M_data; // workaround for GCC7 ICE ! return __generate_from_n_evaluations>([&]( ! auto __i) constexpr { return dd[int(__i)]; }); } ! _GLIBCXX_SIMD_INTRINSIC constexpr operator const _BuiltinType&() const { return _M_data; } ! _GLIBCXX_SIMD_INTRINSIC constexpr operator _BuiltinType&() { return _M_data; } ! _GLIBCXX_SIMD_INTRINSIC constexpr _Tp operator[](size_t __i) const { return _M_data[__i]; } template ! _GLIBCXX_SIMD_INTRINSIC constexpr _Tp operator[](_SizeConstant<__i>) const { return _M_data[__i]; } ! _GLIBCXX_SIMD_INTRINSIC constexpr void _M_set(size_t __i, _Tp __x) ! { _M_data[__i] = __x; } _GLIBCXX_SIMD_INTRINSIC ! constexpr bool _M_is_constprop() const { return __builtin_constant_p(_M_data); } ! _GLIBCXX_SIMD_INTRINSIC constexpr bool _M_is_constprop_none_of() const { if (__builtin_constant_p(_M_data)) { --- 2557,2602 ---- _GLIBCXX_SIMD_INTRINSIC constexpr operator _SimdTuple<_Tp, _As...>() const { ! return __generate_from_n_evaluations>( ! [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA ! { return _M_data[int(__i)]; }); } ! _GLIBCXX_SIMD_INTRINSIC constexpr ! operator const _BuiltinType&() const { return _M_data; } ! _GLIBCXX_SIMD_INTRINSIC constexpr ! operator _BuiltinType&() { return _M_data; } ! _GLIBCXX_SIMD_INTRINSIC constexpr _Tp ! operator[](size_t __i) const { return _M_data[__i]; } template ! _GLIBCXX_SIMD_INTRINSIC constexpr _Tp ! operator[](_SizeConstant<__i>) const { return _M_data[__i]; } ! _GLIBCXX_SIMD_INTRINSIC constexpr void ! _M_set(size_t __i, _Tp __x) ! { ! if (__builtin_is_constant_evaluated()) ! _M_data = __generate_from_n_evaluations<_Width, _BuiltinType>([&](auto __j) { ! return __j == __i ? __x : _M_data[__j()]; ! }); ! else ! _M_data[__i] = __x; ! } _GLIBCXX_SIMD_INTRINSIC ! constexpr bool ! _M_is_constprop() const { return __builtin_constant_p(_M_data); } ! _GLIBCXX_SIMD_INTRINSIC constexpr bool ! _M_is_constprop_none_of() const { if (__builtin_constant_p(_M_data)) { *************** template *** 2539,2550 **** else __execute_n_times<_Width>( [&](auto __i) { __r &= _M_data[__i.value] == _Tp(); }); ! return __r; } return false; } ! _GLIBCXX_SIMD_INTRINSIC constexpr bool _M_is_constprop_all_of() const { if (__builtin_constant_p(_M_data)) { --- 2611,2624 ---- else __execute_n_times<_Width>( [&](auto __i) { __r &= _M_data[__i.value] == _Tp(); }); ! if (__builtin_constant_p(__r)) ! return __r; } return false; } ! _GLIBCXX_SIMD_INTRINSIC constexpr bool ! _M_is_constprop_all_of() const { if (__builtin_constant_p(_M_data)) { *************** template *** 2559,2565 **** else __execute_n_times<_Width>( [&](auto __i) { __r &= _M_data[__i.value] == ~_Tp(); }); ! return __r; } return false; } --- 2633,2640 ---- else __execute_n_times<_Width>( [&](auto __i) { __r &= _M_data[__i.value] == ~_Tp(); }); ! if (__builtin_constant_p(__r)) ! return __r; } return false; } *************** template *** 2675,2680 **** --- 2750,2781 ---- } // namespace simd_abi // traits {{{1 + template + struct is_simd_flag_type + : false_type + {}; + + template <> + struct is_simd_flag_type + : true_type + {}; + + template <> + struct is_simd_flag_type + : true_type + {}; + + template + struct is_simd_flag_type> + : __bool_constant<(_Np > 0) and __has_single_bit(_Np)> + {}; + + template + inline constexpr bool is_simd_flag_type_v = is_simd_flag_type<_Tp>::value; + + template >> + using _IsSimdFlagType = _Tp; + // is_abi_tag {{{2 template > struct is_abi_tag : false_type {}; *************** template ! struct rebind_simd< ! _Tp, simd<_Up, _Abi>, ! void_t, _Abi>>> ! { ! using type ! = simd<_Tp, simd_abi::deduce_t<_Tp, simd_size_v<_Up, _Abi>, _Abi>>; ! }; template ! struct rebind_simd< ! _Tp, simd_mask<_Up, _Abi>, ! void_t, _Abi>>> ! { ! using type ! = simd_mask<_Tp, simd_abi::deduce_t<_Tp, simd_size_v<_Up, _Abi>, _Abi>>; ! }; template using rebind_simd_t = typename rebind_simd<_Tp, _V>::type; --- 2842,2855 ---- struct rebind_simd; template ! struct rebind_simd<_Tp, simd<_Up, _Abi>, ! void_t, _Abi>>> ! { using type = simd<_Tp, simd_abi::deduce_t<_Tp, simd_size_v<_Up, _Abi>, _Abi>>; }; template ! struct rebind_simd<_Tp, simd_mask<_Up, _Abi>, ! void_t, _Abi>>> ! { using type = simd_mask<_Tp, simd_abi::deduce_t<_Tp, simd_size_v<_Up, _Abi>, _Abi>>; }; template using rebind_simd_t = typename rebind_simd<_Tp, _V>::type; *************** template ! struct resize_simd<_Np, simd<_Tp, _Abi>, ! void_t>> { using type = simd<_Tp, simd_abi::deduce_t<_Tp, _Np, _Abi>>; }; template ! struct resize_simd<_Np, simd_mask<_Tp, _Abi>, ! void_t>> { using type = simd_mask<_Tp, simd_abi::deduce_t<_Tp, _Np, _Abi>>; }; template --- 2859,2869 ---- struct resize_simd; template ! struct resize_simd<_Np, simd<_Tp, _Abi>, void_t>> { using type = simd<_Tp, simd_abi::deduce_t<_Tp, _Np, _Abi>>; }; template ! struct resize_simd<_Np, simd_mask<_Tp, _Abi>, void_t>> { using type = simd_mask<_Tp, simd_abi::deduce_t<_Tp, _Np, _Abi>>; }; template *************** template *** 2821,2833 **** // casts [simd.casts] {{{1 // static_simd_cast {{{2 ! template , ! typename = void> struct __static_simd_cast_return_type; template ! struct __static_simd_cast_return_type, _Up, _Ap, false, ! void> : __static_simd_cast_return_type, _Up, _Ap> {}; template --- 2912,2922 ---- // casts [simd.casts] {{{1 // static_simd_cast {{{2 ! template , typename = void> struct __static_simd_cast_return_type; template ! struct __static_simd_cast_return_type, _Up, _Ap, false, void> : __static_simd_cast_return_type, _Up, _Ap> {}; template *************** template ) return __x; + else if (__builtin_is_constant_evaluated()) + return _Tp([&](auto __i) constexpr { + return __i < simd_size_v<_Up, _Ap> ? __x[__i] : _Up(); + }); else if constexpr (simd_size_v<_Up, _Ap> == 1) { _Tp __r{}; *************** template *** 3004,3024 **** { return __x; } template ! _GLIBCXX_SIMD_INTRINSIC auto to_fixed_size(const simd<_Tp, _Ap>& __x) { ! return simd<_Tp, simd_abi::fixed_size>>([&__x]( ! auto __i) constexpr { return __x[__i]; }); } template ! _GLIBCXX_SIMD_INTRINSIC auto to_fixed_size(const simd_mask<_Tp, _Ap>& __x) { ! constexpr int _Np = simd_mask<_Tp, _Ap>::size(); ! fixed_size_simd_mask<_Tp, _Np> __r; ! __execute_n_times<_Np>([&](auto __i) constexpr { __r[__i] = __x[__i]; }); ! return __r; } // to_native {{{2 --- 3097,3115 ---- { return __x; } template ! _GLIBCXX_SIMD_INTRINSIC fixed_size_simd<_Tp, simd_size_v<_Tp, _Ap>> to_fixed_size(const simd<_Tp, _Ap>& __x) { ! using _Rp = fixed_size_simd<_Tp, simd_size_v<_Tp, _Ap>>; ! return _Rp([&__x](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { return __x[__i]; }); } template ! _GLIBCXX_SIMD_INTRINSIC fixed_size_simd_mask<_Tp, simd_size_v<_Tp, _Ap>> to_fixed_size(const simd_mask<_Tp, _Ap>& __x) { ! return {__private_init, ! [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { return __x[__i]; }}; } // to_native {{{2 *************** template *** 3037,3043 **** enable_if_t<(_Np == native_simd_mask<_Tp>::size()), native_simd_mask<_Tp>> to_native(const fixed_size_simd_mask<_Tp, _Np>& __x) { ! return native_simd_mask<_Tp>([&](auto __i) constexpr { return __x[__i]; }); } // to_compatible {{{2 --- 3128,3136 ---- enable_if_t<(_Np == native_simd_mask<_Tp>::size()), native_simd_mask<_Tp>> to_native(const fixed_size_simd_mask<_Tp, _Np>& __x) { ! return native_simd_mask<_Tp>( ! __private_init, ! [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { return __x[__i]; }); } // to_compatible {{{2 *************** template *** 3054,3060 **** _GLIBCXX_SIMD_INTRINSIC enable_if_t<(_Np == simd_mask<_Tp>::size()), simd_mask<_Tp>> to_compatible(const simd_mask<_Tp, simd_abi::fixed_size<_Np>>& __x) ! { return simd_mask<_Tp>([&](auto __i) constexpr { return __x[__i]; }); } // masked assignment [simd_mask.where] {{{1 --- 3147,3156 ---- _GLIBCXX_SIMD_INTRINSIC enable_if_t<(_Np == simd_mask<_Tp>::size()), simd_mask<_Tp>> to_compatible(const simd_mask<_Tp, simd_abi::fixed_size<_Np>>& __x) ! { ! return simd_mask<_Tp>( ! [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { return __x[__i]; }); ! } // masked assignment [simd_mask.where] {{{1 *************** template *** 3087,3098 **** public: const_where_expression(const const_where_expression&) = delete; const_where_expression& operator=(const const_where_expression&) = delete; ! _GLIBCXX_SIMD_INTRINSIC const_where_expression(const _M& __kk, const _Tp& dd) ! : _M_k(__kk), _M_value(const_cast<_Tp&>(dd)) {} ! _GLIBCXX_SIMD_INTRINSIC _V operator-() const&& { return {__private_init, --- 3183,3196 ---- public: const_where_expression(const const_where_expression&) = delete; + const_where_expression& operator=(const const_where_expression&) = delete; ! _GLIBCXX_SIMD_INTRINSIC constexpr ! const_where_expression(const _M& __kk, const _Tp& dd) ! : _M_k(__kk), _M_value(const_cast<_Tp&>(dd)) {} ! _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _V operator-() const&& { return {__private_init, *************** template *** 3101,3108 **** } template ! [[nodiscard]] _GLIBCXX_SIMD_INTRINSIC _V ! copy_from(const _LoadStorePtr<_Up, value_type>* __mem, _Flags) const&& { return {__private_init, _Impl::_S_masked_load(__data(_M_value), __data(_M_k), --- 3199,3206 ---- } template ! [[nodiscard]] _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _V ! copy_from(const _LoadStorePtr<_Up, value_type>* __mem, _IsSimdFlagType<_Flags>) const&& { return {__private_init, _Impl::_S_masked_load(__data(_M_value), __data(_M_k), *************** template *** 3110,3117 **** } template ! _GLIBCXX_SIMD_INTRINSIC void ! copy_to(_LoadStorePtr<_Up, value_type>* __mem, _Flags) const&& { _Impl::_S_masked_store(__data(_M_value), _Flags::template _S_apply<_V>(__mem), --- 3208,3215 ---- } template ! _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR void ! copy_to(_LoadStorePtr<_Up, value_type>* __mem, _IsSimdFlagType<_Flags>) const&& { _Impl::_S_masked_store(__data(_M_value), _Flags::template _S_apply<_V>(__mem), *************** template *** 3131,3138 **** struct _Wrapper { using value_type = _V; }; protected: ! using value_type = ! typename conditional_t, _Wrapper, _V>::value_type; _GLIBCXX_SIMD_INTRINSIC friend const _M& __get_mask(const const_where_expression& __x) --- 3229,3236 ---- struct _Wrapper { using value_type = _V; }; protected: ! using value_type ! = typename conditional_t, _Wrapper, _V>::value_type; _GLIBCXX_SIMD_INTRINSIC friend const _M& __get_mask(const const_where_expression& __x) *************** template *** 3149,3168 **** const_where_expression(const const_where_expression&) = delete; const_where_expression& operator=(const const_where_expression&) = delete; ! _GLIBCXX_SIMD_INTRINSIC const_where_expression(const bool __kk, const _Tp& dd) ! : _M_k(__kk), _M_value(const_cast<_Tp&>(dd)) {} ! _GLIBCXX_SIMD_INTRINSIC _V operator-() const&& { return _M_k ? -_M_value : _M_value; } template ! [[nodiscard]] _GLIBCXX_SIMD_INTRINSIC _V ! copy_from(const _LoadStorePtr<_Up, value_type>* __mem, _Flags) const&& { return _M_k ? static_cast<_V>(__mem[0]) : _M_value; } template ! _GLIBCXX_SIMD_INTRINSIC void ! copy_to(_LoadStorePtr<_Up, value_type>* __mem, _Flags) const&& { if (_M_k) __mem[0] = _M_value; --- 3247,3268 ---- const_where_expression(const const_where_expression&) = delete; const_where_expression& operator=(const const_where_expression&) = delete; ! _GLIBCXX_SIMD_INTRINSIC constexpr ! const_where_expression(const bool __kk, const _Tp& dd) ! : _M_k(__kk), _M_value(const_cast<_Tp&>(dd)) {} ! _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _V ! operator-() const&& { return _M_k ? -_M_value : _M_value; } template ! [[nodiscard]] _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _V ! copy_from(const _LoadStorePtr<_Up, value_type>* __mem, _IsSimdFlagType<_Flags>) const&& { return _M_k ? static_cast<_V>(__mem[0]) : _M_value; } template ! _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR void ! copy_to(_LoadStorePtr<_Up, value_type>* __mem, _IsSimdFlagType<_Flags>) const&& { if (_M_k) __mem[0] = _M_value; *************** template *** 3187,3204 **** is_same::value, ""); static_assert(_M::size() == _Tp::size(), ""); ! _GLIBCXX_SIMD_INTRINSIC friend _Tp& __get_lvalue(where_expression& __x) { return __x._M_value; } public: where_expression(const where_expression&) = delete; where_expression& operator=(const where_expression&) = delete; ! _GLIBCXX_SIMD_INTRINSIC where_expression(const _M& __kk, _Tp& dd) ! : const_where_expression<_M, _Tp>(__kk, dd) {} template ! _GLIBCXX_SIMD_INTRINSIC void operator=(_Up&& __x) && { _Impl::_S_masked_assign(__data(_M_k), __data(_M_value), __to_value_type_or_member_type<_Tp>( --- 3287,3307 ---- is_same::value, ""); static_assert(_M::size() == _Tp::size(), ""); ! _GLIBCXX_SIMD_INTRINSIC friend constexpr _Tp& ! __get_lvalue(where_expression& __x) { return __x._M_value; } public: where_expression(const where_expression&) = delete; where_expression& operator=(const where_expression&) = delete; ! _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR ! where_expression(const _M& __kk, _Tp& dd) ! : const_where_expression<_M, _Tp>(__kk, dd) {} template ! _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR void ! operator=(_Up&& __x) && { _Impl::_S_masked_assign(__data(_M_k), __data(_M_value), __to_value_type_or_member_type<_Tp>( *************** template *** 3207,3220 **** #define _GLIBCXX_SIMD_OP_(__op, __name) \ template \ ! _GLIBCXX_SIMD_INTRINSIC void operator __op##=(_Up&& __x)&& \ { \ _Impl::template _S_masked_cassign( \ __data(_M_k), __data(_M_value), \ __to_value_type_or_member_type<_Tp>(static_cast<_Up&&>(__x)), \ ! [](auto __impl, auto __lhs, auto __rhs) constexpr { \ ! return __impl.__name(__lhs, __rhs); \ ! }); \ } \ static_assert(true) _GLIBCXX_SIMD_OP_(+, _S_plus); --- 3310,3324 ---- #define _GLIBCXX_SIMD_OP_(__op, __name) \ template \ ! _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR void \ ! operator __op##=(_Up&& __x)&& \ { \ _Impl::template _S_masked_cassign( \ __data(_M_k), __data(_M_value), \ __to_value_type_or_member_type<_Tp>(static_cast<_Up&&>(__x)), \ ! [](auto __impl, auto __lhs, auto __rhs) \ ! constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA \ ! { return __impl.__name(__lhs, __rhs); }); \ } \ static_assert(true) _GLIBCXX_SIMD_OP_(+, _S_plus); *************** template *** 3229,3276 **** _GLIBCXX_SIMD_OP_(>>, _S_shift_right); #undef _GLIBCXX_SIMD_OP_ ! _GLIBCXX_SIMD_INTRINSIC void operator++() && { __data(_M_value) ! = _Impl::template _S_masked_unary<__increment>(__data(_M_k), ! __data(_M_value)); } ! _GLIBCXX_SIMD_INTRINSIC void operator++(int) && { __data(_M_value) ! = _Impl::template _S_masked_unary<__increment>(__data(_M_k), ! __data(_M_value)); } ! _GLIBCXX_SIMD_INTRINSIC void operator--() && { __data(_M_value) ! = _Impl::template _S_masked_unary<__decrement>(__data(_M_k), ! __data(_M_value)); } ! _GLIBCXX_SIMD_INTRINSIC void operator--(int) && { __data(_M_value) ! = _Impl::template _S_masked_unary<__decrement>(__data(_M_k), ! __data(_M_value)); } // intentionally hides const_where_expression::copy_from template ! _GLIBCXX_SIMD_INTRINSIC void ! copy_from(const _LoadStorePtr<_Up, value_type>* __mem, _Flags) && { ! __data(_M_value) ! = _Impl::_S_masked_load(__data(_M_value), __data(_M_k), ! _Flags::template _S_apply<_Tp>(__mem)); } }; // where_expression {{{2 template ! class where_expression : public const_where_expression { using _M = bool; using typename const_where_expression<_M, _Tp>::value_type; --- 3333,3380 ---- _GLIBCXX_SIMD_OP_(>>, _S_shift_right); #undef _GLIBCXX_SIMD_OP_ ! _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR void ! operator++() && { __data(_M_value) ! = _Impl::template _S_masked_unary<__increment>(__data(_M_k), __data(_M_value)); } ! _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR void ! operator++(int) && { __data(_M_value) ! = _Impl::template _S_masked_unary<__increment>(__data(_M_k), __data(_M_value)); } ! _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR void ! operator--() && { __data(_M_value) ! = _Impl::template _S_masked_unary<__decrement>(__data(_M_k), __data(_M_value)); } ! _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR void ! operator--(int) && { __data(_M_value) ! = _Impl::template _S_masked_unary<__decrement>(__data(_M_k), __data(_M_value)); } // intentionally hides const_where_expression::copy_from template ! _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR void ! copy_from(const _LoadStorePtr<_Up, value_type>* __mem, _IsSimdFlagType<_Flags>) && { ! __data(_M_value) = _Impl::_S_masked_load(__data(_M_value), __data(_M_k), ! _Flags::template _S_apply<_Tp>(__mem)); } }; // where_expression {{{2 template ! class where_expression ! : public const_where_expression { using _M = bool; using typename const_where_expression<_M, _Tp>::value_type; *************** template *** 3281,3292 **** where_expression(const where_expression&) = delete; where_expression& operator=(const where_expression&) = delete; ! _GLIBCXX_SIMD_INTRINSIC where_expression(const _M& __kk, _Tp& dd) ! : const_where_expression<_M, _Tp>(__kk, dd) {} #define _GLIBCXX_SIMD_OP_(__op) \ template \ ! _GLIBCXX_SIMD_INTRINSIC void operator __op(_Up&& __x)&& \ { if (_M_k) _M_value __op static_cast<_Up&&>(__x); } _GLIBCXX_SIMD_OP_(=) --- 3385,3398 ---- where_expression(const where_expression&) = delete; where_expression& operator=(const where_expression&) = delete; ! _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR ! where_expression(const _M& __kk, _Tp& dd) ! : const_where_expression<_M, _Tp>(__kk, dd) {} #define _GLIBCXX_SIMD_OP_(__op) \ template \ ! _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR void \ ! operator __op(_Up&& __x)&& \ { if (_M_k) _M_value __op static_cast<_Up&&>(__x); } _GLIBCXX_SIMD_OP_(=) *************** template *** 3302,3368 **** _GLIBCXX_SIMD_OP_(>>=) #undef _GLIBCXX_SIMD_OP_ ! _GLIBCXX_SIMD_INTRINSIC void operator++() && { if (_M_k) ++_M_value; } ! _GLIBCXX_SIMD_INTRINSIC void operator++(int) && { if (_M_k) ++_M_value; } ! _GLIBCXX_SIMD_INTRINSIC void operator--() && { if (_M_k) --_M_value; } ! _GLIBCXX_SIMD_INTRINSIC void operator--(int) && { if (_M_k) --_M_value; } // intentionally hides const_where_expression::copy_from template ! _GLIBCXX_SIMD_INTRINSIC void ! copy_from(const _LoadStorePtr<_Up, value_type>* __mem, _Flags) && { if (_M_k) _M_value = __mem[0]; } }; // where {{{1 template ! _GLIBCXX_SIMD_INTRINSIC where_expression, simd<_Tp, _Ap>> where(const typename simd<_Tp, _Ap>::mask_type& __k, simd<_Tp, _Ap>& __value) { return {__k, __value}; } template ! _GLIBCXX_SIMD_INTRINSIC ! const_where_expression, simd<_Tp, _Ap>> ! where(const typename simd<_Tp, _Ap>::mask_type& __k, ! const simd<_Tp, _Ap>& __value) { return {__k, __value}; } template ! _GLIBCXX_SIMD_INTRINSIC ! where_expression, simd_mask<_Tp, _Ap>> ! where(const remove_const_t>& __k, ! simd_mask<_Tp, _Ap>& __value) { return {__k, __value}; } template ! _GLIBCXX_SIMD_INTRINSIC ! const_where_expression, simd_mask<_Tp, _Ap>> ! where(const remove_const_t>& __k, ! const simd_mask<_Tp, _Ap>& __value) { return {__k, __value}; } template ! _GLIBCXX_SIMD_INTRINSIC where_expression where(_ExactBool __k, _Tp& __value) { return {__k, __value}; } template ! _GLIBCXX_SIMD_INTRINSIC const_where_expression where(_ExactBool __k, const _Tp& __value) { return {__k, __value}; } ! template ! void where(bool __k, simd<_Tp, _Ap>& __value) = delete; ! template ! void where(bool __k, const simd<_Tp, _Ap>& __value) = delete; // proposed mask iterations {{{1 namespace __proposed { --- 3408,3478 ---- _GLIBCXX_SIMD_OP_(>>=) #undef _GLIBCXX_SIMD_OP_ ! _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR void ! operator++() && { if (_M_k) ++_M_value; } ! _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR void ! operator++(int) && { if (_M_k) ++_M_value; } ! _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR void ! operator--() && { if (_M_k) --_M_value; } ! _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR void ! operator--(int) && { if (_M_k) --_M_value; } // intentionally hides const_where_expression::copy_from template ! _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR void ! copy_from(const _LoadStorePtr<_Up, value_type>* __mem, _IsSimdFlagType<_Flags>) && { if (_M_k) _M_value = __mem[0]; } }; // where {{{1 template ! _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR ! where_expression, simd<_Tp, _Ap>> where(const typename simd<_Tp, _Ap>::mask_type& __k, simd<_Tp, _Ap>& __value) { return {__k, __value}; } template ! _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR ! const_where_expression, simd<_Tp, _Ap>> ! where(const typename simd<_Tp, _Ap>::mask_type& __k, const simd<_Tp, _Ap>& __value) { return {__k, __value}; } template ! _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR ! where_expression, simd_mask<_Tp, _Ap>> ! where(const remove_const_t>& __k, simd_mask<_Tp, _Ap>& __value) { return {__k, __value}; } template ! _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR ! const_where_expression, simd_mask<_Tp, _Ap>> ! where(const remove_const_t>& __k, const simd_mask<_Tp, _Ap>& __value) { return {__k, __value}; } template ! _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR where_expression where(_ExactBool __k, _Tp& __value) { return {__k, __value}; } template ! _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR const_where_expression where(_ExactBool __k, const _Tp& __value) { return {__k, __value}; } ! template ! _GLIBCXX_SIMD_CONSTEXPR void ! where(bool __k, simd<_Tp, _Ap>& __value) = delete; ! template ! _GLIBCXX_SIMD_CONSTEXPR void ! where(bool __k, const simd<_Tp, _Ap>& __value) = delete; // proposed mask iterations {{{1 namespace __proposed { *************** template *** 3379,3388 **** size_t __mask; size_t __bit; ! _GLIBCXX_SIMD_INTRINSIC void __next_bit() { __bit = __builtin_ctzl(__mask); } ! _GLIBCXX_SIMD_INTRINSIC void __reset_lsb() { // 01100100 - 1 = 01100011 __mask &= (__mask - 1); --- 3489,3500 ---- size_t __mask; size_t __bit; ! _GLIBCXX_SIMD_INTRINSIC void ! __next_bit() { __bit = __builtin_ctzl(__mask); } ! _GLIBCXX_SIMD_INTRINSIC void ! __reset_lsb() { // 01100100 - 1 = 01100011 __mask &= (__mask - 1); *************** template *** 3394,3413 **** iterator(const iterator&) = default; iterator(iterator&&) = default; ! _GLIBCXX_SIMD_ALWAYS_INLINE size_t operator->() const { return __bit; } ! _GLIBCXX_SIMD_ALWAYS_INLINE size_t operator*() const { return __bit; } ! _GLIBCXX_SIMD_ALWAYS_INLINE iterator& operator++() { __reset_lsb(); __next_bit(); return *this; } ! _GLIBCXX_SIMD_ALWAYS_INLINE iterator operator++(int) { iterator __tmp = *this; __reset_lsb(); --- 3506,3529 ---- iterator(const iterator&) = default; iterator(iterator&&) = default; ! _GLIBCXX_SIMD_ALWAYS_INLINE size_t ! operator->() const { return __bit; } ! _GLIBCXX_SIMD_ALWAYS_INLINE size_t ! operator*() const { return __bit; } ! _GLIBCXX_SIMD_ALWAYS_INLINE iterator& ! operator++() { __reset_lsb(); __next_bit(); return *this; } ! _GLIBCXX_SIMD_ALWAYS_INLINE iterator ! operator++(int) { iterator __tmp = *this; __reset_lsb(); *************** template *** 3415,3431 **** return __tmp; } ! _GLIBCXX_SIMD_ALWAYS_INLINE bool operator==(const iterator& __rhs) const { return __mask == __rhs.__mask; } ! _GLIBCXX_SIMD_ALWAYS_INLINE bool operator!=(const iterator& __rhs) const { return __mask != __rhs.__mask; } }; ! iterator begin() const { return __bits.to_ullong(); } ! iterator end() const { return 0; } }; --- 3531,3551 ---- return __tmp; } ! _GLIBCXX_SIMD_ALWAYS_INLINE bool ! operator==(const iterator& __rhs) const { return __mask == __rhs.__mask; } ! _GLIBCXX_SIMD_ALWAYS_INLINE bool ! operator!=(const iterator& __rhs) const { return __mask != __rhs.__mask; } }; ! iterator ! begin() const { return __bits.to_ullong(); } ! iterator ! end() const { return 0; } }; *************** template *** 3440,3454 **** // reductions [simd.reductions] {{{1 template > _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _Tp ! reduce(const simd<_Tp, _Abi>& __v, ! _BinaryOperation __binary_op = _BinaryOperation()) { return _Abi::_SimdImpl::_S_reduce(__v, __binary_op); } template > _GLIBCXX_SIMD_INTRINSIC typename _V::value_type reduce(const const_where_expression<_M, _V>& __x, ! typename _V::value_type __identity_element, ! _BinaryOperation __binary_op) { if (__builtin_expect(none_of(__get_mask(__x)), false)) return __identity_element; --- 3560,3572 ---- // reductions [simd.reductions] {{{1 template > _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _Tp ! reduce(const simd<_Tp, _Abi>& __v, _BinaryOperation __binary_op = _BinaryOperation()) { return _Abi::_SimdImpl::_S_reduce(__v, __binary_op); } template > _GLIBCXX_SIMD_INTRINSIC typename _V::value_type reduce(const const_where_expression<_M, _V>& __x, ! typename _V::value_type __identity_element, _BinaryOperation __binary_op) { if (__builtin_expect(none_of(__get_mask(__x)), false)) return __identity_element; *************** template *** 3487,3502 **** template _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _Tp hmin(const simd<_Tp, _Abi>& __v) noexcept ! { ! return _Abi::_SimdImpl::_S_reduce(__v, __detail::_Minimum()); ! } template _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _Tp hmax(const simd<_Tp, _Abi>& __v) noexcept ! { ! return _Abi::_SimdImpl::_S_reduce(__v, __detail::_Maximum()); ! } template _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR --- 3605,3616 ---- template _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _Tp hmin(const simd<_Tp, _Abi>& __v) noexcept ! { return _Abi::_SimdImpl::_S_reduce(__v, __detail::_Minimum()); } template _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR _Tp hmax(const simd<_Tp, _Abi>& __v) noexcept ! { return _Abi::_SimdImpl::_S_reduce(__v, __detail::_Maximum()); } template _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR *************** template *** 3564,3571 **** template _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR simd<_Tp, _Ap> ! clamp(const simd<_Tp, _Ap>& __v, const simd<_Tp, _Ap>& __lo, ! const simd<_Tp, _Ap>& __hi) { using _Impl = typename _Ap::_SimdImpl; return {__private_init, --- 3678,3684 ---- template _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_SIMD_CONSTEXPR simd<_Tp, _Ap> ! clamp(const simd<_Tp, _Ap>& __v, const simd<_Tp, _Ap>& __lo, const simd<_Tp, _Ap>& __hi) { using _Impl = typename _Ap::_SimdImpl; return {__private_init, *************** template ! _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_CONST _SimdWrapper<_Tp, _Np / _Total * _Combine> __extract_part(const _SimdWrapper<_Tp, _Np> __x); ! template ! _GLIBCXX_SIMD_INTRINSIC auto __extract_part(const _SimdTuple<_Tp, _A0, _As...>& __x); // }}} --- 3695,3706 ---- // __extract_part {{{ template ! _GLIBCXX_SIMD_INTRINSIC _GLIBCXX_CONST constexpr _SimdWrapper<_Tp, _Np / _Total * _Combine> __extract_part(const _SimdWrapper<_Tp, _Np> __x); ! template ! _GLIBCXX_SIMD_INTRINSIC constexpr auto __extract_part(const _SimdTuple<_Tp, _A0, _As...>& __x); // }}} *************** template *** 3597,3603 **** struct _SizeList { template ! static constexpr size_t _S_at(_SizeConstant<_I> = {}) { if constexpr (_I == 0) return _V0; --- 3709,3716 ---- struct _SizeList { template ! static constexpr size_t ! _S_at(_SizeConstant<_I> = {}) { if constexpr (_I == 0) return _V0; *************** template *** 3606,3612 **** } template ! static constexpr auto _S_before(_SizeConstant<_I> = {}) { if constexpr (_I == 0) return _SizeConstant<0>(); --- 3719,3726 ---- } template ! static constexpr auto ! _S_before(_SizeConstant<_I> = {}) { if constexpr (_I == 0) return _SizeConstant<0>(); *************** template *** 3616,3622 **** } template ! static constexpr auto _S_pop_front(_SizeConstant<_Np> = {}) { if constexpr (_Np == 0) return _SizeList(); --- 3730,3737 ---- } template ! static constexpr auto ! _S_pop_front(_SizeConstant<_Np> = {}) { if constexpr (_Np == 0) return _SizeList(); *************** template (simd) {{{ template / _V::size()> ! enable_if_t == Parts * _V::size() ! && is_simd_v<_V>, array<_V, Parts>> split(const simd& __x) { using _Tp = typename _V::value_type; ! if constexpr (Parts == 1) { return {simd_cast<_V>(__x)}; } else if (__x._M_is_constprop()) { ! return __generate_from_n_evaluations>([&]( ! auto __i) constexpr { ! return _V([&](auto __j) constexpr { ! return __x[__i * _V::size() + __j]; ! }); ! }); } else if constexpr ( __is_fixed_size_abi_v<_Ap> --- 3814,3836 ---- // split(simd) {{{ template / _V::size()> ! enable_if_t == _Parts * _V::size() ! && is_simd_v<_V>, array<_V, _Parts>> split(const simd& __x) { using _Tp = typename _V::value_type; ! if constexpr (_Parts == 1) { return {simd_cast<_V>(__x)}; } else if (__x._M_is_constprop()) { ! return __generate_from_n_evaluations<_Parts, array<_V, _Parts>>( ! [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { ! return _V([&](auto __j) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA ! { return __x[__i * _V::size() + __j]; }); ! }); } else if constexpr ( __is_fixed_size_abi_v<_Ap> *************** template * const __element_ptr = reinterpret_cast*>(&__data(__x)); ! return __generate_from_n_evaluations>([&]( ! auto __i) constexpr { ! return _V(__element_ptr + __i * _V::size(), vector_aligned); ! }); #else const auto& __xx = __data(__x); ! return __generate_from_n_evaluations>([&]( ! auto __i) constexpr { ! [[maybe_unused]] constexpr size_t __offset ! = decltype(__i)::value * _V::size(); ! return _V([&](auto __j) constexpr { ! constexpr _SizeConstant<__j + __offset> __k; ! return __xx[__k]; ! }); ! }); #endif } else if constexpr (is_same_v) { // normally memcpy should work here as well ! return __generate_from_n_evaluations>([&]( ! auto __i) constexpr { return __x[__i]; }); } else { ! return __generate_from_n_evaluations>([&]( ! auto __i) constexpr { ! if constexpr (__is_fixed_size_abi_v) ! return _V([&](auto __j) constexpr { ! return __x[__i * _V::size() + __j]; ! }); ! else ! return _V(__private_init, ! __extract_part(__data(__x))); ! }); } } // }}} // split(simd_mask) {{{ template / _V::size()> enable_if_t && simd_size_v == _Parts * _V::size(), array<_V, _Parts>> split(const simd_mask& __x) --- 3843,3889 ---- #ifdef _GLIBCXX_SIMD_USE_ALIASING_LOADS const __may_alias<_Tp>* const __element_ptr = reinterpret_cast*>(&__data(__x)); ! return __generate_from_n_evaluations<_Parts, array<_V, _Parts>>( ! [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA ! { return _V(__element_ptr + __i * _V::size(), vector_aligned); }); #else const auto& __xx = __data(__x); ! return __generate_from_n_evaluations<_Parts, array<_V, _Parts>>( ! [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { ! [[maybe_unused]] constexpr size_t __offset ! = decltype(__i)::value * _V::size(); ! return _V([&](auto __j) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { ! constexpr _SizeConstant<__j + __offset> __k; ! return __xx[__k]; ! }); ! }); #endif } else if constexpr (is_same_v) { // normally memcpy should work here as well ! return __generate_from_n_evaluations<_Parts, array<_V, _Parts>>( ! [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { return __x[__i]; }); } else { ! return __generate_from_n_evaluations<_Parts, array<_V, _Parts>>( ! [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { ! if constexpr (__is_fixed_size_abi_v) ! return _V([&](auto __j) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { ! return __x[__i * _V::size() + __j]; ! }); ! else ! return _V(__private_init, ! __extract_part(__data(__x))); ! }); } } // }}} // split(simd_mask) {{{ template / _V::size()> enable_if_t && simd_size_v == _Parts * _V::size(), array<_V, _Parts>> split(const simd_mask& __x) *************** template >([&]( ! auto __i) constexpr { ! constexpr size_t __offset = __i * _V::size(); ! return _V(__bitset_init, (__bits >> __offset).to_ullong()); ! }); } else { ! return __generate_from_n_evaluations<_Parts, array<_V, _Parts>>([&]( ! auto __i) constexpr { ! constexpr size_t __offset = __i * _V::size(); ! return _V( ! __private_init, [&](auto __j) constexpr { ! return __x[__j + __offset]; ! }); ! }); } } --- 3899,3920 ---- else if constexpr (_V::size() <= __CHAR_BIT__ * sizeof(_ULLong)) { const bitset __bits = __x.__to_bitset(); ! return __generate_from_n_evaluations<_Parts, array<_V, _Parts>>( ! [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { ! constexpr size_t __offset = __i * _V::size(); ! return _V(__bitset_init, (__bits >> __offset).to_ullong()); ! }); } else { ! return __generate_from_n_evaluations<_Parts, array<_V, _Parts>>( ! [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { ! constexpr size_t __offset = __i * _V::size(); ! return _V(__private_init, ! [&](auto __j) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { ! return __x[__j + __offset]; ! }); ! }); } } *************** template ; if (__x._M_is_constprop()) ! return __generate_from_n_evaluations([&]( ! auto __i) constexpr { ! using _Vi = __deduced_simd<_Tp, _SL::_S_at(__i)>; ! constexpr size_t __offset = _SL::_S_before(__i); ! return _Vi([&](auto __j) constexpr { return __x[__offset + __j]; }); ! }); else if constexpr (_Np == _N0) { static_assert(sizeof...(_Sizes) == 1); --- 3932,3945 ---- using _V = __deduced_simd<_Tp, _N0>; if (__x._M_is_constprop()) ! return __generate_from_n_evaluations( ! [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { ! using _Vi = __deduced_simd<_Tp, _SL::_S_at(__i)>; ! constexpr size_t __offset = _SL::_S_before(__i); ! return _Vi([&](auto __j) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { ! return __x[__offset + __j]; ! }); ! }); else if constexpr (_Np == _N0) { static_assert(sizeof...(_Sizes) == 1); *************** template * const __element_ptr = reinterpret_cast*>(&__x); ! return __generate_from_n_evaluations([&]( ! auto __i) constexpr { ! using _Vi = __deduced_simd<_Tp, _SL::_S_at(__i)>; ! constexpr size_t __offset = _SL::_S_before(__i); ! constexpr size_t __base_align = alignof(simd<_Tp, _Ap>); ! constexpr size_t __a ! = __base_align - ((__offset * sizeof(_Tp)) % __base_align); ! constexpr size_t __b = ((__a - 1) & __a) ^ __a; ! constexpr size_t __alignment = __b == 0 ? __a : __b; ! return _Vi(__element_ptr + __offset, overaligned<__alignment>); ! }); #else ! return __generate_from_n_evaluations([&]( ! auto __i) constexpr { ! using _Vi = __deduced_simd<_Tp, _SL::_S_at(__i)>; ! const auto& __xx = __data(__x); ! using _Offset = decltype(_SL::_S_before(__i)); ! return _Vi([&](auto __j) constexpr { ! constexpr _SizeConstant<_Offset::value + __j> __k; ! return __xx[__k]; ! }); ! }); #endif } --- 4006,4033 ---- #ifdef _GLIBCXX_SIMD_USE_ALIASING_LOADS const __may_alias<_Tp>* const __element_ptr = reinterpret_cast*>(&__x); ! return __generate_from_n_evaluations( ! [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { ! using _Vi = __deduced_simd<_Tp, _SL::_S_at(__i)>; ! constexpr size_t __offset = _SL::_S_before(__i); ! constexpr size_t __base_align = alignof(simd<_Tp, _Ap>); ! constexpr size_t __a ! = __base_align - ((__offset * sizeof(_Tp)) % __base_align); ! constexpr size_t __b = ((__a - 1) & __a) ^ __a; ! constexpr size_t __alignment = __b == 0 ? __a : __b; ! return _Vi(__element_ptr + __offset, overaligned<__alignment>); ! }); #else ! return __generate_from_n_evaluations( ! [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { ! using _Vi = __deduced_simd<_Tp, _SL::_S_at(__i)>; ! const auto& __xx = __data(__x); ! using _Offset = decltype(_SL::_S_before(__i)); ! return _Vi([&](auto __j) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { ! constexpr _SizeConstant<_Offset::value + __j> __k; ! return __xx[__k]; ! }); ! }); #endif } *************** template _GLIBCXX_SIMD_INTRINSIC void ! __store_pack_of_simd(char* __mem, const simd<_Tp, _A0>& __x0, ! const simd<_Tp, _As>&... __xs) { constexpr size_t __n_bytes = sizeof(_Tp) * simd_size_v<_Tp, _A0>; __builtin_memcpy(__mem, &__data(__x0), __n_bytes); --- 4048,4054 ---- // __store_pack_of_simd {{{ template _GLIBCXX_SIMD_INTRINSIC void ! __store_pack_of_simd(char* __mem, const simd<_Tp, _A0>& __x0, const simd<_Tp, _As>&... __xs) { constexpr size_t __n_bytes = sizeof(_Tp) * simd_size_v<_Tp, _A0>; __builtin_memcpy(__mem, &__data(__x0), __n_bytes); *************** template *** 3955,3962 **** return simd_cast<_Rp>(__xs...); else if ((... && __xs._M_is_constprop())) return simd<_Tp, ! simd_abi::deduce_t<_Tp, (simd_size_v<_Tp, _As> + ...)>>([&]( ! auto __i) constexpr { return __subscript_in_pack<__i>(__xs...); }); else { _Rp __r{}; --- 4068,4076 ---- return simd_cast<_Rp>(__xs...); else if ((... && __xs._M_is_constprop())) return simd<_Tp, ! simd_abi::deduce_t<_Tp, (simd_size_v<_Tp, _As> + ...)>>( ! [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA ! { return __subscript_in_pack<__i>(__xs...); }); else { _Rp __r{}; *************** template * _Np> concat(const array, _Np>& __x) { ! return __call_with_subscripts<_Np>(__x, [](const auto&... __xs) { ! return concat(__xs...); ! }); } // }}} --- 4086,4095 ---- _GLIBCXX_SIMD_CONSTEXPR __deduced_simd<_Tp, simd_size_v<_Tp, _Abi> * _Np> concat(const array, _Np>& __x) { ! return __call_with_subscripts<_Np>( ! __x, [](const auto&... __xs) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { ! return concat(__xs...); ! }); } // }}} *************** template ) return _M_obj; --- 4104,4111 ---- int _M_index; _Up& _M_obj; ! _GLIBCXX_SIMD_INTRINSIC constexpr _ValueType ! _M_read() const noexcept { if constexpr (is_arithmetic_v<_Up>) return _M_obj; *************** template ! _GLIBCXX_SIMD_INTRINSIC constexpr void _M_write(_Tp&& __x) const { _Accessor::_S_set(_M_obj, _M_index, static_cast<_Tp&&>(__x)); } public: --- 4114,4121 ---- } template ! _GLIBCXX_SIMD_INTRINSIC constexpr void ! _M_write(_Tp&& __x) const { _Accessor::_S_set(_M_obj, _M_index, static_cast<_Tp&&>(__x)); } public: *************** template , value_type>> ! _GLIBCXX_SIMD_INTRINSIC constexpr _SmartReference operator=(_Tp&& __x) && { _M_write(static_cast<_Tp&&>(__x)); return {_M_obj, _M_index}; } ! #define _GLIBCXX_SIMD_OP_(__op) \ ! template () __op declval<_Tp>()), \ ! typename = _ValuePreservingOrInt<__remove_cvref_t<_Tp>, _TT>, \ ! typename = _ValuePreservingOrInt<_TT, value_type>> \ ! _GLIBCXX_SIMD_INTRINSIC constexpr _SmartReference \ ! operator __op##=(_Tp&& __x) && \ ! { \ ! const value_type& __lhs = _M_read(); \ ! _M_write(__lhs __op __x); \ ! return {_M_obj, _M_index}; \ } _GLIBCXX_SIMD_ALL_ARITHMETICS(_GLIBCXX_SIMD_OP_); _GLIBCXX_SIMD_ALL_SHIFTS(_GLIBCXX_SIMD_OP_); --- 4125,4156 ---- using value_type = _ValueType; ! _GLIBCXX_SIMD_INTRINSIC ! _SmartReference(const _SmartReference&) = delete; ! _GLIBCXX_SIMD_INTRINSIC constexpr ! operator value_type() const noexcept { return _M_read(); } ! template , value_type>> ! _GLIBCXX_SIMD_INTRINSIC constexpr _SmartReference ! operator=(_Tp&& __x) && { _M_write(static_cast<_Tp&&>(__x)); return {_M_obj, _M_index}; } ! #define _GLIBCXX_SIMD_OP_(__op) \ ! template () __op declval<_Tp>()), \ ! typename = _ValuePreservingOrInt<__remove_cvref_t<_Tp>, _TT>, \ ! typename = _ValuePreservingOrInt<_TT, value_type>> \ ! _GLIBCXX_SIMD_INTRINSIC constexpr _SmartReference \ ! operator __op##=(_Tp&& __x) && \ ! { \ ! const value_type& __lhs = _M_read(); \ ! _M_write(__lhs __op __x); \ ! return {_M_obj, _M_index}; \ } _GLIBCXX_SIMD_ALL_ARITHMETICS(_GLIBCXX_SIMD_OP_); _GLIBCXX_SIMD_ALL_SHIFTS(_GLIBCXX_SIMD_OP_); *************** template &>())> ! _GLIBCXX_SIMD_INTRINSIC constexpr _SmartReference operator++() && { value_type __x = _M_read(); _M_write(++__x); --- 4158,4166 ---- #undef _GLIBCXX_SIMD_OP_ template &>())> ! _GLIBCXX_SIMD_INTRINSIC constexpr _SmartReference ! operator++() && { value_type __x = _M_read(); _M_write(++__x); *************** template &>()++)> ! _GLIBCXX_SIMD_INTRINSIC constexpr value_type operator++(int) && { const value_type __r = _M_read(); value_type __x = __r; --- 4168,4176 ---- } template &>()++)> ! _GLIBCXX_SIMD_INTRINSIC constexpr value_type ! operator++(int) && { const value_type __r = _M_read(); value_type __x = __r; *************** template &>())> ! _GLIBCXX_SIMD_INTRINSIC constexpr _SmartReference operator--() && { value_type __x = _M_read(); _M_write(--__x); --- 4179,4187 ---- } template &>())> ! _GLIBCXX_SIMD_INTRINSIC constexpr _SmartReference ! operator--() && { value_type __x = _M_read(); _M_write(--__x); *************** template &>()--)> ! _GLIBCXX_SIMD_INTRINSIC constexpr value_type operator--(int) && { const value_type __r = _M_read(); value_type __x = __r; --- 4189,4197 ---- } template &>()--)> ! _GLIBCXX_SIMD_INTRINSIC constexpr value_type ! operator--(int) && { const value_type __r = _M_read(); value_type __x = __r; *************** template *** 4150,4156 **** template