diff -Nrcpad gcc-11.4.0/ChangeLog gcc-11.5.0/ChangeLog *** gcc-11.4.0/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/INSTALL/binaries.html gcc-11.5.0/INSTALL/binaries.html *** gcc-11.4.0/INSTALL/binaries.html Mon May 29 08:49:50 2023 --- gcc-11.5.0/INSTALL/binaries.html Fri Jul 19 05:53:54 2024 *************** *** 1,8 **** - - - + + + Installing GCC: Binaries *************** You have freedom to copy and modify this *** 29,52 **** - - --- 29,58 ---- *************** ul.no-bullet {list-style: none} *** 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 --- 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 diff -Nrcpad gcc-11.4.0/INSTALL/build.html gcc-11.5.0/INSTALL/build.html *** gcc-11.4.0/INSTALL/build.html Mon May 29 08:49:50 2023 --- gcc-11.5.0/INSTALL/build.html Fri Jul 19 05:53:54 2024 *************** *** 1,8 **** - - - + + + Installing GCC: Building *************** You have freedom to copy and modify this *** 29,52 **** - - --- 29,58 ---- *************** ul.no-bullet {list-style: none} *** 76,82 **** !

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

Now that GCC is configured, you are ready to build the compiler and runtime libraries. *************** documentation, you need version 4.7 or l *** 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 --- 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 *************** following example. This will save rough *** 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 --- 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 *************** configure option --with-build-conf *** 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 --- 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 *************** supports the linker plugin (e.g. GNU ld *** 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 --- 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 *************** the GCC middle end and back end are in < *** 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 --- 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 *************** info into identical object files. In ad *** 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 --- 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 *************** additional potential problems, but at a *** 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 --- 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 *************** during stage3, repeating the compilation *** 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 --- 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 *************** in stage2 are used in stage3 host progra *** 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 --- 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 *************** must be used along with bootstrap- *** 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 --- 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 *************** assumes that the host supports Intel CET *** 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. --- 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. *************** systems that are running Linux kernel ve *** 331,338 ****

!
!

Building a cross compiler

When building a cross compiler, it is not generally possible to do a --- 337,343 ---- !

Building a cross compiler

When building a cross compiler, it is not generally possible to do a *************** configuring GCC. Put them in the direct *** 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.

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

*************** alternatives for crt0.o, fo *** 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 --- 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 *************** your machine will result in fewer and sh *** 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 --- 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 *************** the code quality may be much worse. *** 470,476 **** !


--- 472,478 ---- !
diff -Nrcpad gcc-11.4.0/INSTALL/configure.html gcc-11.5.0/INSTALL/configure.html *** gcc-11.4.0/INSTALL/configure.html Mon May 29 08:49:49 2023 --- gcc-11.5.0/INSTALL/configure.html Fri Jul 19 05:53:53 2024 *************** *** 1,8 **** - - - + + + Installing GCC: Configuration *************** You have freedom to copy and modify this *** 29,52 **** - - --- 29,58 ---- *************** ul.no-bullet {list-style: none} *** 75,82 **** ! !

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

Like most GNU software, GCC must be configured before it can be built. This document describes the recommended configuration procedure *************** scripts may fail. *** 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 --- 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 *************** not replace the default version string, *** 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. --- 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. *************** if you determine that they are not bugs *** 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. --- 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. *************** 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 --- 176,183 ----
! !

Target specification

!

Options specification

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

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. *** 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 --- 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 *************** beneath a user’s home directory tr *** 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 --- 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 *************** are derived by an automatic conversion p *** 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 --- 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 *************** See “Spec Files” in the main *** 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 --- 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 *************** programs to install in bindir *** 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 --- 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 *************** resulting binary would be installed as *** 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 --- 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 *************** install part of GCC. Perhaps they make *** 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 --- 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 *************** as much as possible. It is most commonl *** 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. --- 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. *************** 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. --- 458,464 ---- 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. *** 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 --- 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 *************** whether you use the GNU assembler. On a *** 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: --- 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: *************** assemblers installed and want to choose *** 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, --- 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, *************** More documentation about multiarch can b *** 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 --- 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 *************** still be built (see --disable-libv *** 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 --- 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 *************** predefined set of them. *** 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.

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

*************** sysv, aix. *** 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 --- 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 *************** default set of libraries is selected bas *** 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 --- 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 *************** profile. The union of these options is *** 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 --- 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 *************** given, then a default set of multilibs i *** 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 - --- 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 - *************** specialized subset. *** 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 --- 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 *************** and only the default run-time library wi *** 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. --- 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. *************** for riscv*-*-elf*. The accepted values *** 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 --- 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 *************** currently we support medlow and medany. *** 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++. --- 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++. *************** available for the system. In this case, *** 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 --- 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 *************** the assembler supports TLS but the C lib *** 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, --- 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, *************** PowerPC, and SPARC. It is mandatory for *** 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 --- 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 *************** 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.

--- 933,969 ---- 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. *** 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.

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

*************** the legacy encoding, as when neither of *** 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 --- 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 *************** pure 32-bit environment and can hold tru *** 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 --- 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 *************** only way to ensure compatible code is ge *** 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 --- 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 *************** only available on systems with GNU libc. *** 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 --- 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 *************** will try to guess whether the .ini *** 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 --- 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 *************** compilers concurrently. If the argument *** 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 --- 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 *************** this. Note that you need a recent versi *** 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 --- 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 *************** Starting from GCC 4.2, to do this you ha *** 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, --- 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, *************** is not a requirement that the users of s *** 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 --- 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 *************** parallel. The default is ‘y *** 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, --- 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, *************** where this is called the "SONAME&qu *** 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 --- 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 *************** Command reference. *** 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 --- 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 *************** Command reference. *** 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 --- 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 *************** this option is still experimental and no *** 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, --- 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, *************** exception is jit language, *** 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 --- 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 *************** stage1-bubble all-target, or run *** 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 --- 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 *************** intended for the developers of GCC, and *** 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. --- 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. *************** Currently, this option only affects spar *** 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 --- 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 *************** configured with this option, its effects *** 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 --- 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 *************** 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 --- 1458,1473 ---- 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 *** 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 --- 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 *************** expensive and the ‘df *** 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 --- 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 *************** with checking for stage1 enabled, you ca *** 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 --- 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 *************** enable optimization. When coverage is e *** 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 --- 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 *************** ignores catgets and instead *** 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 --- 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 *************** is removed entirely in the next major re *** 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 --- 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 *************** format is default on i386 and x86_64 sys *** 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. --- 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. *************** When neither of these configure options *** 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 --- 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 *************** the compiler using the --with-syst *** 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 --- 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 *************** variable (LD_LIBRARY_PATH o *** 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 --- 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 *************** include and lib options directly. *** 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 --- 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 *************** value, then the default is ‘ *** 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 --- 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 *************** support --build-id option, *** 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’ --- 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’ *************** is present and non-empty in the environm *** 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’ --- 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’ *************** or TERM_URLS is present and *** 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 --- 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 *************** GNU/Linux (‘i686-pc-linux-gn *** 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 --- 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 *************** version 2.20 or GNU ld starting with ver *** 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 --- 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 *************** environments. Enabled by default, and m *** 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 --- 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 *************** However, such configurations may not wor *** 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 --- 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 *************** is a shorthand for *** 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 --- 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 *************** otherwise. In this case, the target lib *** 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.

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

      *************** information in object. *** 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). --- 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). *************** disabled. *** 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 --- 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 *************** option then the compiler will search tha *** 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 --- 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 *************** option then the compiler will search tha *** 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 --- 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 *************** pre-exist, the dir argument m *** 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 --- 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 *************** directory. If the directory list is omi *** 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 --- 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 *************** omitted from libgcc.a on th *** 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 --- 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 *************** RTEMS configurations, which currently us *** 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: --- 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: *************** that ‘long double&rsq *** 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). --- 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). *************** The GCC default is ‘tristate *** 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 --- 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 *************** from elsewhere. This option sets *** 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 --- 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 *************** tools. *** 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 --- 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 *************** system or work around a bug in a test. *** 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.

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

    *************** scripts. *** 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 --- 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 *************** additional runtime library is skipped wh *** 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 --- 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 *************** default locations. *** 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 --- 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 *************** libphobos with -fno-release *** 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 --- 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 *************** When the option is specified without a < *** 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 --- 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 diff -Nrcpad gcc-11.4.0/INSTALL/download.html gcc-11.5.0/INSTALL/download.html *** gcc-11.4.0/INSTALL/download.html Mon May 29 08:49:49 2023 --- gcc-11.5.0/INSTALL/download.html Fri Jul 19 05:53:53 2024 *************** *** 1,8 **** - - - + + + Downloading GCC *************** You have freedom to copy and modify this *** 29,52 **** - - --- 29,58 ---- *************** ul.no-bullet {list-style: none} *** 74,81 **** ! !

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

    GCC is distributed via git and via HTTPS as tarballs compressed with gzip or bzip2. diff -Nrcpad gcc-11.4.0/INSTALL/finalinstall.html gcc-11.5.0/INSTALL/finalinstall.html *** gcc-11.4.0/INSTALL/finalinstall.html Mon May 29 08:49:50 2023 --- gcc-11.5.0/INSTALL/finalinstall.html Fri Jul 19 05:53:54 2024 *************** *** 1,8 **** - - - + + + Installing GCC: Final installation *************** You have freedom to copy and modify this *** 29,52 **** - - --- 29,58 ---- *************** ul.no-bullet {list-style: none} *** 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 --- 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 *************** binutils, including assembler and linker *** 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 --- 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 *************** using the DESTDIR feature. *** 133,140 ****

    You can install stripped programs and libraries with

    !
    !
    make install-strip
      

    If you are bootstrapping a released version of GCC then please --- 139,146 ----

    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.4.0/INSTALL/gfdl.html gcc-11.5.0/INSTALL/gfdl.html *** gcc-11.4.0/INSTALL/gfdl.html Mon May 29 08:49:51 2023 --- gcc-11.5.0/INSTALL/gfdl.html Fri Jul 19 05:53:54 2024 *************** *** 1,8 **** - - - + + + Installing GCC: GNU Free Documentation License *************** You have freedom to copy and modify this *** 29,52 **** - - --- 29,58 ---- *************** ul.no-bullet {list-style: none} *** 84,90 ****

    Installing GCC: GNU Free Documentation License

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

    Installing GCC: GNU Free Documentation License

    !
    Version 1.3, 3 November 2008
    *************** provided the MMC is eligible for relicen *** 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;
    --- 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;
    *************** license notices just after the title pag
    *** 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.
      
    --- 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.
      
    *************** to permit their use in free software. *** 558,564 ****

    Return to the GCC Installation page

    !
    --- 564,570 ----

    Return to the GCC Installation page

    !
    diff -Nrcpad gcc-11.4.0/INSTALL/index.html gcc-11.5.0/INSTALL/index.html *** gcc-11.4.0/INSTALL/index.html Mon May 29 08:49:48 2023 --- gcc-11.5.0/INSTALL/index.html Fri Jul 19 05:53:53 2024 *************** *** 1,8 **** - - - + + + Installing GCC *************** You have freedom to copy and modify this *** 29,52 **** - - --- 29,58 ---- *************** Free Documentation License”. *** 143,148 **** --- 149,155 ---- + diff -Nrcpad gcc-11.4.0/INSTALL/old.html gcc-11.5.0/INSTALL/old.html *** gcc-11.4.0/INSTALL/old.html Mon May 29 08:49:50 2023 --- gcc-11.5.0/INSTALL/old.html Fri Jul 19 05:53:54 2024 *************** *** 1,8 **** - - - + + + Installing GCC: Old documentation *************** You have freedom to copy and modify this *** 29,52 **** - - --- 29,58 ---- *************** the same as the host machine. *** 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 --- 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 *************** section before proceeding any further wi *** 151,158 ****

    !

    Configurations Supported by GCC

    !

    Here are the possible CPU types:

    --- 157,164 ----

    !

    Configurations Supported by GCC

    !

    Here are the possible CPU types:

    diff -Nrcpad gcc-11.4.0/INSTALL/prerequisites.html gcc-11.5.0/INSTALL/prerequisites.html *** gcc-11.4.0/INSTALL/prerequisites.html Mon May 29 08:49:49 2023 --- gcc-11.5.0/INSTALL/prerequisites.html Fri Jul 19 05:53:53 2024 *************** *** 1,8 **** - - - + + + Prerequisites for GCC *************** You have freedom to copy and modify this *** 29,52 **** - - --- 29,58 ---- *************** ul.no-bullet {list-style: none} *** 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 --- 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 *************** bootstrapping the compiler with such ear *** 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 --- 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 *************** name of the package depends on your dist *** 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). --- 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). *************** by verifying that ‘gnatls -v *** 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 --- 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 *************** environment to your “good” s *** 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. --- 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. *************** tables. *** 215,220 **** --- 222,230 ----

    Used by automake.

    +

    If available, enables parallel testing of ‘libgomp’ in case that + flock is not available. +

    *************** support libraries then using those packa *** 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 --- 238,244 ---- 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 *** 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 --- 250,256 ---- 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 *** 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 --- 263,269 ---- 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 *** 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/. --- 276,282 ---- 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 *** 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. --- 287,293 ---- 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. --- 296,312 ----

    ! !

    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 *** 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. --- 322,349 ---- 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. *** 343,349 **** Makefile.tpl and Makefile.def.

    !
    Flex version 2.5.4 (or later)

    Necessary when modifying *.l files.

    --- 354,360 ---- 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 *** 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. --- 363,369 ---- 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 *** 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. --- 377,408 ---- 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.4.0/INSTALL/specific.html gcc-11.5.0/INSTALL/specific.html *** gcc-11.4.0/INSTALL/specific.html Mon May 29 08:49:49 2023 --- gcc-11.5.0/INSTALL/specific.html Fri Jul 19 05:53:53 2024 *************** *** 1,8 **** - - - + + + Host/Target specific installation notes for GCC *************** You have freedom to copy and modify this *** 29,52 **** - - --- 29,58 ---- *************** ul.no-bullet {list-style: none} *** 80,90 **** ! ! ! ! !

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

    Please read this document carefully before installing the GNU Compiler Collection on your machine. *************** information have to. *** 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. --- 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. *************** protections by default. This mechanism *** 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 --- 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 *************** section, please read all other sections *** 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 --- 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 *************** or ‘arc700’. *** 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 --- 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 *************** can also be obtained from: *** 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

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

*************** See “Blackfin Options” in th *** 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.

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

*************** GCC for building a CR16 elf cross-c *** 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.

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

*************** for a list of CRIS-specific options. *** 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 --- 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 *************** compilation package DJGPP, which include *** 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. --- 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. *************** properly on FreeBSD prior to the FreeBSD *** 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. --- 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. *************** first three arguments in function calls *** 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 --- 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 *************** a list of the predefines used with each *** 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.

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

*************** problems in using C++ on this target. H *** 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.

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

*************** versioning with --disable-symvers< *** 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.

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

*************** possible you have a hardware problem. F *** 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 --- 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 *************** to configure with --without-gnu-ld *** 582,588 **** guarantee use of Solaris ld.


!

ia64-*-linux

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

--- 610,617 ---- 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 *** 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. --- 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. *************** removed and the system libunwind library *** 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.

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

*************** with an earlier release of GCC is recomm *** 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
  
--- 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
  
*************** with a version of GCC built for an earli *** 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
  
--- 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
  
*************** APAR IY26685 (AIX 4.3) or APAR IY25528 ( *** 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 --- 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 *************** multilib libstdc++.a instal *** 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 --- 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 *************** 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’ --- 808,845 ---- 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 *** 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 --- 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 *************** the use of break, use the --with-d *** 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.

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

*************** in a minimal run-time environment by def *** 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 --- 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 *************** the GCC sources. *** 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, --- 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, *************** cctools-590.36 package referenced from *** 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. --- 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. *************** you can install a pre-built GCC to boots *** 1052,1059 **** ‘libstdc++-v3’. We therefore recommend using the following initial sequence of commands

!
!
% CONFIG_SHELL=/bin/ksh
  % export CONFIG_SHELL
  
--- 1119,1126 ---- ‘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. *** 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. --- 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. *************** of the exact versions of these libraries *** 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 --- 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 *************** target triplet must be specified as the *** 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. --- 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. *************** library or the MPC library, the canonica *** 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. --- 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. *************** that file to add the module to your kern *** 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 --- 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 *************** as 64-bit code, configure with --t *** 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 --- 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 *************** downloaded files include a customized co *** 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 --- 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 *************** respects, this target is the same as the *** 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 --- 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 *************** the Win32 subsystem that provides a subs *** 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 --- 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 *************** be inactive. See

*-*-cygwin

Ports of GCC are included with the Cygwin environment.

--- 1410,1417 ----

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 *** 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 --- 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 *************** about GCC on such systems (which may no *** 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 --- 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 diff -Nrcpad gcc-11.4.0/INSTALL/test.html gcc-11.5.0/INSTALL/test.html *** gcc-11.4.0/INSTALL/test.html Mon May 29 08:49:50 2023 --- gcc-11.5.0/INSTALL/test.html Fri Jul 19 05:53:54 2024 *************** *** 1,8 **** - - - + + + Installing GCC: Testing *************** You have freedom to copy and modify this *** 29,52 **** - - --- 29,58 ---- *************** ul.no-bullet {list-style: none} *** 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 --- 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 *************** installed are not in the PATH/usr/local):

!
!
TCL_LIBRARY = /usr/local/share/tcl8.0
  DEJAGNULIBS = /usr/local/share/dejagnu
  
--- 115,122 ---- 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.) *** 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 --- 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 *************** might emit some harmless messages resemb *** 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 --- 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 *************** just run ‘make check& *** 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 --- 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 *************** as a series of whitespace-delimited glob *** 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"
  
--- 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"
  
*************** To get a list of the possible *.ex *** 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 --- 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 *************** output of ‘make check *** 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 --- 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 *************** slashes separate options. *** 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 \
--- 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 \
*************** target, as if you had specified all poss
*** 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’. --- 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’. *************** parallel by having the shell perform the *** 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 --- 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 *************** supported in the gcc subdir *** 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 --- 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 *************** over whether or not a test is expected t *** 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
  
--- 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
  
*************** messages may be automatically processed. *** 303,309 **** !
--- 306,312 ---- !
diff -Nrcpad gcc-11.4.0/LAST_UPDATED gcc-11.5.0/LAST_UPDATED *** gcc-11.4.0/LAST_UPDATED Mon May 29 08:49:48 2023 --- gcc-11.5.0/LAST_UPDATED Fri Jul 19 05:53:52 2024 *************** *** 1 **** ! Obtained from git: releases/gcc-11.4.0 revision ff4bf326d03e750a8d4905ea49425fe7d15a04b8 --- 1 ---- ! Obtained from git: releases/gcc-11.5.0 revision 5cc4c42a0d4de08715c2eef8715ad5b2e92a23b6 diff -Nrcpad gcc-11.4.0/MD5SUMS gcc-11.5.0/MD5SUMS *** gcc-11.4.0/MD5SUMS Mon May 29 09:09:03 2023 --- gcc-11.5.0/MD5SUMS Fri Jul 19 06:12:41 2024 *************** *** 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 --- 1,5 ---- ! # This file contains the MD5 checksums of the files in the ! # gcc-11.5.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,46 **** 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 --- 17,46 ---- fe60d87048567d4fe8c8a0ed2448bcc8 COPYING.RUNTIME d32239bcb673463ab874e80d47fae504 COPYING3 6a6a8e020838b23406c81b19c1d46df6 COPYING3.LIB ! 02c0131a61bf543fc3dabbffea41ab2a 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 ! fd8b5bd76f7e5da280ae91a2891a8291 INSTALL/prerequisites.html ! 343ae5d41e1449e92582e99bbbd039d1 INSTALL/specific.html ! 7d9e6352d151d352657bd02f0e09c3ef INSTALL/test.html ! e18081496c7419e1765538c1314dd705 LAST_UPDATED 863d0fffeb06d7a45df38d7836e342bd MAINTAINERS 8a667df3c1ab240343b2f6a644f92970 Makefile.def 468d396660b8969b6f51738c94ad90ef Makefile.in 87a68bd7215bdcd229ae57f7f8c3622f Makefile.tpl ! 4c652405fd3fd89241b62b4311ff9aad NEWS 80d26bc3b1ad4f6969a96a24c9181bf5 README a657821f65bab77f4fbf3a75cdee6da9 ar-lib ! d7ced75b4608cf7db7f7587025d2a6ef c++tools/ChangeLog 436118acd883073ecd4bbbc8e56f8e5c c++tools/Makefile.in edf805e559bf9ecb62db313d2e6edb47 c++tools/config.h.in ccd3498e6b247dfe4e65793a88a27296 c++tools/configure *************** f11b68d46f7c108116f0f010090c5a62 c++too *** 53,59 **** c64564b7c7563dae5ebe016f340c9cd9 config.guess 040359150cf11493f973a46d8a25b06b config.rpath d320a9a1a5eb63901563ae5adf268433 config.sub ! 0e7985fe9286abad010861e1a6473db6 config/ChangeLog 0fcd4badfe2a2191778bdf5ab94aa40c config/acinclude.m4 2ea0edfde0ce5ce69b49317a5650f048 config/acx.m4 6b030f5cf640bdd401ea739f54a667f8 config/asmcfi.m4 --- 53,59 ---- c64564b7c7563dae5ebe016f340c9cd9 config.guess 040359150cf11493f973a46d8a25b06b config.rpath d320a9a1a5eb63901563ae5adf268433 config.sub ! 92e1849dd372fe26f6362c29b070839b config/ChangeLog 0fcd4badfe2a2191778bdf5ab94aa40c config/acinclude.m4 2ea0edfde0ce5ce69b49317a5650f048 config/acx.m4 6b030f5cf640bdd401ea739f54a667f8 config/asmcfi.m4 *************** e2dc6b4fd62b77bff96b7951ef74f78f config *** 156,162 **** 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 --- 156,162 ---- 0163b672c888aaf1c8ad3e867a0ec9f1 config/zlib.m4 fc86d469e83d79fd74b5f41bd1834a0c configure dee2062eecdaa1396a97737e94a6a755 configure.ac ! e7b389d7ee9b6e35119027e4cea4ac8c 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 ! f27dbe1d4fb0a171d84218ac09648bb7 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 ! d8b5b566ea084e1c25e7e8ae36142d62 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 ! a4af345aec55374f8cc816f58293c009 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 ! 870a1f169d8f6bba0155e659b41a6b43 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 ! 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 --- 294,300 ---- e2829fc4af4f433a6a328a62d5ce8066 contrib/reghunt/examples/reg-watch afd863c2ec84c906e20f9b9787b1f0fe contrib/reghunt/examples/reg-watch.awk 8955535523d4b5f48006bcb851ba9b4b contrib/reghunt/examples/testall ! 7befc288fbad48da23eeee716f9a87e1 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 ! b7e9606922f7df093ed38585d009ed8e fixincludes/ChangeLog 6de190723745dc3f75080144dfa2215e fixincludes/Makefile.in b6e3f4950abc6e254b467063381f6473 fixincludes/README 455903ad4ff71fa5c5340ef7ae41a0e6 fixincludes/README-fixinc --- 334,340 ---- 57440d4c6da7b6438ebfa203135f381a contrib/vimrc da7aeedeb5a86ee6f5982e559a2d6dcc contrib/warn_summary 8b59f0d0a2dcdced14765c514fbad719 depcomp ! 7a643d61a790a81f9d53fcc30582dfbf 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 ! 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 --- 347,359 ---- a316c9d3351e61998fa688dceaf610a3 fixincludes/fixinc.in 1582ffd94ecc91318eebfb3b81e0bcb1 fixincludes/fixincl.c adf245e3714f799eafba40af16be8eb5 fixincludes/fixincl.tpl ! 6610f7053b2607e499c15ccb9de3b2b9 fixincludes/fixincl.x 545875b4fe1c26bc3e1befc75b34e9f5 fixincludes/fixlib.c 620c770139fc32c75b975b614d3156e8 fixincludes/fixlib.h 5b2c1fd3ef9d44fb6beb1a0d45ddd533 fixincludes/fixopts.c ed1415e9dbc8f421fd9288bde0d90ad1 fixincludes/fixtests.c 51e915676df084b64297d3c4fb0d9c18 fixincludes/genfixes ! 0a984d5c49529d1680270871a6a47071 fixincludes/inclhack.def dd5ae70d9f725bcaf2a15212782db49a fixincludes/mkfixinc.sh 516608ac1550577d47f48809bb512629 fixincludes/mkheaders.in 3aa0563cd682ee61ecd9eb6eea0b0bce fixincludes/procopen.c *************** e1bd28539aceeab13a3028da02f8c4ae fixinc *** 403,409 **** 8ac97a3367b9a99503c5b21430993cd4 fixincludes/tests/base/mach-o/dyld.h dbbbc9ead412bbd125f56bc509994066 fixincludes/tests/base/mach-o/swap.h c48dea510c587eea0b229def965ef77a fixincludes/tests/base/malloc.h ! 72c7a983f178e7690e3642c6e8408d67 fixincludes/tests/base/math.h d2cbc665e9046f8acb42c1271592be47 fixincludes/tests/base/net/if.h 98099ff70c675f84c19b58da050f3712 fixincludes/tests/base/net/if_arp.h a911f5fbb127353024e77149fcf90596 fixincludes/tests/base/netdnet/dnetdb.h --- 403,409 ---- 8ac97a3367b9a99503c5b21430993cd4 fixincludes/tests/base/mach-o/dyld.h dbbbc9ead412bbd125f56bc509994066 fixincludes/tests/base/mach-o/swap.h c48dea510c587eea0b229def965ef77a fixincludes/tests/base/malloc.h ! 6ca3225914b66247556b8fc60f711079 fixincludes/tests/base/math.h d2cbc665e9046f8acb42c1271592be47 fixincludes/tests/base/net/if.h 98099ff70c675f84c19b58da050f3712 fixincludes/tests/base/net/if_arp.h a911f5fbb127353024e77149fcf90596 fixincludes/tests/base/netdnet/dnetdb.h *************** a5e817d35ded04a0fb03999b50c0e89e fixinc *** 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 --- 476,487 ---- 955462b555900ecd3934223c64e21fa7 fixincludes/tests/base/types/vxTypesBase.h 8baab8698bb83c6b90ef4091c00ddc1e fixincludes/tests/base/unistd.h cdc9afb0404ea932194e623e80f3443f gcc/ABOUT-GCC-NLS ! f0f835c5ea232229409faf1130bfffe8 gcc/BASE-VER 59530bdf33659b29e73d4adb9f9f6552 gcc/COPYING a916467b91076e631dd8edb7424769c7 gcc/COPYING.LIB d32239bcb673463ab874e80d47fae504 gcc/COPYING3 6a6a8e020838b23406c81b19c1d46df6 gcc/COPYING3.LIB ! d4e3febb976e4a97aa7cd1c5a71f632a gcc/ChangeLog a3b63c675afa7a655cc2bfa8a907af79 gcc/ChangeLog-1997 d9a88529352a010253c2e8fb1ed6023b gcc/ChangeLog-1998 240f08f81cb4699e8b49347db38233db gcc/ChangeLog-1999 *************** fb3fadb88e1d2b3b640cfaaa5ff11780 gcc/Ch *** 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 --- 514,520 ---- 3eb07e0b2e542409bf73d359f7f65609 gcc/ChangeLog.ptr e13638e26743ba41e6011b76cc00d9a9 gcc/ChangeLog.tree-ssa 739ab47f6425bcea1d05e4fc0542de54 gcc/ChangeLog.tuples ! e48e84ddfa482e606d816471b9769ac6 gcc/DATESTAMP d41d8cd98f00b204e9800998ecf8427e gcc/DEV-PHASE eb92e1ff5e982ca07e173e0eb286d243 gcc/FSFChangeLog 30e1e33411566388b3164558482dc5e6 gcc/FSFChangeLog.10 *************** ec6799501b2eb2923d5de6a66169dbd2 gcc/ON *** 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 --- 525,531 ---- a3349a2ff19906d526e15f8845deb002 gcc/README.Portability 7a09ff48173d234174dd04f94f3d495c gcc/acinclude.m4 6526979dd900a0b58b7691b478a91fec gcc/aclocal.m4 ! 9427bbc3018fd907ef9cb789b4d3ae8c gcc/ada/ChangeLog 683be0b07dc4f64f118fd5e8ae9cb30d gcc/ada/ChangeLog-2001 7aff25efb203be4136b8776cdc812956 gcc/ada/ChangeLog-2002 cd2379152000f40157d349018fb9364d gcc/ada/ChangeLog-2003 *************** a2d962cd2c4d8e5a92692154284b38ff gcc/ad *** 704,716 **** 9fc10f38bd720c619ada102df74ef01c gcc/ada/exp_ch2.ads b4911c9eaadfa8edbca97226db2cacd8 gcc/ada/exp_ch3.adb ed23c980ddc4646e547e4d9d797e30f2 gcc/ada/exp_ch3.ads ! b7c6851b08712a100cead380559a90ee gcc/ada/exp_ch4.adb 050a84d226682ff6b0cf73e569d48769 gcc/ada/exp_ch4.ads e23176144fd3113efb017afecfc68a90 gcc/ada/exp_ch5.adb 7bba8e3eda393994835a35015e9fa337 gcc/ada/exp_ch5.ads 66b526434a346e60579c80c31719f229 gcc/ada/exp_ch6.adb b4c23d1aab55fa6be28d20be281e76b9 gcc/ada/exp_ch6.ads ! e01f503be5ea1cccca1e3af41e97504f gcc/ada/exp_ch7.adb 7ed04831559835dfc491855d3d7c50eb gcc/ada/exp_ch7.ads 8839dd025995762da916fad943789acd gcc/ada/exp_ch8.adb 557a822b97445be54a1438a8c6a2329e gcc/ada/exp_ch8.ads --- 704,716 ---- 9fc10f38bd720c619ada102df74ef01c gcc/ada/exp_ch2.ads b4911c9eaadfa8edbca97226db2cacd8 gcc/ada/exp_ch3.adb ed23c980ddc4646e547e4d9d797e30f2 gcc/ada/exp_ch3.ads ! 365827c441579874ef1371c46fae942f gcc/ada/exp_ch4.adb 050a84d226682ff6b0cf73e569d48769 gcc/ada/exp_ch4.ads e23176144fd3113efb017afecfc68a90 gcc/ada/exp_ch5.adb 7bba8e3eda393994835a35015e9fa337 gcc/ada/exp_ch5.ads 66b526434a346e60579c80c31719f229 gcc/ada/exp_ch6.adb b4c23d1aab55fa6be28d20be281e76b9 gcc/ada/exp_ch6.ads ! ff3f564913cd4648485dde04f2ae3db0 gcc/ada/exp_ch7.adb 7ed04831559835dfc491855d3d7c50eb gcc/ada/exp_ch7.ads 8839dd025995762da916fad943789acd gcc/ada/exp_ch8.adb 557a822b97445be54a1438a8c6a2329e gcc/ada/exp_ch8.ads *************** b47ea94e33ebedf8760c44871114c4d3 gcc/ad *** 748,754 **** 00feab14eaeeb45131167149147241e0 gcc/ada/exp_tss.ads ab824b996b7a0c8a2c2a22dcdaa00855 gcc/ada/exp_unst.adb e9a3a6517b98cd6d8fea1c6e59534e20 gcc/ada/exp_unst.ads ! ab177bbde8a1a18046f2ae71ae50d4e1 gcc/ada/exp_util.adb b5e1985e34dcd9ae3d3d555fb3934e25 gcc/ada/exp_util.ads e34f0290bca8640889baf3eaf05e04d6 gcc/ada/expander.adb 8ce470670744309c62f91df924faf082 gcc/ada/expander.ads --- 748,754 ---- 00feab14eaeeb45131167149147241e0 gcc/ada/exp_tss.ads ab824b996b7a0c8a2c2a22dcdaa00855 gcc/ada/exp_unst.adb e9a3a6517b98cd6d8fea1c6e59534e20 gcc/ada/exp_unst.ads ! 437f8ea1ae2e6364ba1dcc90d8399b1f gcc/ada/exp_util.adb b5e1985e34dcd9ae3d3d555fb3934e25 gcc/ada/exp_util.ads e34f0290bca8640889baf3eaf05e04d6 gcc/ada/expander.adb 8ce470670744309c62f91df924faf082 gcc/ada/expander.ads *************** f51124ba7bc12991c2598279eb2da82e gcc/ad *** 768,774 **** 009cce51246a860a5f901d2e2e7ac369 gcc/ada/frontend.adb b48a3449a29d92c0b5434a73385b1e97 gcc/ada/frontend.ads 72ca66c12963f38334507f56ace14098 gcc/ada/gcc-interface/Make-lang.in ! 9acbd2c7d9ca8b0c725b411f336d268d gcc/ada/gcc-interface/Makefile.in 35dd49b4643582a2e1e847bc6aea01e1 gcc/ada/gcc-interface/ada-builtin-types.def f7677c298cb2f4c70ecf284c7e18cb80 gcc/ada/gcc-interface/ada-builtins.def 055be3d11fa6ccb53ffe7f8970a005ce gcc/ada/gcc-interface/ada-tree.def --- 768,774 ---- 009cce51246a860a5f901d2e2e7ac369 gcc/ada/frontend.adb b48a3449a29d92c0b5434a73385b1e97 gcc/ada/frontend.ads 72ca66c12963f38334507f56ace14098 gcc/ada/gcc-interface/Make-lang.in ! d3e57a23c09ac00642dc1f3f555bccc0 gcc/ada/gcc-interface/Makefile.in 35dd49b4643582a2e1e847bc6aea01e1 gcc/ada/gcc-interface/ada-builtin-types.def f7677c298cb2f4c70ecf284c7e18cb80 gcc/ada/gcc-interface/ada-builtins.def 055be3d11fa6ccb53ffe7f8970a005ce gcc/ada/gcc-interface/ada-tree.def *************** ca720fcc36cb5825933df726c2446794 gcc/ad *** 2854,2860 **** 4b4150c9557fa50ca8bdd5d1b30dec58 gcc/ada/sem_mech.ads 1c067003a0054b7ff526f461da4259cc gcc/ada/sem_prag.adb 0a3a4d3df68490e4cafce685685a5a0a gcc/ada/sem_prag.ads ! 32e9334a0b8113aa45d9a739afda458b gcc/ada/sem_res.adb c18ac43b20949fd32407782bf0f69d90 gcc/ada/sem_res.ads ceeb3e67fc14eac0b759a2b189aba489 gcc/ada/sem_scil.adb 40313d60f28039ce7a03cc1027ede905 gcc/ada/sem_scil.ads --- 2854,2860 ---- 4b4150c9557fa50ca8bdd5d1b30dec58 gcc/ada/sem_mech.ads 1c067003a0054b7ff526f461da4259cc gcc/ada/sem_prag.adb 0a3a4d3df68490e4cafce685685a5a0a gcc/ada/sem_prag.ads ! 40d7080bca12c477127e131d87c14921 gcc/ada/sem_res.adb c18ac43b20949fd32407782bf0f69d90 gcc/ada/sem_res.ads ceeb3e67fc14eac0b759a2b189aba489 gcc/ada/sem_scil.adb 40313d60f28039ce7a03cc1027ede905 gcc/ada/sem_scil.ads *************** d3e945808548972240fb2f1b7494a8bd gcc/ad *** 2981,2987 **** 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 --- 2981,2987 ---- e561a7bae0b2b221a73a390c77be757b gcc/align.h 23442a2d3df1b83bd32978d68e46bcd1 gcc/alloc-pool.c 3ec9e55d9093d096913575231b7b7943 gcc/alloc-pool.h ! 19937ebef9bf8526e7a857e07b00cba4 gcc/analyzer/ChangeLog 7ea5759779b2ed252edaea813907bd5a gcc/analyzer/analysis-plan.cc 4717c47360bc5772a2a5d0afdeae18e0 gcc/analyzer/analysis-plan.h 73de39c552e216c1cc1fe1e7d3513cc6 gcc/analyzer/analyzer-logging.cc *************** dccee0e7e8d057183607389efcdb458c gcc/an *** 3046,3067 **** 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/attribs.h 0abcbaaeab3b080c913716fca5d4a9fd gcc/auto-inc-dec.c 2eef15ab83617fc37f40877b720394d9 gcc/auto-profile.c 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 --- 3046,3067 ---- 185fe9c53545064ee1e53b91358f7de7 gcc/analyzer/trimmed-graph.cc 74a5cb5dcaf4cfb2dce05019ec345914 gcc/analyzer/trimmed-graph.h 4dc5fb48242295b1a20860e9026ef907 gcc/array-traits.h ! f3d0f42009fe4ced6afa87bcd1af19c4 gcc/asan.c 487ef86d71c549a16efa36238b86952f gcc/asan.h 542d06ea0e3478abe23c1efa8f3be1c9 gcc/attr-fnspec.h ! ef819f6d635e6365a531e90ee5a1b432 gcc/attribs.c b62a19a18359e023c63a5a045f9d97dd gcc/attribs.h 0abcbaaeab3b080c913716fca5d4a9fd gcc/auto-inc-dec.c 2eef15ab83617fc37f40877b720394d9 gcc/auto-profile.c 1963f1d6c80c316f8cdcc8a028d3c9ca gcc/auto-profile.h 3ff58d5a06d5eaee37d7cb2ed6c43edf gcc/backend.h c85b11c624a3273aac7365b0f34125b6 gcc/basic-block.h ! aec032e844bc2782a47457e857091fff gcc/bb-reorder.c d0ab00f1b3fc80f5bfda75adc6c362d6 gcc/bb-reorder.h 49ad33d59190a283fb4c85a41861b83a gcc/bitmap.c 08cf7dff98e7181511efc1517f735186 gcc/bitmap.h 6b9e1cb83032742218edd1600590d286 gcc/brig-builtins.def ! 451224ea1b4c1f5687025b5122948fda gcc/brig/ChangeLog 32f54aacbd7e3a02140d36f7e8f58da6 gcc/brig/Make-lang.in 966892b9e3cc742708ffb50160e7ea6f gcc/brig/brig-builtins.h 0676a7ca45684ceb5fbde93beb5b3950 gcc/brig/brig-c.h *************** a1cc43f2d0aedbd5540d15c4ec568a8d gcc/br *** 3105,3119 **** 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 --- 3105,3119 ---- 746844ca02d1cafc9fb4b3f354b3dc78 gcc/brig/lang.opt 1b7da82494d0c161ca60a8de1b55195a gcc/builtin-attrs.def 0fb3ced35d472c83b8689686b224ad01 gcc/builtin-types.def ! 7850cf694a4a649c81931b98e93bd390 gcc/builtins.c ae94d8196a803d4a2c69cded88dbbb76 gcc/builtins.def f501faddb738e7422e75672d29bfc823 gcc/builtins.h ! abcad631f8fd3e523248d807c3bcfbf7 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 ! 4228fb45e19dd27b647a798d2d812ac1 gcc/c-family/c-attribs.c ! 8da4cdd2545030619d4b4dc0b08e7fd3 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- *** 3123,3133 **** 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 5be62f7688c8de29dc7aa9faf1367d40 gcc/c-family/c-objc.h bf96a414cbeb69cd94bfeb88daa0056f gcc/c-family/c-omp.c ! fe74cabeb11f779eecd7428ce0eaf1b0 gcc/c-family/c-opts.c ! 0c3e87810e8edfc7c91b38b0958fe994 gcc/c-family/c-pch.c 094ea467499de4520c5a2f6ee1abc7e0 gcc/c-family/c-ppoutput.c ff199d71952d05520517d7906169f3ff gcc/c-family/c-pragma.c ae0c3df9ebba6d5955c4d243271bc4ef gcc/c-family/c-pragma.h --- 3123,3133 ---- 02e25f4fbdb6dafd42c7cc58e402be96 gcc/c-family/c-gimplify.c 47cae120dbbc6dc65b3d06445c7ffd2c gcc/c-family/c-indentation.c d0a5008a37b6b90aad01170ec4597384 gcc/c-family/c-indentation.h ! d1c8eaea90e64b5d4a23366e50275c06 gcc/c-family/c-lex.c 5be62f7688c8de29dc7aa9faf1367d40 gcc/c-family/c-objc.h bf96a414cbeb69cd94bfeb88daa0056f gcc/c-family/c-omp.c ! 221c143aa68a33f3da16881d3701d276 gcc/c-family/c-opts.c ! 943b5121a168c1d2916b3307db799174 gcc/c-family/c-pch.c 094ea467499de4520c5a2f6ee1abc7e0 gcc/c-family/c-ppoutput.c ff199d71952d05520517d7906169f3ff gcc/c-family/c-pragma.c ae0c3df9ebba6d5955c4d243271bc4ef gcc/c-family/c-pragma.h *************** dda3a883f8b1367723b357a3494a9ad2 gcc/c- *** 3148,3158 **** 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 ! 921f0c40165ee46a2a9839c794b075b8 gcc/c/c-decl.c 252e1c166ac85eeca88c8832c302422b gcc/c/c-errors.c c55b3e5a9640ada3dcbf15fce3d36e8d gcc/c/c-fold.c ac32535d53226e7747b1f0c599af0aa6 gcc/c/c-lang.c --- 3148,3158 ---- 24a64eac5a3ca85c2141b26c328e720c gcc/c-family/known-headers.h d945fcf11b0cf9b680801477d4d6dc5d gcc/c-family/name-hint.h 10c210b270bd57796c125ceacb8aacf3 gcc/c-family/stub-objc.c ! ac025779b4a8ddd703774e87060c8b59 gcc/c/ChangeLog c2c16ebc27917ec274266a7f0a5de762 gcc/c/Make-lang.in 4b3d7694a2cabd663e29accad2dc49fd gcc/c/c-aux-info.c 477103be514e3fee8add675ebdf6c643 gcc/c/c-convert.c ! 42bbc920a5f538755300f164bbb25282 gcc/c/c-decl.c 252e1c166ac85eeca88c8832c302422b gcc/c/c-errors.c c55b3e5a9640ada3dcbf15fce3d36e8d gcc/c/c-fold.c ac32535d53226e7747b1f0c599af0aa6 gcc/c/c-lang.c *************** a3f6082ee8044d951dd495cf2599bd46 gcc/cf *** 3181,3187 **** 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 --- 3181,3187 ---- 8d2d2838a75a74f980c02a0c1dccc6f7 gcc/cfgbuild.h a94deb84dd5fc6b64595cab63c20ef33 gcc/cfgcleanup.c 76493c30b63093a62270af2c53f028b4 gcc/cfgcleanup.h ! eb0ff6b215b90260d882139d4848f0d1 gcc/cfgexpand.c c4c6266c4888e09280fdca3bcdd6c927 gcc/cfgexpand.h 241b624068329a0557ba643040ea7a52 gcc/cfghooks.c 2844f8c444cf87319afcc888a92372d4 gcc/cfghooks.h *************** aa71757a8881b31ac75eda23b83e392d gcc/cf *** 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 --- 3190,3202 ---- 532afc445fb123afc9610af6032bf074 gcc/cfgloopanal.c 11cf49613ab20334c1fc9121524d6381 gcc/cfgloopmanip.c 48131d2e7e0d663e5f4d7a8c8c2863f6 gcc/cfgloopmanip.h ! f1076e21de46ce5757bab7790cce1e81 gcc/cfgrtl.c ! ac96430a55435de0d8e8129ae4f96e0f gcc/cfgrtl.h 530c51ce28366a11c1baa106191e926f gcc/cgraph.c ! a24daf8d3d0bf0259c577a4050e00862 gcc/cgraph.h ab4feb9f136b4b239302421056d5aa8a gcc/cgraphbuild.c 2e0e2270544ae7a62b3b8239ced0ca1c gcc/cgraphclones.c ! e7badebf7bb17e120fde0c6f505f1a81 gcc/cgraphunit.c 521bd63dc8fb9c35c26f7a2b7c04f7c6 gcc/cif-code.def b49865466bbb7aec08e5fc1f12b8fee1 gcc/collect-utils.c 35567207ddff3c6a55598c11201c07e9 gcc/collect-utils.h *************** b49865466bbb7aec08e5fc1f12b8fee1 gcc/co *** 3206,3212 **** e7cf7224890831969cdba55079c3f8c5 gcc/collect2.h f7e4d84c9831e6b006e3abaf0cda296d gcc/color-macros.h 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 --- 3206,3212 ---- e7cf7224890831969cdba55079c3f8c5 gcc/collect2.h f7e4d84c9831e6b006e3abaf0cda296d gcc/color-macros.h ed6f48014eba9e2fdba773c6bbc66f41 gcc/combine-stack-adj.c ! d9891026168decb9f4a72327840db14d gcc/combine.c 654752e8e1da5146591a7aa1c1503728 gcc/common.md 818fcd32d89e72a6db1615fc91582a7c gcc/common.opt d39719c8a8249d7c11783eb1a99e6629 gcc/common/common-target-def.h *************** b9e205cf83be687340f57069d2828c97 gcc/co *** 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 --- 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 ! 089e9507ac3c93494b20c64d6c506c63 gcc/common/config/i386/cpuinfo.h ! 6989792a70ec1a9607b07ab2c2732127 gcc/common/config/i386/i386-common.c ! ef004a65c19bdc0d968bfbca76821f46 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 *** 3269,3284 **** 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 --- 3269,3284 ---- b2ffc0034da9ccbf178a5e5748c52c0a gcc/compare-elim.c e4b6829ec591a11a2cb0db458fe65ff2 gcc/conditions.h cc62394ef13d37ac049f14027a48482a gcc/config.build ! b7d1bc06a72befb57c0c9b3417f2eaad gcc/config.gcc 31bf67644c4d7d8b27828e16398dc1d9 gcc/config.host ! 2aaf4ef6d07a748af0933cebc9cf9248 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 ! 8137028e8a143ced522a288b3a4842cb gcc/config/aarch64/aarch64-c.c e59a3f748c562e36ae56da5a4a570356 gcc/config/aarch64/aarch64-cc-fusion.cc ! 856cecabf196a0d5016cc6b9ad5fa9e6 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 *************** f381214b5d5ff96ed05d9296a8dad996 gcc/co *** 3312,3328 **** 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 ef1dd222bbbaca1e6dac76b9321bab92 gcc/config/aarch64/arm_sve.h d92a3d5acf1ebe31d01e378d08932d3b gcc/config/aarch64/atomics.md c5e4dc1aa8aa96b1e98708782e715b10 gcc/config/aarch64/biarchilp32.h --- 3312,3328 ---- 2bb49c05f0be70f85d5eb7341a3fed80 gcc/config/aarch64/aarch64-sve-builtins.h 94052bc1aaba0562b41cdec72a6bf3d2 gcc/config/aarch64/aarch64-sve.md 024f1f15f2747beb21971036aa2e89d9 gcc/config/aarch64/aarch64-sve2.md ! c3c8e545e0e51bbc7fe1bbeb764a049b gcc/config/aarch64/aarch64-tune.md 7f19a3ee43fa4e79042af495fd7df059 gcc/config/aarch64/aarch64-tuning-flags.def 9f502cdcedcd85f77d279b53ea68cfc3 gcc/config/aarch64/aarch64-vxworks.h ! b3625845c85f16415f8653463a5679ab gcc/config/aarch64/aarch64.c ! f947869d52da8d8846a91c201a4b2d4c gcc/config/aarch64/aarch64.h ! c2f41769ee7a5286f06b3ed4676a9a0b 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 ! b79bd04bdc2b5bd1dee970a0c96e335c gcc/config/aarch64/arm_neon.h ef1dd222bbbaca1e6dac76b9321bab92 gcc/config/aarch64/arm_sve.h d92a3d5acf1ebe31d01e378d08932d3b gcc/config/aarch64/atomics.md c5e4dc1aa8aa96b1e98708782e715b10 gcc/config/aarch64/biarchilp32.h *************** d1bbf361745ec677a615eb0a11e5b715 gcc/co *** 3336,3342 **** 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 --- 3336,3342 ---- 63d0eebbd3376ae240e4547760915f66 gcc/config/aarch64/fractional-cost.h 67157c8970cb22f05a2e298f9a6b84c7 gcc/config/aarch64/geniterators.sh 9a3499491d4a8101f057a66925192785 gcc/config/aarch64/gentune.sh ! 53d16093c61bcad3fd1932ded1e43a9e 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 *** 3355,3363 **** 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/config/alpha/constraints.md 922bc1be27f184824dfc6ee89eb40afb gcc/config/alpha/driver-alpha.c 71b456abb6ba28ef390d8665eb986ca7 gcc/config/alpha/elf.h b2e7fd5895398a60097812bda344908e gcc/config/alpha/elf.opt --- 3355,3363 ---- 42eb8ee353bebcf838d4dac63080b578 gcc/config/alpha/alpha-protos.h 1179957aae0dacf5d55cb9af5eea6b54 gcc/config/alpha/alpha.c b583c637be36f7ba4943158c259f9071 gcc/config/alpha/alpha.h ! 7773ae1751be3532e3a49a9d25361811 gcc/config/alpha/alpha.md c8a659f2d0ece9ed25fb00c2b65109dc gcc/config/alpha/alpha.opt ! 0e2f0d61b9436a1eb5fd71510357f9ec gcc/config/alpha/constraints.md 922bc1be27f184824dfc6ee89eb40afb gcc/config/alpha/driver-alpha.c 71b456abb6ba28ef390d8665eb986ca7 gcc/config/alpha/elf.h b2e7fd5895398a60097812bda344908e gcc/config/alpha/elf.opt *************** cadb5b1cf604bbd9e06000676a096db5 gcc/co *** 3432,3440 **** 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 4e8f8d7a828a2fafaf77c37723c261d2 gcc/config/arm/arm1020e.md d70cb415fe667cb4c7ac20d8fe3dd244 gcc/config/arm/arm1026ejs.md --- 3432,3440 ---- 095ccfc0877933dc53eb40c2369fcf9a gcc/config/arm/arm-simd-builtin-types.def e15ee919dad399c4e00ca11efe4bcd94 gcc/config/arm/arm-tables.opt d70a50caf4aae1fb3ab57300fd85cd84 gcc/config/arm/arm-tune.md ! 8fd147ed80bf90666e4500fcb0dc6412 gcc/config/arm/arm.c fa7937aa82161053523e64455115ac0d gcc/config/arm/arm.h ! f40e0ed127022d68fe4f155c257e22ef gcc/config/arm/arm.md eabc54f06df24e849baa2f7e1d988bb0 gcc/config/arm/arm.opt 4e8f8d7a828a2fafaf77c37723c261d2 gcc/config/arm/arm1020e.md d70cb415fe667cb4c7ac20d8fe3dd244 gcc/config/arm/arm1026ejs.md *************** bd2045b2f5d8245c16a45237dce679a6 gcc/co *** 3496,3503 **** 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 --- 3496,3503 ---- 41ed5979d5b4c0328c84b1411af4d063 gcc/config/arm/marvell-f-iwmmxt.md 64a1f7d58f31d526a6b511b59068a296 gcc/config/arm/marvell-pj4.md 43fdc3285e4cf2925affd75f5e519dda gcc/config/arm/mmintrin.h ! 0e925e16019a232c7c2703deee9f3623 gcc/config/arm/mve.md ! 121e64ed224c8f659e47c0e82bb1d3a2 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 *************** c1ce8990c1043f299ab96a7d2c9feac2 gcc/co *** 3528,3534 **** 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 3f347f182b169716d6be40e6781e10b4 gcc/config/arm/vxworks.opt --- 3528,3534 ---- 3285e4d14032fb0ae4faa2809a98b43b gcc/config/arm/unknown-elf.h 4d486054574a4f147041002f62b9faa5 gcc/config/arm/unspecs.md efe5977515d447ef320d17e4fe861fb0 gcc/config/arm/vec-common.md ! d7eb641b39c54460df9f7a38e18c6317 gcc/config/arm/vfp.md 5b03ce06f03ed9738ed6cee13b1475ab gcc/config/arm/vfp11.md 77f809b2e1735d57d8681bbd8e506d7c gcc/config/arm/vxworks.h 3f347f182b169716d6be40e6781e10b4 gcc/config/arm/vxworks.opt *************** bf77a54b5c52ed103705a4e960d9f814 gcc/co *** 3668,3678 **** 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 201708cb71e4d33abc802e38b34cb75c gcc/config/dbxelf.h --- 3668,3678 ---- 6c3d6a0a08530389c3655e5d20ab8743 gcc/config/darwin-driver.c dbb6f1d5dc4ceaaf0fd2e5bc4bbb2a29 gcc/config/darwin-f.c 1e7f34ef6b48c907fbf5b2d5a629e957 gcc/config/darwin-ppc-ldouble-patch.def ! cfb0f017fcc6b156adcaf0783cc42c48 gcc/config/darwin-protos.h ! 1d16964a4862c950ecc1df452a98b8c5 gcc/config/darwin-sections.def ! d2155280b07c573aaa0ff4f38cf02698 gcc/config/darwin.c ! 72fd3822b13d1b017f717fd41571eac4 gcc/config/darwin.h ! 1a740bef7449d60596672d12d676265a gcc/config/darwin.opt 23bab33707e2ef99310565f620c62080 gcc/config/dbx.h 04c3ad90675d44af0d58b60b7ce96c32 gcc/config/dbxcoff.h 201708cb71e4d33abc802e38b34cb75c gcc/config/dbxelf.h *************** bce872407ffa808d0db599bc7629d590 gcc/co *** 3801,3807 **** 5b432e4704ce6c673a612e9ee95f8330 gcc/config/i386/ammintrin.h 28dcfe5268c82cdc42292f182469963b gcc/config/i386/amxbf16intrin.h 2d9d8e73beb1902033e40d93fe7ae3bf gcc/config/i386/amxint8intrin.h ! f4ac9cdd6fe1c388fb12a3695be9e14b gcc/config/i386/amxtileintrin.h 191a6ecdf5316e7035dcc896f1aaaaf0 gcc/config/i386/athlon.md 1203fdf8b1487c9f925131b28b02b44b gcc/config/i386/atom.md 24b0ba3db73234857e9f4e731b3667a0 gcc/config/i386/att.h --- 3801,3807 ---- 5b432e4704ce6c673a612e9ee95f8330 gcc/config/i386/ammintrin.h 28dcfe5268c82cdc42292f182469963b gcc/config/i386/amxbf16intrin.h 2d9d8e73beb1902033e40d93fe7ae3bf gcc/config/i386/amxint8intrin.h ! 65e56ecf45e58e90027650f27deeae55 gcc/config/i386/amxtileintrin.h 191a6ecdf5316e7035dcc896f1aaaaf0 gcc/config/i386/athlon.md 1203fdf8b1487c9f925131b28b02b44b gcc/config/i386/atom.md 24b0ba3db73234857e9f4e731b3667a0 gcc/config/i386/att.h *************** d04ed61f749e229f239897b3baca4938 gcc/co *** 3869,3875 **** 7eef87bf6d5ed6ed58a3f49b605fa304 gcc/config/i386/djgpp.h eb87f240e280f50a4f7213e4c1693b58 gcc/config/i386/djgpp.opt 7107a1b32e7712e57535cf017a9e3b31 gcc/config/i386/dragonfly.h ! 66a900eaa0c5b9b9da750d357f64cc44 gcc/config/i386/driver-i386.c 3957794a408aca3d78d50443cdaa5160 gcc/config/i386/driver-mingw32.c a58296a3ce52541fa1ec1d97d428a2d7 gcc/config/i386/emmintrin.h 4f000e9cad83855e36be99512cff28a1 gcc/config/i386/enqcmdintrin.h --- 3869,3875 ---- 7eef87bf6d5ed6ed58a3f49b605fa304 gcc/config/i386/djgpp.h eb87f240e280f50a4f7213e4c1693b58 gcc/config/i386/djgpp.opt 7107a1b32e7712e57535cf017a9e3b31 gcc/config/i386/dragonfly.h ! bbeaa24ffbd0ac3668cd34ed471b3680 gcc/config/i386/driver-i386.c 3957794a408aca3d78d50443cdaa5160 gcc/config/i386/driver-mingw32.c a58296a3ce52541fa1ec1d97d428a2d7 gcc/config/i386/emmintrin.h 4f000e9cad83855e36be99512cff28a1 gcc/config/i386/enqcmdintrin.h *************** f63afc859775aca634f9c3038a88a2e8 gcc/co *** 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 --- 3897,3921 ---- dfd31f5b9f3ae6b0f0cfbc91f34b22d3 gcc/config/i386/hresetintrin.h f416d4c1b5f76b0c32dcfa57cbef9de0 gcc/config/i386/i386-builtin-types.awk 4e99fd2d8e886c8fedca887be1ceccad gcc/config/i386/i386-builtin-types.def ! e3e75a3fac2f917184fc5986bb9a7e8e gcc/config/i386/i386-builtin.def 1dc75a552c0d6998bea2786836c26452 gcc/config/i386/i386-builtins.c 2eb66258231da97923f18a6fb2fb2526 gcc/config/i386/i386-builtins.h ! 66b916208f2672075a6777ee5eeae884 gcc/config/i386/i386-c.c e87e1d322f0b5d6d0862f8b523832d11 gcc/config/i386/i386-d.c ! 152d6cc9c3844392c7d2788eedac85f0 gcc/config/i386/i386-expand.c 68f53a8d27a4bdcd5018b83939e20f6c gcc/config/i386/i386-expand.h ! 3b97c0e5b2c38c9dc1d2a53058c7af0a gcc/config/i386/i386-features.c 86c0fda429064123819ee0155f367a5f gcc/config/i386/i386-features.h 04cdac9cb26ba183b03b6f9c7a01b792 gcc/config/i386/i386-modes.def ! 46b80124af36963006fb36102a1c75b3 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 ! e6bd8961f90810a202f5b5dd5e7675e6 gcc/config/i386/i386.c ! ac44daadc2d375f7a7dd54e41354d81e gcc/config/i386/i386.h ! a9a70685c39d3c6ca63736be116698dd gcc/config/i386/i386.md ! 8e648834461e2776232d88b7375a1653 gcc/config/i386/i386.opt c10c5e5da62216f81b78dd46673df070 gcc/config/i386/i386elf.h e54b0acb11af35cf1d05cfef525dd659 gcc/config/i386/ia32intrin.h fa1c19397f6d7ac84e3a77d2fd9d70bc gcc/config/i386/iamcu.h *************** b38248cde141fc9fed08e9ac46211173 gcc/co *** 3941,3947 **** 5bd2e0b86c4dab0b605208942c9a50d6 gcc/config/i386/mingw32.h 8c2a40be98f698117815409db5755e07 gcc/config/i386/mm3dnow.h ebadd8939e5045c483e0067e83f84ea5 gcc/config/i386/mmintrin.h ! a4907954895f6236cf5afcdba2be40d0 gcc/config/i386/mmx.md 3ead5a3ca4f10d35ec0b1d203eaff264 gcc/config/i386/movdirintrin.h de4344ede8a257d98598f21855100331 gcc/config/i386/msformat-c.c 1978ffb70e7e93e7a11ef43e7a27396c gcc/config/i386/mwaitintrin.h --- 3941,3947 ---- 5bd2e0b86c4dab0b605208942c9a50d6 gcc/config/i386/mingw32.h 8c2a40be98f698117815409db5755e07 gcc/config/i386/mm3dnow.h ebadd8939e5045c483e0067e83f84ea5 gcc/config/i386/mmintrin.h ! 5325e3447b9828c3048c2b2db1050864 gcc/config/i386/mmx.md 3ead5a3ca4f10d35ec0b1d203eaff264 gcc/config/i386/movdirintrin.h de4344ede8a257d98598f21855100331 gcc/config/i386/msformat-c.c 1978ffb70e7e93e7a11ef43e7a27396c gcc/config/i386/mwaitintrin.h *************** e1e11d9cd0e8002dee79ab23d590ed1a gcc/co *** 3972,3978 **** 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 --- 3972,3978 ---- f808dc4b45bc244b7588e4dbe292d158 gcc/config/i386/slm.md 03dd452cfd3e49b9807da1ce5a98046d gcc/config/i386/smmintrin.h 86d70f5d5123563facc0d2e2dcfbd9e6 gcc/config/i386/sol2.h ! 4dbd90c89799f961fc932ef665d38450 gcc/config/i386/sse.md df2791f0495a636b555c9a5f3f9ff153 gcc/config/i386/ssemath.h fdb6c5262186a722ee43fabb890960ae gcc/config/i386/stringop.def fdbc1c329d68559ae10ad05554ed8b15 gcc/config/i386/subst.md *************** bae69273c5e47d61e99558ca73c4fabd gcc/co *** 4021,4032 **** 12e09c6fa27c603c6db59fbfc2a6b089 gcc/config/i386/x-i386 97c8723c0a17cc27496bf3f2e00575fd gcc/config/i386/x-mingw32 79a43ba764ecdf9a8182ebdd85310d50 gcc/config/i386/x86-64.h ! e8de4d87d46a089a190cdcfd5ab996cb gcc/config/i386/x86-tune-costs.h 7fbc73604928f2f3eae088fea7082e0b gcc/config/i386/x86-tune-sched-atom.c 8e3814442de68a4801c8a7449d277e25 gcc/config/i386/x86-tune-sched-bd.c 83e27c2de80a1b674196a9f6c758a5a6 gcc/config/i386/x86-tune-sched-core.c ! 9a5ed19a8a9efd3aa8f780c637126988 gcc/config/i386/x86-tune-sched.c ! e4c639befde2ed972037502a8c268a95 gcc/config/i386/x86-tune.def a37907df7b82725358293d96278edc51 gcc/config/i386/x86gprintrin.h 01c872023bcadf9bc3f32938f1290d99 gcc/config/i386/x86intrin.h bedb15dc5d9dc0741fa2f65684e6afc8 gcc/config/i386/xm-cygwin.h --- 4021,4032 ---- 12e09c6fa27c603c6db59fbfc2a6b089 gcc/config/i386/x-i386 97c8723c0a17cc27496bf3f2e00575fd gcc/config/i386/x-mingw32 79a43ba764ecdf9a8182ebdd85310d50 gcc/config/i386/x86-64.h ! 1f3fa0db3c8b9e6c7c6a1f0832ab92ac gcc/config/i386/x86-tune-costs.h 7fbc73604928f2f3eae088fea7082e0b gcc/config/i386/x86-tune-sched-atom.c 8e3814442de68a4801c8a7449d277e25 gcc/config/i386/x86-tune-sched-bd.c 83e27c2de80a1b674196a9f6c758a5a6 gcc/config/i386/x86-tune-sched-core.c ! 871895c3256e4f931e034c6f9ff4988a gcc/config/i386/x86-tune-sched.c ! 0c4649ce330175bb5454301037725926 gcc/config/i386/x86-tune.def a37907df7b82725358293d96278edc51 gcc/config/i386/x86gprintrin.h 01c872023bcadf9bc3f32938f1290d99 gcc/config/i386/x86intrin.h bedb15dc5d9dc0741fa2f65684e6afc8 gcc/config/i386/xm-cygwin.h *************** bedb15dc5d9dc0741fa2f65684e6afc8 gcc/co *** 4039,4045 **** ced95bb984b96ed6d6768b2b5d4d9d23 gcc/config/i386/xsaveoptintrin.h 8b1811e1567e01938b667ebe3954f991 gcc/config/i386/xsavesintrin.h 28f7cd3a41b61a99c1560e6e0aef01c2 gcc/config/i386/xtestintrin.h ! 1a12d00791dc5750b71e438d322ddf2b gcc/config/i386/znver1.md b4f1f741cb220bde1a5477221381c160 gcc/config/ia64/constraints.md fb20b99e59a0837f7730623933540364 gcc/config/ia64/div.md ebab5f6ec27511ec34a317311dc1fb3d gcc/config/ia64/elf.h --- 4039,4046 ---- ced95bb984b96ed6d6768b2b5d4d9d23 gcc/config/i386/xsaveoptintrin.h 8b1811e1567e01938b667ebe3954f991 gcc/config/i386/xsavesintrin.h 28f7cd3a41b61a99c1560e6e0aef01c2 gcc/config/i386/xtestintrin.h ! 1a12d00791dc5750b71e438d322ddf2b gcc/config/i386/znver.md ! a08f5902eecead19f6f0b3f635c1f717 gcc/config/i386/znver4.md b4f1f741cb220bde1a5477221381c160 gcc/config/ia64/constraints.md fb20b99e59a0837f7730623933540364 gcc/config/ia64/div.md ebab5f6ec27511ec34a317311dc1fb3d gcc/config/ia64/elf.h *************** c367c0630f7f023a908b12f4b0bcd43e gcc/co *** 4239,4250 **** af514a1f925002faa534e8e9af7e4c2a gcc/config/mips/mips-fixed.md 6fe9c019b23470a4713ed97e64767ff0 gcc/config/mips/mips-ftypes.def b125f873d072e558225faced30c16710 gcc/config/mips/mips-modes.def ! 5dde86fd55084be46ad7c49c01a2a1aa gcc/config/mips/mips-msa.md 82ce3594b1b612d1465ebdab253281a5 gcc/config/mips/mips-opts.h 1419718ff2e070b1c21d04048b50a805 gcc/config/mips/mips-protos.h e972e6ee968c5ceea9564ce75b572eb5 gcc/config/mips/mips-ps-3d.md b47b9237ca1cdd376492147fef2ebceb gcc/config/mips/mips-tables.opt ! 11732488744371fbb103be5b89157d28 gcc/config/mips/mips.c 7dde563fb33bd1ab036762c99d9e484b gcc/config/mips/mips.h cc41f5dfa824b8ebc1999709b81b6ecb gcc/config/mips/mips.md 3bafa6a814101c62b01241da0805afca gcc/config/mips/mips.opt --- 4240,4251 ---- af514a1f925002faa534e8e9af7e4c2a gcc/config/mips/mips-fixed.md 6fe9c019b23470a4713ed97e64767ff0 gcc/config/mips/mips-ftypes.def b125f873d072e558225faced30c16710 gcc/config/mips/mips-modes.def ! ed0ddbdb661ae412440354cdd16e1b98 gcc/config/mips/mips-msa.md 82ce3594b1b612d1465ebdab253281a5 gcc/config/mips/mips-opts.h 1419718ff2e070b1c21d04048b50a805 gcc/config/mips/mips-protos.h e972e6ee968c5ceea9564ce75b572eb5 gcc/config/mips/mips-ps-3d.md b47b9237ca1cdd376492147fef2ebceb gcc/config/mips/mips-tables.opt ! a2f170d69a55322313f4a6e48fcbd85b gcc/config/mips/mips.c 7dde563fb33bd1ab036762c99d9e484b gcc/config/mips/mips.h cc41f5dfa824b8ebc1999709b81b6ecb gcc/config/mips/mips.md 3bafa6a814101c62b01241da0805afca gcc/config/mips/mips.opt *************** e20b327d30706926261c1317764ee479 gcc/co *** 4458,4466 **** caff43adac59469f64f1c7e4385c27d2 gcc/config/pa/pa-openbsd.h 904b7f071b6b5c7fbcd244403e468d7f gcc/config/pa/pa-opts.h 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 --- 4459,4467 ---- caff43adac59469f64f1c7e4385c27d2 gcc/config/pa/pa-openbsd.h 904b7f071b6b5c7fbcd244403e468d7f gcc/config/pa/pa-opts.h 85dc61345aa9b8f74041dfe95eebf2e7 gcc/config/pa/pa-protos.h ! 5147c18fafccbda95ad39a9bcb2da9a0 gcc/config/pa/pa.c c3f6aadadbf72faef69e3a2422b6e223 gcc/config/pa/pa.h ! a66d8d25156962d99e0b18beed6ac372 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 *************** fe56b04e91c00c9e49f48d845571ab3b gcc/co *** 4527,4533 **** eaec766078425731f12d482d8e7a7f03 gcc/config/riscv/riscv.opt 0a71dd013f158a4aa8183a3df7bfead1 gcc/config/riscv/rtems.h 462630614e6e7a6209f8f18b6dff0eef gcc/config/riscv/sifive-7.md ! 29fc0216ff4cf6b387754748c6a26f3d gcc/config/riscv/sync.md 1c27821991689abdaa7a908a0cc8dfa4 gcc/config/riscv/t-elf-multilib d8ae7bee35ef1ecd77143535da9aae78 gcc/config/riscv/t-linux 1ed181a166b1d0e206c4a4e0024cce2a gcc/config/riscv/t-linux-multilib --- 4528,4534 ---- eaec766078425731f12d482d8e7a7f03 gcc/config/riscv/riscv.opt 0a71dd013f158a4aa8183a3df7bfead1 gcc/config/riscv/rtems.h 462630614e6e7a6209f8f18b6dff0eef gcc/config/riscv/sifive-7.md ! 424d68c05a1a976acda1b218d18590e1 gcc/config/riscv/sync.md 1c27821991689abdaa7a908a0cc8dfa4 gcc/config/riscv/t-elf-multilib d8ae7bee35ef1ecd77143535da9aae78 gcc/config/riscv/t-linux 1ed181a166b1d0e206c4a4e0024cce2a gcc/config/riscv/t-linux-multilib *************** ff3f6b224d4ef9f550a96131d45e0003 gcc/co *** 4568,4574 **** 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 --- 4569,4575 ---- d0cdfe5862d3c4d23b88f181a823e824 gcc/config/rs6000/aix71.h cc7b2251556991a7fa60f7bf6b8f4fb8 gcc/config/rs6000/aix72.h 6cf9077f7280ae45fdb83156bcbed199 gcc/config/rs6000/altivec.h ! 99290ade6d35ca6d600ce836a68cf31a 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/co *** 4576,4582 **** fea022102d4856327a0e7478d476825d gcc/config/rs6000/cell.md 39f59e5bae022fcbbef313410d10672c gcc/config/rs6000/constraints.md 87701804dfcbf3943f2ef24c36f6b98a gcc/config/rs6000/crypto.md ! 453ee06270ccdf4c0b6c5246ca394266 gcc/config/rs6000/darwin.h dd4bb9179101766c68130ca8a0c0394e gcc/config/rs6000/darwin.md d7cfb8e861e9ce70e75110e0717d4d48 gcc/config/rs6000/darwin.opt ca74b9e31768f3d073078ccbbf6db3b4 gcc/config/rs6000/darwin32-biarch.h --- 4577,4583 ---- fea022102d4856327a0e7478d476825d gcc/config/rs6000/cell.md 39f59e5bae022fcbbef313410d10672c gcc/config/rs6000/constraints.md 87701804dfcbf3943f2ef24c36f6b98a gcc/config/rs6000/crypto.md ! cca1a1bebe136533f91642b3a7641b53 gcc/config/rs6000/darwin.h dd4bb9179101766c68130ca8a0c0394e gcc/config/rs6000/darwin.md d7cfb8e861e9ce70e75110e0717d4d48 gcc/config/rs6000/darwin.opt ca74b9e31768f3d073078ccbbf6db3b4 gcc/config/rs6000/darwin32-biarch.h *************** b106f3dd78c027be0e6fa9e040d3d7d1 gcc/co *** 4596,4603 **** 5fedb3789acc17fe71b855ed4ed39d36 gcc/config/rs6000/emmintrin.h fbeee1c894dc51358ee6abecca818f38 gcc/config/rs6000/freebsd.h c815c61d1f8556dee28776379d38f97f gcc/config/rs6000/freebsd64.h ! b4f8e33b4342aea64cc25b24e2b5ce17 gcc/config/rs6000/fusion.md ! f57795fd3975e6a45558b5b8dd430631 gcc/config/rs6000/genfusion.pl c466bda58b985814fa22f4d4bc0a464a gcc/config/rs6000/genopt.sh 96ef7ba4b98df3c89168a75c71690601 gcc/config/rs6000/host-darwin.c 775ea72fb46676e26f93f160be6cc291 gcc/config/rs6000/host-ppc64-darwin.c --- 4597,4604 ---- 5fedb3789acc17fe71b855ed4ed39d36 gcc/config/rs6000/emmintrin.h fbeee1c894dc51358ee6abecca818f38 gcc/config/rs6000/freebsd.h c815c61d1f8556dee28776379d38f97f gcc/config/rs6000/freebsd64.h ! 8f3061003f5220420d740cdd38f03503 gcc/config/rs6000/fusion.md ! 4ec0cedb541b5e52b0bc4333f079a7f9 gcc/config/rs6000/genfusion.pl c466bda58b985814fa22f4d4bc0a464a gcc/config/rs6000/genopt.sh 96ef7ba4b98df3c89168a75c71690601 gcc/config/rs6000/host-darwin.c 775ea72fb46676e26f93f160be6cc291 gcc/config/rs6000/host-ppc64-darwin.c *************** eb5963a9afac325222a3cf411425b69b gcc/co *** 4611,4617 **** 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 --- 4612,4618 ---- b3d3483f2acc61db4751725d0556e646 gcc/config/rs6000/lynx.h 0cc3c5f9101501b8253ce3176c3ffce4 gcc/config/rs6000/milli.exp 565b63349f6e114554447b232a5490ec gcc/config/rs6000/mm_malloc.h ! ea2c7a70face0e7638532141b4aface9 gcc/config/rs6000/mma.md 77c63d8e54b9dc6ce0aaea2a01888513 gcc/config/rs6000/mmintrin.h 7da8551ea5a0e205407dfa782c773ce4 gcc/config/rs6000/mpc.md 5bca07190d45ef2ade8d1a237c5ac20b gcc/config/rs6000/netbsd.h *************** de0878750a3c4d20a063d22571380621 gcc/co *** 4628,4642 **** bb48fecf965ae77e0dd88aae5488f291 gcc/config/rs6000/ppc-asm.h 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 --- 4629,4643 ---- bb48fecf965ae77e0dd88aae5488f291 gcc/config/rs6000/ppc-asm.h 751ccf6be4b01d18f226acef853ef444 gcc/config/rs6000/ppc-auxv.h bfe475364cf3901b029f758b9ccfd8b8 gcc/config/rs6000/ppu_intrinsics.h ! de551124ccf7083e8613e86e127ab8be gcc/config/rs6000/predicates.md ! 51ab8fcf73ca900e42f59e79cc077dea gcc/config/rs6000/rs6000-builtin.def ! a6b9edf3e8296b86b66ef50c9d3d8ab1 gcc/config/rs6000/rs6000-c.c ! 35baaaceb142c9649b4b1f32932f0ad6 gcc/config/rs6000/rs6000-call.c ! 3db56e9e0b1cc9f5e7648bf8d75c6f6d 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 ! d308321ac5517b9f74ea1d308970646a 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/co *** 4644,4655 **** 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 --- 4645,4656 ---- 26ea894428823455da38add11e434423 gcc/config/rs6000/rs6000-passes.def 00c6fc44dcc86d36065fbda93661b17b gcc/config/rs6000/rs6000-pcrel-opt.c 7cbb179b585c27591492c12df504bcfb gcc/config/rs6000/rs6000-protos.h ! 80096dba10aea95f173ce925f548eba7 gcc/config/rs6000/rs6000-string.c 7a14e24f9ddae251943bacda6071c833 gcc/config/rs6000/rs6000-tables.opt ! fd30718a02716995f399a004d822ad20 gcc/config/rs6000/rs6000.c ! cc4b0a1bc72a17806288484317862548 gcc/config/rs6000/rs6000.h ! 534f95e6ba57e5eca59f8f7db2c939c2 gcc/config/rs6000/rs6000.md ! 808c21ca99d2c2c19934e71d99ae2414 gcc/config/rs6000/rs6000.opt c7f02424d98bd46c451c6c03893132ba gcc/config/rs6000/rs64.md 0e39e209d829a36a89d8676fb92a1993 gcc/config/rs6000/rtems.h b13403d0a3113444b4d47950f5cba69e gcc/config/rs6000/secureplt.h *************** b710cd20c617c7ee7fb9ac759787f22d gcc/co *** 4771,4786 **** fc1bf3d98ba4868ac185ac03af952e88 gcc/config/sh/sh-mem.cc 2143917d9da6004c5d38619849b35534 gcc/config/sh/sh-modes.def 5ce91cd44cd6f721b7498e50643fe273 gcc/config/sh/sh-protos.h ! fcc4dc434a25f92288b3b4934aa633f5 gcc/config/sh/sh.c 5616a24f889393d41e9fa0010c8e249e gcc/config/sh/sh.h ! 29769c718219ae18be67242072aa8b8b gcc/config/sh/sh.md e02a937f714f704741abcb139eebd433 gcc/config/sh/sh.opt 2fdd70cc6d89a7205ef035084235f4ec gcc/config/sh/sh1.md 2bd4053c0d5e4aa6b93d0c36772af770 gcc/config/sh/sh4-300.md fc22de21c1718b5acb0bb324bfa30ec6 gcc/config/sh/sh4.md b65c1cfbcd87f4e63912bfc4430ac6fb gcc/config/sh/sh4a.md 7bb3e0dc4bda8adac4830bee31043ba6 gcc/config/sh/sh_optimize_sett_clrt.cc ! ac57d8d3cb1f14439cf73e3f341dd2a9 gcc/config/sh/sh_treg_combine.cc f30882a6215b8e2a550b2d404d65ac45 gcc/config/sh/superh.h 06158b0f1e33501120db330d7734228d gcc/config/sh/superh.opt b7769ae5038bf2050b9b823af7e86938 gcc/config/sh/sync.md --- 4772,4787 ---- fc1bf3d98ba4868ac185ac03af952e88 gcc/config/sh/sh-mem.cc 2143917d9da6004c5d38619849b35534 gcc/config/sh/sh-modes.def 5ce91cd44cd6f721b7498e50643fe273 gcc/config/sh/sh-protos.h ! e3cdd8016c0321591fa6766b57c80e06 gcc/config/sh/sh.c 5616a24f889393d41e9fa0010c8e249e gcc/config/sh/sh.h ! 74ed8e331d4f8ebb3733e420d622058d gcc/config/sh/sh.md e02a937f714f704741abcb139eebd433 gcc/config/sh/sh.opt 2fdd70cc6d89a7205ef035084235f4ec gcc/config/sh/sh1.md 2bd4053c0d5e4aa6b93d0c36772af770 gcc/config/sh/sh4-300.md fc22de21c1718b5acb0bb324bfa30ec6 gcc/config/sh/sh4.md b65c1cfbcd87f4e63912bfc4430ac6fb gcc/config/sh/sh4a.md 7bb3e0dc4bda8adac4830bee31043ba6 gcc/config/sh/sh_optimize_sett_clrt.cc ! 14f1f47ca1d0668b66689b6d9ef346a3 gcc/config/sh/sh_treg_combine.cc f30882a6215b8e2a550b2d404d65ac45 gcc/config/sh/superh.h 06158b0f1e33501120db330d7734228d gcc/config/sh/superh.opt b7769ae5038bf2050b9b823af7e86938 gcc/config/sh/sync.md *************** e73530b82940344e65c464f787f0ea53 gcc/co *** 4943,4949 **** a1e190d3b341bc6ddeb76fbf961e7b78 gcc/config/vax/predicates.md 4c689845b2e868dbae5ebbbb8b8005d8 gcc/config/vax/vax-modes.def 7e0c2696f78ab7b89c7db443c436779c gcc/config/vax/vax-protos.h ! acb0a2d19a78a0ff20e2c972ee8b2fd3 gcc/config/vax/vax.c a68f8b03e844439f59b4160c2f55efa9 gcc/config/vax/vax.h 48661c71f0f5d9bfbc22a2ff6cc7d0e9 gcc/config/vax/vax.md e520abd9398f1388046ec8dc7914589d gcc/config/vax/vax.opt --- 4944,4950 ---- a1e190d3b341bc6ddeb76fbf961e7b78 gcc/config/vax/predicates.md 4c689845b2e868dbae5ebbbb8b8005d8 gcc/config/vax/vax-modes.def 7e0c2696f78ab7b89c7db443c436779c gcc/config/vax/vax-protos.h ! f296e40a15335345ed3b4252ff578337 gcc/config/vax/vax.c a68f8b03e844439f59b4160c2f55efa9 gcc/config/vax/vax.h 48661c71f0f5d9bfbc22a2ff6cc7d0e9 gcc/config/vax/vax.md e520abd9398f1388046ec8dc7914589d gcc/config/vax/vax.opt *************** bf27ee51add23d218ca627b3d40fda5d gcc/co *** 5015,5022 **** 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 --- 5016,5023 ---- 06bc01a7ccf9f8e76a200854e3483443 gcc/config/xtensa/xtensa.h 82a6ca8457a439cf22f400bc82844cad gcc/config/xtensa/xtensa.md f5b73b7b0901f94c273f343137c0a387 gcc/config/xtensa/xtensa.opt ! aa1d29aa4f6515201dd972ccb3db27a7 gcc/configure ! 1b4128431ce369f0011162e42b2d52cc gcc/configure.ac 27d42bf7c74759dfd549975615fc5068 gcc/context.c 16c3aa3c912f686f2a31e9390d85475c gcc/context.h f4ce7d4c40b8bd5fdb65296621e3c102 gcc/convert.c *************** f4ce7d4c40b8bd5fdb65296621e3c102 gcc/co *** 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 --- 5027,5033 ---- b92bf93ad5a628ce259b9055426c0cd4 gcc/coroutine-passes.cc bde87550feaf889731652f27f77bc587 gcc/coverage.c 040e51182a2000cd08580cee4c8591c6 gcc/coverage.h ! 811a68ad38b5ffb069f9f845d5469e52 gcc/cp/ChangeLog d271e3663538ba1f3281cab3838e92cd gcc/cp/ChangeLog-1993 f5a44adbc05521162350ca409d1d95ce gcc/cp/ChangeLog-1994 ac55db48d964cb5469ff03c1cd3ee04d gcc/cp/ChangeLog-1995 *************** f6ebb1c64d8e002666e58a4da0d97ecb gcc/cp *** 5058,5083 **** 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 --- 5059,5084 ---- c1c7801b9b0f379e702a4f6cb83972e7 gcc/cp/ChangeLog.ptr 9aa3cd9f75c785de9f51446e3f295515 gcc/cp/ChangeLog.tree-ssa d2bd0fd46a7f9c4ee3b56d9f428d65e0 gcc/cp/Make-lang.in ! 5cfce7d511493f94da10d1f2a4fd83df gcc/cp/call.c 013fc77930854f5ca6df4b4955b9cd5d gcc/cp/cfns.gperf 94073c4e9f5c434dbd02f5fab8ef2fec gcc/cp/cfns.h ! 4103dbd96158a70da0a6d5c4762a2e8b gcc/cp/class.c 52c149e840d6ef546324992e040dffc9 gcc/cp/config-lang.in ! 6eb10706d6b233de58eb54f83ea0c12e gcc/cp/constexpr.c 9ae4cb52106e89d9c5a2e781033620a8 gcc/cp/constraint.cc ! e7e9540c57b4c2318fac6df77f31910d gcc/cp/coroutines.cc ! cbb31513982d3afc4d8062fbe4fda8a9 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 ! 7cbb4a2a03c025bd650ec10b4b00fac6 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 ! 4edfd73e3ecda51acb595e357732745d gcc/cp/decl.c 2ee48334d4ea854bc0b6138b17db0eca gcc/cp/decl.h 3280ae91b5be9675d30d1cb050bc959b gcc/cp/decl2.c babde369bad84c4348cbb81fef27de19 gcc/cp/dump.c *************** babde369bad84c4348cbb81fef27de19 gcc/cp *** 5085,5092 **** 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 --- 5086,5093 ---- ae9a51d72d46922925309791e4610beb gcc/cp/except.c 241a55f9bb802f8d3cc6054dd4cd9178 gcc/cp/expr.c b791a0dba8e31384d08e932019f00711 gcc/cp/friend.c ! 1d522b085fa99efce9c195fcc218b3bd gcc/cp/g++spec.c ! 999acda1c9e70c7529eb2dd1cea55a01 gcc/cp/init.c 037fc13026820d090e2071641efbedf8 gcc/cp/lambda.c 1b5fe425de21c6959e8fcf809a4d9bf0 gcc/cp/lang-specs.h 8b55a87f580d7fabcd05e1be8bf8678a gcc/cp/lex.c *************** e9bd33d0476c27e8dc7ae163523b0c43 gcc/cp *** 5097,5116 **** 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 --- 5098,5117 ---- e9215833b37c3eb15eca691a16a697c2 gcc/cp/mapper-resolver.cc e9a208e30d27c64ecd8cf48641166778 gcc/cp/method.c c9c31fd4be4157e651437f69bab47e87 gcc/cp/module.cc ! 542f0e6abaed6bb8c62043fdfde1a5b9 gcc/cp/name-lookup.c ! 41b7d184bb273d5d6baa63a0cd0d6036 gcc/cp/name-lookup.h 74ef5d5c783b19f58d24af2f5d586229 gcc/cp/operators.def 135e2526b78ff7fba60e97120acd13ce gcc/cp/optimize.c ! b2fa4da7185e236c45121e05da8bf5ae gcc/cp/parser.c 33e6205b133939ff76752369e76e776e gcc/cp/parser.h ! fb47bccde422bf676c4c6084ff5390d7 gcc/cp/pt.c 185afe382f5cbb5102c5c681fca68144 gcc/cp/ptree.c d406c7234ce4950b24a30a51bdfdd50a gcc/cp/rtti.c 8cb37681d9be422bc5accc1da48d5a75 gcc/cp/search.c ! 5b444866d6da2bb6af7b143123b1cd81 gcc/cp/semantics.c 0396d0f5ebabe1de78784a27789c5579 gcc/cp/tree.c 7edfa58f1051f1f2f0f0b14381ef44a3 gcc/cp/type-utils.h ! 9559b979ad8e6ed902269a93534543c0 gcc/cp/typeck.c e4cc977761b34df297265283c01fd95a gcc/cp/typeck2.c 2106dba4a8c689a23ae0c6ed874a57e3 gcc/cp/vtable-class-hierarchy.c a1dcb34fdd7a1dfb94f27bc0ac1a9306 gcc/cppbuiltin.c *************** a1dcb34fdd7a1dfb94f27bc0ac1a9306 gcc/cp *** 5122,5128 **** 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 --- 5123,5129 ---- c46d05fc82c5d23635826d70bb1bbe79 gcc/cselib.c afc06cbc81e04301f2d2ce40e905e36b gcc/cselib.h 1ded054093de910d9786c62bc4fe8cc6 gcc/cstamp-h.in ! 20b3394b0d140c1e25a470a8c3529e37 gcc/d/ChangeLog 86f687c485111eedca2eb048294f957e gcc/d/ChangeLog-2006 70ed1c47fd9b3f5dd95055642ed79265 gcc/d/ChangeLog-2007 a7090ab2dd83aa4f44823c17566b83ef gcc/d/ChangeLog-2008 *************** e432bfc5c605ae0b1beedf0492ad40d1 gcc/d/ *** 5143,5151 **** c828f621dae15ecdebcb6483cc2a359a gcc/d/config-lang.in ac5afa7752655d02611f15cb06067ee5 gcc/d/d-attribs.cc 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 --- 5144,5152 ---- c828f621dae15ecdebcb6483cc2a359a gcc/d/config-lang.in ac5afa7752655d02611f15cb06067ee5 gcc/d/d-attribs.cc 2859511236eb18116b8f704c0893fc82 gcc/d/d-builtins.cc ! 81564d91a2fb42e97969c289d569a217 gcc/d/d-codegen.cc 75ceab1f211190aa8a607de211d92550 gcc/d/d-compiler.cc ! 38d9f94c9879f2db5c741b4d1899a039 gcc/d/d-convert.cc c68cc8b289e0bed7991d8ba214514b52 gcc/d/d-ctfloat.cc 96e81ac3898e23a215821a9ca3faac03 gcc/d/d-diagnostic.cc 9ad7d94122a0e53b642e569ef01bd97c gcc/d/d-frontend.cc *************** e510e0920097f33c1584945cb08e080f gcc/d/ *** 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 --- 5163,5169 ---- bd403a5022b9229546c86481f8f9b61e gcc/d/d-target.h 03f0da7679723f02dabef26c57f6b354 gcc/d/d-tree.def ea5292cd7004a68b8465731456abc987 gcc/d/d-tree.h ! 8383df8f50406b50665f89d13fe3eee4 gcc/d/decl.cc 3b33e14d54fdeb23eedefb85531d96d9 gcc/d/dmd/MERGE 56e5dec62f6a10592384f715f378eef0 gcc/d/dmd/access.c 3791d70488bc98342964c686b935b89c gcc/d/dmd/aggregate.h *************** d23cee2b9d07116997cebcb46669827a gcc/d/ *** 5194,5200 **** 20e6433cd9095919b4a2bee01595a9b6 gcc/d/dmd/delegatize.c 8fe999fa3cb1a5480c72d74362fe5584 gcc/d/dmd/denum.c bda548f1854f17362b4dc956996b72c1 gcc/d/dmd/dimport.c ! 7009e0a3a509412f9c69c0c4bcd04043 gcc/d/dmd/dinterpret.c 26be8934a4c84e87ab8c06032f54f67d gcc/d/dmd/dmacro.c ae3f5303a6957010e3af61bcd0b976b7 gcc/d/dmd/dmangle.c f48ad9578476ae3893dd5a8ae3267e33 gcc/d/dmd/dmodule.c --- 5195,5201 ---- 20e6433cd9095919b4a2bee01595a9b6 gcc/d/dmd/delegatize.c 8fe999fa3cb1a5480c72d74362fe5584 gcc/d/dmd/denum.c bda548f1854f17362b4dc956996b72c1 gcc/d/dmd/dimport.c ! a13b4bad46296f7fd13de70f5a6f1958 gcc/d/dmd/dinterpret.c 26be8934a4c84e87ab8c06032f54f67d gcc/d/dmd/dmacro.c ae3f5303a6957010e3af61bcd0b976b7 gcc/d/dmd/dmangle.c f48ad9578476ae3893dd5a8ae3267e33 gcc/d/dmd/dmodule.c *************** df2a78f5b00debf6e042e43602e9d42c gcc/d/ *** 5304,5311 **** 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/lang.opt --- 5305,5312 ---- 0ab1d21cbddf7956fc552e2637e36eb7 gcc/d/dmd/visitor.h 6938ab9ac55e68adb6649cc1b3bf25bc gcc/d/expr.cc 62330f923806ea0075a632280081c9d1 gcc/d/gdc.texi ! 8ced8ad783ed46cadc3ea1ff49b228b0 gcc/d/imports.cc ! ca8c610aefd06f7629d326cfe413a613 gcc/d/intrinsics.cc 4fe7ce256ef44a3d0fae8336b3d3ed5d gcc/d/intrinsics.def d86483b35c844004766bacbcd21e16ed gcc/d/lang-specs.h dcd9f842c89c2eb8cda2d4e66cfd3a75 gcc/d/lang.opt *************** ea64a4d9552ea8f63780ef71e40ad1cc gcc/d/ *** 5315,5321 **** 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 bdbe70f8cb140083bbbf06e081f01c55 gcc/data-streamer-out.c --- 5316,5322 ---- fb778fcb2c41447123e9fc33e23ee981 gcc/d/runtime.def 1f4f99a715c4970883a5818197628839 gcc/d/toir.cc 268eff5b661319b07d40a36ffb74f97b gcc/d/typeinfo.cc ! c6383e62c38d97eec14f73177e507103 gcc/d/types.cc ffe6cb4083340e61aa80419c3ac2f84a gcc/d/verstr.h 888f179fbed34dff2cb09f3941f28b3f gcc/data-streamer-in.c bdbe70f8cb140083bbbf06e081f01c55 gcc/data-streamer-out.c *************** d3f48eb6291337b70a8663fea43c5e35 gcc/do *** 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 --- 5364,5401 ---- 218582d80c3a5be7ef0215bc9e37347d gcc/doc/configterms.texi 3f7bc37ecd638efa9217dbc8049586bd gcc/doc/contrib.texi 21f4ebe254eeaf839f14e76f6d98e0f3 gcc/doc/contribute.texi ! 1e77e8d0b8087b44508bfed7fc4f1e86 gcc/doc/cpp.1 ! 15c38e90fced4ddbf465248f56dcd6b9 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 e359b49f51098d2b4c6976efb731dfc9 gcc/doc/cppopts.texi 5e580ffce6393e71cea1d0f253c2235e gcc/doc/cppwarnopts.texi ! 2183af54c8d97b3a4a97774c9c8a969b gcc/doc/extend.texi 25e9d455e6d1bd64d661a3b9b7c760d1 gcc/doc/fragments.texi b286e11fcfd62c37fae56d6d6c31d1fe gcc/doc/frontends.texi ! cfb2648c3655be4dd2d1955b38ba7f3b gcc/doc/fsf-funding.7 ! 4e847b54d812defa25b22b659568c3f0 gcc/doc/g++.1 ! 4e847b54d812defa25b22b659568c3f0 gcc/doc/gcc.1 ! c95bbd15508d9f71318820175e90793e gcc/doc/gcc.info 1b8b50b15f7f7dfd2bfc10cf04e79196 gcc/doc/gcc.texi ! 079f15302a0d1dc40e94943dae73745b gcc/doc/gccinstall.info ! e0bf8ca0f5fe4b84b31aa46714541fdc gcc/doc/gccint.info e0b2b9651dfdfcc12ee2da87c17e11e1 gcc/doc/gccint.texi ! bb5fb76e589ddaec11707ba048bcd771 gcc/doc/gcov-dump.1 d9797edde2661ae0e512c8176c290ae9 gcc/doc/gcov-dump.texi ! dd65ccbf38424e34ff7fdc6d4fcf4dec gcc/doc/gcov-tool.1 ca308b028dbb9daa82d92ccca156e07b gcc/doc/gcov-tool.texi ! ace7e3e17b19ed1eea60c2056448174f gcc/doc/gcov.1 fd33c1e0e0091bc38ffbee7177921ff3 gcc/doc/gcov.texi ! 85bb00bb513568b67d9115361f41b1f3 gcc/doc/generic.texi ! 99de47d9e71e1558f17c49592900b3d8 gcc/doc/gfdl.7 ! d09628fdc051114e5097c50b3fc4043d gcc/doc/gfortran.1 587484a2f8ff3cf6b292b5c044724d4b gcc/doc/gimple.texi 290370669f02bef1502ada9273e5261f gcc/doc/gnu.texi ! 4f7dc15b2cae659b92dcda194f9a5381 gcc/doc/gpl.7 c89eb85139a4c6829a59358310920b18 gcc/doc/gty.texi 7bf48d369f1899cf21f53b06605706c6 gcc/doc/headerdirs.texi 880f6eba982285c503ae42d08a7abad8 gcc/doc/hostconfig.texi *************** b82b1143f78f373e3c76f6958d830869 gcc/do *** 5406,5423 **** b6389c8331319f90193f11ac084e86e4 gcc/doc/include/gpl_v3.texi 73819b3930a3d4be5d6234070d02386a gcc/doc/include/texinfo.tex 9003c1b6a06c7661deb5ffc0dd0e145f gcc/doc/install-old.texi ! 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 ! 3c7466056002814f6c005ea620b49ed5 gcc/doc/match-and-simplify.texi 644d59411fcc5a411f795ed8a14af490 gcc/doc/md.texi f769222ae6869bc37b118c5be0d92d0b gcc/doc/objc.texi 76a993580876d01ee5f77b3512773a81 gcc/doc/optinfo.texi --- 5407,5424 ---- b6389c8331319f90193f11ac084e86e4 gcc/doc/include/gpl_v3.texi 73819b3930a3d4be5d6234070d02386a gcc/doc/include/texinfo.tex 9003c1b6a06c7661deb5ffc0dd0e145f gcc/doc/install-old.texi ! 41b3883ca19cdfdbbc81a589cc01e3ac gcc/doc/install.texi 532fb3c092b7b296ddcec4a99a0c475d gcc/doc/install.texi2html 2bdd76b105eea8ff35649ac4ffb8eb5d gcc/doc/interface.texi ! 0d6e064d97b8a144650a23613995c803 gcc/doc/invoke.texi c0f8bb0ef887855830a3b2948920db28 gcc/doc/languages.texi 0250c30f49d52e180cf510442a084475 gcc/doc/libgcc.texi 3c5a8fa331cb442336e2ff249f1f0aee gcc/doc/loop.texi ! 4954668af952fc1ec3256557e9a7a48d gcc/doc/lto-dump.1 45b0e2c9fe4e809535fd2665b7efe706 gcc/doc/lto-dump.texi 1e20b8193e6a33b7a5258cacf05c5634 gcc/doc/lto.texi 959966ff2c0bf27c64314d6bdc06d05a gcc/doc/makefile.texi ! 0b43ee165a2b2b10390ee663ca19a2ec gcc/doc/match-and-simplify.texi 644d59411fcc5a411f795ed8a14af490 gcc/doc/md.texi f769222ae6869bc37b118c5be0d92d0b gcc/doc/objc.texi 76a993580876d01ee5f77b3512773a81 gcc/doc/optinfo.texi *************** f769222ae6869bc37b118c5be0d92d0b gcc/do *** 5426,5432 **** 6d12d3b04d19748966c49a7c13307be8 gcc/doc/plugins.texi 0603ab3940871fa2a55ddbd7c2719eb7 gcc/doc/poly-int.texi 3c91752a7efcf15b052979c89d7d5bbc gcc/doc/portability.texi ! a307378c56ec70371c9a935472cbfd42 gcc/doc/rtl.texi 47714e0c449e2849262ea093f2a51055 gcc/doc/service.texi 2a2424de5e45e8f0091cac3e29487994 gcc/doc/sourcebuild.texi 9881c6973427acd0eb815283b1cb2c8f gcc/doc/standards.texi --- 5427,5433 ---- 6d12d3b04d19748966c49a7c13307be8 gcc/doc/plugins.texi 0603ab3940871fa2a55ddbd7c2719eb7 gcc/doc/poly-int.texi 3c91752a7efcf15b052979c89d7d5bbc gcc/doc/portability.texi ! 101517ddc6f17d7fe6ce03147ea50132 gcc/doc/rtl.texi 47714e0c449e2849262ea093f2a51055 gcc/doc/service.texi 2a2424de5e45e8f0091cac3e29487994 gcc/doc/sourcebuild.texi 9881c6973427acd0eb815283b1cb2c8f gcc/doc/standards.texi *************** a0e7d76c9e6820c8c60fd7162484c1aa gcc/du *** 5450,5456 **** 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 --- 5451,5457 ---- 8731562505e8ee4827d4bffe59b4e5e6 gcc/dwarf2asm.c b301aca61d8288586da32dd2c3e6c7ea gcc/dwarf2asm.h 301a89cf04dc4a12bb77b09ad0daa51f gcc/dwarf2cfi.c ! 8cd576d3369fbe0c89dc7bb86b8f341c gcc/dwarf2out.c f9339d6f2072113fa5a26bc27c7764c9 gcc/dwarf2out.h c41773ac5892c49b8063e85e4cf7d803 gcc/early-remat.c 5d0344605084d3d22969ca333fe08a2e gcc/edit-context.c *************** acf60971867c3bda77169fa63b5d9155 gcc/ex *** 5467,5473 **** 829e4322150b9f6d41f14010e7a57a0e gcc/exec-tool.in 26871eb3fbf33e5b942cb7c8c2995bd2 gcc/explow.c 4abb7d44019c01df643228a63102e0a4 gcc/explow.h ! 12ac80aeab1b9a80e5593f38c6250825 gcc/expmed.c 461a5c7a292b43e45d34d15a6123aa1b gcc/expmed.h 930c87db8b77271f2531ed656637aea8 gcc/expr.c 8dcbd4db5ca82e1fb16c9af198cace7e gcc/expr.h --- 5468,5474 ---- 829e4322150b9f6d41f14010e7a57a0e gcc/exec-tool.in 26871eb3fbf33e5b942cb7c8c2995bd2 gcc/explow.c 4abb7d44019c01df643228a63102e0a4 gcc/explow.h ! 49afc33371ebb6513a8660f3b14bc0a7 gcc/expmed.c 461a5c7a292b43e45d34d15a6123aa1b gcc/expmed.h 930c87db8b77271f2531ed656637aea8 gcc/expr.c 8dcbd4db5ca82e1fb16c9af198cace7e gcc/expr.h *************** bc014c20048c035718ad5836f6097d78 gcc/fi *** 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 --- 5485,5493 ---- 764f38b5e7ac1b3b4079577b45cb0331 gcc/flags.h 891064e4722e3a6a11417a8a1ecd065a gcc/fold-const-call.c d74e6be78940750833ff959c0f5571bd gcc/fold-const-call.h ! 79a410b8cd2153161bb4d8b7112f7c0f gcc/fold-const.c 3812bf5faa6f093ebc438439b278eb2e gcc/fold-const.h ! edf646c3a53d0f71de9bae0de2723154 gcc/fortran/ChangeLog 3330102ad3a0217cba963be6b5eefd58 gcc/fortran/ChangeLog-2002 d000ab985b1eeb1ad5749f98b8fef99f gcc/fortran/ChangeLog-2003 bf42f94f0c51dcc7d8051cc7fda1efdc gcc/fortran/ChangeLog-2004 *************** a71efd3e199a80ee07c7f350cc8fcf91 gcc/fo *** 5508,5514 **** d1595b2ed8fb2a33f6ce0dc595f4f33c gcc/fortran/ChangeLog-2020 9e0636f92243fb9b3480e27cefc96749 gcc/fortran/ChangeLog.ptr 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 --- 5509,5515 ---- d1595b2ed8fb2a33f6ce0dc595f4f33c gcc/fortran/ChangeLog-2020 9e0636f92243fb9b3480e27cefc96749 gcc/fortran/ChangeLog.ptr ff3a70a964289eb29172b7a5e086ee3f gcc/fortran/Make-lang.in ! 4a3333936f0872cfc67ccb978b70cb9d gcc/fortran/arith.c 5478da78bbb9c6f5ec6f4c291556f64b gcc/fortran/arith.h fd0c7f1afa3844997e121bacf1505be2 gcc/fortran/array.c 41d9862a96a73a3888dd71dbfd6a6f48 gcc/fortran/bbt.c *************** b1628a6231ddb7f7e4b2cf44b836b928 gcc/fo *** 5522,5539 **** 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 --- 5523,5540 ---- 315cf57aecb390202190f4259ba3a36b gcc/fortran/cpp.h ee7a54e5c7f7a1043642f3148aa0e591 gcc/fortran/data.c 82bc765451efda646706547a38c09487 gcc/fortran/data.h ! 62e4862dac152a3fc779e06b102918e3 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 ! daa2b496b7d60f8d5b1af8ddc2151d4a gcc/fortran/frontend-passes.c 61d212b06741cc79879806a53df1eaa2 gcc/fortran/gfc-diagnostic.def 862a8dcb967ce0c214bce57208763cfc gcc/fortran/gfc-internals.texi ! 7e5267dfddd18b4874505d17674b6362 gcc/fortran/gfortran.h ! 83b13c91736e3468e0fe9e79cdc27a1a gcc/fortran/gfortran.info 58ec938eb719edf2ffe5dbfcce4dd1d8 gcc/fortran/gfortran.texi 13ef845dc55ae5b20f8afe50368263ea gcc/fortran/gfortranspec.c f39217510485d58e67eb40edf78ebb8d gcc/fortran/interface.c *************** e89c88d0e221777b9aa7246f8d43a0e3 gcc/fo *** 5554,5584 **** af7a3aa1a1204dd37e34eefa510399cd gcc/fortran/matchexp.c b3b81cd6b5386b281800a93f8e4ade0b gcc/fortran/mathbuiltins.def 6f7fc5d0b4f3b65e166f5d6c5e5f9f8f gcc/fortran/misc.c ! 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 --- 5555,5585 ---- af7a3aa1a1204dd37e34eefa510399cd gcc/fortran/matchexp.c b3b81cd6b5386b281800a93f8e4ade0b gcc/fortran/mathbuiltins.def 6f7fc5d0b4f3b65e166f5d6c5e5f9f8f gcc/fortran/misc.c ! 9b30c0883a5ef58edb5cada5dadcab0e gcc/fortran/module.c 52a543b51ac574c91c996a85d775d71d gcc/fortran/openmp.c 94fda6c5e12794dcdd5f378023229c01 gcc/fortran/options.c ! 87ab692c8e76f389677c64d258c03fe3 gcc/fortran/parse.c 35501e834b34f6440232d3c4c2bbd56c gcc/fortran/parse.h ! b1edc03c4591734e824e2bfe0fe55ed7 gcc/fortran/primary.c ! 42a5928bf989b8f194789800d4b1d126 gcc/fortran/resolve.c 15654692fbf8143321f77d50d70bf5db gcc/fortran/scanner.c e878063bf09025352b6adf6b5d0ab78d gcc/fortran/scanner.h 89b9a275ca73a232db538c0822e5fb81 gcc/fortran/simplify.c 52826d539d76cfcf3218c02df40aecf6 gcc/fortran/st.c ! 256a3d5490d8c44a1548cbd3786a30ea gcc/fortran/symbol.c 758aeef05fd4d7d6a4474397ada7c8f3 gcc/fortran/target-memory.c 0ce203c000f89bcab4e2f2b5885ec8f5 gcc/fortran/target-memory.h ! 88f66ee78d3c0e9ddfbe2e7a90eed857 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 ! d8678fb4047bb3e770cf79aaa6ebfd3d gcc/fortran/trans-expr.c 4926b7e6ac1f51c022972854fc1af33b gcc/fortran/trans-intrinsic.c d442a2920715f33cb7ca72f6cf551377 gcc/fortran/trans-io.c b700350e62cdce1e61c30e786605a3ec gcc/fortran/trans-openmp.c ! 4211d02ae48cc47939cf645a3c9ee01b gcc/fortran/trans-stmt.c adac91a5c3e9a289d1e225ac37f895f2 gcc/fortran/trans-stmt.h c327c38ab53f43521dc4d3a07fc93272 gcc/fortran/trans-types.c a1fc23f04301b08a0068afcd35eff141 gcc/fortran/trans-types.h *************** a7378b0ee32d1a8103f2106f776ddeef gcc/fu *** 5592,5598 **** 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 36270fbfd00ae013d66af03d3b996492 gcc/gcc-plugin.h --- 5593,5599 ---- 3be627fea3a3a6c9f0031cdd2808bada gcc/function-tests.c c5a9339ec92fd0ce9da14a18d658a9e9 gcc/function.c 051f5de7c89e11b8cdbbcbca9b42e9f2 gcc/function.h ! 1f65310995ca4b519974176f897e8774 gcc/fwprop.c 628dd8bc4c3033a144ca9d7411e136d8 gcc/gcc-ar.c 9b3cde5e018ae1629dad78df7495c686 gcc/gcc-main.c 36270fbfd00ae013d66af03d3b996492 gcc/gcc-plugin.h *************** b8331fe711c794d31411d145186f839e gcc/ge *** 5634,5647 **** 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 --- 5635,5648 ---- 0851ab0217a3550c4694dc56da1d14a0 gcc/genextract.c d8284cac8286a7a7d64ac13ec870daa7 gcc/genflags.c 950b7513fef07bfbefb505897b6d7448 gcc/gengenrtl.c ! 51f5bc0a4e6a5bc9829edcb80d1f22ea 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 ! ca78688f661561ba61202aab3933fb90 gcc/genmatch.c 54cca04c9cb300d0ab0ad99273a73e7c gcc/genmddeps.c 0b1ec8e93aaa85abaf253992e194254d gcc/genmddump.c f1d29bde9cddf2b5a4a9c55cad19d1fa gcc/genmodes.c *************** ca2520162ec5b4b80e57e4f46690e4c6 gcc/gi *** 5666,5672 **** 6a22e0a2c2e663ac23a368e20fa1fe9c gcc/gimple-builder.h 036cecd86563f6394e964dc1bb605895 gcc/gimple-expr.c 6b5f6aa1713f09243d1159a75ecd7976 gcc/gimple-expr.h ! 9864da12a5fa4e9052e9a2444e49bdc1 gcc/gimple-fold.c 19b1447666533a8e534b359325a40685 gcc/gimple-fold.h ae9c923ed2c8a79aaa3ca54a22881ef0 gcc/gimple-if-to-switch.cc 20b2c5de7eec5f50e66d6709ccaeeee8 gcc/gimple-isel.cc --- 5667,5673 ---- 6a22e0a2c2e663ac23a368e20fa1fe9c gcc/gimple-builder.h 036cecd86563f6394e964dc1bb605895 gcc/gimple-expr.c 6b5f6aa1713f09243d1159a75ecd7976 gcc/gimple-expr.h ! 28f545beccc7e2a7d0826680dc62363e gcc/gimple-fold.c 19b1447666533a8e534b359325a40685 gcc/gimple-fold.h ae9c923ed2c8a79aaa3ca54a22881ef0 gcc/gimple-if-to-switch.cc 20b2c5de7eec5f50e66d6709ccaeeee8 gcc/gimple-isel.cc *************** a5f6cff42cef43846738248ba84846e3 gcc/gi *** 5691,5705 **** f61a8ff332c742ad4bc134e6154e28c7 gcc/gimple-range-gori.h 7a4d5971631f3acee678a1d6bbce867f gcc/gimple-range.cc 2c5c9f17c97ce09156b83e764c567987 gcc/gimple-range.h ! e3b577427781a76267364ec3efa54f51 gcc/gimple-ssa-backprop.c 07f08a30d5a28800e5c2ea26c217d226 gcc/gimple-ssa-evrp-analyze.c e5bfc6ff4a07f1f5591f18021b017283 gcc/gimple-ssa-evrp-analyze.h 84bc1f1b8180d0896c63d8a631d2008c gcc/gimple-ssa-evrp.c f96959d86d6678e1a7fdf38b6e127bcd gcc/gimple-ssa-isolate-paths.c 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 --- 5692,5706 ---- f61a8ff332c742ad4bc134e6154e28c7 gcc/gimple-range-gori.h 7a4d5971631f3acee678a1d6bbce867f gcc/gimple-range.cc 2c5c9f17c97ce09156b83e764c567987 gcc/gimple-range.h ! f1e125d77a6ea4c0a4f80a24001f4970 gcc/gimple-ssa-backprop.c 07f08a30d5a28800e5c2ea26c217d226 gcc/gimple-ssa-evrp-analyze.c e5bfc6ff4a07f1f5591f18021b017283 gcc/gimple-ssa-evrp-analyze.h 84bc1f1b8180d0896c63d8a631d2008c gcc/gimple-ssa-evrp.c f96959d86d6678e1a7fdf38b6e127bcd gcc/gimple-ssa-isolate-paths.c b6d23698f494095d6a2998fccaa3f8b9 gcc/gimple-ssa-nonnull-compare.c aced049779ec566808a605d67e3515fc gcc/gimple-ssa-split-paths.c ! d8dfb4af92845989257f24da4a43992c gcc/gimple-ssa-sprintf.c ! 5deebb60a8a905b5304f382bbedfde21 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 *************** f600ba03fe6a2c3cd6c70bcc66153eed gcc/gi *** 5732,5748 **** 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 88479225176a663f9ecb3aed6b241ad6 gcc/go/gccgo.texi ! 1bfe12d4d420dea782bfc43f73f50629 gcc/go/go-backend.c 36093348dc9f5bfa786624db0014386e gcc/go/go-c.h 19e44eeadca75d05b7d0722682e1268d gcc/go/go-gcc-diagnostics.cc 7cc5c5737f3346d824976c10bdc0d692 gcc/go/go-gcc.cc a64e89816f7f16f13cbd044f4c56515e gcc/go/go-gcc.h ! c48761e2b947c22f3ca2f5eed4f8cdf9 gcc/go/go-lang.c c5d6aaa7e913ef205113a2bba2e5206f gcc/go/go-linemap.cc 91c7a6773e207cc086ae0888826cc3c4 gcc/go/go-location.h 3a0ebd75d30f31d898f41763a9326903 gcc/go/go-sha1.cc --- 5733,5749 ---- fd1e7b72f05881b3313665c73e2f4da9 gcc/ginclude/unwind-arm-common.h 8d9ecf0d6ef93c79623ce1d27a32a2cb gcc/ginclude/varargs.h 5081e1e198938204286d03d45535b34b gcc/glimits.h ! 7e9a0254968269152457a4a6d53cad17 gcc/go/ChangeLog e905ea0930382dd7f885f6df4e826e16 gcc/go/Make-lang.in 60ea054548c83c7f66170073f9f3e74c gcc/go/README.gcc 441e07f72df962bba81b0fca4787a622 gcc/go/config-lang.in 88479225176a663f9ecb3aed6b241ad6 gcc/go/gccgo.texi ! a5e04dc25f7a93c12bd7dfffa0e1ec8d gcc/go/go-backend.c 36093348dc9f5bfa786624db0014386e gcc/go/go-c.h 19e44eeadca75d05b7d0722682e1268d gcc/go/go-gcc-diagnostics.cc 7cc5c5737f3346d824976c10bdc0d692 gcc/go/go-gcc.cc a64e89816f7f16f13cbd044f4c56515e gcc/go/go-gcc.h ! dae3fd37e46ad9c67629ae2010a02c36 gcc/go/go-lang.c c5d6aaa7e913ef205113a2bba2e5206f gcc/go/go-linemap.cc 91c7a6773e207cc086ae0888826cc3c4 gcc/go/go-location.h 3a0ebd75d30f31d898f41763a9326903 gcc/go/go-sha1.cc *************** c890af2497a7295e5ad9f2603cf17cb8 gcc/in *** 5848,5854 **** 8448a04e26d84db7cae7935f7d8c3b9a gcc/insn-addr.h 723316db4cf40aed5f78795fd24221c1 gcc/insn-notes.def 7f143576fc4600b1f908b599cc1d58b5 gcc/int-vector-builder.h ! ee877c2060889fa2d68b9332a105f967 gcc/internal-fn.c f3f89b671d0605b3e93ee9b6ef8a3852 gcc/internal-fn.def de5c239aa4766cc69fc2017ae8e7d8d1 gcc/internal-fn.h 6aa6c9959854056e3c3e0d2587f2ef78 gcc/intl.c --- 5849,5855 ---- 8448a04e26d84db7cae7935f7d8c3b9a gcc/insn-addr.h 723316db4cf40aed5f78795fd24221c1 gcc/insn-notes.def 7f143576fc4600b1f908b599cc1d58b5 gcc/int-vector-builder.h ! 4d6ea6f25494780c8016c158b9525567 gcc/internal-fn.c f3f89b671d0605b3e93ee9b6ef8a3852 gcc/internal-fn.def de5c239aa4766cc69fc2017ae8e7d8d1 gcc/internal-fn.h 6aa6c9959854056e3c3e0d2587f2ef78 gcc/intl.c *************** de5c239aa4766cc69fc2017ae8e7d8d1 gcc/in *** 5860,5866 **** 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 --- 5861,5867 ---- f95a69b1f3983dc781ef570590f5b01d gcc/ipa-fnsummary.h 7c46ef6a7d9230f2798ed1ce630eeb4a gcc/ipa-icf-gimple.c bde983e86d6dce7cfa528ed5003fbf84 gcc/ipa-icf-gimple.h ! ab6384ffded71059ce30d61cf205fec4 gcc/ipa-icf.c d1c62ca27392156d9ab55eb9a8c5941f gcc/ipa-icf.h 6ff03f4502965e2dae22d99c4abbc97c gcc/ipa-inline-analysis.c 8eb383763689a3d5ad9bd67cbd1fcb32 gcc/ipa-inline-transform.c *************** fcdecd375e9f7dcef39dfb29545d6859 gcc/ir *** 5900,5908 **** 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 7a93c8cedef319d0da7ea43c5ac5fa02 gcc/jit/config-lang.in df53fb6b84c435b56ac2cb2727b62b27 gcc/jit/docs/Makefile --- 5901,5909 ---- f2cefc86c9a11fe045772f372434ad3c gcc/ira.h a034d62871bbde98ccf4abce95e4bbd3 gcc/is-a.h dd335e7d147186c7f4aa9327f600007b gcc/iterator-utils.h ! 329629aa303d68b8d1a2b39a3cfc8054 gcc/jit/ChangeLog 6071bdf04fb356c5ac99a99ec00c9a12 gcc/jit/ChangeLog.jit ! 323da37700e16ab6e90d092c3f943ac3 gcc/jit/Make-lang.in fd0d76b6467c987f813d430a35d4760a gcc/jit/TODO.rst 7a93c8cedef319d0da7ea43c5ac5fa02 gcc/jit/config-lang.in df53fb6b84c435b56ac2cb2727b62b27 gcc/jit/docs/Makefile *************** e3db52c2bdf2089f3518cad629deba24 gcc/ji *** 5984,5989 **** --- 5985,5991 ---- 9fa963f67a08d2dc921cd6d505db85fc gcc/jit/jit-w32.h d85e22e3a831e54a55caed1c440a5a0c gcc/jit/libgccjit++.h 833a65f04d21fabe3a57534d3a54f644 gcc/jit/libgccjit.c + d5f7a2f5760915c4e4e8e6e11b9b2acd gcc/jit/libgccjit.exports af3735f9a574fcc19ed30bac19464af0 gcc/jit/libgccjit.h 92eab2771f504aaf31f5de8e70466b9e gcc/jit/libgccjit.map aaaa50e3d4a7c60cc413faccb2d831c6 gcc/jit/notes.txt *************** e891b7eb2f83b1624be70538a0e0d189 gcc/lt *** 6030,6036 **** 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 --- 6032,6038 ---- 5ad327021166fdb0ecad2661fbca70be gcc/lto-streamer.c c75e2adeba7a17a10efdd07b0b9113b2 gcc/lto-streamer.h 8ffaca3710dc2b758bb4992782a9458a gcc/lto-wrapper.c ! eee31443b0133fee63c9698c3a00e736 gcc/lto/ChangeLog d5bb42eff522196004d91ca34cfaa49b gcc/lto/Make-lang.in c1fff5b6c2a7f236e55f0d3b5cb28062 gcc/lto/common.c 71bd5c32de47c74a39491375ef7f71c5 gcc/lto/common.h *************** a3d7fa7b491b3c623e8ad32109a8af10 gcc/lt *** 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 --- 6054,6060 ---- c0598ad047996b6b546ae37ac7961415 gcc/machmode.def 9ed2f72363a926d2750418ef5c5cf728 gcc/machmode.h 1e3feea915d17412b3e57a55c5a785e8 gcc/main.c ! fde66b64e8c46fd9cbf8be264e4ad9ab gcc/match.pd 4b41ba6f5c2972934928d702e6ab5c99 gcc/mcf.c 12ed5d7cdbe37098551333c0d54e68ad gcc/mem-stats-traits.h d36e5c61d9079e93d8844808c4280f3b gcc/mem-stats.h *************** ffb6709ef6e104f353edb09bc1651596 gcc/mo *** 6065,6075 **** 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 ! d64749fa6e7edf794e43ca2d299513e8 gcc/objc/objc-act.c d82921cbb439a19f64f1d25a6a14f4c4 gcc/objc/objc-act.h 3d5a7b3f2b8ede25454e6cc796103e45 gcc/objc/objc-encoding.c da34ed0a750a923083050676a1d84d7f gcc/objc/objc-encoding.h --- 6067,6077 ---- a98e50c063ce3f17ab72abe936f7f210 gcc/modulo-sched.c 9b2e40398cd8e086e71e5f469b2799b7 gcc/multiple_target.c f82c4a6b9621c8883a3eab86f0dd3768 gcc/mux-utils.h ! c69bc40ccb3a5e43aa298cf28c204275 gcc/objc/ChangeLog 8a483da76277f1107ee3864484da7cfd gcc/objc/Make-lang.in 81acf2f4cbd8edc8581291e0c02e76f9 gcc/objc/config-lang.in 8ca11b02b2a9e21229f11063fb154aee gcc/objc/lang-specs.h ! 25d51c7ad60fbbfda279c87ad97ac699 gcc/objc/objc-act.c d82921cbb439a19f64f1d25a6a14f4c4 gcc/objc/objc-act.h 3d5a7b3f2b8ede25454e6cc796103e45 gcc/objc/objc-encoding.c da34ed0a750a923083050676a1d84d7f gcc/objc/objc-encoding.h *************** da44c8a74d037da7c6f82e94b45d4f31 gcc/ob *** 6079,6090 **** 3fcca193bef44adbb41940862673aebb gcc/objc/objc-map.h 70a2bbb9f1a1c992e16b427f0f1b1e53 gcc/objc/objc-next-metadata-tags.h efc719a9d69c08a88c9ca68c3d91dea6 gcc/objc/objc-next-runtime-abi-01.c ! 10f604e0990badb228f6efd7253f925b gcc/objc/objc-next-runtime-abi-02.c 1efae5adac9e2d08776809405ec27a56 gcc/objc/objc-runtime-hooks.h ! 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 --- 6081,6092 ---- 3fcca193bef44adbb41940862673aebb gcc/objc/objc-map.h 70a2bbb9f1a1c992e16b427f0f1b1e53 gcc/objc/objc-next-metadata-tags.h efc719a9d69c08a88c9ca68c3d91dea6 gcc/objc/objc-next-runtime-abi-01.c ! 97afb4f400d863fe4c4a7fab9e264d15 gcc/objc/objc-next-runtime-abi-02.c 1efae5adac9e2d08776809405ec27a56 gcc/objc/objc-runtime-hooks.h ! 6783593735c0a61029a139ea6a430159 gcc/objc/objc-runtime-shared-support.c 544d016401099d9ba39ea7ddbce01333 gcc/objc/objc-runtime-shared-support.h 88490072a5d5ef2282898959e8e55de1 gcc/objc/objc-tree.def ! 1689ff7a167e4928007cabb11324d8d6 gcc/objcp/ChangeLog 8268a2fcb604c22c75202509b0338862 gcc/objcp/Make-lang.in add0ba454d5eb83cd065d29d3f6b676a gcc/objcp/config-lang.in fbbceaf466354af7b3851fc32a591c77 gcc/objcp/lang-specs.h *************** bb7dd65101e190027bd7f5d00537d338 gcc/op *** 6128,6134 **** 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 --- 6130,6136 ---- 9f4a9925296f20d19d64305038880c83 gcc/optinfo-emit-json.h 856ea796d22dcbc9579527e46613d813 gcc/optinfo.cc bc4ea40198df1dade8ab163363fce555 gcc/optinfo.h ! 9d6e9264b81dadedbdbdda0d82cee0ad gcc/opts-common.c d5cb4f8e14c4ba3e56b5393c98bf2a04 gcc/opts-diagnostic.h c9cb78ef27abfd3a19982545f0f1808d gcc/opts-global.c abb990f120fd8b648831963db6ecec8c gcc/opts-jobserver.h *************** e733e0309389f9d07184e98b6ad9b536 gcc/pa *** 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 --- 6146,6152 ---- f09db14eb185fcdd795ff7e690b607a3 gcc/plugin.c 3cc53b8d5f30aebe3f70c00e1bc4929e gcc/plugin.def 7a5190d86531b8d3fa67e8cea7db5d60 gcc/plugin.h ! 2d1d9613d2b26fb08b201d395f3d15ec gcc/po/ChangeLog edbad8e043a44996d844fa6a7965ea6f gcc/po/EXCLUDES f2e76d86dce1f72d4adc901bce318410 gcc/po/be.gmo ac4e50148300959070bbe8161dc44c3d gcc/po/be.po *************** e28191cb00a98e949cbc143f320a07f6 gcc/re *** 6243,6249 **** 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 --- 6245,6251 ---- 4e409a0d5cc6dc9e0629b228d3b558ba gcc/rtl-iter.h b476f310624f2f8985ae9e6f5cf84795 gcc/rtl-ssa.h 2bd899bd5847e63d4b3c22b4c3f8d681 gcc/rtl-ssa/access-utils.h ! aeeafcbba477ff4cf6af5d1fd324e1cf 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/rt *** 6251,6260 **** 91a7a054b154b2b8dc02633939d813fe gcc/rtl-ssa/changes.cc c56eb80685157a57af3f4b646a16c3f5 gcc/rtl-ssa/changes.h 30aa74b1044e85d68bd3845aa629468d gcc/rtl-ssa/functions.cc ! d3d3033d7a0921fde6380ce023929f4c gcc/rtl-ssa/functions.h c13065dc1b1a9319f869cccc13d93de1 gcc/rtl-ssa/insn-utils.h de2b4ba71be041cd082a66fef50ee399 gcc/rtl-ssa/insns.cc ! e1595b6b1a7c703394640bffc7357aa5 gcc/rtl-ssa/insns.h 3e2be38fa239ba65ce01840b6b1e6717 gcc/rtl-ssa/internals.h 3bcc3658e3e130fbbe4a9fbd9b0c3cd3 gcc/rtl-ssa/internals.inl 35c148bf46eb74781693030d7425a974 gcc/rtl-ssa/is-a.inl --- 6253,6262 ---- 91a7a054b154b2b8dc02633939d813fe gcc/rtl-ssa/changes.cc c56eb80685157a57af3f4b646a16c3f5 gcc/rtl-ssa/changes.h 30aa74b1044e85d68bd3845aa629468d gcc/rtl-ssa/functions.cc ! 0f722445daffa4fb6bb1cd4f562ea931 gcc/rtl-ssa/functions.h c13065dc1b1a9319f869cccc13d93de1 gcc/rtl-ssa/insn-utils.h de2b4ba71be041cd082a66fef50ee399 gcc/rtl-ssa/insns.cc ! a7c119d5c6296f606f19a9ddad06af5f gcc/rtl-ssa/insns.h 3e2be38fa239ba65ce01840b6b1e6717 gcc/rtl-ssa/internals.h 3bcc3658e3e130fbbe4a9fbd9b0c3cd3 gcc/rtl-ssa/internals.inl 35c148bf46eb74781693030d7425a974 gcc/rtl-ssa/is-a.inl *************** ecf66423e53e53927403a7019b1256f3 gcc/rt *** 6264,6270 **** 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 --- 6266,6272 ---- dea69c3608ee51d947ef5ac67c2ca95b gcc/rtl.c 6e2727b9e2075fddcf252ad25dc6d604 gcc/rtl.def 7e6d263d2294090c692ce74d323d8da7 gcc/rtl.h ! 5a4b6a83196d314cee3570f6b667433a gcc/rtlanal.c 394592e1cbc71b6283d230cf895f1248 gcc/rtlanal.h 600140db9bd5eefa41bca935dcc1a901 gcc/rtlhash.c 97a32042580f6bc444125e76325e9f8e gcc/rtlhash.h *************** ba17f60121ba1b5f039f9dc1078b46f8 gcc/st *** 6337,6345 **** bedb42e729e5bd698d0861dc145266fb gcc/symtab-clones.h 8a9324974824a4c433f0d463bbfb69ec gcc/symtab-thunks.cc b5513d86b09f522ec7305a04036d4f3b gcc/symtab-thunks.h ! 1552f6db8056e30c357dfeec0ecdf6d0 gcc/symtab.c f013ee71feefa0d9ab11d092dab3f62c gcc/sync-builtins.def ! 487aa89152c81610d6b03aeae45f0edb gcc/system.h aba120075a77f6e309a720d322ee9eed gcc/target-def.h 292e1d752e2b328261c6a201aeb21faa gcc/target-globals.c 3e5db4530f6645ebcf4b051d11524230 gcc/target-globals.h --- 6339,6347 ---- bedb42e729e5bd698d0861dc145266fb gcc/symtab-clones.h 8a9324974824a4c433f0d463bbfb69ec gcc/symtab-thunks.cc b5513d86b09f522ec7305a04036d4f3b gcc/symtab-thunks.h ! 6675c6ac3b1da11aa3ddb3d4ad4b4936 gcc/symtab.c f013ee71feefa0d9ab11d092dab3f62c gcc/sync-builtins.def ! dc1e566474b8d14666e758531da1d191 gcc/system.h aba120075a77f6e309a720d322ee9eed gcc/target-def.h 292e1d752e2b328261c6a201aeb21faa gcc/target-globals.c 3e5db4530f6645ebcf4b051d11524230 gcc/target-globals.h *************** b3739b072aa976c2f9f9825ac6d07c80 gcc/ta *** 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 --- 6352,6358 ---- b71dcf011f9b95f3a705da052a95caf9 gcc/targhooks.c 104445ec4cf950b087d249c268d36edc gcc/targhooks.h f39fcaa8197187283ccfed40107b426d gcc/testsuite/.gitattributes ! ab0ae9aa5b541cc0e7fa8eab89826d73 gcc/testsuite/ChangeLog 862f04afbd87da2cc6bc432c3f28430f gcc/testsuite/ChangeLog-1993-2007 029a5d8dacd25eb5d4711452ac448e5b gcc/testsuite/ChangeLog-2008 13ac28c41d51b66b4ec40dba6bd50f39 gcc/testsuite/ChangeLog-2009 *************** c51902099b5071373c02eb23d9a61aab gcc/te *** 9005,9010 **** --- 9007,9013 ---- 8c8f0a3b217c247195f32bdfc2d93c74 gcc/testsuite/c-c++-common/Warray-bounds-8.c ad210b6699449d7c2f1c95f9c363d606 gcc/testsuite/c-c++-common/Warray-bounds.c fe25f03fdb469ad245f6cae14480ddad gcc/testsuite/c-c++-common/Wattributes-2.c + 17bdcdb759c07d09c2d4d9895b89253d gcc/testsuite/c-c++-common/Wattributes-3.c 0bcda44055ed5df42b261295603d2147 gcc/testsuite/c-c++-common/Wattributes.c 714425fa09f1458ac9dd7cad4ad33ed2 gcc/testsuite/c-c++-common/Wbool-compare-1.c 2137f66b6bcfc9d19df56b2f3ea80f8e gcc/testsuite/c-c++-common/Wbool-compare-2.c *************** f64e9a0e7b5ee2dca69c8d247f6246ab gcc/te *** 10501,10511 **** 6099fd0b163b9c570575cfa376ad44ae gcc/testsuite/c-c++-common/torture/builtin-arith-overflow-p-8.c 1521bd071912021d30375778ada20c27 gcc/testsuite/c-c++-common/torture/builtin-arith-overflow-p-9.c c0ced56aa092fbe05fcfb0400e4a7973 gcc/testsuite/c-c++-common/torture/builtin-arith-overflow.h ! 80c6991dac30744cf52461dd3f956e72 gcc/testsuite/c-c++-common/torture/builtin-clear-padding-1.c ! dcfe45ba6f5d3cfc6a596ae589694b44 gcc/testsuite/c-c++-common/torture/builtin-clear-padding-2.c ! 895fbc9bc655600ce8926f0324c028bf gcc/testsuite/c-c++-common/torture/builtin-clear-padding-3.c ! 4ff8867bffb2428f7170faffc42f73a7 gcc/testsuite/c-c++-common/torture/builtin-clear-padding-4.c ! 02ccc099dac6a69400f154fddb7c755d gcc/testsuite/c-c++-common/torture/builtin-clear-padding-5.c e6519a905d51bc4a47ceea85c886d98b gcc/testsuite/c-c++-common/torture/builtin-convertvector-1.c 255588ac3834ead37b7f36c6b58cd61b gcc/testsuite/c-c++-common/torture/complex-alias-1.c 252f95ec0162dd10262e227d09b36737 gcc/testsuite/c-c++-common/torture/complex-sign-add.c --- 10504,10515 ---- 6099fd0b163b9c570575cfa376ad44ae gcc/testsuite/c-c++-common/torture/builtin-arith-overflow-p-8.c 1521bd071912021d30375778ada20c27 gcc/testsuite/c-c++-common/torture/builtin-arith-overflow-p-9.c c0ced56aa092fbe05fcfb0400e4a7973 gcc/testsuite/c-c++-common/torture/builtin-arith-overflow.h ! 3cee92adaa1a38086edfab9c3d84f00a gcc/testsuite/c-c++-common/torture/builtin-clear-padding-1.c ! 1865956f3fc939653de54faba3618b72 gcc/testsuite/c-c++-common/torture/builtin-clear-padding-2.c ! 31f715afb9a58cc96ce3fe60e4c8101d gcc/testsuite/c-c++-common/torture/builtin-clear-padding-3.c ! 1428b405a26a5320e9400f0d631ac3b9 gcc/testsuite/c-c++-common/torture/builtin-clear-padding-4.c ! f1ab5d6173eb9710341597174f8f1538 gcc/testsuite/c-c++-common/torture/builtin-clear-padding-5.c ! 550bf6a95b93ecdb962dab3cc0becb47 gcc/testsuite/c-c++-common/torture/builtin-clear-padding-6.c e6519a905d51bc4a47ceea85c886d98b gcc/testsuite/c-c++-common/torture/builtin-convertvector-1.c 255588ac3834ead37b7f36c6b58cd61b gcc/testsuite/c-c++-common/torture/complex-alias-1.c 252f95ec0162dd10262e227d09b36737 gcc/testsuite/c-c++-common/torture/complex-sign-add.c *************** e38a861012a1449b45bab897d23db346 gcc/te *** 10708,10713 **** --- 10712,10718 ---- 3fdfb7b541ab32d9386d01e5297559fe gcc/testsuite/c-c++-common/ubsan/overflow-sub-4.c a419ef4838cde6817792405820466636 gcc/testsuite/c-c++-common/ubsan/overflow-vec-1.c 2ca43a119b7a576e216390fb43e1dd13 gcc/testsuite/c-c++-common/ubsan/overflow-vec-2.c + 24b18a5fd301d7a3be70c2c44bb2a354 gcc/testsuite/c-c++-common/ubsan/pr112727.c 52e44aba0bf4e0682451881391dfc23a gcc/testsuite/c-c++-common/ubsan/pr56917.c 277b1083be8186921fac899c35d1f83a gcc/testsuite/c-c++-common/ubsan/pr56956.c e229f42e8220b3ff0c068855f57a5b9b gcc/testsuite/c-c++-common/ubsan/pr58443-1.c *************** ca578f19b2d380be0549cc9c2f904f2e gcc/te *** 11682,11687 **** --- 11687,11694 ---- d8a86369c88b1e698b51da5f95da9c9b gcc/testsuite/g++.dg/conversion/qual3.C eb243a0f27cded7003b7b6eecd96f5d2 gcc/testsuite/g++.dg/conversion/real-to-int1.C 53724dc0cd699d864fc77299b7051204 gcc/testsuite/g++.dg/conversion/ref1.C + 73fa4811a4b520eb8c9a90e81946664f gcc/testsuite/g++.dg/conversion/ref10.C + 8814956216a4da6e964e3d3f16ed2170 gcc/testsuite/g++.dg/conversion/ref11.C af773a52f134a886314eae7065bee26e gcc/testsuite/g++.dg/conversion/ref2.C b80ab713758c51e69280fe2ae2dee7c9 gcc/testsuite/g++.dg/conversion/ref3.C 407bbe8b3c959a948fc7df986c991e76 gcc/testsuite/g++.dg/conversion/ref4.C *************** cb41fef7448625fa4e0c8fd96e24fc4d gcc/te *** 11762,11769 **** --- 11769,11780 ---- 6f5627b19b794cfdd383607165c8ad4e gcc/testsuite/g++.dg/coroutines/coro1-refs-and-ctors.h 6487c0454968e62ff493f215450a35cc gcc/testsuite/g++.dg/coroutines/coro1-ret-int-yield-int.h 0338cdb719c46fedef7227899cb0ad47 gcc/testsuite/g++.dg/coroutines/coroutines.exp + c3400c7cd98281b570bf893a90a079d9 gcc/testsuite/g++.dg/coroutines/pr100772-a.C + 20ff89f3e9d7d2dac356dd8e9d1b88cd gcc/testsuite/g++.dg/coroutines/pr100772-b.C + 3b7900c34ea0474d337aa825a01675c2 gcc/testsuite/g++.dg/coroutines/pr101765.C 5a6ab803d16d71889bbcfbe081300785 gcc/testsuite/g++.dg/coroutines/pr102454.C 85cc1b4c4f0e73f17a81693bed3275fa gcc/testsuite/g++.dg/coroutines/pr103328.C + 4be4670ffeb4857d864cfa5cfa5dc16f gcc/testsuite/g++.dg/coroutines/pr104051.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 *************** c9053b02ff32311dfd9d7b646bb29551 gcc/te *** 11815,11820 **** --- 11826,11832 ---- f095b3e5361e6b39aaa76b256225bae8 gcc/testsuite/g++.dg/coroutines/pr98118.C 13e8e708074a4e784b2756a16cffac95 gcc/testsuite/g++.dg/coroutines/pr98480.C 24170bfffebf70344e3511fba162c10d gcc/testsuite/g++.dg/coroutines/pr99047.C + a52a8d452461422c8ad1bacec0e8c15f gcc/testsuite/g++.dg/coroutines/pr99710.C e5855150057a1e681eabe6c4c4c37e4d gcc/testsuite/g++.dg/coroutines/ramp-return-a.C 695b11618163db1e2b396417d78f1fa9 gcc/testsuite/g++.dg/coroutines/ramp-return-b.C 91d4b87670d3ca11ec1c3b3225271fc4 gcc/testsuite/g++.dg/coroutines/ramp-return-c.C *************** ca26ad5278a2ac2347db2c2a451bdddf gcc/te *** 12871,12876 **** --- 12883,12889 ---- 3c3ad36552189c7402279e37b7b6b485 gcc/testsuite/g++.dg/cpp0x/dependent3.C 76420e94bb106abb520db142b01ffdcb gcc/testsuite/g++.dg/cpp0x/depr-copy1.C 4a822a67b0bd440c48f63f58b5bfe94c gcc/testsuite/g++.dg/cpp0x/depr-copy2.C + 83ee21cd7668d7d0efc97ac677fbe487 gcc/testsuite/g++.dg/cpp0x/depr-copy3.C 861890614eff3a18d972ae21c8cedb3f gcc/testsuite/g++.dg/cpp0x/desig1.C 5b8e06a1ebe55e784146bad7f9381d14 gcc/testsuite/g++.dg/cpp0x/desig2.C 9325507793124d714ba42d0b77847a70 gcc/testsuite/g++.dg/cpp0x/desig3.C *************** eb8899f6095da627d668fbc099e59316 gcc/te *** 13186,13191 **** --- 13199,13205 ---- 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 + e70a37b0380879fb9f684c853b35a78a gcc/testsuite/g++.dg/cpp0x/initlist-pmf2.C e3ec7ab89d20e6ccf50aa92954896f07 gcc/testsuite/g++.dg/cpp0x/initlist-postfix-open-square.C 1b5c7e432be89c3edcbfaad424a2e353 gcc/testsuite/g++.dg/cpp0x/initlist-protected.C fd02e573e3be3d0a146192cd840840a1 gcc/testsuite/g++.dg/cpp0x/initlist-pure.C *************** cd0880983dc32cb469f470728ae8b22b gcc/te *** 13374,13379 **** --- 13388,13394 ---- 1d85414b94d2d104004fc7341b90a896 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const.C 26a3a7d7fa8662de4df1454d0f3eea85 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const10.C 692c149205d32e7263c8778ba131c9dc gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const11.C + 99ebbe9d836593c488474457d9b14620 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const11a.C 64bc761abc3783521fdfb26f930f3410 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const2.C e513b4dcc45e6063745c03c7c99151fa gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const3.C 1ced7b3231f38cc9948cc247893ffec1 gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const4.C *************** d0df5cd0a2632cf9b66f18aec0cc6e21 gcc/te *** 13693,13698 **** --- 13708,13714 ---- dd169c18a4c3d9571a259e67ef8648ef gcc/testsuite/g++.dg/cpp0x/noexcept73.C 12fa60794a927f2fea0965155d13a228 gcc/testsuite/g++.dg/cpp0x/noexcept74.C 1f3e552c43d920f75b1dde7450f0be06 gcc/testsuite/g++.dg/cpp0x/noexcept74a.C + 640bcc6d84918140414a88703d7920cb gcc/testsuite/g++.dg/cpp0x/noexcept78.C 3bf83ccb654cedbb57a45851fb14aa9d gcc/testsuite/g++.dg/cpp0x/nolinkage1.C 6b7c91b931bbdacbbffbf9b90a79bc6a gcc/testsuite/g++.dg/cpp0x/nolinkage1.h c92e0eda44dd6b3d74960b249fa5204f gcc/testsuite/g++.dg/cpp0x/nolinkage1a.cc *************** cdc2dd8446367df53617b11c9a86394a gcc/te *** 13711,13716 **** --- 13727,13733 ---- cb5b10af278fbafac78a6d53829b3d37 gcc/testsuite/g++.dg/cpp0x/not_special.C e950526c0d7127f5718072cb9366641e gcc/testsuite/g++.dg/cpp0x/nsdmi-aggr1.C 94c644ef2cfc0af0de150c6699b774ed gcc/testsuite/g++.dg/cpp0x/nsdmi-anon-struct1.C + f570e39b0271d39d9cdde0565b1fe390 gcc/testsuite/g++.dg/cpp0x/nsdmi-array2.C 333540e9a24be2138a5f0577b985d91d gcc/testsuite/g++.dg/cpp0x/nsdmi-const1.C 8d47330d250732b4512c767f7e3de3c4 gcc/testsuite/g++.dg/cpp0x/nsdmi-defer1.C 4e737e4950688a6f722d97a47d7cf157 gcc/testsuite/g++.dg/cpp0x/nsdmi-defer2.C *************** f900a961724b234dbae2b1dd5e2b9ae6 gcc/te *** 13746,13751 **** --- 13763,13769 ---- 93773e99f41e047cdb20c1fb229d81d2 gcc/testsuite/g++.dg/cpp0x/nsdmi-template21a.C dc4bd68cb1e4dc039dc569a75085b940 gcc/testsuite/g++.dg/cpp0x/nsdmi-template22.C 0701f9d0d2b24244ead57a63737e416c gcc/testsuite/g++.dg/cpp0x/nsdmi-template23.C + 65478d57f79f449d69bf39745b25b93f gcc/testsuite/g++.dg/cpp0x/nsdmi-template25.C a4838f227c782d1dc8cc894a19deb0d1 gcc/testsuite/g++.dg/cpp0x/nsdmi-template3.C ecc55c2acf604366d5eab66ebf6a29dd gcc/testsuite/g++.dg/cpp0x/nsdmi-template4.C 2df81a05f5de27f3cb083ad4a290512a gcc/testsuite/g++.dg/cpp0x/nsdmi-template5.C *************** ca10f046e47ea09ba5b87084372f1ce2 gcc/te *** 15351,15356 **** --- 15369,15375 ---- 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 + dea62fa85e86450c80389ea639cb2473 gcc/testsuite/g++.dg/cpp1z/array-prvalue2.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 *************** c19f90a6b67cea2957e319db88a63ee3 gcc/te *** 15593,15599 **** 63be3b6d75aa3c2c8088552683d5245e gcc/testsuite/g++.dg/cpp1z/eval-order10.C 3abc6084e572264410718d38beb290bb gcc/testsuite/g++.dg/cpp1z/eval-order11.C bb194d9ce590c9e5e69935ebac0f25e4 gcc/testsuite/g++.dg/cpp1z/eval-order2.C ! 89fdd37f4580457e23eeb34adcf4d4e0 gcc/testsuite/g++.dg/cpp1z/eval-order3.C 6d8d378fedaf65b4cb89952060799280 gcc/testsuite/g++.dg/cpp1z/eval-order4.C 56af6596678e014cdf3ef38d1427358f gcc/testsuite/g++.dg/cpp1z/eval-order5.C f6da488c72cf7236fa560fcdd857f03e gcc/testsuite/g++.dg/cpp1z/eval-order6.C --- 15612,15618 ---- 63be3b6d75aa3c2c8088552683d5245e gcc/testsuite/g++.dg/cpp1z/eval-order10.C 3abc6084e572264410718d38beb290bb gcc/testsuite/g++.dg/cpp1z/eval-order11.C bb194d9ce590c9e5e69935ebac0f25e4 gcc/testsuite/g++.dg/cpp1z/eval-order2.C ! 8b89dee7164b6f4d992706e5b85433f4 gcc/testsuite/g++.dg/cpp1z/eval-order3.C 6d8d378fedaf65b4cb89952060799280 gcc/testsuite/g++.dg/cpp1z/eval-order4.C 56af6596678e014cdf3ef38d1427358f gcc/testsuite/g++.dg/cpp1z/eval-order5.C f6da488c72cf7236fa560fcdd857f03e gcc/testsuite/g++.dg/cpp1z/eval-order6.C *************** a97faaabc3ad077a0c916a25784bae51 gcc/te *** 15752,15757 **** --- 15771,15777 ---- c621c0bd6807d2ddfd41755033d7b5d3 gcc/testsuite/g++.dg/cpp1z/nontype2.C ae3e1959f85f05c9ec509a6dbdbe24ca gcc/testsuite/g++.dg/cpp1z/nontype3.C 97b68e1efbd20ee3ef9eee20ccf717b4 gcc/testsuite/g++.dg/cpp1z/nontype3a.C + 86d3c074d77c88bd7ef317faea9d2968 gcc/testsuite/g++.dg/cpp1z/pr115440.C e668ace19a2b0d8946e0e19fd8317af1 gcc/testsuite/g++.dg/cpp1z/pr78771.C bc5edc17d9b70d77a054dd4736a66223 gcc/testsuite/g++.dg/cpp1z/pr79143.C 07da6d9fdd2eb774e9b4b1d81aaca836 gcc/testsuite/g++.dg/cpp1z/pr81016.C *************** fdfceca1c064eeb01d47f6a29cee1f95 gcc/te *** 15831,15836 **** --- 15851,15857 ---- 3ad5e93951baf0d22ea016ff9e7e5647 gcc/testsuite/g++.dg/cpp2a/bit-cast1.C a3d09682b891e46d2909fa15e90968be gcc/testsuite/g++.dg/cpp2a/bit-cast10.C fc2669bf6c2d9f293b18029e7572dc94 gcc/testsuite/g++.dg/cpp2a/bit-cast15.C + b21ee39782e659d8a55e03a67e8f3d2a gcc/testsuite/g++.dg/cpp2a/bit-cast16.C 1a2fa5e09ce4afea93f8549367941793 gcc/testsuite/g++.dg/cpp2a/bit-cast2.C 4cd9a6c75b7b9c06d500d33a4b70e045 gcc/testsuite/g++.dg/cpp2a/bit-cast3.C 43041147b254e878b1962b35b230ff79 gcc/testsuite/g++.dg/cpp2a/bit-cast4.C *************** ac4c42a0f2fd071297e154c82dd3e5cc gcc/te *** 16163,16168 **** --- 16184,16191 ---- 427561cea6003909c32f28fbe3d276c7 gcc/testsuite/g++.dg/cpp2a/concepts-ttp1.C e9afe83f998c36b2fb7c1f09347d0bde gcc/testsuite/g++.dg/cpp2a/concepts-ttp2.C 9fd760dc32683991c1046ee2a7769a0f gcc/testsuite/g++.dg/cpp2a/concepts-ttp4.C + 88c3dc6cebb92ccd4e70aff54871edad gcc/testsuite/g++.dg/cpp2a/concepts-ttp5.C + 14dc8338f97cc1b6792145fdfa5edade gcc/testsuite/g++.dg/cpp2a/concepts-ttp6.C 12bfd0f0b99ab93e9f3c3ea3610ad8db gcc/testsuite/g++.dg/cpp2a/concepts-uneval1.C 728cf90d57c99021cb85c6b8dd9ffa5e gcc/testsuite/g++.dg/cpp2a/concepts-uneval2.C b06aea4ef34a1015ed525413558ddac0 gcc/testsuite/g++.dg/cpp2a/concepts-uneval4.C *************** c97b36f101808a4d1b88e966d08df228 gcc/te *** 16866,16872 **** 2c571572a5d9948808d5c737071aa994 gcc/testsuite/g++.dg/debug/dwarf2/pr80234-1.C faf5c36abd2cfa3ad2cff3321cf391cf gcc/testsuite/g++.dg/debug/dwarf2/pr80234-2.C 4ee1bfe8771af7455053744f7fbfacc8 gcc/testsuite/g++.dg/debug/dwarf2/pr85302.C ! 5de08163e6802415b19e2d6aeb632428 gcc/testsuite/g++.dg/debug/dwarf2/pr85550.C 2ccdefbe0960011d93e7b256421df22a gcc/testsuite/g++.dg/debug/dwarf2/pr86456.C d7ed5be36e8ab58d3d73c325b6ec84ab gcc/testsuite/g++.dg/debug/dwarf2/pr86900.C 6bacb72669961d72ae42d4e8ef6f3235 gcc/testsuite/g++.dg/debug/dwarf2/pr87295.C --- 16889,16895 ---- 2c571572a5d9948808d5c737071aa994 gcc/testsuite/g++.dg/debug/dwarf2/pr80234-1.C faf5c36abd2cfa3ad2cff3321cf391cf gcc/testsuite/g++.dg/debug/dwarf2/pr80234-2.C 4ee1bfe8771af7455053744f7fbfacc8 gcc/testsuite/g++.dg/debug/dwarf2/pr85302.C ! 55c05ba87fa91d96f3105fd4979a0d4d gcc/testsuite/g++.dg/debug/dwarf2/pr85550.C 2ccdefbe0960011d93e7b256421df22a gcc/testsuite/g++.dg/debug/dwarf2/pr86456.C d7ed5be36e8ab58d3d73c325b6ec84ab gcc/testsuite/g++.dg/debug/dwarf2/pr86900.C 6bacb72669961d72ae42d4e8ef6f3235 gcc/testsuite/g++.dg/debug/dwarf2/pr87295.C *************** a0ac13a0885ee162c972f58ffbd934e7 gcc/te *** 16936,16941 **** --- 16959,16965 ---- c805656a195d9a98cc7141e7db52d9ef gcc/testsuite/g++.dg/debug/nullptr01.C 57e21034689a45ffd010ec86b2596de5 gcc/testsuite/g++.dg/debug/pr106261.C 19de4ef7373a891f957af0121c166d89 gcc/testsuite/g++.dg/debug/pr108967.C + 439ff10a4604a58789ca26c49c50f8ab gcc/testsuite/g++.dg/debug/pr110295.C fcdc9d29f34ff56d1b7de0d55a1eaed7 gcc/testsuite/g++.dg/debug/pr15736.cc d25b84553c2083b28615202497b8f94a gcc/testsuite/g++.dg/debug/pr16792.C 91880dfb66fda0db4ddabf486346b755 gcc/testsuite/g++.dg/debug/pr22514.C *************** b6c134d4646b46725f8f4f231df5349f gcc/te *** 17604,17609 **** --- 17628,17634 ---- df4711200e4e7cd7c5366aa4bdd29d74 gcc/testsuite/g++.dg/ext/attrib61.C 7fcf8dcb8e15b7e121eaede34f3aedfa gcc/testsuite/g++.dg/ext/attrib62.C c992ba90cd524ff973d2e06226c41bfa gcc/testsuite/g++.dg/ext/attrib64.C + 1d6aa4b155d2e2ee76db642f389b5463 gcc/testsuite/g++.dg/ext/attrib68.C 7af1e9265de26187b4a3a3880f99ac11 gcc/testsuite/g++.dg/ext/attrib7.C 23c4a640241391acec5a1fd2c3fa5f25 gcc/testsuite/g++.dg/ext/attrib8.C db629587302d47a98b453a1702e900c9 gcc/testsuite/g++.dg/ext/attrib9.C *************** b579998c84a7b6c9374dbdc81f28e45a gcc/te *** 17911,17916 **** --- 17936,17942 ---- 76eb31665e6c2034d39a3a88d38ad3b1 gcc/testsuite/g++.dg/ext/is_constructible3.C ed04365b57dec8b58125996aefe86234 gcc/testsuite/g++.dg/ext/is_constructible4.C dc3385dfd74c1bf2c03d4da78571f637 gcc/testsuite/g++.dg/ext/is_constructible5.C + 0fdc603161df17318d861d136ade90c2 gcc/testsuite/g++.dg/ext/is_constructible8.C deb5d60ce9955a69d116b30edd2cf933 gcc/testsuite/g++.dg/ext/is_empty.C 51590a59aaf8715b9fe4a7ae06414cb8 gcc/testsuite/g++.dg/ext/is_empty2.C 03f82ac5f5b864878fa0ffa4383fa338 gcc/testsuite/g++.dg/ext/is_enum.C *************** bcf9b6873e48870b8f6014b5da708cd3 gcc/te *** 17981,17986 **** --- 18007,18013 ---- 2e29b33d9b093b6a30a0e49d1b42c6c8 gcc/testsuite/g++.dg/ext/packed7.C 065cff376c58bb925a16845eb3c01ced gcc/testsuite/g++.dg/ext/packed8.C 0932ad5ce3e0455a61e5bd35e5ed587a gcc/testsuite/g++.dg/ext/packed9.C + 219625d5165b1dc19f7c5e8fccd607a5 gcc/testsuite/g++.dg/ext/pr114691.C 210171cdbd9571de1bfd894e6c809efa gcc/testsuite/g++.dg/ext/pr17577.C d017f3273bbed79c882146d070c763a4 gcc/testsuite/g++.dg/ext/pr17577.h eb1830f7b92ca604956f6b57b3a6d3f4 gcc/testsuite/g++.dg/ext/pr27019.C *************** e3920251c1881f799695cd65335b3cac gcc/te *** 18103,18108 **** --- 18130,18137 ---- 265da9fd5c8f508dc7188b306541554d gcc/testsuite/g++.dg/ext/unroll-1.C a7fce0dd60f863364affd6e56b7f245e gcc/testsuite/g++.dg/ext/unroll-2.C 285baa853f6386189859dff27a9a3327 gcc/testsuite/g++.dg/ext/unroll-3.C + fda65191a1d2d70dc324a6b82fb9f689 gcc/testsuite/g++.dg/ext/unroll-4.C + d9dee27db71952e589ab6eb7dd4553b7 gcc/testsuite/g++.dg/ext/unroll-5.C 28679c5e259c2a169fa3381ab32688b9 gcc/testsuite/g++.dg/ext/uow-1.C 56fb8e2b89ccd1554be150dc21820262 gcc/testsuite/g++.dg/ext/uow-2.C 4a9bbd8b307258097b08718cb2af1df3 gcc/testsuite/g++.dg/ext/uow-3.C *************** a7c093e32d8e0cc08e02c3253748979c gcc/te *** 18313,18320 **** 0db2a2956de58970834889c74f43082d gcc/testsuite/g++.dg/gcov/gcov-6.C 6f3a3736784c0de448d6416b0d8f64d8 gcc/testsuite/g++.dg/gcov/gcov-7.C 35c5d8591ad30e9b50844567554d9973 gcc/testsuite/g++.dg/gcov/gcov-8.C ! 1daf1c411209223b51591e3ac9090bfb gcc/testsuite/g++.dg/gcov/gcov-dump-1.C ! 7def4ed5b129018a31fbca4ad8fd6300 gcc/testsuite/g++.dg/gcov/gcov-dump-2.C 7c98164def1e3b4af2573a0cde4a581e gcc/testsuite/g++.dg/gcov/gcov-threads-1.C 03ad48bbeb7dd85884131d311266dac2 gcc/testsuite/g++.dg/gcov/gcov.exp f1179ddefb9d0f823abc3eb9c07a73a1 gcc/testsuite/g++.dg/gcov/gcov.py --- 18342,18349 ---- 0db2a2956de58970834889c74f43082d gcc/testsuite/g++.dg/gcov/gcov-6.C 6f3a3736784c0de448d6416b0d8f64d8 gcc/testsuite/g++.dg/gcov/gcov-7.C 35c5d8591ad30e9b50844567554d9973 gcc/testsuite/g++.dg/gcov/gcov-8.C ! e60d3e80695d06d312beddeaaaa4af1d gcc/testsuite/g++.dg/gcov/gcov-dump-1.C ! 8d7f3725599edc040c38551cce2d1dfb gcc/testsuite/g++.dg/gcov/gcov-dump-2.C 7c98164def1e3b4af2573a0cde4a581e gcc/testsuite/g++.dg/gcov/gcov-threads-1.C 03ad48bbeb7dd85884131d311266dac2 gcc/testsuite/g++.dg/gcov/gcov.exp f1179ddefb9d0f823abc3eb9c07a73a1 gcc/testsuite/g++.dg/gcov/gcov.py *************** e94377182a1dedb230f53db874897364 gcc/te *** 21156,21161 **** --- 21185,21191 ---- b5ea3678b95f88606bb0d37ee1f58a68 gcc/testsuite/g++.dg/opt/nrv19.C 360692bdb55de35cb68717ceb6c51fd7 gcc/testsuite/g++.dg/opt/nrv2.C b95995f2a1b93421818fb349cdf03d17 gcc/testsuite/g++.dg/opt/nrv20.C + 936df169dd4333b7cef52b2f3f90736e gcc/testsuite/g++.dg/opt/nrv22.C 42adcc800d5d2029a2b831e1453e8f32 gcc/testsuite/g++.dg/opt/nrv3.C b2773b15109a2fc43572a97edf29b236 gcc/testsuite/g++.dg/opt/nrv4.C 13481653ab41a707cb4c4eed2199c57f gcc/testsuite/g++.dg/opt/nrv5.C *************** d9064b328bf2156a9e67df26156ec572 gcc/te *** 22518,22523 **** --- 22548,22558 ---- d41d8cd98f00b204e9800998ecf8427e gcc/testsuite/g++.dg/pch/empty.Hs 0fe6f1480902d6dccb349304faa9020c gcc/testsuite/g++.dg/pch/externc-1.C 51038396a6c08ae383fd050b30653dab gcc/testsuite/g++.dg/pch/externc-1.Hs + 5be7746567e234436e429f155b44a81c gcc/testsuite/g++.dg/pch/line-map-1.C + 29dd06c9a93f1d28d7d1b11b164a7efe gcc/testsuite/g++.dg/pch/line-map-1.Hs + 2c0817d088bccb3d2e72fe1a30899a59 gcc/testsuite/g++.dg/pch/line-map-2.C + 29dd06c9a93f1d28d7d1b11b164a7efe gcc/testsuite/g++.dg/pch/line-map-2.Hs + 29dd06c9a93f1d28d7d1b11b164a7efe gcc/testsuite/g++.dg/pch/line-map-3.Hs 3456d98b10198c0bf9091088ba05d0f0 gcc/testsuite/g++.dg/pch/local-1.C 1b5d28bf11bae4996001396e1ffe083b gcc/testsuite/g++.dg/pch/local-1.Hs f9271dce9d7980fa8b426246ec2b9126 gcc/testsuite/g++.dg/pch/operator-1.C *************** e93f073f61a42e3c7ad372625dbf5491 gcc/te *** 24122,24127 **** --- 24157,24163 ---- 8fa3e6c96fba6376bb082c7c80573236 gcc/testsuite/g++.dg/template/template-keyword1.C ce80dbc40069cd081d8488c206d6b2a6 gcc/testsuite/g++.dg/template/template-keyword2.C 7a5cfa5591c26dfb9185c5152c9bc9b0 gcc/testsuite/g++.dg/template/template-keyword3.C + 36a70397cd191de4eab2d5c0cd223bb2 gcc/testsuite/g++.dg/template/template-keyword4.C 2633475e196e36c058cf618a862c925f gcc/testsuite/g++.dg/template/this-targ1.C f9dface1543c62e1ed5a293679ac47da gcc/testsuite/g++.dg/template/ttp-derived1.C d295175d2a75128bac0554e17b63735a gcc/testsuite/g++.dg/template/ttp-derived2.C *************** ce4f8106ed96ef070bead8ca0df02eea gcc/te *** 24484,24489 **** --- 24520,24526 ---- 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 + 3a32f1508211597859da662863730a83 gcc/testsuite/g++.dg/torture/pr100303.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 *************** d53f4a36bfd00298b6b687881aad6861 gcc/te *** 24943,24948 **** --- 24980,24987 ---- 5afe578074ff640a77903318faea8e72 gcc/testsuite/g++.dg/torture/str_empty.C 42e128b3145495bd2df35c3cdcc684ac gcc/testsuite/g++.dg/torture/tail-padding1.C 0b01f7feb325a8c1dfd3c796eab53860 gcc/testsuite/g++.dg/torture/type-generic-1.C + ed87f64357e7fd49760145e5c345491d gcc/testsuite/g++.dg/torture/vector-struct-1.C + 451c0082f351cdec594741735d086495 gcc/testsuite/g++.dg/torture/vector-subaccess-1.C 164b3eb60b0c717428d0673a23922dfc gcc/testsuite/g++.dg/torture/vshuf-16.inc 8fd97d6fa085ab3269af65b200d61e8e gcc/testsuite/g++.dg/torture/vshuf-2.inc b2babbab3621a6f7af5eb2dde02e14e8 gcc/testsuite/g++.dg/torture/vshuf-4.inc *************** ec1873d6dd21d2c7cc0b6215931efed0 gcc/te *** 25359,25364 **** --- 25398,25404 ---- 5cc7bcb3384dda5ac9ed1595171888bf gcc/testsuite/g++.dg/vect/pr105053.cc 13bc7912af5a3fc0b482bebcd1a313b8 gcc/testsuite/g++.dg/vect/pr105437.cc c378ba928bee729112b705d875e7738f gcc/testsuite/g++.dg/vect/pr109573.cc + a774f9ba94df372c6d30a93f182668b8 gcc/testsuite/g++.dg/vect/pr112793.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 *************** bc255ba4628b94d5377f0ba915ad26da gcc/te *** 29679,29687 **** c3abd0fb44ca490064aaa6988814d40c gcc/testsuite/g++.target/i386/mv26.C 203c2fb05767e713a362682a2dcedfc7 gcc/testsuite/g++.target/i386/mv27.C 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 --- 29719,29727 ---- c3abd0fb44ca490064aaa6988814d40c gcc/testsuite/g++.target/i386/mv26.C 203c2fb05767e713a362682a2dcedfc7 gcc/testsuite/g++.target/i386/mv27.C 015182fced49b5ec2160104b1e1fcfd5 gcc/testsuite/g++.target/i386/mv28.C ! 3dc8383e8aa0e822e68ee82dc2cbbc5f gcc/testsuite/g++.target/i386/mv29.C bad9a677892adffe2c45653797aad55c gcc/testsuite/g++.target/i386/mv3.C ! 6c2437562ef96defbdcf21aa49f5676f 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 *************** a621b799eff193996043d9d5462e5c27 gcc/te *** 29744,29749 **** --- 29784,29792 ---- b3b6e31577bc973ad6e12e7336213059 gcc/testsuite/g++.target/nios2/nios2.exp fa8aa783bcf6fa703e7e93442b148996 gcc/testsuite/g++.target/powerpc/powerpc.exp a873678a5188427c7ceb88e3a408ce84 gcc/testsuite/g++.target/powerpc/pr101322.C + 52ec25547d922533a11b2b87bda1ef47 gcc/testsuite/g++.target/powerpc/pr105325.C + ea50428d09d0e781698b21023398bfee gcc/testsuite/g++.target/powerpc/pr110741.C + 92cbd869a66e265db57a505d568038a0 gcc/testsuite/g++.target/powerpc/pr111367.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 *************** e12df015117953bcc79bb2bd0912de65 gcc/te *** 30788,30793 **** --- 30831,30840 ---- 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 + bbe3ff8274dae6d3f21cbdb4fa780c91 gcc/testsuite/gcc.c-torture/compile/pr110386-1.c + aac64916588db7f60e87baab1268b8e2 gcc/testsuite/gcc.c-torture/compile/pr110386-2.c + ca66c7f74573d2e86d4d649aa258e0e5 gcc/testsuite/gcc.c-torture/compile/pr111699-1.c + 597d2b1dda1b08561fbe83f15c76f510 gcc/testsuite/gcc.c-torture/compile/pr113603.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 *************** a5b5957138d71ec5e7dbb1056f5b6cf4 gcc/te *** 32821,32827 **** --- 32868,32882 ---- 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 + 51a0035891ee3cb8a4d201e8c3d3f1ed gcc/testsuite/gcc.c-torture/execute/pr108789.c 23cbbe0d93f89048f8d1ce1883e61ac2 gcc/testsuite/gcc.c-torture/execute/pr109778.c + 656d590b25f1c491ea39b7de2cc2a90c gcc/testsuite/gcc.c-torture/execute/pr110115.c + 914ecbceb55b6e48b491757423749cee gcc/testsuite/gcc.c-torture/execute/pr110914.c + 99085a983bbf5c20a4f1986daa3cad4e gcc/testsuite/gcc.c-torture/execute/pr111331-1.c + db337c00bedfc272ed5edbb6acffed7c gcc/testsuite/gcc.c-torture/execute/pr111331-2.c + e7bc1f52654c430d9ceb1acb868fbc20 gcc/testsuite/gcc.c-torture/execute/pr111331-3.c + eefdaed8e6e57c688553667e395d78d3 gcc/testsuite/gcc.c-torture/execute/pr111408.c + 9db3e649786fc47229bef9b14997489f gcc/testsuite/gcc.c-torture/execute/pr111422.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 *************** fe9cbf88b57bdd9a5bf9c526284225f4 gcc/te *** 33321,33326 **** --- 33376,33382 ---- 4165667509c1985c02a5caebd101614d gcc/testsuite/gcc.c-torture/execute/pr89826.c 53efe1f200d3bec24ed00c280584deca gcc/testsuite/gcc.c-torture/execute/pr90025.c d26cfc42f19ac5e3ce4db452fd94f09a gcc/testsuite/gcc.c-torture/execute/pr90311.c + c711c1278b03225361adbb5c537e298a gcc/testsuite/gcc.c-torture/execute/pr90348.c 5235b3e2d6dd776b53d6a44ba5933a8a gcc/testsuite/gcc.c-torture/execute/pr90949.c 7f239d011b9e98943acdc8e3437ed19c gcc/testsuite/gcc.c-torture/execute/pr91137.c 3d5a788c848a67ade7bd18ab62494a1a gcc/testsuite/gcc.c-torture/execute/pr91450-1.c *************** dd4df85fe659db1378fda61d87434683 gcc/te *** 34322,34328 **** 49f34d122be90ac08b79866dc15f776d gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-2a.c 91071d4bdc9f508d03823383cfe8302a gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-3.c 936c1358c732a05bab2a8932de0b6544 gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-3a.c ! 0b1c654ffdac2437b7967e0cd8585abe gcc/testsuite/gcc.dg/analyzer/analyzer.exp 3d758ecb74d0d9588a9ab65677c2ad84 gcc/testsuite/gcc.dg/analyzer/attr-malloc-1.c b4515e65ed785bcd07a7162f6ccb804a gcc/testsuite/gcc.dg/analyzer/attr-malloc-2.c 046d0c0ef6b5715f28a641d19c38b314 gcc/testsuite/gcc.dg/analyzer/attr-malloc-4.c --- 34378,34384 ---- 49f34d122be90ac08b79866dc15f776d gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-2a.c 91071d4bdc9f508d03823383cfe8302a gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-3.c 936c1358c732a05bab2a8932de0b6544 gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-3a.c ! 4300436c89625ab9d10be777e68b7114 gcc/testsuite/gcc.dg/analyzer/analyzer.exp 3d758ecb74d0d9588a9ab65677c2ad84 gcc/testsuite/gcc.dg/analyzer/attr-malloc-1.c b4515e65ed785bcd07a7162f6ccb804a gcc/testsuite/gcc.dg/analyzer/attr-malloc-2.c 046d0c0ef6b5715f28a641d19c38b314 gcc/testsuite/gcc.dg/analyzer/attr-malloc-4.c *************** b8a049317908d7e0078316ad82437346 gcc/te *** 34725,34730 **** --- 34781,34789 ---- 695fe49bfb0b0c5cd4e60ba1a0f27cf6 gcc/testsuite/gcc.dg/asan/pr105396.c 1a25dd9cb28d8417a3ce246587233c84 gcc/testsuite/gcc.dg/asan/pr106190.c c3b533151735c602f99cd3d2cb415cf8 gcc/testsuite/gcc.dg/asan/pr107317.c + ea1638a3bd1b7f87abc2eda6d730213e gcc/testsuite/gcc.dg/asan/pr110027.c + 335e527788f5fd39d280e244ac17b3ef gcc/testsuite/gcc.dg/asan/pr114956.c + 7945c329a8682648ec766560d0d91934 gcc/testsuite/gcc.dg/asan/pr115172.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 *************** d8fec2fce7b0346ffeb1fbb2bd55d7e5 gcc/te *** 35330,35335 **** --- 35389,35395 ---- 3dbfc6cb7eab32d45526a6c027b7c7a2 gcc/testsuite/gcc.dg/c17-version-2.c aeb16ae2682d8d01a1d6120c9de5edfd gcc/testsuite/gcc.dg/c18-version-1.c cd00c6feebac836c0ec488202c21d6a7 gcc/testsuite/gcc.dg/c18-version-2.c + 1f0cc4ddd44ec4024c75890aef2076e2 gcc/testsuite/gcc.dg/c23-attr-syntax-8.c 1a6078af67236639a20541935b9c1759 gcc/testsuite/gcc.dg/c2x-attr-deprecated-1.c a94bb301958b9a62e50e21c069442512 gcc/testsuite/gcc.dg/c2x-attr-deprecated-2.c ec4ce1d7cd47b2d554a69b72933ba06b gcc/testsuite/gcc.dg/c2x-attr-deprecated-3.c *************** e3c60516eb9991f352d93d33fde752d3 gcc/te *** 36531,36540 **** 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 9fa876cce008f5a8d26340933a0e3295 gcc/testsuite/gcc.dg/darwin-ld-20040809-1.c e62d76045ed903e34f34747bee80da98 gcc/testsuite/gcc.dg/darwin-ld-20040809-2.c 37137f00ef98856229916ab1efa4960c gcc/testsuite/gcc.dg/darwin-ld-20040828-1.c --- 36591,36600 ---- 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 ! f6fc7e2ea2fa3bb9082daec81d56aeff 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 ! 2bf757e63fd40f62dbd7f7ae31ebbf00 gcc/testsuite/gcc.dg/darwin-ld-2.c 9fa876cce008f5a8d26340933a0e3295 gcc/testsuite/gcc.dg/darwin-ld-20040809-1.c e62d76045ed903e34f34747bee80da98 gcc/testsuite/gcc.dg/darwin-ld-20040809-2.c 37137f00ef98856229916ab1efa4960c gcc/testsuite/gcc.dg/darwin-ld-20040828-1.c *************** ee94511375797117140ca777fd1695b1 gcc/te *** 36555,36563 **** 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 9145b589b54240035dacb7540309d62e gcc/testsuite/gcc.dg/darwin-weakimport-1.c bda7de2e2fd6472aa3ffe7873407e58d gcc/testsuite/gcc.dg/darwin-weakimport-2.c --- 36615,36623 ---- 704c9a2dca0a451cca6e5855f7f2347f gcc/testsuite/gcc.dg/darwin-minversion-7.c 5a8b775f8ce1e0cafb8782fbc39b58e4 gcc/testsuite/gcc.dg/darwin-minversion-8.c aa9dfa39c42ef65a88c0a708412fb842 gcc/testsuite/gcc.dg/darwin-minversion-9.c ! 956d9c5ca31de05aa49da3cb99f3d4ef gcc/testsuite/gcc.dg/darwin-minversion-link.c b66bb093837bda7692b73c8aa9711e00 gcc/testsuite/gcc.dg/darwin-sections.c ! f7857b3d082c7452ee5a60411d5f02bc gcc/testsuite/gcc.dg/darwin-segaddr.c e3d2d2840d7d23dee7e2cd94e097a114 gcc/testsuite/gcc.dg/darwin-version-1.c 9145b589b54240035dacb7540309d62e gcc/testsuite/gcc.dg/darwin-weakimport-1.c bda7de2e2fd6472aa3ffe7873407e58d gcc/testsuite/gcc.dg/darwin-weakimport-2.c *************** f30a377973368d1a41bc4f8e2a0e33e9 gcc/te *** 36642,36648 **** f9ab56344241c22521f8d9245e677c22 gcc/testsuite/gcc.dg/debug/dwarf2/inline1.c 47291ca2a7f639676f2662f2d578253f gcc/testsuite/gcc.dg/debug/dwarf2/inline2.c 8580bd27cd825c8d49e674c9f31c683c gcc/testsuite/gcc.dg/debug/dwarf2/inline3.c ! 586e0e8fb83eb0dc0f5b5a3a5b6236bf gcc/testsuite/gcc.dg/debug/dwarf2/inline4.c b024aabf64c74205609d3f981c1e165b gcc/testsuite/gcc.dg/debug/dwarf2/inline5.c 40c9e189b7b61e8f4d69ce3f98f98206 gcc/testsuite/gcc.dg/debug/dwarf2/inline6.c e7c46c2fc25b3773b6adcbd27af4b924 gcc/testsuite/gcc.dg/debug/dwarf2/ipa-cp1.c --- 36702,36708 ---- f9ab56344241c22521f8d9245e677c22 gcc/testsuite/gcc.dg/debug/dwarf2/inline1.c 47291ca2a7f639676f2662f2d578253f gcc/testsuite/gcc.dg/debug/dwarf2/inline2.c 8580bd27cd825c8d49e674c9f31c683c gcc/testsuite/gcc.dg/debug/dwarf2/inline3.c ! 975fb826cc6035cfef2a1cad545f8110 gcc/testsuite/gcc.dg/debug/dwarf2/inline4.c b024aabf64c74205609d3f981c1e165b gcc/testsuite/gcc.dg/debug/dwarf2/inline5.c 40c9e189b7b61e8f4d69ce3f98f98206 gcc/testsuite/gcc.dg/debug/dwarf2/inline6.c e7c46c2fc25b3773b6adcbd27af4b924 gcc/testsuite/gcc.dg/debug/dwarf2/ipa-cp1.c *************** edee97b42c75ecf594a2c63a31f4c416 gcc/te *** 36655,36660 **** --- 36715,36721 ---- cbcc356a35e8a8665137c7ae64ec5914 gcc/testsuite/gcc.dg/debug/dwarf2/noreturn-function-keyword.c 937e8a07b611d24efb44f969833a3cb8 gcc/testsuite/gcc.dg/debug/dwarf2/omp-fesdr.c 54b366032eed667161eee7783123c310 gcc/testsuite/gcc.dg/debug/dwarf2/pr103874.c + 5ed4e6ef67f556cf4874685cde9a33d6 gcc/testsuite/gcc.dg/debug/dwarf2/pr111080.c 250736f38c859fc89fb993ad3155eb20 gcc/testsuite/gcc.dg/debug/dwarf2/pr29609-1.c 8f522ee214d1db3d04f240eb20eb4474 gcc/testsuite/gcc.dg/debug/dwarf2/pr29609-2.c 43696edd12f5c0c32058d1ad1012e1e8 gcc/testsuite/gcc.dg/debug/dwarf2/pr31230.c *************** b3f045b532c693bbfb8cfed8c0609564 gcc/te *** 36708,36713 **** --- 36769,36775 ---- 69e64f492a931622722ac6c811569e62 gcc/testsuite/gcc.dg/debug/dwarf2/var2.c d11dcc4e37738beb9e8be03ce7630c35 gcc/testsuite/gcc.dg/debug/enum-1.c 3c2a32917edee1c37607a11e5414fbdf gcc/testsuite/gcc.dg/debug/pr104337.c + 30ce98ab2ad9e598ef0db6491350f738 gcc/testsuite/gcc.dg/debug/pr112718.c bdf39999a5a7a4c7b1459600dff4ff14 gcc/testsuite/gcc.dg/debug/pr16676.c 6f8e864ca7f9c38a79c3578b2c75101b gcc/testsuite/gcc.dg/debug/pr26881.c feb6dc1d570a59982f88a912985ff2fa gcc/testsuite/gcc.dg/debug/pr29558.c *************** a4596c7975a946fa49341b476cdddf3a gcc/te *** 37082,37087 **** --- 37144,37150 ---- 079305f70244f8ded32a0debe8d58694 gcc/testsuite/gcc.dg/float64-typeof.c 8bb9c44d00a4462a62e271afe65395d9 gcc/testsuite/gcc.dg/float64x-align.c 43395d2f36b719cad53a2b34ee0c2822 gcc/testsuite/gcc.dg/float64x-typeof.c + e50dce809881cd3fe916639e85f3e895 gcc/testsuite/gcc.dg/float_opposite_arm-1.c dce4fd47d3f8088f0fcde8e4c014985f gcc/testsuite/gcc.dg/floatn-align.h a7a463105294b90172c7dacacf6dfaab gcc/testsuite/gcc.dg/floatn-arithconv.c bfaa6b3a6e5de108258c8a51ca88aff8 gcc/testsuite/gcc.dg/floatn-errs.c *************** cfde414df06a7d559244461a11116f3a gcc/te *** 37397,37403 **** 8f37924ff2caad55a30fc496f91e6433 gcc/testsuite/gcc.dg/fpermitted-flt-eval-methods_2.c 346d72de410a41c1e4c11801d862b639 gcc/testsuite/gcc.dg/fpermitted-flt-eval-methods_3.c dfe38eb512efba921d1fc5abef411b1a gcc/testsuite/gcc.dg/fpermitted-flt-eval-methods_4.c ! efdf83d01ddd79162b4664860b902b22 gcc/testsuite/gcc.dg/framework-1.c ab168371521010cab0fb40567190798a gcc/testsuite/gcc.dg/framework-2.c 72cddfd9b852c1976438d75d9facbec7 gcc/testsuite/gcc.dg/free-1.c b545fd5015b04774ac8c95c87722bfc2 gcc/testsuite/gcc.dg/free-2.c --- 37460,37466 ---- 8f37924ff2caad55a30fc496f91e6433 gcc/testsuite/gcc.dg/fpermitted-flt-eval-methods_2.c 346d72de410a41c1e4c11801d862b639 gcc/testsuite/gcc.dg/fpermitted-flt-eval-methods_3.c dfe38eb512efba921d1fc5abef411b1a gcc/testsuite/gcc.dg/fpermitted-flt-eval-methods_4.c ! f986ed8a378006f958f6b3f89b0dd9f5 gcc/testsuite/gcc.dg/framework-1.c ab168371521010cab0fb40567190798a gcc/testsuite/gcc.dg/framework-2.c 72cddfd9b852c1976438d75d9facbec7 gcc/testsuite/gcc.dg/free-1.c b545fd5015b04774ac8c95c87722bfc2 gcc/testsuite/gcc.dg/free-2.c *************** d06f7c5820eb923c44d73fa73e63ee5d gcc/te *** 38430,38436 **** 3f06e49cd636df9de21331230b0e59e0 gcc/testsuite/gcc.dg/ipa/ipa-icf-35.c 4630bb4962c62c86ea5589ff20308a9a gcc/testsuite/gcc.dg/ipa/ipa-icf-36.c ef947bf14a3a516703fe551dea457061 gcc/testsuite/gcc.dg/ipa/ipa-icf-37.c ! 682c8d620b16f64d33f18d73e453a4ae gcc/testsuite/gcc.dg/ipa/ipa-icf-38.c 8d25872a618a0cf64f0d344afe44543a gcc/testsuite/gcc.dg/ipa/ipa-icf-38a.c 554bb9677c9084721bcca9a42daa5b9a gcc/testsuite/gcc.dg/ipa/ipa-icf-39.c 639814886ab7278c2142d218eef816de gcc/testsuite/gcc.dg/ipa/ipa-icf-4.c --- 38493,38499 ---- 3f06e49cd636df9de21331230b0e59e0 gcc/testsuite/gcc.dg/ipa/ipa-icf-35.c 4630bb4962c62c86ea5589ff20308a9a gcc/testsuite/gcc.dg/ipa/ipa-icf-36.c ef947bf14a3a516703fe551dea457061 gcc/testsuite/gcc.dg/ipa/ipa-icf-37.c ! 0848ba2e6621707fb7f0e1ef4099f9cb gcc/testsuite/gcc.dg/ipa/ipa-icf-38.c 8d25872a618a0cf64f0d344afe44543a gcc/testsuite/gcc.dg/ipa/ipa-icf-38a.c 554bb9677c9084721bcca9a42daa5b9a gcc/testsuite/gcc.dg/ipa/ipa-icf-39.c 639814886ab7278c2142d218eef816de gcc/testsuite/gcc.dg/ipa/ipa-icf-4.c *************** d9a197240d51bf4b3e98a49de304172c gcc/te *** 39374,39385 **** 762b005a07126544845976067b15ca4d gcc/testsuite/gcc.dg/pic-4.c 1310eec5a596f6f3f1034c18543936a3 gcc/testsuite/gcc.dg/pic-macro-define.c de302da8d7737a4e96d474e241080339 gcc/testsuite/gcc.dg/pie-1.c ! e85ed22735e235dc5a9457487286d6f0 gcc/testsuite/gcc.dg/pie-2.c a1104a3ff24cf683d1a597e325c9f573 gcc/testsuite/gcc.dg/pie-3.c d9f2439f176b4f73afa0c30baa468855 gcc/testsuite/gcc.dg/pie-4.c 17f4008aaadc7db4f869e804d77d753a gcc/testsuite/gcc.dg/pie-5.c 0debd1544970fb56a2a4a7828bb92d07 gcc/testsuite/gcc.dg/pie-6.c ! df1fb04645820cce9159c1b05e520fc7 gcc/testsuite/gcc.dg/pie-7.c 72712f41dcc921ba1827000fc0809a9c gcc/testsuite/gcc.dg/pie-link.c 000d3a6c8dca7e54f5be771190d10f29 gcc/testsuite/gcc.dg/pie-static-1.c be052bceddbf752586b645bc9e048e9c gcc/testsuite/gcc.dg/pie-static-2.c --- 39437,39448 ---- 762b005a07126544845976067b15ca4d gcc/testsuite/gcc.dg/pic-4.c 1310eec5a596f6f3f1034c18543936a3 gcc/testsuite/gcc.dg/pic-macro-define.c de302da8d7737a4e96d474e241080339 gcc/testsuite/gcc.dg/pie-1.c ! d3b785ef540cb4e67cd67fada4080a39 gcc/testsuite/gcc.dg/pie-2.c a1104a3ff24cf683d1a597e325c9f573 gcc/testsuite/gcc.dg/pie-3.c d9f2439f176b4f73afa0c30baa468855 gcc/testsuite/gcc.dg/pie-4.c 17f4008aaadc7db4f869e804d77d753a gcc/testsuite/gcc.dg/pie-5.c 0debd1544970fb56a2a4a7828bb92d07 gcc/testsuite/gcc.dg/pie-6.c ! 2db756126636737e343b6e63f0f96fcb gcc/testsuite/gcc.dg/pie-7.c 72712f41dcc921ba1827000fc0809a9c gcc/testsuite/gcc.dg/pie-link.c 000d3a6c8dca7e54f5be771190d10f29 gcc/testsuite/gcc.dg/pie-static-1.c be052bceddbf752586b645bc9e048e9c gcc/testsuite/gcc.dg/pie-static-2.c *************** cc6ac8d68c79338a580a123141221e8b gcc/te *** 39545,39556 **** --- 39608,39621 ---- 01d945e452f69cb1fee8b12a879e51c6 gcc/testsuite/gcc.dg/pr105263.c c3d8ae3e46240608f001dd6a702ebf0b gcc/testsuite/gcc.dg/pr105331.c df5c854ae6b61ad7980dc609c12732b5 gcc/testsuite/gcc.dg/pr105333.c + bfec3f2610558e315de99d8027586521 gcc/testsuite/gcc.dg/pr105522.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 + 82f2765c862f6e67c3558ee7cde994d8 gcc/testsuite/gcc.dg/pr107385.c d64d53420ac059d0a4813bb6b0e625bd gcc/testsuite/gcc.dg/pr107554.c 4b0c665c9ac4f4701760e4205e109f61 gcc/testsuite/gcc.dg/pr108095.c c056feceecb1e4c44f6bf01a21cb6e9d gcc/testsuite/gcc.dg/pr108264.c *************** e0baf0198b26b94a0e92182918c52449 gcc/te *** 39558,39565 **** --- 39623,39650 ---- 58629ccc236a40b8dec9ecfe5aa35f2a gcc/testsuite/gcc.dg/pr108625.c 21a62b0e858621e46700af10fbe121e4 gcc/testsuite/gcc.dg/pr108692.c 8c5ddd68de1ed874eb52f91b7136909e gcc/testsuite/gcc.dg/pr109410.c + f71ef2b2bdb0cce06fa1243f4928e871 gcc/testsuite/gcc.dg/pr110079.c + c63f42682a97d6307d214dda47bb00f9 gcc/testsuite/gcc.dg/pr110731.c + 5328040ceef0db656025d09af496f06a gcc/testsuite/gcc.dg/pr111015.c + 475fe022000816b6e696beebf8f5bc37 gcc/testsuite/gcc.dg/pr111039.c + f09a78bba4729691ffb28aad69085816 gcc/testsuite/gcc.dg/pr111070.c + 8a45dfbe070c48845446dc22aab1602b gcc/testsuite/gcc.dg/pr111407.c + f97f1cf6ac420452092fc3fba4203574 gcc/testsuite/gcc.dg/pr112733.c + e5517dc2a2e07c9b2472bb545cd5a722 gcc/testsuite/gcc.dg/pr112837.c + 6b73a8d375ddff23d86f9f1c9377f381 gcc/testsuite/gcc.dg/pr112845.c + da36c4c045a6839485d1209b636f2fa6 gcc/testsuite/gcc.dg/pr113262.c + e68a7c7f2d1db31e0e0e0a23960975a7 gcc/testsuite/gcc.dg/pr113907-1.c + 12ecf3bc0aab66a39903f50c4a6dfc66 gcc/testsuite/gcc.dg/pr114115.c + 7cd5609790e8cb3ba4ad54ccf122a48a gcc/testsuite/gcc.dg/pr114310.c + e99866ca9e56b885a0004e2f573a6158 gcc/testsuite/gcc.dg/pr114493-1.c + 94931dbb7cf13d8363b141dd2b96ebdf gcc/testsuite/gcc.dg/pr114493-2.c 860f163dcd0b252ea3f85323bc959a7d gcc/testsuite/gcc.dg/pr11459-1.c + 18db873e30d811e6904623797ead2825 gcc/testsuite/gcc.dg/pr114753.c + 278b6ea6998e142ef9ecea8b30a97701 gcc/testsuite/gcc.dg/pr114768.c + 86c7b688b3835d3cdb63a61f64b1ae73 gcc/testsuite/gcc.dg/pr114876.c + 4f24f3d12a3963918c32e40afe158f0a gcc/testsuite/gcc.dg/pr114902.c e164a736918661d669864e3645da290c gcc/testsuite/gcc.dg/pr11492.c + e76a4663621c8d450d2c9d229d63e033 gcc/testsuite/gcc.dg/pr115092.c 3b83403729a3686d25552352bf0c4577 gcc/testsuite/gcc.dg/pr11864-1.c bc5ddfbbc46f4e0cce1629d1b58d3090 gcc/testsuite/gcc.dg/pr12603.c 72a2fca76cb69617ae36bab93c7ec0d7 gcc/testsuite/gcc.dg/pr12625-1.c *************** b09000e6104e19c4d2e2e0550272c280 gcc/te *** 41057,41063 **** 8785ee78f0ecce2b7ef647d29d90cf54 gcc/testsuite/gcc.dg/pr83373.c 64ee6bfa410f7c1d30c3d7f63402433b gcc/testsuite/gcc.dg/pr83393.c a6e9e544df8c1540a5957852a45004e8 gcc/testsuite/gcc.dg/pr83396.c ! 4f297789c555b06acff0f263a2de4380 gcc/testsuite/gcc.dg/pr83415.c ff149ef447478fe287d21948bf94820b gcc/testsuite/gcc.dg/pr83419.c d1d24788f9c8caf0192fc3807eb41608 gcc/testsuite/gcc.dg/pr83422.c 4cfcf9fb49e0c6531f60ce19ff899760 gcc/testsuite/gcc.dg/pr83424.c --- 41142,41148 ---- 8785ee78f0ecce2b7ef647d29d90cf54 gcc/testsuite/gcc.dg/pr83373.c 64ee6bfa410f7c1d30c3d7f63402433b gcc/testsuite/gcc.dg/pr83393.c a6e9e544df8c1540a5957852a45004e8 gcc/testsuite/gcc.dg/pr83396.c ! bed17f1377941c87cc77ed606717aeaa gcc/testsuite/gcc.dg/pr83415.c ff149ef447478fe287d21948bf94820b gcc/testsuite/gcc.dg/pr83419.c d1d24788f9c8caf0192fc3807eb41608 gcc/testsuite/gcc.dg/pr83422.c 4cfcf9fb49e0c6531f60ce19ff899760 gcc/testsuite/gcc.dg/pr83424.c *************** fc94c5cf1382c5cc791f1e082f1bc93b gcc/te *** 41913,41919 **** 4bb868e2d5ae5ad0f471895fe036ce9d gcc/testsuite/gcc.dg/sso/u5.c 6a94b217dd2dc52bd804b559734d7d6d gcc/testsuite/gcc.dg/sso/u6.c aadb80509f82b46b30f6e6764a2e2dd1 gcc/testsuite/gcc.dg/ssp-1.c ! 298fe2c4a920a1453489cedaeaa98ff3 gcc/testsuite/gcc.dg/ssp-2.c b764f892e6c6f673878a4e8da208c16b gcc/testsuite/gcc.dg/ssp-3.c 5843aab6624989ad947aa1f77c816bce gcc/testsuite/gcc.dg/ssp-4.c 70e6f2a4c4d5735002d0b1f7dd18ddd2 gcc/testsuite/gcc.dg/stack-check-10.c --- 41998,42004 ---- 4bb868e2d5ae5ad0f471895fe036ce9d gcc/testsuite/gcc.dg/sso/u5.c 6a94b217dd2dc52bd804b559734d7d6d gcc/testsuite/gcc.dg/sso/u6.c aadb80509f82b46b30f6e6764a2e2dd1 gcc/testsuite/gcc.dg/ssp-1.c ! 07c428d62b7171c3d051c3770f57156c gcc/testsuite/gcc.dg/ssp-2.c b764f892e6c6f673878a4e8da208c16b gcc/testsuite/gcc.dg/ssp-3.c 5843aab6624989ad947aa1f77c816bce gcc/testsuite/gcc.dg/ssp-4.c 70e6f2a4c4d5735002d0b1f7dd18ddd2 gcc/testsuite/gcc.dg/stack-check-10.c *************** d0754d716d5a46b59b9bef2c75e48953 gcc/te *** 42530,42536 **** 6335c9430427e1e94a7a58bb8b0b5255 gcc/testsuite/gcc.dg/torture/pr100566.c 5f5809ecbd695f122244007bc7702241 gcc/testsuite/gcc.dg/torture/pr100672.c 42ebfa98a65c58d2b4d8a096dc9a472a gcc/testsuite/gcc.dg/torture/pr100778.c ! 4b5d071569dd623054d8ee1f648c1cfe gcc/testsuite/gcc.dg/torture/pr100786.c 8b17a9d424e890ccb3124ad5ef70f837 gcc/testsuite/gcc.dg/torture/pr100923.c de1ad14692100748f699bc7db768a51d gcc/testsuite/gcc.dg/torture/pr100934.c cbce37eea923f47befb962cd2af5ac3a gcc/testsuite/gcc.dg/torture/pr101009.c --- 42615,42621 ---- 6335c9430427e1e94a7a58bb8b0b5255 gcc/testsuite/gcc.dg/torture/pr100566.c 5f5809ecbd695f122244007bc7702241 gcc/testsuite/gcc.dg/torture/pr100672.c 42ebfa98a65c58d2b4d8a096dc9a472a gcc/testsuite/gcc.dg/torture/pr100778.c ! ddd13a0e9f6c82227fa9db9ba858a6ea gcc/testsuite/gcc.dg/torture/pr100786.c 8b17a9d424e890ccb3124ad5ef70f837 gcc/testsuite/gcc.dg/torture/pr100923.c de1ad14692100748f699bc7db768a51d gcc/testsuite/gcc.dg/torture/pr100934.c cbce37eea923f47befb962cd2af5ac3a gcc/testsuite/gcc.dg/torture/pr101009.c *************** e1b483b65be081b4b298ed61ad7e3eed gcc/te *** 42564,42569 **** --- 42649,42662 ---- 52e50fb88c76596d45c9fa47a5313317 gcc/testsuite/gcc.dg/torture/pr107451.c 5badd9cb552b126e1568f773f867f8b3 gcc/testsuite/gcc.dg/torture/pr108076.c 72f322a0e5d8096eb7fa42e2d8fabe7d gcc/testsuite/gcc.dg/torture/pr109585.c + c68e0fca588779377278aa9e84380d07 gcc/testsuite/gcc.dg/torture/pr110176.c + 2c65ac9bb8c6b6218eb71392ab387879 gcc/testsuite/gcc.dg/torture/pr110298.c + eeafa444e951227833c10234733ef66d gcc/testsuite/gcc.dg/torture/pr110422.c + 880ef8f569f8ceaf9a94d105c12a8f97 gcc/testsuite/gcc.dg/torture/pr111445.c + 9ac3aab221fd38c4d0dda7ec4429c95d gcc/testsuite/gcc.dg/torture/pr111614.c + 404440fd3b4aac03198b518a7e9c5268 gcc/testsuite/gcc.dg/torture/pr111815.c + e289e3514153e0ffe8b5b086904f40c4 gcc/testsuite/gcc.dg/torture/pr111818.c + 5a3dd17b41272920e3804d1b42cba87e gcc/testsuite/gcc.dg/torture/pr111917.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 *************** fc343ac4dddc2387803c4581508bd355 gcc/te *** 44020,44026 **** 25a22ef7e096aa5c4a5ec323a10eb1ee gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-7.c 3f1747c36bfe6b3fd2235e695edcaa02 gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-8.c 1d89c967b03259c101cc6401b07d1648 gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-9.c ! d2a6a7bf2644a7942988c7239b51410f gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-1.c d0e4c342e2ad48131871ec279be2f9c3 gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-10.c 75bb54d18f7c1eeb0e52d94f6f0e0a2d gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-11.c c7f97a6e2a77945ebe161e237b31e840 gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-12.c --- 44113,44119 ---- 25a22ef7e096aa5c4a5ec323a10eb1ee gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-7.c 3f1747c36bfe6b3fd2235e695edcaa02 gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-8.c 1d89c967b03259c101cc6401b07d1648 gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-9.c ! 5489a7071de3715549debe15cc684b48 gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-1.c d0e4c342e2ad48131871ec279be2f9c3 gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-10.c 75bb54d18f7c1eeb0e52d94f6f0e0a2d gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-11.c c7f97a6e2a77945ebe161e237b31e840 gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-12.c *************** bb62f82a973334db1c0ebf75b17bcdf8 gcc/te *** 45703,45708 **** --- 45796,45802 ---- 016029e7b08dbc8fe1d266551df2fdd3 gcc/testsuite/gcc.dg/tree-ssa/writeonly.c 22eb0b8eeae794a6956326b2c9383fb2 gcc/testsuite/gcc.dg/trunc-1.c 0986037c6e0724a89f8308100f3f920f gcc/testsuite/gcc.dg/tsan/atomic-fence.c + 93c01dbb8a77851bfbe99fc7c806d056 gcc/testsuite/gcc.dg/tsan/pr111736.c 66723ae098123069493e416708ef5146 gcc/testsuite/gcc.dg/tsan/pr88017.c dcc8ff133faffd3fe561dfe431569a07 gcc/testsuite/gcc.dg/tsan/pr88030.c de40a1e950c75128048b75517e728603 gcc/testsuite/gcc.dg/tsan/pr90208-1.c *************** b6636fcf606d4b2a9b3c129b082bc808 gcc/te *** 45747,45752 **** --- 45841,45847 ---- 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 + 3d891ede9caa6aed55954898e1974cef gcc/testsuite/gcc.dg/ubsan/pr111736.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 *************** f1c2ca8659ed33069fed7de6e429bc7e gcc/te *** 46375,46380 **** --- 46470,46484 ---- bdc9d900f60b3777cfec5cd1a41102d7 gcc/testsuite/gcc.dg/vect/pr108950.c bce13fdf2ea61a0bc1886470eed1bf60 gcc/testsuite/gcc.dg/vect/pr109473.c aa0a603e6aee5b8a3fd3463354c9bf10 gcc/testsuite/gcc.dg/vect/pr109502.c + 6fe7a9f8a10f6b62e25fc4c1fa96deff gcc/testsuite/gcc.dg/vect/pr111764.c + 769cf4bfcb97c43ac962799ae8d222c5 gcc/testsuite/gcc.dg/vect/pr112505.c + c26acbf1612dc4698a8344d64f963df0 gcc/testsuite/gcc.dg/vect/pr113281-1.c + 21722bf37953d9796f5d5fd71e243c2b gcc/testsuite/gcc.dg/vect/pr113281-2.c + 31ad99fbdbecf9925f5f4504adc83b13 gcc/testsuite/gcc.dg/vect/pr113281-3.c + e7f3d45d3b7be1d3f34c03fe14a64322 gcc/testsuite/gcc.dg/vect/pr113281-4.c + 8f0bbff86de57f60a2a350c847f4db18 gcc/testsuite/gcc.dg/vect/pr113281-5.c + f2ad143cd940fa42deda153f442d29b2 gcc/testsuite/gcc.dg/vect/pr114027.c + a652091690348408aec894da3d82b15d gcc/testsuite/gcc.dg/vect/pr115192.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 *************** b551cf977314c7406b99b8d04c143b19 gcc/te *** 46730,46736 **** 6895e7a56bdc4993b94c03e6d5dc587d gcc/testsuite/gcc.dg/vect/pr97173.c 28db70b2a4bdf2faf03ba619381af631 gcc/testsuite/gcc.dg/vect/pr97236.c 20e8d4d146127438ffe685c492c8ad86 gcc/testsuite/gcc.dg/vect/pr97241.c ! ee5e6bcfcc4a28b128f0ae60e312ef1e gcc/testsuite/gcc.dg/vect/pr97428.c 8d732449a24564fd2cd4ff8dca6c2f37 gcc/testsuite/gcc.dg/vect/pr97457.c 4e7901b46d8ff6dfbd12f354b54c6743 gcc/testsuite/gcc.dg/vect/pr97558-2.c a0e548875f044f3b51270f1185a1fee3 gcc/testsuite/gcc.dg/vect/pr97558.c --- 46834,46840 ---- 6895e7a56bdc4993b94c03e6d5dc587d gcc/testsuite/gcc.dg/vect/pr97173.c 28db70b2a4bdf2faf03ba619381af631 gcc/testsuite/gcc.dg/vect/pr97236.c 20e8d4d146127438ffe685c492c8ad86 gcc/testsuite/gcc.dg/vect/pr97241.c ! 383951c1cc307ec21b173cbb393b3a33 gcc/testsuite/gcc.dg/vect/pr97428.c 8d732449a24564fd2cd4ff8dca6c2f37 gcc/testsuite/gcc.dg/vect/pr97457.c 4e7901b46d8ff6dfbd12f354b54c6743 gcc/testsuite/gcc.dg/vect/pr97558-2.c a0e548875f044f3b51270f1185a1fee3 gcc/testsuite/gcc.dg/vect/pr97558.c *************** fcefe80d362d778b71a9c6431b796a1e gcc/te *** 47498,47504 **** f83d2db3e2fd97e87230a5d9dd1274b9 gcc/testsuite/gcc.dg/visibility-2.c eb58aa4a681a08d91397e2a11fbe81e3 gcc/testsuite/gcc.dg/visibility-20.c 3f8f1445188e50bcf22ad7a8fc85ee2b gcc/testsuite/gcc.dg/visibility-21.c ! 53e859a3603a5f96fbf285e13fe6c1ac gcc/testsuite/gcc.dg/visibility-22.c 9efe2209183ec6701835782f5226ac33 gcc/testsuite/gcc.dg/visibility-23.c d0a344fbd6e7158b3bf4cdbb4440ef36 gcc/testsuite/gcc.dg/visibility-3.c 8d7d13e33f78b22dd6e7c886111a31ad gcc/testsuite/gcc.dg/visibility-4.c --- 47602,47608 ---- f83d2db3e2fd97e87230a5d9dd1274b9 gcc/testsuite/gcc.dg/visibility-2.c eb58aa4a681a08d91397e2a11fbe81e3 gcc/testsuite/gcc.dg/visibility-20.c 3f8f1445188e50bcf22ad7a8fc85ee2b gcc/testsuite/gcc.dg/visibility-21.c ! b243f2b25c734ac1fbe117df8c16e237 gcc/testsuite/gcc.dg/visibility-22.c 9efe2209183ec6701835782f5226ac33 gcc/testsuite/gcc.dg/visibility-23.c d0a344fbd6e7158b3bf4cdbb4440ef36 gcc/testsuite/gcc.dg/visibility-3.c 8d7d13e33f78b22dd6e7c886111a31ad gcc/testsuite/gcc.dg/visibility-4.c *************** c400cc0e03e4317110d582fdba04ace0 gcc/te *** 47788,47794 **** 0c8ac613f2d2a35706fd7c8b7b16a1a9 gcc/testsuite/gcc.misc-tests/gcov-11.c eee8f00567cf54ebbed65a4f71c7d314 gcc/testsuite/gcc.misc-tests/gcov-12.c 1aac355a176cb811b951b73ea58ef6c7 gcc/testsuite/gcc.misc-tests/gcov-13.c ! 91c5005b1b38df67c1f35c1fa5ed34b7 gcc/testsuite/gcc.misc-tests/gcov-14.c a7fcf55fbb07ad31be551305d543313e gcc/testsuite/gcc.misc-tests/gcov-15.c a19cb340410a6420dbacef02fec4bcd8 gcc/testsuite/gcc.misc-tests/gcov-16.c 90ae2485842728f278e979faa45ad805 gcc/testsuite/gcc.misc-tests/gcov-17.c --- 47892,47898 ---- 0c8ac613f2d2a35706fd7c8b7b16a1a9 gcc/testsuite/gcc.misc-tests/gcov-11.c eee8f00567cf54ebbed65a4f71c7d314 gcc/testsuite/gcc.misc-tests/gcov-12.c 1aac355a176cb811b951b73ea58ef6c7 gcc/testsuite/gcc.misc-tests/gcov-13.c ! a95cd74daf7751d37ad0e80b754f3ef8 gcc/testsuite/gcc.misc-tests/gcov-14.c a7fcf55fbb07ad31be551305d543313e gcc/testsuite/gcc.misc-tests/gcov-15.c a19cb340410a6420dbacef02fec4bcd8 gcc/testsuite/gcc.misc-tests/gcov-16.c 90ae2485842728f278e979faa45ad805 gcc/testsuite/gcc.misc-tests/gcov-17.c *************** ae513bfb2896c38de994944b104fb7c8 gcc/te *** 47938,47943 **** --- 48042,48049 ---- 8a6aed21d2622bf72389f22f09d8bd4b gcc/testsuite/gcc.target/aarch64/abs_2.c 5f82175ed939dca012b0982ed87e3fc0 gcc/testsuite/gcc.target/aarch64/acle/acle.exp a545b8f7fc60af12576f85397e1733cb gcc/testsuite/gcc.target/aarch64/acle/armv8-r.c + d75448581ffe687b59d90766e852e7df gcc/testsuite/gcc.target/aarch64/acle/bf16_feature.c + 80f5f996bc3addf12ec6ed7a7a97d085 gcc/testsuite/gcc.target/aarch64/acle/bf16_sve_feature.c 339f7215861041bbe928186d86e2c7b7 gcc/testsuite/gcc.target/aarch64/acle/crc32b.c b3b451a8f938e2c0a24c2751eab2c62d gcc/testsuite/gcc.target/aarch64/acle/crc32cb.c ff79cdd1c6205d62ceab022024616fbc gcc/testsuite/gcc.target/aarch64/acle/crc32cd.c *************** d31b19093bf5b52a4ab71663355a6864 gcc/te *** 48942,48947 **** --- 49048,49054 ---- 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 + 5c93b32021bd32ca40c9fb5ec6a30f04 gcc/testsuite/gcc.target/aarch64/pr113552.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 *************** d8cba6fbd72082d21194a1854f6c2dfc gcc/te *** 49521,49527 **** eb612e50dff956594dedc023c01c005d gcc/testsuite/gcc.target/aarch64/simd/vzipu8.x 91d02599c3437c09a7b9841ceadb46bf gcc/testsuite/gcc.target/aarch64/simd/vzipu8_1.c 9ed21057ed9603af458520370acef207 gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-2.c ! a1bb40eab16d5f5dfc6b73cc362bd351 gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c e24e752cdfaae08d96c7ec56c0ef75fd gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute.c 96b414deb2ef664ef0e319c9d099a140 gcc/testsuite/gcc.target/aarch64/singleton_intrinsics_1.c 1720e6906e4df69467a464d77453cbb9 gcc/testsuite/gcc.target/aarch64/sisd-shft-neg_1.c --- 49628,49634 ---- eb612e50dff956594dedc023c01c005d gcc/testsuite/gcc.target/aarch64/simd/vzipu8.x 91d02599c3437c09a7b9841ceadb46bf gcc/testsuite/gcc.target/aarch64/simd/vzipu8_1.c 9ed21057ed9603af458520370acef207 gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-2.c ! d1a781848976d72dd29ad2008392d1ea gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c e24e752cdfaae08d96c7ec56c0ef75fd gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute.c 96b414deb2ef664ef0e319c9d099a140 gcc/testsuite/gcc.target/aarch64/singleton_intrinsics_1.c 1720e6906e4df69467a464d77453cbb9 gcc/testsuite/gcc.target/aarch64/sisd-shft-neg_1.c *************** b6d24cc44c0ae841eedac19bb3b71ae7 gcc/te *** 49570,49575 **** --- 49677,49684 ---- 8ae74d3437f7d43d17cfac17632d942f gcc/testsuite/gcc.target/aarch64/stack-check-prologue-14.c ed8a92c22bb4c356e72a00b75da4bccd gcc/testsuite/gcc.target/aarch64/stack-check-prologue-15.c f60705b79c18983e5449cb2640888da9 gcc/testsuite/gcc.target/aarch64/stack-check-prologue-16.c + 61734bec5d3ca6a21a55fdda5a176be9 gcc/testsuite/gcc.target/aarch64/stack-check-prologue-17.c + 1eb4d5e67c09fd735a5d4f3a3c1f22a5 gcc/testsuite/gcc.target/aarch64/stack-check-prologue-18.c 7df002241fabdd43166a078456b9af79 gcc/testsuite/gcc.target/aarch64/stack-check-prologue-2.c 4d593b97a712f1c1b227372e57c2b116 gcc/testsuite/gcc.target/aarch64/stack-check-prologue-3.c dbd54994dcdef6b44b1f3378ddd01e83 gcc/testsuite/gcc.target/aarch64/stack-check-prologue-4.c *************** e13154393d19a49196906480b6d2d4bc gcc/te *** 49587,49592 **** --- 49696,49703 ---- 3367dd14de391b1bd4bcf779e76b539d gcc/testsuite/gcc.target/aarch64/stack-protector-5.c e01a1f1b04b18c2fe9d9ae7868f0e844 gcc/testsuite/gcc.target/aarch64/stack-protector-6.c a27709d027d6c6481721a51a678b65ed gcc/testsuite/gcc.target/aarch64/stack-protector-7.c + ecbce9b7301b6ddc08bd87f89762b3cd gcc/testsuite/gcc.target/aarch64/stack-protector-8.c + bd965202297cac63c28f20a2183eb2e2 gcc/testsuite/gcc.target/aarch64/stack-protector-9.c e60080b5e2fe845d07811566ce955b35 gcc/testsuite/gcc.target/aarch64/store-pair-1.c fc9240608ee0f16e1f1c3b227052460b gcc/testsuite/gcc.target/aarch64/store_lane0_str_1.c 187e9a28ba40c7239e3291680f4edd90 gcc/testsuite/gcc.target/aarch64/store_lane_spill_1.c *************** e79a454266487377a5fe47ecfa638d07 gcc/te *** 52096,52102 **** f3fc0d43f234493b5b9ce5a5503f8808 gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_2_2048.c e9b154bc8367ff38eb536d7d7192db9a gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_2_256.c e24fbdf33e77d28819c9e81e53b35801 gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_2_512.c ! 51ecf8b206f222d4d7bcad650be74d53 gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_3.c f2456a359f3821da1bc28f9a5f7e556e gcc/testsuite/gcc.target/aarch64/sve/pcs/struct.h 3bdedaf042ffb29eabe08512390ff3b9 gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_1_1024.c 80cff442b432ccbde3e763ee004ba5cb gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_1_128.c --- 52207,52213 ---- f3fc0d43f234493b5b9ce5a5503f8808 gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_2_2048.c e9b154bc8367ff38eb536d7d7192db9a gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_2_256.c e24fbdf33e77d28819c9e81e53b35801 gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_2_512.c ! 467df00c49d5cdd5a0904a0d794a6d10 gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_3.c f2456a359f3821da1bc28f9a5f7e556e gcc/testsuite/gcc.target/aarch64/sve/pcs/struct.h 3bdedaf042ffb29eabe08512390ff3b9 gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_1_1024.c 80cff442b432ccbde3e763ee004ba5cb gcc/testsuite/gcc.target/aarch64/sve/pcs/struct_1_128.c *************** ab7e96ffad0e120db206c2fe1d3866a9 gcc/te *** 52143,52148 **** --- 52254,52260 ---- 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 + bc4cb512648e75cde04a28680b1c4a89 gcc/testsuite/gcc.target/aarch64/sve/pr109505.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 *************** b1c8f3af47e9cea755b055cce544806c gcc/te *** 52164,52169 **** --- 52276,52282 ---- a21cb5077461cbf23ca054f7c89a9bd8 gcc/testsuite/gcc.target/aarch64/sve/pr97092.c 0bd0c11c70979d74de80fd698161a3be gcc/testsuite/gcc.target/aarch64/sve/pr97141.c 551b93da908927fd5461395f52ee36cf gcc/testsuite/gcc.target/aarch64/sve/pr97144.c + 52c6ecc9bb5839481a0b9229b539e8f3 gcc/testsuite/gcc.target/aarch64/sve/pr97696.c feaaf48c5bd3e12bf1024ebc5d6dfdfa gcc/testsuite/gcc.target/aarch64/sve/pr98119.c 6c0e94c363caf9e62df35ea98b4918ed gcc/testsuite/gcc.target/aarch64/sve/pr98177-1.c e64000c150bb204c31dca884ee33dd4f gcc/testsuite/gcc.target/aarch64/sve/pr98177-2.c *************** a2ccf9bfd1d0bb840b23c25e1bdec31c gcc/te *** 53427,53432 **** --- 53540,53546 ---- d7ac99c012df73ffbde36998316bf1ef gcc/testsuite/gcc.target/aarch64/tlsle_sizeadj_small_1.c fc2eb8ac52faed5fba0a017b858d4ae4 gcc/testsuite/gcc.target/aarch64/tlsle_sizeadj_tiny_1.c cb0bc42e0cec0ac886c33323d1a33381 gcc/testsuite/gcc.target/aarch64/torture/aarch64-torture.exp + 4036d83a59b4adcf9e8a4cf5a291d22e gcc/testsuite/gcc.target/aarch64/torture/pr111677.c 5266ac107a73e3ee1d1f44e1cda7d9f2 gcc/testsuite/gcc.target/aarch64/torture/simd-abi-1.c 9c3416db2fc04c3f91b03ecae15e943e gcc/testsuite/gcc.target/aarch64/torture/simd-abi-10.c df55bfe2c1ce46074b19b4566cedeef4 gcc/testsuite/gcc.target/aarch64/torture/simd-abi-11.c *************** a9f54382c872d8300abd0751aaf2baa7 gcc/te *** 53627,53632 **** --- 53741,53747 ---- 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 + d2f13118de8962e07bca23bc88ac4d1b gcc/testsuite/gcc.target/alpha/pr115297.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 *************** ce1fe2059d8e263b0f3d889cb1392892 gcc/te *** 54094,54099 **** --- 54209,54216 ---- a29c7dfe0255ba24ca52aa9293640971 gcc/testsuite/gcc.target/arm/cmse/cmse-8.x ce946170746cf737bca71ec699014fef gcc/testsuite/gcc.target/arm/cmse/cmse-9.c be8035e562d337b07c0ddf2c6f1723d6 gcc/testsuite/gcc.target/arm/cmse/cmse.exp + 2ca1bc1b7709560cb23249102afd2dd8 gcc/testsuite/gcc.target/arm/cmse/extend-param.c + e37af808fb07f04f12fd1323772cfb18 gcc/testsuite/gcc.target/arm/cmse/extend-return.c 6e9c9a777c4a333e2bdba95bdaf23364 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-4.c c540adef0c0a8fc3e8e03fee5f712683 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-5.c 727ae9b55594654191b60afa67ad5094 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/bitfield-6.c *************** b10cfdb237776099c4180833e3c5ba65 gcc/te *** 56588,56593 **** --- 56705,56711 ---- 905227377ead65a55eed190a9d85e9a9 gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_s32.c 453b61d72ac14797e09e2b64733bb3b5 gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_s64.c 659833bfb3162e1c1facc6b8a92b4f93 gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_s8.c + bfc6037993ab8de2e59e1fc18bd8c747 gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_su64.c 8f7269908b469dfc3407b1a8d980f69b gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_u16.c dc5c97486293aabf2938431e5a6a104c gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_u32.c 04feab40a05196b25738dd6dc329d4aa gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_u64.c *************** bce9be46a9e956c5fcc66bfb68691f0f gcc/te *** 56943,56948 **** --- 57061,57067 ---- 92d7537f3966988f20d05b94977b3beb gcc/testsuite/gcc.target/arm/neon-modes-3.c 4e0cca6bc39f2d3cecf9ea72ec4b0d52 gcc/testsuite/gcc.target/arm/neon-nested-apcs.c 7783093cce901b3a47068de662227a6b gcc/testsuite/gcc.target/arm/neon-offset-1.c + 2f0d808ded25a27c867026ac6296d1b9 gcc/testsuite/gcc.target/arm/neon-recip-div-1.c 1f48b8fad239c5f29804610f9f08ce99 gcc/testsuite/gcc.target/arm/neon-reload-class.c 79e2b86f1be68bc1014fb6b480d5322f gcc/testsuite/gcc.target/arm/neon-thumb2-move.c add75049520bb3c0c677317469ccb57e gcc/testsuite/gcc.target/arm/neon-vadds64.c *************** a13d496741ee33ca9436673eb16995cf gcc/te *** 57228,57233 **** --- 57347,57353 ---- 9d45085f81b933f75aff02b4b174d596 gcc/testsuite/gcc.target/arm/pure-code/no-literal-pool-m0.c be0f627c9760e72ac531303722e2aa4a gcc/testsuite/gcc.target/arm/pure-code/no-literal-pool-m23.c 7b8330d6a4b33ec1ebe3d2b0ac6a7d6a gcc/testsuite/gcc.target/arm/pure-code/no-literal-pool.c + 3190f6ba1fbc57975b5a58d4d43de120 gcc/testsuite/gcc.target/arm/pure-code/pr109800.c 9ae88bbf3f56f1b4e53964c0b9d80766 gcc/testsuite/gcc.target/arm/pure-code/pr94538-1.c 73846ca40ff67281debec0e317b1f8d5 gcc/testsuite/gcc.target/arm/pure-code/pr94538-2.c 4f35b9cdbd7f36b52519b9a78b06c4d6 gcc/testsuite/gcc.target/arm/pure-code/pr96767.c *************** d60dbd15c646ed84efd9129d21d39b6d gcc/te *** 58355,58360 **** --- 58475,58481 ---- 3eebd7a67adf970dc6eea82ff3eda30d gcc/testsuite/gcc.target/i386/amxint8-dpbuud-2.c 4e7e8638f4652613beb251daa4730463 gcc/testsuite/gcc.target/i386/amxtile-2.c a455baf8f9990eb7494164842dce7c91 gcc/testsuite/gcc.target/i386/amxtile-3.c + 84fc02cc52ddc8bdd53d77902c0176fb gcc/testsuite/gcc.target/i386/amxtile-4.c 8e7fab1b3f5c89155f09aabb59da8382 gcc/testsuite/gcc.target/i386/amxtile-asmatt-1.c 2629a435840ab211444b4a2af4563d8d gcc/testsuite/gcc.target/i386/amxtile-asmintel-1.c c5cfc6b01e748536e4ac5d65b3528952 gcc/testsuite/gcc.target/i386/andor-1.c *************** b47b757f8315eacb46b04546750c92a3 gcc/te *** 58946,58951 **** --- 59067,59073 ---- 99d95f5ed8219dbd6f25d0d43af3e99e gcc/testsuite/gcc.target/i386/avx-vzeroupper-25.c c9c1cc09c516bf54bf50fb514a8f862c gcc/testsuite/gcc.target/i386/avx-vzeroupper-26.c 373ca5703182fb7bac2076f26891bd55 gcc/testsuite/gcc.target/i386/avx-vzeroupper-27.c + c0bed0be10ece6c15e9aa800b77e5436 gcc/testsuite/gcc.target/i386/avx-vzeroupper-29.c 2676f686c636ba65ddf77da8485ee324 gcc/testsuite/gcc.target/i386/avx-vzeroupper-3.c 762b6911a6dc394fae9ee24213fb6114 gcc/testsuite/gcc.target/i386/avx-vzeroupper-4.c 27e3a091b9bfccddb7c44014ae46ed71 gcc/testsuite/gcc.target/i386/avx-vzeroupper-5.c *************** a5901d33285892facee8dbfe287ce0d1 gcc/te *** 58958,58968 **** 7dc98d98981fa7b82c0ae95d09c8128c gcc/testsuite/gcc.target/i386/avx2-cvt-1.c ea08c4d81609e53332974756983fe0c2 gcc/testsuite/gcc.target/i386/avx2-cvt-2.c aaabb27f441033ad22d615277a666b93 gcc/testsuite/gcc.target/i386/avx2-gather-1.c ! 9369fee730921275e0fcab78d0a99ce8 gcc/testsuite/gcc.target/i386/avx2-gather-2.c e6fb48367ac48aab006ff09ee7205b7f gcc/testsuite/gcc.target/i386/avx2-gather-3.c 74c386970583ffac555d2320df839c1b gcc/testsuite/gcc.target/i386/avx2-gather-4.c b10dfe874c7de4330090cb5b58ccddda gcc/testsuite/gcc.target/i386/avx2-gather-5.c ! bab8d3346cd39524a79bf0922698f8dc gcc/testsuite/gcc.target/i386/avx2-gather-6.c 5bab3385f59413b4ac1d08b312a04c67 gcc/testsuite/gcc.target/i386/avx2-i32gatherd-1.c 61279c227c143e8c3c052c2ba1d0e226 gcc/testsuite/gcc.target/i386/avx2-i32gatherd-2.c 025259b149283dd7aa44783815197ac4 gcc/testsuite/gcc.target/i386/avx2-i32gatherd-3.c --- 59080,59090 ---- 7dc98d98981fa7b82c0ae95d09c8128c gcc/testsuite/gcc.target/i386/avx2-cvt-1.c ea08c4d81609e53332974756983fe0c2 gcc/testsuite/gcc.target/i386/avx2-cvt-2.c aaabb27f441033ad22d615277a666b93 gcc/testsuite/gcc.target/i386/avx2-gather-1.c ! 128e6366f4fa121b8eca2a010b5f3182 gcc/testsuite/gcc.target/i386/avx2-gather-2.c e6fb48367ac48aab006ff09ee7205b7f gcc/testsuite/gcc.target/i386/avx2-gather-3.c 74c386970583ffac555d2320df839c1b gcc/testsuite/gcc.target/i386/avx2-gather-4.c b10dfe874c7de4330090cb5b58ccddda gcc/testsuite/gcc.target/i386/avx2-gather-5.c ! ccba4fe76fbee89c17997a3eca46d604 gcc/testsuite/gcc.target/i386/avx2-gather-6.c 5bab3385f59413b4ac1d08b312a04c67 gcc/testsuite/gcc.target/i386/avx2-i32gatherd-1.c 61279c227c143e8c3c052c2ba1d0e226 gcc/testsuite/gcc.target/i386/avx2-i32gatherd-2.c 025259b149283dd7aa44783815197ac4 gcc/testsuite/gcc.target/i386/avx2-i32gatherd-3.c *************** d35963959d5b010c3b26b967f48d3608 gcc/te *** 60131,60136 **** --- 60253,60259 ---- 17acbefd47a510ed96d83a23e3e4b8c3 gcc/testsuite/gcc.target/i386/avx512f-os-support.h 7371abf8df649ac78965cd397d5f5a42 gcc/testsuite/gcc.target/i386/avx512f-pr101471.c 9bceffe4e050aeec5dfd5c8013709ffe gcc/testsuite/gcc.target/i386/avx512f-pr101472.c + 9a6936f1815277f15801196159007f44 gcc/testsuite/gcc.target/i386/avx512f-pr114566.c 88877c518076ecdec1dba128743ad627 gcc/testsuite/gcc.target/i386/avx512f-pr57233.c 0272e0fc54cb34ee03db4b0027dbec3d gcc/testsuite/gcc.target/i386/avx512f-pr63594-1.c 381f53de01f1e9893e6903d9fac40b87 gcc/testsuite/gcc.target/i386/avx512f-pr63594-2.c *************** f5e2d9cb20058374157f0683dddeff73 gcc/te *** 60150,60160 **** 33ef0191b116f2207f8cae72da53f074 gcc/testsuite/gcc.target/i386/avx512f-pr85177.c 44b94a02b283cd9b531e1679a63bb550 gcc/testsuite/gcc.target/i386/avx512f-pr85255.c 91d1cf3389554e9095c24e2d0922e5ce gcc/testsuite/gcc.target/i386/avx512f-pr85832.c ! 8755bbd1991d543ed8238049d8c8dd38 gcc/testsuite/gcc.target/i386/avx512f-pr88464-1.c bfe1b42fed4f27d06a2686cddbd8c3c0 gcc/testsuite/gcc.target/i386/avx512f-pr88464-2.c 7438f166ed28ad4498da4b5077b71181 gcc/testsuite/gcc.target/i386/avx512f-pr88464-3.c da0186580868c5f1ebd96d179687ae26 gcc/testsuite/gcc.target/i386/avx512f-pr88464-4.c ! 6bc4181653baf587b37d974277810ee5 gcc/testsuite/gcc.target/i386/avx512f-pr88464-5.c 15e278dd63e5ac145f6c67f833a47cf2 gcc/testsuite/gcc.target/i386/avx512f-pr88464-6.c fbb4eb7430260d94966d2091a7204617 gcc/testsuite/gcc.target/i386/avx512f-pr88464-7.c a2908de260a59647ee69aa2e1e318a8b gcc/testsuite/gcc.target/i386/avx512f-pr88464-8.c --- 60273,60283 ---- 33ef0191b116f2207f8cae72da53f074 gcc/testsuite/gcc.target/i386/avx512f-pr85177.c 44b94a02b283cd9b531e1679a63bb550 gcc/testsuite/gcc.target/i386/avx512f-pr85255.c 91d1cf3389554e9095c24e2d0922e5ce gcc/testsuite/gcc.target/i386/avx512f-pr85832.c ! c1c9be5c000ba09322d1bcaed3d61241 gcc/testsuite/gcc.target/i386/avx512f-pr88464-1.c bfe1b42fed4f27d06a2686cddbd8c3c0 gcc/testsuite/gcc.target/i386/avx512f-pr88464-2.c 7438f166ed28ad4498da4b5077b71181 gcc/testsuite/gcc.target/i386/avx512f-pr88464-3.c da0186580868c5f1ebd96d179687ae26 gcc/testsuite/gcc.target/i386/avx512f-pr88464-4.c ! d3d0db87e65534dc95ebeafc29f6eb13 gcc/testsuite/gcc.target/i386/avx512f-pr88464-5.c 15e278dd63e5ac145f6c67f833a47cf2 gcc/testsuite/gcc.target/i386/avx512f-pr88464-6.c fbb4eb7430260d94966d2091a7204617 gcc/testsuite/gcc.target/i386/avx512f-pr88464-7.c a2908de260a59647ee69aa2e1e318a8b gcc/testsuite/gcc.target/i386/avx512f-pr88464-8.c *************** e3cc31b3308cdb56423451f2cd8c2a00 gcc/te *** 61051,61072 **** 0fe6ef0c597e472d3e4d732c54448a91 gcc/testsuite/gcc.target/i386/avx512vl-pr85832.c 22c31bf03678131c3d0a583fba1ee269 gcc/testsuite/gcc.target/i386/avx512vl-pr87214-1.c dd0303ef457dc2b0fdc13d8c6e3f9345 gcc/testsuite/gcc.target/i386/avx512vl-pr87214-2.c ! 2f9574eab62f05e192ea2ec667f3169a gcc/testsuite/gcc.target/i386/avx512vl-pr88464-1.c 39601a1f18d6f833823d29236463df8c gcc/testsuite/gcc.target/i386/avx512vl-pr88464-10.c ! eca8146b34153f093d3ae43d4ffec4ee gcc/testsuite/gcc.target/i386/avx512vl-pr88464-11.c 90010aa28415b8ef8b837a85aeaf6256 gcc/testsuite/gcc.target/i386/avx512vl-pr88464-12.c 47d67b7a934bfd1a79e1141deacdd525 gcc/testsuite/gcc.target/i386/avx512vl-pr88464-13.c 6811e4896e4da5ef69f652fb2a3e7715 gcc/testsuite/gcc.target/i386/avx512vl-pr88464-14.c b21314a51f62c382ba0199f1b8adf2bb gcc/testsuite/gcc.target/i386/avx512vl-pr88464-15.c 358b025054514a4ae1275fcceaa36667 gcc/testsuite/gcc.target/i386/avx512vl-pr88464-16.c fc0518ef4725b34153f0e37bdcb0a2d3 gcc/testsuite/gcc.target/i386/avx512vl-pr88464-2.c ! da252c14fc71905221513689897c1026 gcc/testsuite/gcc.target/i386/avx512vl-pr88464-3.c cc3ed6589d4b7dc894bcddb5723a20be gcc/testsuite/gcc.target/i386/avx512vl-pr88464-4.c 73410dddfff0383c686500f838991335 gcc/testsuite/gcc.target/i386/avx512vl-pr88464-5.c 03455808cfb1c0b507621b77fee871ba gcc/testsuite/gcc.target/i386/avx512vl-pr88464-6.c 48216c7fa5105b8c80d52a41661ff0c8 gcc/testsuite/gcc.target/i386/avx512vl-pr88464-7.c 433b8f377654ed9d9083111df5ded23a gcc/testsuite/gcc.target/i386/avx512vl-pr88464-8.c ! d83d1465cecd57a6282539266e56f304 gcc/testsuite/gcc.target/i386/avx512vl-pr88464-9.c a211ab10a3faac2cd055fdacc95d4e1d gcc/testsuite/gcc.target/i386/avx512vl-pr88513-1.c 06cabf563581814176556ba2a1b73501 gcc/testsuite/gcc.target/i386/avx512vl-pr88513-2.c 3695b4f8bd527469e884b72d9a1b8f41 gcc/testsuite/gcc.target/i386/avx512vl-pr88513-3.c --- 61174,61195 ---- 0fe6ef0c597e472d3e4d732c54448a91 gcc/testsuite/gcc.target/i386/avx512vl-pr85832.c 22c31bf03678131c3d0a583fba1ee269 gcc/testsuite/gcc.target/i386/avx512vl-pr87214-1.c dd0303ef457dc2b0fdc13d8c6e3f9345 gcc/testsuite/gcc.target/i386/avx512vl-pr87214-2.c ! 30e7e4c7f248a8349d72262db59905b6 gcc/testsuite/gcc.target/i386/avx512vl-pr88464-1.c 39601a1f18d6f833823d29236463df8c gcc/testsuite/gcc.target/i386/avx512vl-pr88464-10.c ! d295a2038bd58f73a24b4afff4544e6f gcc/testsuite/gcc.target/i386/avx512vl-pr88464-11.c 90010aa28415b8ef8b837a85aeaf6256 gcc/testsuite/gcc.target/i386/avx512vl-pr88464-12.c 47d67b7a934bfd1a79e1141deacdd525 gcc/testsuite/gcc.target/i386/avx512vl-pr88464-13.c 6811e4896e4da5ef69f652fb2a3e7715 gcc/testsuite/gcc.target/i386/avx512vl-pr88464-14.c b21314a51f62c382ba0199f1b8adf2bb gcc/testsuite/gcc.target/i386/avx512vl-pr88464-15.c 358b025054514a4ae1275fcceaa36667 gcc/testsuite/gcc.target/i386/avx512vl-pr88464-16.c fc0518ef4725b34153f0e37bdcb0a2d3 gcc/testsuite/gcc.target/i386/avx512vl-pr88464-2.c ! 98caed71eec15644727965520faa59fd gcc/testsuite/gcc.target/i386/avx512vl-pr88464-3.c cc3ed6589d4b7dc894bcddb5723a20be gcc/testsuite/gcc.target/i386/avx512vl-pr88464-4.c 73410dddfff0383c686500f838991335 gcc/testsuite/gcc.target/i386/avx512vl-pr88464-5.c 03455808cfb1c0b507621b77fee871ba gcc/testsuite/gcc.target/i386/avx512vl-pr88464-6.c 48216c7fa5105b8c80d52a41661ff0c8 gcc/testsuite/gcc.target/i386/avx512vl-pr88464-7.c 433b8f377654ed9d9083111df5ded23a gcc/testsuite/gcc.target/i386/avx512vl-pr88464-8.c ! b7a84ab3dd62d3cbb53acf2c4c116a82 gcc/testsuite/gcc.target/i386/avx512vl-pr88464-9.c a211ab10a3faac2cd055fdacc95d4e1d gcc/testsuite/gcc.target/i386/avx512vl-pr88513-1.c 06cabf563581814176556ba2a1b73501 gcc/testsuite/gcc.target/i386/avx512vl-pr88513-2.c 3695b4f8bd527469e884b72d9a1b8f41 gcc/testsuite/gcc.target/i386/avx512vl-pr88513-3.c *************** c1320fd604803bc04257c984f1e3ba77 gcc/te *** 62129,62135 **** 3dd864a351a6115db6a5b2ea1ee16ece gcc/testsuite/gcc.target/i386/funcspec-3.c 5af0527c599bf95f77628d48b1beb0ec gcc/testsuite/gcc.target/i386/funcspec-4.c 7568c1249431aafb7f8e2610a1e4a35e gcc/testsuite/gcc.target/i386/funcspec-5.c ! 664d8097f586c76b0f4c2f3767aa85dd gcc/testsuite/gcc.target/i386/funcspec-56.inc 6886186deb869f2b04be36492c05b8aa gcc/testsuite/gcc.target/i386/funcspec-6.c 35655de5c9348f2a36254312a8d17908 gcc/testsuite/gcc.target/i386/funcspec-7.c c5cbddeb1b01f35a7fa7f281fb2acdb4 gcc/testsuite/gcc.target/i386/funcspec-8.c --- 62252,62258 ---- 3dd864a351a6115db6a5b2ea1ee16ece gcc/testsuite/gcc.target/i386/funcspec-3.c 5af0527c599bf95f77628d48b1beb0ec gcc/testsuite/gcc.target/i386/funcspec-4.c 7568c1249431aafb7f8e2610a1e4a35e gcc/testsuite/gcc.target/i386/funcspec-5.c ! baf4cf8715508bf27ca4480a3211a96b gcc/testsuite/gcc.target/i386/funcspec-56.inc 6886186deb869f2b04be36492c05b8aa gcc/testsuite/gcc.target/i386/funcspec-6.c 35655de5c9348f2a36254312a8d17908 gcc/testsuite/gcc.target/i386/funcspec-7.c c5cbddeb1b01f35a7fa7f281fb2acdb4 gcc/testsuite/gcc.target/i386/funcspec-8.c *************** cda0d89452347311cc45a79be2d8f0fc gcc/te *** 62452,62463 **** 536862ceddae932e3d7da830f0866d31 gcc/testsuite/gcc.target/i386/memcpy-3.c 27b4fc4c0b0ecbd4614a4e9af86a6a18 gcc/testsuite/gcc.target/i386/memcpy-pr95886.c b5176a7f12717b0fd4c9162a139871e9 gcc/testsuite/gcc.target/i386/memcpy-strategy-1.c ! 003de97b3734d5ede529657973ce1244 gcc/testsuite/gcc.target/i386/memcpy-strategy-10.c 619cbc26dc85de4ded3f5a985d0a23a2 gcc/testsuite/gcc.target/i386/memcpy-strategy-11.c b001554c0c381f992911b1e7a465a6b8 gcc/testsuite/gcc.target/i386/memcpy-strategy-2.c 18088286a0546a409434dcbafef0a896 gcc/testsuite/gcc.target/i386/memcpy-strategy-3.c 6e857b4eb94b8707c380e73efcbc5a51 gcc/testsuite/gcc.target/i386/memcpy-strategy-4.c ! 43417cd5f782058c791740ffeb9e17bf gcc/testsuite/gcc.target/i386/memcpy-strategy-5.c 06d71d8673062b30f1a1db1bdfb0f639 gcc/testsuite/gcc.target/i386/memcpy-strategy-6.c ee6163f62ab711d692467ababe19d6e8 gcc/testsuite/gcc.target/i386/memcpy-strategy-7.c 340d39f8d8ef39d53004ab646169990b gcc/testsuite/gcc.target/i386/memcpy-strategy-8.c --- 62575,62586 ---- 536862ceddae932e3d7da830f0866d31 gcc/testsuite/gcc.target/i386/memcpy-3.c 27b4fc4c0b0ecbd4614a4e9af86a6a18 gcc/testsuite/gcc.target/i386/memcpy-pr95886.c b5176a7f12717b0fd4c9162a139871e9 gcc/testsuite/gcc.target/i386/memcpy-strategy-1.c ! b82d9188c52a269893b5ac6b25f9e515 gcc/testsuite/gcc.target/i386/memcpy-strategy-10.c 619cbc26dc85de4ded3f5a985d0a23a2 gcc/testsuite/gcc.target/i386/memcpy-strategy-11.c b001554c0c381f992911b1e7a465a6b8 gcc/testsuite/gcc.target/i386/memcpy-strategy-2.c 18088286a0546a409434dcbafef0a896 gcc/testsuite/gcc.target/i386/memcpy-strategy-3.c 6e857b4eb94b8707c380e73efcbc5a51 gcc/testsuite/gcc.target/i386/memcpy-strategy-4.c ! 1d25fe95e37e523bbb1237cd2cfdcc7a gcc/testsuite/gcc.target/i386/memcpy-strategy-5.c 06d71d8673062b30f1a1db1bdfb0f639 gcc/testsuite/gcc.target/i386/memcpy-strategy-6.c ee6163f62ab711d692467ababe19d6e8 gcc/testsuite/gcc.target/i386/memcpy-strategy-7.c 340d39f8d8ef39d53004ab646169990b gcc/testsuite/gcc.target/i386/memcpy-strategy-8.c *************** c84ec8a2cd4608e33d447c561108ce97 gcc/te *** 62469,62477 **** e34fc4954adf255e63dd959604f68e95 gcc/testsuite/gcc.target/i386/memset-strategy-2.c ab2b88f0bcce4626b92af0e20a2b1f62 gcc/testsuite/gcc.target/i386/memset-strategy-3.c 20e5e2cabbded0b26bce978e68dfb2f0 gcc/testsuite/gcc.target/i386/memset-strategy-4.c ! 208260a991f7d1fc158f74981156e4ae gcc/testsuite/gcc.target/i386/memset-strategy-5.c 260e12efd7f892d89efa62914317673f gcc/testsuite/gcc.target/i386/memset-strategy-6.c ! 71b4b158f262383324df8c888d6c9e70 gcc/testsuite/gcc.target/i386/memset-strategy-7.c 1af29c0ee5e0fa8803b6dd0354a23dee gcc/testsuite/gcc.target/i386/memset-strategy-8.c ff0a702aa0efe0f21e105da81c274eb6 gcc/testsuite/gcc.target/i386/memset-strategy-9.c abacd2e1491b7c40915d4be18c0229b4 gcc/testsuite/gcc.target/i386/memset-vector_loop-1.c --- 62592,62600 ---- e34fc4954adf255e63dd959604f68e95 gcc/testsuite/gcc.target/i386/memset-strategy-2.c ab2b88f0bcce4626b92af0e20a2b1f62 gcc/testsuite/gcc.target/i386/memset-strategy-3.c 20e5e2cabbded0b26bce978e68dfb2f0 gcc/testsuite/gcc.target/i386/memset-strategy-4.c ! fad1f723fea113cd6e9ed9c154a8ac50 gcc/testsuite/gcc.target/i386/memset-strategy-5.c 260e12efd7f892d89efa62914317673f gcc/testsuite/gcc.target/i386/memset-strategy-6.c ! 1dd9248dd03293c1a1b721052bea480b gcc/testsuite/gcc.target/i386/memset-strategy-7.c 1af29c0ee5e0fa8803b6dd0354a23dee gcc/testsuite/gcc.target/i386/memset-strategy-8.c ff0a702aa0efe0f21e105da81c274eb6 gcc/testsuite/gcc.target/i386/memset-strategy-9.c abacd2e1491b7c40915d4be18c0229b4 gcc/testsuite/gcc.target/i386/memset-vector_loop-1.c *************** a892cf5449c572594d9ac500ec2178bc gcc/te *** 62641,62647 **** 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 --- 62764,62770 ---- 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 ! 8515bef5344a20c9dafa2d780bab4b57 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 *************** cbe58ae1efc3b97c1019a430e1fedfcb gcc/te *** 62655,62660 **** --- 62778,62796 ---- e00380cd123a9ea3429ab36047aa6624 gcc/testsuite/gcc.target/i386/pr11001-strlen-1.c f2961b113a187971d8c265513b16a3a5 gcc/testsuite/gcc.target/i386/pr11001-strlen-2.c 27f57729aea057bdb268886140eaba10 gcc/testsuite/gcc.target/i386/pr11001-strlen-3.c + ae133b6a6857ca5bc2e95a272e01f447 gcc/testsuite/gcc.target/i386/pr110170-3.c + 1459550770245224c9edce111674e4e5 gcc/testsuite/gcc.target/i386/pr111340.c + 83c1fd77f5c5b1d08ae6f047d224f609 gcc/testsuite/gcc.target/i386/pr111736.c + d639374a10f845f4130a83222b9ee43c gcc/testsuite/gcc.target/i386/pr112495.c + 1601f8939826f2a25f2d128d43833970 gcc/testsuite/gcc.target/i386/pr112672.c + cee904627dd8919025dea0c6817c07d5 gcc/testsuite/gcc.target/i386/pr112891-2.c + 008137751ea4cc5c732bf09733a5c5d3 gcc/testsuite/gcc.target/i386/pr112891.c + 985d15f4237e366d808d224318b78cb2 gcc/testsuite/gcc.target/i386/pr113122-1.c + d150e8020454e98754c7dabfd41ad2ea gcc/testsuite/gcc.target/i386/pr113122-2.c + 122f757ff15551df2a5ee4ba2135d85f gcc/testsuite/gcc.target/i386/pr113122-3.c + 2f2dbd2c371a9961cb21196f2ee6f88d gcc/testsuite/gcc.target/i386/pr113122-4.c + 04b5ce89d67e35431c960a773e44688c gcc/testsuite/gcc.target/i386/pr113921.c + f561e51e21b70027e9a545f161c78a39 gcc/testsuite/gcc.target/i386/pr114184.c b03b1d817538a863277c823b5e4cdf75 gcc/testsuite/gcc.target/i386/pr12092-1.c f99f88a6e994ad6e55e065e41bc58f8f gcc/testsuite/gcc.target/i386/pr12329.c 8951a1fa31f2d45ef9eacfff6a733f77 gcc/testsuite/gcc.target/i386/pr13366.c *************** b4038cdeb4eee7cf1074de1cead1d1b5 gcc/te *** 64742,64747 **** --- 64878,64885 ---- d1e0ff73b10eb61ca8fa06128a453ef9 gcc/testsuite/gcc.target/i386/sse2-pmullw-1.c 308fe64b1fe9bf78b6b4ed03b89a6c2f gcc/testsuite/gcc.target/i386/sse2-pmuludq-1.c 5a4b1b55ad120b0697aa2b141f831dcc gcc/testsuite/gcc.target/i386/sse2-por-1.c + 42b0a030864c4e7c12b6c80d6c8ae276 gcc/testsuite/gcc.target/i386/sse2-pr112816-2.c + f25ef90e2173390dbb01786ae8576e29 gcc/testsuite/gcc.target/i386/sse2-pr112816.c bdbcd892d3f88fe1d7a07a2122cb928d gcc/testsuite/gcc.target/i386/sse2-pr57233.c ab93046758268c8e3106f1bed7d4e8a5 gcc/testsuite/gcc.target/i386/sse2-pr63594-1.c ae0d76797c5135e83ce818bce0003cfa gcc/testsuite/gcc.target/i386/sse2-pr63594-2.c *************** bceca9004faa6729357ac4757f81b563 gcc/te *** 66666,66674 **** 2b0169ca798a1ab2ef548ccc6466fa75 gcc/testsuite/gcc.target/powerpc/cfuged-0.c 3f04d51f3229d580c7e3475221fac283 gcc/testsuite/gcc.target/powerpc/cfuged-1.c 4c1e1ec241d7a8a123436d0d1e5ad8e9 gcc/testsuite/gcc.target/powerpc/check-builtin-vec_rlnm-runnable.c ! 88a65f2c70356d30873b9e3fbf14bd02 gcc/testsuite/gcc.target/powerpc/clone1.c b8e6c9f8968f2606ab8c45e4bae3d807 gcc/testsuite/gcc.target/powerpc/clone2.c ! 3f03cede40acb0331345348ac7486253 gcc/testsuite/gcc.target/powerpc/clone3.c df3bb7789b2e14f68bc9eb0b7af53cea gcc/testsuite/gcc.target/powerpc/cmpb-1.c ba0b1956af1db794975f1aee3d6e6273 gcc/testsuite/gcc.target/powerpc/cmpb-2.c 82227502f9d3718b87af61166d6cbcd4 gcc/testsuite/gcc.target/powerpc/cmpb-3.c --- 66804,66812 ---- 2b0169ca798a1ab2ef548ccc6466fa75 gcc/testsuite/gcc.target/powerpc/cfuged-0.c 3f04d51f3229d580c7e3475221fac283 gcc/testsuite/gcc.target/powerpc/cfuged-1.c 4c1e1ec241d7a8a123436d0d1e5ad8e9 gcc/testsuite/gcc.target/powerpc/check-builtin-vec_rlnm-runnable.c ! 689f90f1711f6d467fe0891512aa4482 gcc/testsuite/gcc.target/powerpc/clone1.c b8e6c9f8968f2606ab8c45e4bae3d807 gcc/testsuite/gcc.target/powerpc/clone2.c ! 53805374917dfb0695aa66ad55f2cc0a gcc/testsuite/gcc.target/powerpc/clone3.c df3bb7789b2e14f68bc9eb0b7af53cea gcc/testsuite/gcc.target/powerpc/cmpb-1.c ba0b1956af1db794975f1aee3d6e6273 gcc/testsuite/gcc.target/powerpc/cmpb-2.c 82227502f9d3718b87af61166d6cbcd4 gcc/testsuite/gcc.target/powerpc/cmpb-3.c *************** a3b487e53959665b5ecb0d7ba6138585 gcc/te *** 66706,66711 **** --- 66844,66852 ---- 9a0e4836781f28669ddca26eb214c2b2 gcc/testsuite/gcc.target/powerpc/darwin-abi-10.c 66e5cfd1b7491e37c0ef258d09b6634d gcc/testsuite/gcc.target/powerpc/darwin-abi-11.c 53928dd7b0f61581157c4a15b8648deb gcc/testsuite/gcc.target/powerpc/darwin-abi-12.c + 3c62c13d1d2b0222e5414464a8febd98 gcc/testsuite/gcc.target/powerpc/darwin-abi-13-0.c + cf00e3be4bf57389b7f606e91c156bd0 gcc/testsuite/gcc.target/powerpc/darwin-abi-13-1.c + 60f14ad7099165e20857ae4f288d20be gcc/testsuite/gcc.target/powerpc/darwin-abi-13-2.c f1de6a326b4846750e0ac1ab775db181 gcc/testsuite/gcc.target/powerpc/darwin-abi-2.c 3fccf2fe47e82ab342fd63f22d397b6d gcc/testsuite/gcc.target/powerpc/darwin-abi-3.c bea305679cc2b27499e1228c23aae9eb gcc/testsuite/gcc.target/powerpc/darwin-abi-4.c *************** ebf08f4056fe4c31c90dc291d1dfcaae gcc/te *** 66722,66727 **** --- 66863,66869 ---- 4dbff077cb3e8124197729c3a94647bb gcc/testsuite/gcc.target/powerpc/darwin-misaligned.c 7ba33272da50fd8bee6d1536c3e99d26 gcc/testsuite/gcc.target/powerpc/darwin-save-world-1.c a034d7a8bf265623a75800f01113e836 gcc/testsuite/gcc.target/powerpc/darwin-split-ld-stret.c + c45226a99273c8755ce33ff73f22d3b3 gcc/testsuite/gcc.target/powerpc/darwin-structs-0.h 548fc585bcbf766f23bef7319f0b0a18 gcc/testsuite/gcc.target/powerpc/darwin64-abi.c 5df8870892f8ad5f8ea3060c6c5b82b1 gcc/testsuite/gcc.target/powerpc/dfmode_off.c 39a60b8b75cc0dfba0799a7a9c2be1b7 gcc/testsuite/gcc.target/powerpc/dform-1.c *************** b681248afe4bdb1d889c6999e517fe7f gcc/te *** 67122,67128 **** 677059b338aae8245e5715c1bf783dd9 gcc/testsuite/gcc.target/powerpc/fp128_conversions.c 87367128477fa0028f5db348e8727505 gcc/testsuite/gcc.target/powerpc/fusion-p10-2logical.c 15196f9ab6aa2418751a7940e2c689cd gcc/testsuite/gcc.target/powerpc/fusion-p10-addadd.c ! f158c23481154ab06c25cbdd745dec8d gcc/testsuite/gcc.target/powerpc/fusion-p10-ldcmpi.c 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 --- 67264,67270 ---- 677059b338aae8245e5715c1bf783dd9 gcc/testsuite/gcc.target/powerpc/fp128_conversions.c 87367128477fa0028f5db348e8727505 gcc/testsuite/gcc.target/powerpc/fusion-p10-2logical.c 15196f9ab6aa2418751a7940e2c689cd gcc/testsuite/gcc.target/powerpc/fusion-p10-addadd.c ! 7ad30edab6bf65e71b087740ec0a7663 gcc/testsuite/gcc.target/powerpc/fusion-p10-ldcmpi.c 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 *************** a415b80ac7d3605461a355a307f12336 gcc/te *** 67211,67218 **** 758a89dcb12764d68855b09f85e3a355 gcc/testsuite/gcc.target/powerpc/mmx-punpcklbw-1.c bc09ccd31ca386dda15202c6adf9371a gcc/testsuite/gcc.target/powerpc/mmx-punpckldq-1.c 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 --- 67353,67360 ---- 758a89dcb12764d68855b09f85e3a355 gcc/testsuite/gcc.target/powerpc/mmx-punpcklbw-1.c bc09ccd31ca386dda15202c6adf9371a gcc/testsuite/gcc.target/powerpc/mmx-punpckldq-1.c 44ea7227a4af1aed1643b840469d076d gcc/testsuite/gcc.target/powerpc/mmx-punpcklwd-1.c ! 727ad93993ba39773cf01458fedef7c1 gcc/testsuite/gcc.target/powerpc/mod-1.c ! 2832a9d4f2590d3b9c3fdf8c23e24efc 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 *************** b96c1a1a69bfb6f4e16a5153a31d50f7 gcc/te *** 67231,67237 **** 582d7bb7e4106b5cb9134d552025a68e gcc/testsuite/gcc.target/powerpc/outofline_rnreg.c 6a702c02bd87ec8a44c18c117a4a5a09 gcc/testsuite/gcc.target/powerpc/p10-arch31.c 9c56caddea7ae0680f831cbc5cf18478 gcc/testsuite/gcc.target/powerpc/p10-identify.c ! 01797cdaaa29a1c3b7afa60542008236 gcc/testsuite/gcc.target/powerpc/p10-vdivq-vmodq.c 6b3fcb3de6af2c0b3ca86ded91487247 gcc/testsuite/gcc.target/powerpc/p8-vec-xl-xst-v2.c b75815fd7a895d145154b5cf0c68e549 gcc/testsuite/gcc.target/powerpc/p8-vec-xl-xst.c 8bea7369d1f259b76c9b70c7f551336b gcc/testsuite/gcc.target/powerpc/p8vector-builtin-1.c --- 67373,67379 ---- 582d7bb7e4106b5cb9134d552025a68e gcc/testsuite/gcc.target/powerpc/outofline_rnreg.c 6a702c02bd87ec8a44c18c117a4a5a09 gcc/testsuite/gcc.target/powerpc/p10-arch31.c 9c56caddea7ae0680f831cbc5cf18478 gcc/testsuite/gcc.target/powerpc/p10-identify.c ! 05222dfc42774b4f3acc94610419905e gcc/testsuite/gcc.target/powerpc/p10-vdivq-vmodq.c 6b3fcb3de6af2c0b3ca86ded91487247 gcc/testsuite/gcc.target/powerpc/p8-vec-xl-xst-v2.c b75815fd7a895d145154b5cf0c68e549 gcc/testsuite/gcc.target/powerpc/p8-vec-xl-xst.c 8bea7369d1f259b76c9b70c7f551336b gcc/testsuite/gcc.target/powerpc/p8vector-builtin-1.c *************** f50d5d85d2fd6cdb2c24ba2f99c5ed50 gcc/te *** 67470,67475 **** --- 67612,67623 ---- 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 + d746d0fb9156720298fa3c2071023bbf gcc/testsuite/gcc.target/powerpc/pr109932-1.c + d746d0fb9156720298fa3c2071023bbf gcc/testsuite/gcc.target/powerpc/pr109932-2.c + 30266f999ed968f6bfdc98dae3651704 gcc/testsuite/gcc.target/powerpc/pr110011.c + 0fc82ebefb1ad802aeb7fce96c922091 gcc/testsuite/gcc.target/powerpc/pr110411-1.c + 39880b05b13efbac2f1002f1730f701b gcc/testsuite/gcc.target/powerpc/pr110411-2.c + edbd673b54dc453f6adb46e7d7b5d688 gcc/testsuite/gcc.target/powerpc/pr114846.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 *************** cb0a8c588bb900030e2258e13d748a25 gcc/te *** 67721,67726 **** --- 67869,67875 ---- 96eb5b3fd3f2812a018f01fd63b67f9b gcc/testsuite/gcc.target/powerpc/pr88188-2.c 9489612e4380ce85494a409bef20f69a gcc/testsuite/gcc.target/powerpc/pr88188.c c75be0752698828e9a2843ce4464f296 gcc/testsuite/gcc.target/powerpc/pr88233.c + d2a99b9ff1da1e8d8120a3524731b2a5 gcc/testsuite/gcc.target/powerpc/pr88309.c 21d3c2767889f61719f3852cb79cdc5a gcc/testsuite/gcc.target/powerpc/pr88457.c edfc72e0b8e112e31e108fe03527f11f gcc/testsuite/gcc.target/powerpc/pr88845.c dd95a2250e2db6dba5532882d6c626fd gcc/testsuite/gcc.target/powerpc/pr88965.c *************** a07b15408dfcb7108da14ce215101920 gcc/te *** 67766,67771 **** --- 67915,67921 ---- f296eca9a733cf4bb4e198a3539e8cec gcc/testsuite/gcc.target/powerpc/pr96506-1.c 4057c480103b8c0cc29c131c3ab7cc50 gcc/testsuite/gcc.target/powerpc/pr96506-2.c 713c433c1e5c80361a865ab817cd27b1 gcc/testsuite/gcc.target/powerpc/pr96530.c + 3af685337838b80c79ee574f658c90cc gcc/testsuite/gcc.target/powerpc/pr96762.c 7586cf00c4e30dcc232464c012e42760 gcc/testsuite/gcc.target/powerpc/pr96787-1.c 6ea7fa7b0623f6ebd9652c5acea96884 gcc/testsuite/gcc.target/powerpc/pr96787-2.c 54d85fa08f775bccdcae07e834cb4364 gcc/testsuite/gcc.target/powerpc/pr96808.c *************** de511ffaecad04c9cbb12cacdec00373 gcc/te *** 67792,67797 **** --- 67942,67953 ---- 9fc46dc795793c68c68bcda62ba3bb06 gcc/testsuite/gcc.target/powerpc/pragma_power7.c 86de0bfe94420f8830e56254afa4feaf gcc/testsuite/gcc.target/powerpc/pragma_power8.c 25c6031256d212b5648eda0ff8d68094 gcc/testsuite/gcc.target/powerpc/pragma_power9.c + dd58427154af8c0e48b89c68e7b990b6 gcc/testsuite/gcc.target/powerpc/predefine-p7-novsx.c + c99f3d7c3678eb974f17a9b2be94967f gcc/testsuite/gcc.target/powerpc/predefine-p8-noaltivec-novsx.c + 17bbe3e953d2757e7a9bd15587a8e0df gcc/testsuite/gcc.target/powerpc/predefine-p8-noaltivec.c + fb4cb3b55f779a8de1bb7d7d81b8e375 gcc/testsuite/gcc.target/powerpc/predefine-p8-novsx.c + 1c332ef8081d846326294ca260db1f44 gcc/testsuite/gcc.target/powerpc/predefine-p8-pragma-vsx.c + fd92078433cbb9d31fe530ccf8b4d53d gcc/testsuite/gcc.target/powerpc/predefine-p9-novsx.c 3d5b95888852df8700894887dd8bfb69 gcc/testsuite/gcc.target/powerpc/prefix-add.c 22fb944e0690c3907fb29d60c970351a gcc/testsuite/gcc.target/powerpc/prefix-di-constant.c 8db875e0cffec64424eec6fa93ff403b gcc/testsuite/gcc.target/powerpc/prefix-ds-dq.c *************** efcb2d5344bde460bcbee76b9e33c09d gcc/te *** 68768,68773 **** --- 68924,68930 ---- f10dd9a709d22cee958fd785672d36fe gcc/testsuite/gcc.target/riscv/mcpu-6.c 5dd548bcc6e4a75ff60a9063af21468e gcc/testsuite/gcc.target/riscv/mcpu-7.c bbc038d526e035bc943cafd8be527309 gcc/testsuite/gcc.target/riscv/pr102957.c + ef588c023f4aba7b77e02fe6afe13376 gcc/testsuite/gcc.target/riscv/pr114130.c 14c90f84d8058b60faff46b00c097a9c gcc/testsuite/gcc.target/riscv/pr84660.c 1a434ff3440a676fb4f4c586bf3152e5 gcc/testsuite/gcc.target/riscv/pr93202.c 6a4efdae4822baf9f3df7454d4e40a5b gcc/testsuite/gcc.target/riscv/pr93304.c *************** aeec8ff75316a52def72f86d4bc1708c gcc/te *** 70530,70535 **** --- 70687,70693 ---- 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 + 9485d0785daa621b682e2b2f40ada8b1 gcc/testsuite/gdc.dg/imports/pr113125.d 7ae8eee97923fab094ae5ca5a1eca902 gcc/testsuite/gdc.dg/imports/pr92216.d b9989889ba43c533b1edad45c8a4bca1 gcc/testsuite/gdc.dg/intrinsics.d 2049e750a9b0b91100888e640127b311 gcc/testsuite/gdc.dg/lto/lto.exp *************** f4b93d30d706ee858eb3d1d73cac63f0 gcc/te *** 70551,70557 **** --- 70709,70718 ---- 27e575511646bb151afbd1a856acdadc gcc/testsuite/gdc.dg/pr106139d.d 9e838ba67909954cf1aa94614647413b gcc/testsuite/gdc.dg/pr107592.d 5e07b36b71c4e1c18324a1aa28b644c9 gcc/testsuite/gdc.dg/pr108050.d + 5971ddff852dbd035f6c3685d3460950 gcc/testsuite/gdc.dg/pr108842.d 531ba2cfc6bb317d132b6b86e9221526 gcc/testsuite/gdc.dg/pr108877.d + d636f6d2baa8700a534dfd6a53a96d3c gcc/testsuite/gdc.dg/pr110359.d + 9b63f428c6cdc3f7abd69df6a3077880 gcc/testsuite/gdc.dg/pr113125.d d32aa8ed5ea10931be4ddb5bb9e863d8 gcc/testsuite/gdc.dg/pr89017.d 53fa8db94d4ca3fc9ba83769733dc0e7 gcc/testsuite/gdc.dg/pr89041.d 6c316b13f71ea31fcada56b58a41ebd1 gcc/testsuite/gdc.dg/pr89042a.d *************** eb911ca49c3c33021dd97064b0459923 gcc/te *** 70583,70589 **** c5a77c2a508b4b45e9a6b936d77d9f80 gcc/testsuite/gdc.dg/pr96869.d dc97b4112b134cae3d15aab92424d97a gcc/testsuite/gdc.dg/pr96924.d 9c4c7df565451e246ae0d226391657f5 gcc/testsuite/gdc.dg/pr97002.d ! 474f1f2b9c5476fcfd2ee0ed2db833f0 gcc/testsuite/gdc.dg/pr98277.d a55903f9c72658c02ea18841f80bff0c gcc/testsuite/gdc.dg/pr98427.d cbe01bd2f79e7ab3310ed946deebeec0 gcc/testsuite/gdc.dg/pr98457.d 3b746393a80b865ba51671750bc32bb9 gcc/testsuite/gdc.dg/pr99914.d --- 70744,70750 ---- c5a77c2a508b4b45e9a6b936d77d9f80 gcc/testsuite/gdc.dg/pr96869.d dc97b4112b134cae3d15aab92424d97a gcc/testsuite/gdc.dg/pr96924.d 9c4c7df565451e246ae0d226391657f5 gcc/testsuite/gdc.dg/pr97002.d ! 189c80668831e099c7045d9f7a2cef73 gcc/testsuite/gdc.dg/pr98277.d a55903f9c72658c02ea18841f80bff0c gcc/testsuite/gdc.dg/pr98427.d cbe01bd2f79e7ab3310ed946deebeec0 gcc/testsuite/gdc.dg/pr98457.d 3b746393a80b865ba51671750bc32bb9 gcc/testsuite/gdc.dg/pr99914.d *************** d3cb0d42e94f3b4127de8609610ded70 gcc/te *** 70651,70656 **** --- 70812,70821 ---- cede80748e43884ad3613a2a7e4b6ff3 gcc/testsuite/gdc.dg/torture/pr101273.d a24df8e498053d7ab8325fc58ede1835 gcc/testsuite/gdc.dg/torture/pr101282.d 41c17e6e62da4333262dbaa7b4e20510 gcc/testsuite/gdc.dg/torture/pr109108.d + 827ebe506781bb2fabf9411464081efe gcc/testsuite/gdc.dg/torture/pr110516a.d + de9193ce38f7ef3ee1cc3a94fc8a92dc gcc/testsuite/gdc.dg/torture/pr110516b.d + ad67c2aef0ecf01677e58695b0cc5d36 gcc/testsuite/gdc.dg/torture/pr113758.d + c3a3fcac804266bf984aad50e1f84157 gcc/testsuite/gdc.dg/torture/pr114171.d 580aadb24b666799e25f1f02ef3b7bbb gcc/testsuite/gdc.dg/torture/pr92309.d 1b111ae77202133585fd76e6867c2615 gcc/testsuite/gdc.dg/torture/pr94424.d 658ecf9f1faf93eb8bdf8896b94d1b62 gcc/testsuite/gdc.dg/torture/pr94777b.d *************** f7ebbab88f0a4f86e71b06e130f593ee gcc/te *** 71239,71244 **** --- 71404,71410 ---- effd503ab143f07a377f69a6abd2e2ab gcc/testsuite/gdc.test/compilable/test21299d.d 6aae9ab24e30cc1449c46abe03e9439e gcc/testsuite/gdc.test/compilable/test21501a.d 0f65bb2b07e0bc8dcb7e5d89eaf5b3f7 gcc/testsuite/gdc.test/compilable/test21742.d + 08936419a9625265328cfea85871ada2 gcc/testsuite/gdc.test/compilable/test21794.d e5b88d27b36ae497e0682fa1afcc06be gcc/testsuite/gdc.test/compilable/test21812.d 7bf71d49bd9d761471be55f9c50f5c92 gcc/testsuite/gdc.test/compilable/test21898.d f8ec0845cd2590e50d27071453701fb7 gcc/testsuite/gdc.test/compilable/test22006.d *************** e7a1e79918397cacde44559287989c3e gcc/te *** 73337,73342 **** --- 73503,73509 ---- bff4f86cadc34cdb60ab04c217d46dbd gcc/testsuite/gfortran.dg/allocate_with_mold_1.f90 9f39ddc177a6f3ff474548de040842f7 gcc/testsuite/gfortran.dg/allocate_with_mold_2.f90 f4cacbb7fc7a73c4dc452abb4169a708 gcc/testsuite/gfortran.dg/allocate_with_mold_3.f90 + 7d6318515de269c6859cdb9dea3519ac gcc/testsuite/gfortran.dg/allocate_with_mold_4.f90 8525309ee0a25fc4ec16a87c02a27e9a gcc/testsuite/gfortran.dg/allocate_with_source_1.f90 31f46b6f8cf8a1610b258ea73d0033de gcc/testsuite/gfortran.dg/allocate_with_source_10.f08 3e69f8fb58e06a24fc9934b0040bc33c gcc/testsuite/gfortran.dg/allocate_with_source_11.f08 *************** bd4118fd768f3467307efc9602103e4c gcc/te *** 73355,73361 **** 38cc9fdec67f82f032977fc8ad612b4c gcc/testsuite/gfortran.dg/allocate_with_source_23.f03 b1a373e9e419d53e737be3282523545d gcc/testsuite/gfortran.dg/allocate_with_source_24.f90 f0618b11a21d03826df78d5c6b9cb863 gcc/testsuite/gfortran.dg/allocate_with_source_25.f90 ! b7a8d3b268cbeb9ec711824b11df77cf gcc/testsuite/gfortran.dg/allocate_with_source_26.f90 8cd7bcf0efad3a6d0e1f5b5492a6cdf7 gcc/testsuite/gfortran.dg/allocate_with_source_3.f90 6e6cc1fe5ed4f0f5c650bc8b6e0634b0 gcc/testsuite/gfortran.dg/allocate_with_source_4.f90 6df025374b593e0339c7b746700d109e gcc/testsuite/gfortran.dg/allocate_with_source_5.f90 --- 73522,73528 ---- 38cc9fdec67f82f032977fc8ad612b4c gcc/testsuite/gfortran.dg/allocate_with_source_23.f03 b1a373e9e419d53e737be3282523545d gcc/testsuite/gfortran.dg/allocate_with_source_24.f90 f0618b11a21d03826df78d5c6b9cb863 gcc/testsuite/gfortran.dg/allocate_with_source_25.f90 ! f27e65cbaa74101ffeaa1c5d321f9f84 gcc/testsuite/gfortran.dg/allocate_with_source_26.f90 8cd7bcf0efad3a6d0e1f5b5492a6cdf7 gcc/testsuite/gfortran.dg/allocate_with_source_3.f90 6e6cc1fe5ed4f0f5c650bc8b6e0634b0 gcc/testsuite/gfortran.dg/allocate_with_source_4.f90 6df025374b593e0339c7b746700d109e gcc/testsuite/gfortran.dg/allocate_with_source_5.f90 *************** b85f62a13d3cc36bdf0f22f1d532889f gcc/te *** 74821,74830 **** --- 74988,74999 ---- 433440f2bc7400a428ec319b70a4c7c4 gcc/testsuite/gfortran.dg/data_initialized.f90 f7e6506db3e2a2cf1acda6f7ed5bb367 gcc/testsuite/gfortran.dg/data_initialized_2.f90 7c629d12ce2ea9831030b62a2361a453 gcc/testsuite/gfortran.dg/data_initialized_3.f90 + f2645f1fb686b434b8e069203f77e6d5 gcc/testsuite/gfortran.dg/data_initialized_4.f90 f46c4682d75c7544431499a708875e0d gcc/testsuite/gfortran.dg/data_inquiry_ref.f90 933976674d89973b726184d45668d1af gcc/testsuite/gfortran.dg/data_invalid.f90 75c2602db09095225b6558bf5ee7a00d gcc/testsuite/gfortran.dg/data_namelist_conflict.f90 bca7e4fe42af4bdc8c5dce540cb962e5 gcc/testsuite/gfortran.dg/data_pointer_1.f90 + a2552f985f60c37bffc14327b45be315 gcc/testsuite/gfortran.dg/data_pointer_3.f90 20f92cb056c2de7e78393cf1bd92793a gcc/testsuite/gfortran.dg/data_stmt_pointer.f90 ea42e7a04380338a9946ffc999ea6767 gcc/testsuite/gfortran.dg/data_substring.f90 503918b2128c29daa249b849ffe01756 gcc/testsuite/gfortran.dg/data_value_1.f90 *************** c8ca7a67e0b9c502e7883c6187a3b1f3 gcc/te *** 75008,75013 **** --- 75177,75183 ---- 78fa09124fe9b69cd259177c36a08282 gcc/testsuite/gfortran.dg/deferred_character_34.f90 90f06c61f4e28e5c0cd42eea0caba538 gcc/testsuite/gfortran.dg/deferred_character_35.f90 f69f56fb4872918c466c7554afc79da9 gcc/testsuite/gfortran.dg/deferred_character_36.f90 + 0c1889dba05d51d0a09b189a6caa16c0 gcc/testsuite/gfortran.dg/deferred_character_37.f90 5eede6c791f6d272034f9b84850ac6af gcc/testsuite/gfortran.dg/deferred_character_4.f90 981b809300de368e8fac65be4b40099c gcc/testsuite/gfortran.dg/deferred_character_5.f90 b8df78111bec4d4d4b97da6a15228361 gcc/testsuite/gfortran.dg/deferred_character_6.f90 *************** ce817f495edb0ac306d6ae1052014e67 gcc/te *** 75577,75582 **** --- 75747,75753 ---- a1de3ecdc32a070009986504b0fcaf97 gcc/testsuite/gfortran.dg/finalize_8.f03 2127f420195e5f6cdb58fe18800b4c33 gcc/testsuite/gfortran.dg/finalize_9.f90 bf61238b3b7b6fc0fa0299fb54103da5 gcc/testsuite/gfortran.dg/findloc_1.f90 + a0e3df827bf32fe2c2f8909306f1c0d5 gcc/testsuite/gfortran.dg/findloc_10.f90 64ead876be3dc730e11de6b0cdf756a3 gcc/testsuite/gfortran.dg/findloc_2.f90 c2d255c860f923ee454d9af3f7906dcc gcc/testsuite/gfortran.dg/findloc_3.f90 bd9a353d401afba38b6ad5f47b5ae41f gcc/testsuite/gfortran.dg/findloc_4.f90 *************** bd9a353d401afba38b6ad5f47b5ae41f gcc/te *** 75584,75589 **** --- 75755,75761 ---- b80ec5f6b587bbcad7647fce5f51e6f2 gcc/testsuite/gfortran.dg/findloc_6.f90 419ae318160319ea2e9ffb1a589e850d gcc/testsuite/gfortran.dg/findloc_7.f90 1fa6e9b23d9f1915dc2131a48feec745 gcc/testsuite/gfortran.dg/findloc_8.f90 + 963d8fa72a02646044c6f01d4b868b75 gcc/testsuite/gfortran.dg/findloc_9.f90 dcdc431d3eebcd38c61326f1e9a107c4 gcc/testsuite/gfortran.dg/float_1.f90 6d61a0e1310090a27fbd2ef3d9f7ea19 gcc/testsuite/gfortran.dg/flush_1.f90 dfe8c326dde7ba4070312da0fb9fb955 gcc/testsuite/gfortran.dg/fmt_bz_bn.f *************** ab6d18741860d8f9094676890b96e068 gcc/te *** 76275,76280 **** --- 76447,76453 ---- f5feeab5c486d27ccc1c9005dc112eff gcc/testsuite/gfortran.dg/gomp/order-3.f90 f8e40f23828c760759b3893792acb659 gcc/testsuite/gfortran.dg/gomp/order-4.f90 dd42ad4341c4916a5494d5d3c6a52b40 gcc/testsuite/gfortran.dg/gomp/pr100965.f90 + 616305573acc701769497c1eee637edc gcc/testsuite/gfortran.dg/gomp/pr114825.f90 9a6817790a272cd8153d4303d324c00f gcc/testsuite/gfortran.dg/gomp/pr26224.f d2c74a71f2bea0005d853821e6f0142c gcc/testsuite/gfortran.dg/gomp/pr27573.f90 a65c4577a606ba1bdab50e690b269b04 gcc/testsuite/gfortran.dg/gomp/pr29759.f90 *************** b75cb93f87f099ad715aceb9cb7b1bf2 gcc/te *** 76710,76715 **** --- 76883,76889 ---- 156dc7e9c954310ba5c74c0fbcaa4f42 gcc/testsuite/gfortran.dg/implied_do_io_5.f90 1f7a9307002a1f0f2a5f8eb76998dcda gcc/testsuite/gfortran.dg/implied_do_io_6.f90 2b548a8a46da28ac4ce23e2509a886fc gcc/testsuite/gfortran.dg/implied_do_io_7.f90 + 1b11291348a686162c0e48c6b1b5cd66 gcc/testsuite/gfortran.dg/implied_do_io_8.f90 a8761a2aaffb7680e80dcad5eceada12 gcc/testsuite/gfortran.dg/implied_shape_1.f08 f9528d7042bf84bf037d6e2b109272ec gcc/testsuite/gfortran.dg/implied_shape_2.f90 1b2b68c816459c1a9395771e9851de87 gcc/testsuite/gfortran.dg/implied_shape_3.f08 *************** c35066e873add73fe333d803e2854739 gcc/te *** 77973,77988 **** --- 78147,78165 ---- 4b404e5693e05cfd48ecd00e22ac323d gcc/testsuite/gfortran.dg/pr103259.f90 b624133cafd19857eb2915c507731455 gcc/testsuite/gfortran.dg/pr103504.f90 0ca27f571c157feff083b371f4147538 gcc/testsuite/gfortran.dg/pr103505.f90 + bb48aa0d2e0434d5fff259663b128e23 gcc/testsuite/gfortran.dg/pr103506_1.f90 dc7a57f897711dfb7a3fba377198c10c gcc/testsuite/gfortran.dg/pr103588.f90 a27b232d198fc2463c04af17903b1b4c gcc/testsuite/gfortran.dg/pr103606.f90 ea7b00fcccc1df091b8087b16e502d92 gcc/testsuite/gfortran.dg/pr103607.f90 e83cb447f532a018a571c0eb3b9813ac gcc/testsuite/gfortran.dg/pr103609.f90 448c7638e7741c015d95260e6491d8fa gcc/testsuite/gfortran.dg/pr103692.f90 7880bd79a12dd5ee034f461bbaebed02 gcc/testsuite/gfortran.dg/pr103694.f90 + 8af96c30a623abf7d639ba532fd9c9ac gcc/testsuite/gfortran.dg/pr103715.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 + 35a7804825dacf412e34e3f973b467f1 gcc/testsuite/gfortran.dg/pr104908.f90 22283af469347d85bd1fe4dae42939a3 gcc/testsuite/gfortran.dg/pr105230.f90 04437d9e5ce70eee9f187cabd7a3ae39 gcc/testsuite/gfortran.dg/pr105633.f90 d4e9f09fafa1c1f5e009aedb22732715 gcc/testsuite/gfortran.dg/pr105954.f90 *************** e1ccca85dc432ca649742c05520157d9 gcc/te *** 77994,77999 **** --- 78171,78177 ---- a9c6ba4d14cec93cd2edec54fda6a916 gcc/testsuite/gfortran.dg/pr106985.f90 eb96b826eeaf84f157c8635706721d40 gcc/testsuite/gfortran.dg/pr106986.f90 11beaeea87162696e195837c5224fa2d gcc/testsuite/gfortran.dg/pr107054.f90 + 4bf79fd79798c56c4dfc83d4cd395f09 gcc/testsuite/gfortran.dg/pr107397.f90 ba47b0afdca4ac305945fe0fc5dcb1d2 gcc/testsuite/gfortran.dg/pr107872.f90 51c1978cd57328dca2798eaa646a34b7 gcc/testsuite/gfortran.dg/pr108131.f90 d10ee488f163142e4a7a74b3c6a8e12f gcc/testsuite/gfortran.dg/pr108193.f90 *************** ed294cde0b27b346f37fa7a32bf91ea7 gcc/te *** 78003,78008 **** --- 78181,78187 ---- 1836eed7a2cdfcdba4e590204735e288 gcc/testsuite/gfortran.dg/pr108502.f90 bb19038b0b7c42c6403475e34570ae3d gcc/testsuite/gfortran.dg/pr108527.f90 a367beafff806aa88b45192d28091201 gcc/testsuite/gfortran.dg/pr108529.f90 + 6176c5192c44068787a0e803e38dacbd gcc/testsuite/gfortran.dg/pr111880.f90 984f8307f36d56a0b48b5acce2dd5eb5 gcc/testsuite/gfortran.dg/pr12884.f 64075248b9d1bffd6f380bb4e2a6eae0 gcc/testsuite/gfortran.dg/pr15129.f90 e9cbd51db4e16292fc5dd1fead2e5a49 gcc/testsuite/gfortran.dg/pr15140.f90 *************** f5fd6e3fa110d4cb66c18b37bf885f26 gcc/te *** 78554,78561 **** 7ebf7d753067f8fb33a012241af298a7 gcc/testsuite/gfortran.dg/pr89664.f90 51110a6eedd6a04c8d24b1221f417a4c gcc/testsuite/gfortran.dg/pr89943_1.f90 c8b61ebc8563f334c25fcd70c0534f36 gcc/testsuite/gfortran.dg/pr89943_2.f90 ! 06b2d802f5d95257d8ae61d2b9c466d0 gcc/testsuite/gfortran.dg/pr89943_3.f90 ! 76252e955978550643d5d0dc6f7e78e4 gcc/testsuite/gfortran.dg/pr89943_4.f90 831d5fcec1de1ef5c5b043098058d7a8 gcc/testsuite/gfortran.dg/pr89956.f90 f93d3cf614a3e39cf100823554d1a638 gcc/testsuite/gfortran.dg/pr90002.f90 b4b80d372198c955d7e61bb3acdc89e1 gcc/testsuite/gfortran.dg/pr90021.f90 --- 78733,78740 ---- 7ebf7d753067f8fb33a012241af298a7 gcc/testsuite/gfortran.dg/pr89664.f90 51110a6eedd6a04c8d24b1221f417a4c gcc/testsuite/gfortran.dg/pr89943_1.f90 c8b61ebc8563f334c25fcd70c0534f36 gcc/testsuite/gfortran.dg/pr89943_2.f90 ! af61ebc1a556ae2b9d4b71efd216ca88 gcc/testsuite/gfortran.dg/pr89943_3.f90 ! 144e6e7adcaa47ba26138bcf270ed91e gcc/testsuite/gfortran.dg/pr89943_4.f90 831d5fcec1de1ef5c5b043098058d7a8 gcc/testsuite/gfortran.dg/pr89956.f90 f93d3cf614a3e39cf100823554d1a638 gcc/testsuite/gfortran.dg/pr90002.f90 b4b80d372198c955d7e61bb3acdc89e1 gcc/testsuite/gfortran.dg/pr90021.f90 *************** b7f688acbe6b27032e2d16f367317b58 gcc/te *** 79265,79270 **** --- 79444,79450 ---- de48eaee117c9656a2db00a7ffbe9cb9 gcc/testsuite/gfortran.dg/select_rank_3.f90 0eea4aff70c2008ccc3720a5ea3d8ef8 gcc/testsuite/gfortran.dg/select_rank_4.f90 47b685d5206776c0ac8e9595eecd3af1 gcc/testsuite/gfortran.dg/select_rank_5.f90 + 75a33bd7de6487f12dfd07ccafa44d4d gcc/testsuite/gfortran.dg/select_rank_6.f90 e91693e025c4186322babf06bd1ed7d5 gcc/testsuite/gfortran.dg/select_type_1.f03 cfc1f17ea1421c22ece9a1d3936945cc gcc/testsuite/gfortran.dg/select_type_10.f03 e7fc4e45d93d73096eb5455e0afc91c2 gcc/testsuite/gfortran.dg/select_type_11.f03 *************** b901a88b454d7825c0db0571e62c9944 gcc/te *** 79867,79872 **** --- 80047,80053 ---- aa0dfadd71d3f03426fb0f846d07e63b gcc/testsuite/gfortran.dg/use_29.f90 9ca8384adf4fc331598e3bcd1cbb8ffe gcc/testsuite/gfortran.dg/use_3.f90 e3915d16f4c6f728ab91bc8f9638bf61 gcc/testsuite/gfortran.dg/use_30.f90 + 38dd8041fc441aa36819446520a45884 gcc/testsuite/gfortran.dg/use_31.f90 0c64a8a6f9a898ee90f8cccc71a7f782 gcc/testsuite/gfortran.dg/use_4.f90 4e842fdc63e80db58b1de3e5a39f4573 gcc/testsuite/gfortran.dg/use_5.f90 3ccf2307581a4141eac7b094a0461b40 gcc/testsuite/gfortran.dg/use_6.f90 *************** ad2a054aea75840d3ecf97c2faa0f183 gcc/te *** 80549,80554 **** --- 80730,80736 ---- 1406779a63f2f66b35098f98ca1b272a gcc/testsuite/gnat.dg/abstract_state1.ads f8aa1b9b6d8605d6d8f8640d0af378d3 gcc/testsuite/gnat.dg/abstract_with_anonymous_result.adb 1ab0ba269ad1e4ee5cc0b2651374a2a5 gcc/testsuite/gnat.dg/access1.adb + 6d63d89266459501cbab795f893986a6 gcc/testsuite/gnat.dg/access10.adb 943026829386ee6566add3daafeab5a1 gcc/testsuite/gnat.dg/access2.adb 2fa4700bffd8945e6a0f90d0475d0d69 gcc/testsuite/gnat.dg/access3.adb 85a2981071298449aa62b8862bba17d1 gcc/testsuite/gnat.dg/access3.ads *************** f3429f34adffc8bdea29c62318bbaca5 gcc/te *** 82132,82137 **** --- 82314,82320 ---- bfd951f08498fce7551e86b55e6d2ac3 gcc/testsuite/gnat.dg/predicate13.ads 56f5e4c67732ce94802a427f1ba725b4 gcc/testsuite/gnat.dg/predicate14.adb 87259b1c34db44581ee72ed85285a720 gcc/testsuite/gnat.dg/predicate14.ads + a82cac3594ba22e63f0c9ecf8839521f gcc/testsuite/gnat.dg/predicate15.adb 98656679a5dd8965b27cb10a0871426e gcc/testsuite/gnat.dg/predicate2-containers.ads cd331caa5287b813c3fc2421aa5bf64b gcc/testsuite/gnat.dg/predicate2-project-name_values.ads a7858dfab3659f60abb1ca21bca1863e gcc/testsuite/gnat.dg/predicate2-project-registry-attribute.ads *************** e309c53b14c724939a1564046c6a5df2 gcc/te *** 85126,85132 **** 5542ebc8aa1b198ad40aeeee64259afb gcc/testsuite/jit.dg/test-version.c 96ac85af1dde837e4f4e2444d083cf22 gcc/testsuite/jit.dg/test-volatile.c 6477c66fcebff4d502d26e2d247251ce gcc/testsuite/jit.dg/verify-dynamic-library.c ! cc999fc27872b581322563f70f42788f gcc/testsuite/lib/asan-dg.exp 483d65b2fafe6f111f4efccfff01eddd gcc/testsuite/lib/atomic-dg.exp 23f70cb48e57944a6d19e48539f62725 gcc/testsuite/lib/brig-dg.exp 940997b6e696d711dbf04ef0fbac07f5 gcc/testsuite/lib/brig.exp --- 85309,85315 ---- 5542ebc8aa1b198ad40aeeee64259afb gcc/testsuite/jit.dg/test-version.c 96ac85af1dde837e4f4e2444d083cf22 gcc/testsuite/jit.dg/test-volatile.c 6477c66fcebff4d502d26e2d247251ce gcc/testsuite/jit.dg/verify-dynamic-library.c ! 62978969427f060668dc9c5e2b6e4d66 gcc/testsuite/lib/asan-dg.exp 483d65b2fafe6f111f4efccfff01eddd gcc/testsuite/lib/atomic-dg.exp 23f70cb48e57944a6d19e48539f62725 gcc/testsuite/lib/brig-dg.exp 940997b6e696d711dbf04ef0fbac07f5 gcc/testsuite/lib/brig.exp *************** cf4a44031f74dab102437a174e225c3d gcc/te *** 85141,85147 **** 2a64a21deb050948a88c246de33c0021 gcc/testsuite/lib/fortran-modules.exp 6fb22541f6658769416c6353f89113ed gcc/testsuite/lib/fortran-torture.exp b849fdeeb8ec7cee782e2cd57ca685e0 gcc/testsuite/lib/g++-dg.exp ! 10a3c89e5f3965627e1805ade8679843 gcc/testsuite/lib/g++.exp 7aca6382ec2d451baf6bf4c67f6966f6 gcc/testsuite/lib/gcc-defs.exp 8b7f96485bb0e97962f1c78a08e01439 gcc/testsuite/lib/gcc-dg.exp 85196ac94ccd30343d2dcc8348f7d280 gcc/testsuite/lib/gcc-gdb-test.exp --- 85324,85330 ---- 2a64a21deb050948a88c246de33c0021 gcc/testsuite/lib/fortran-modules.exp 6fb22541f6658769416c6353f89113ed gcc/testsuite/lib/fortran-torture.exp b849fdeeb8ec7cee782e2cd57ca685e0 gcc/testsuite/lib/g++-dg.exp ! 03f6d2f43a2de7fcc8935ad14969d444 gcc/testsuite/lib/g++.exp 7aca6382ec2d451baf6bf4c67f6966f6 gcc/testsuite/lib/gcc-defs.exp 8b7f96485bb0e97962f1c78a08e01439 gcc/testsuite/lib/gcc-dg.exp 85196ac94ccd30343d2dcc8348f7d280 gcc/testsuite/lib/gcc-gdb-test.exp *************** d2c996c0f1e4f52698d0d195e6ac13b8 gcc/te *** 85164,85170 **** f4e309b118df6bc1f55a0b5ed4e7807d gcc/testsuite/lib/mike-gcc.exp dfa03e4b5bdd1b947f7c23113f25ef34 gcc/testsuite/lib/multiline.exp 4ec25704b1ae42aa7da653cca66159df gcc/testsuite/lib/obj-c++-dg.exp ! 6753fc1fd1013b0fd2781cb9bd198c77 gcc/testsuite/lib/obj-c++.exp 4aee1266d1408aa049a055d7bafb63d8 gcc/testsuite/lib/objc-dg.exp 54d731506c3dc7e2798644b773b64fed gcc/testsuite/lib/objc-torture.exp 973c68427d189bf6bf20d69dfab94037 gcc/testsuite/lib/objc.exp --- 85347,85353 ---- f4e309b118df6bc1f55a0b5ed4e7807d gcc/testsuite/lib/mike-gcc.exp dfa03e4b5bdd1b947f7c23113f25ef34 gcc/testsuite/lib/multiline.exp 4ec25704b1ae42aa7da653cca66159df gcc/testsuite/lib/obj-c++-dg.exp ! 88f5ada78bfbb77a124649e5611096a2 gcc/testsuite/lib/obj-c++.exp 4aee1266d1408aa049a055d7bafb63d8 gcc/testsuite/lib/objc-dg.exp 54d731506c3dc7e2798644b773b64fed gcc/testsuite/lib/objc-torture.exp 973c68427d189bf6bf20d69dfab94037 gcc/testsuite/lib/objc.exp *************** bf57f760d7e706b8742823fbb639ae4c gcc/te *** 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 --- 85368,85374 ---- ee11afd0bed136fe5f9f4b0b9347fbc1 gcc/testsuite/lib/scanwpaipa.exp e85eac7191a9c0639c23f2d8cb32aa3d gcc/testsuite/lib/target-libpath.exp 29911997572e845d73d87588342bbc60 gcc/testsuite/lib/target-supports-dg.exp ! 36e6b527dd3710674cf96f04f65589c8 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 *************** df8e1651432977636bf9ca64823f6609 gcc/te *** 85265,85271 **** ff09985655f304be699aaf3b8ac7d0c6 gcc/testsuite/obj-c++.dg/empty-private-1.mm 64ae66c53d490094dd3c153f9c4a9c75 gcc/testsuite/obj-c++.dg/encode-1-next.mm 575f87323105c855ece3eec6c673cfb0 gcc/testsuite/obj-c++.dg/encode-1.mm ! 7d7e6fc99c392bf563fae8bf357cc835 gcc/testsuite/obj-c++.dg/encode-10.mm 4067b5ccc3ec6ec182e59982034a88a4 gcc/testsuite/obj-c++.dg/encode-2.mm c4e0785b4aee1c468f74005c33931f44 gcc/testsuite/obj-c++.dg/encode-3.mm 3e70d4ed3f63678d5b05f4488150f57b gcc/testsuite/obj-c++.dg/encode-4.mm --- 85448,85454 ---- ff09985655f304be699aaf3b8ac7d0c6 gcc/testsuite/obj-c++.dg/empty-private-1.mm 64ae66c53d490094dd3c153f9c4a9c75 gcc/testsuite/obj-c++.dg/encode-1-next.mm 575f87323105c855ece3eec6c673cfb0 gcc/testsuite/obj-c++.dg/encode-1.mm ! e4d16fff8957aa01b40df6db83660e61 gcc/testsuite/obj-c++.dg/encode-10.mm 4067b5ccc3ec6ec182e59982034a88a4 gcc/testsuite/obj-c++.dg/encode-2.mm c4e0785b4aee1c468f74005c33931f44 gcc/testsuite/obj-c++.dg/encode-3.mm 3e70d4ed3f63678d5b05f4488150f57b gcc/testsuite/obj-c++.dg/encode-4.mm *************** edc8405f3beeb6923d529479e62f98be gcc/te *** 85273,85279 **** d1824307e85027695c7f1f621635962f gcc/testsuite/obj-c++.dg/encode-6.mm e8f3db69a8847b70c8bc969edd78dbb2 gcc/testsuite/obj-c++.dg/encode-7.mm 7a1184e853bc44d526f960ab5978e148 gcc/testsuite/obj-c++.dg/encode-8.mm ! e01e96d007a042cff730ba43b17850f5 gcc/testsuite/obj-c++.dg/encode-9.mm e5b9f9a44ce01382be2feb246ccb5ad4 gcc/testsuite/obj-c++.dg/enhanced-proto-1.mm 407cf4a13a526188246e3f874ce7ac48 gcc/testsuite/obj-c++.dg/enhanced-proto-2.mm 3f2a93d293bef7fad64048537a3de594 gcc/testsuite/obj-c++.dg/except-1.mm --- 85456,85462 ---- d1824307e85027695c7f1f621635962f gcc/testsuite/obj-c++.dg/encode-6.mm e8f3db69a8847b70c8bc969edd78dbb2 gcc/testsuite/obj-c++.dg/encode-7.mm 7a1184e853bc44d526f960ab5978e148 gcc/testsuite/obj-c++.dg/encode-8.mm ! adb80618556ad5fbbf92001a241e0d74 gcc/testsuite/obj-c++.dg/encode-9.mm e5b9f9a44ce01382be2feb246ccb5ad4 gcc/testsuite/obj-c++.dg/enhanced-proto-1.mm 407cf4a13a526188246e3f874ce7ac48 gcc/testsuite/obj-c++.dg/enhanced-proto-2.mm 3f2a93d293bef7fad64048537a3de594 gcc/testsuite/obj-c++.dg/except-1.mm *************** bb8ccf448c201adbf05356ac551899fb gcc/te *** 85363,85368 **** --- 85546,85554 ---- 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 + a1ff757de40d44fb3868d406ed01c4eb gcc/testsuite/obj-c++.dg/pr101666-0.mm + 339a76362d0703671d6ddc07066f2d95 gcc/testsuite/obj-c++.dg/pr101666-1.mm + 7b3270d7548d00c42ba59f5769932087 gcc/testsuite/obj-c++.dg/pr101666.inc 83cce29e08aac8f1aa68b46e52208639 gcc/testsuite/obj-c++.dg/pr23709.mm 8480d22a4388c485c49d1c703c34f7f7 gcc/testsuite/obj-c++.dg/pr24393.mm 2e9567e68880e80a9fa203bba6e86d7f gcc/testsuite/obj-c++.dg/pr28049.mm *************** cf6bf1a9bb03b4708b9ee74ec1da6dce gcc/te *** 85465,85471 **** da310ab9c53fd3ea3c3475ec00f0c573 gcc/testsuite/obj-c++.dg/proto-lossage-1.mm d165610dbbfad82f6af91eab9b66d300 gcc/testsuite/obj-c++.dg/proto-lossage-2.mm e9acacfeddf9f5b3fcc7bd49ae2063e8 gcc/testsuite/obj-c++.dg/proto-lossage-3.mm ! 17d3166fd7cd81bb8f84245efb05861a gcc/testsuite/obj-c++.dg/proto-lossage-4.mm 8dad0377c3588f9c61fede50a9d3e88b gcc/testsuite/obj-c++.dg/proto-lossage-5.mm fd29bc4e26ebfbde2219d16bcd57ff44 gcc/testsuite/obj-c++.dg/proto-lossage-6.mm eae4cc9bd17a2b79453bdeeec666557b gcc/testsuite/obj-c++.dg/proto-lossage-7.mm --- 85651,85657 ---- da310ab9c53fd3ea3c3475ec00f0c573 gcc/testsuite/obj-c++.dg/proto-lossage-1.mm d165610dbbfad82f6af91eab9b66d300 gcc/testsuite/obj-c++.dg/proto-lossage-2.mm e9acacfeddf9f5b3fcc7bd49ae2063e8 gcc/testsuite/obj-c++.dg/proto-lossage-3.mm ! f7592b5512a5b40082cc68fc9c6de510 gcc/testsuite/obj-c++.dg/proto-lossage-4.mm 8dad0377c3588f9c61fede50a9d3e88b gcc/testsuite/obj-c++.dg/proto-lossage-5.mm fd29bc4e26ebfbde2219d16bcd57ff44 gcc/testsuite/obj-c++.dg/proto-lossage-6.mm eae4cc9bd17a2b79453bdeeec666557b gcc/testsuite/obj-c++.dg/proto-lossage-7.mm *************** e16387e01018d3d54a2f32822682dac1 gcc/te *** 85598,85604 **** 4f3dd54a0c640d2b15ee1f79a8f18369 gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSDate.h 54ffd1bfa79cf5dc99b3df101a7cd2e6 gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSEnumerator.h 68c1d47ef6919edabb48b6f50f1a237d gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSGeometry.h ! dc1b5416df768725686ab6df95dc7a40 gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSObjCRuntime.h 5696d61d4f4781658d55b84d5095e034 gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSObject.h 6b38d99bc66484db832fe9f58f7b8c5b gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSRange.h b029cb9e81a51e8cdb7b9fbfdd1644a8 gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSString.h --- 85784,85790 ---- 4f3dd54a0c640d2b15ee1f79a8f18369 gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSDate.h 54ffd1bfa79cf5dc99b3df101a7cd2e6 gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSEnumerator.h 68c1d47ef6919edabb48b6f50f1a237d gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSGeometry.h ! 45941cd12df99357b4e75b6362c3612a gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSObjCRuntime.h 5696d61d4f4781658d55b84d5095e034 gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSObject.h 6b38d99bc66484db832fe9f58f7b8c5b gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSRange.h b029cb9e81a51e8cdb7b9fbfdd1644a8 gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSString.h *************** d6bb76e151385d5dcc0bccac5e79fa6e gcc/te *** 85851,85856 **** --- 86037,86045 ---- d2e3b487cfa9171717c408c78a4a11db gcc/testsuite/objc.dg/pch/pch.exp 9d6541dc0a9955231b38937f98c5b78a gcc/testsuite/objc.dg/plugin/diagnostic-test-expressions-1.m 54d1c4ee2cf77bc8025bcea1b8d2942a gcc/testsuite/objc.dg/plugin/plugin.exp + a1ff757de40d44fb3868d406ed01c4eb gcc/testsuite/objc.dg/pr101666-0.m + 339a76362d0703671d6ddc07066f2d95 gcc/testsuite/objc.dg/pr101666-1.m + c963db6673c4b0358e639bc17180a2a0 gcc/testsuite/objc.dg/pr101666.inc 7826ffa2cfc60d9014ec8fd1d1fc1cda gcc/testsuite/objc.dg/pr103639.m 4bde0ee2020d54cbaccb19eddeb1ff93 gcc/testsuite/objc.dg/pr18255.m 31c55f97ea5b980eec7b074cf9577cb9 gcc/testsuite/objc.dg/pr23214.m *************** cf6bf1a9bb03b4708b9ee74ec1da6dce gcc/te *** 85959,85965 **** 4bf24db3955ce289fd5a62e5d7262340 gcc/testsuite/objc.dg/proto-lossage-1.m d165610dbbfad82f6af91eab9b66d300 gcc/testsuite/objc.dg/proto-lossage-2.m 7816032946ba6eac43f0d60480655dc6 gcc/testsuite/objc.dg/proto-lossage-3.m ! d323135be6f4b0bce1d76b585d1be3be gcc/testsuite/objc.dg/proto-lossage-4.m f4e77b70bfe7025381ee1438e69c5b18 gcc/testsuite/objc.dg/proto-lossage-5.m d26b84bd4fece35e5ae1ec9a7c6d4f15 gcc/testsuite/objc.dg/proto-lossage-6.m 43743498fb7683ea796ffd482ace42c9 gcc/testsuite/objc.dg/proto-lossage-7.m --- 86148,86154 ---- 4bf24db3955ce289fd5a62e5d7262340 gcc/testsuite/objc.dg/proto-lossage-1.m d165610dbbfad82f6af91eab9b66d300 gcc/testsuite/objc.dg/proto-lossage-2.m 7816032946ba6eac43f0d60480655dc6 gcc/testsuite/objc.dg/proto-lossage-3.m ! fc20d542160972e31139d01de2189382 gcc/testsuite/objc.dg/proto-lossage-4.m f4e77b70bfe7025381ee1438e69c5b18 gcc/testsuite/objc.dg/proto-lossage-5.m d26b84bd4fece35e5ae1ec9a7c6d4f15 gcc/testsuite/objc.dg/proto-lossage-6.m 43743498fb7683ea796ffd482ace42c9 gcc/testsuite/objc.dg/proto-lossage-7.m *************** c02b2a89fa8369ab143d4f11a460651b gcc/tr *** 86231,86237 **** 31e492711713c34c1104d3e984030331 gcc/tree-chrec.h ab7078d2e2707e0bd00415132d4cf941 gcc/tree-complex.c 7e46ae01dd9031c283edb403da422537 gcc/tree-core.h ! bd84bb3946c620e0c42d4cdeee2045d6 gcc/tree-data-ref.c 0340dbf773106b9b31fa22861e7f9718 gcc/tree-data-ref.h 5ea9dc582b1d846f2c523de1059f14cb gcc/tree-dfa.c 4711e398b753a63c9dfe58dd5c599663 gcc/tree-dfa.h --- 86420,86426 ---- 31e492711713c34c1104d3e984030331 gcc/tree-chrec.h ab7078d2e2707e0bd00415132d4cf941 gcc/tree-complex.c 7e46ae01dd9031c283edb403da422537 gcc/tree-core.h ! 96afe18000ba4889dc333dffd7fd77a6 gcc/tree-data-ref.c 0340dbf773106b9b31fa22861e7f9718 gcc/tree-data-ref.h 5ea9dc582b1d846f2c523de1059f14cb gcc/tree-dfa.c 4711e398b753a63c9dfe58dd5c599663 gcc/tree-dfa.h *************** df51783bb1013af8d36a6926324b9944 gcc/tr *** 86247,86260 **** 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 --- 86436,86449 ---- 4e0ed6ef3bdd74441de24187193d838f gcc/tree-hasher.h 31022778d18bf792a69a187ac79ca3b7 gcc/tree-if-conv.c a3ff52ffa889157518435812a966fe3d gcc/tree-if-conv.h ! 83b03ae721602d3e3b27f2be5e9cc065 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 ! 88aa9670b15d18c50fdbd59f5ea7e3a5 gcc/tree-nested.c 9b519af6b08c9d2fbe9dad37203b5196 gcc/tree-nested.h bf98a34c788757224ad19a297b7e6e98 gcc/tree-nrv.c 31323bc7fd67cf0285f538efc0a1ee45 gcc/tree-object-size.c *************** a51487616194a8071dfe4b9c3bd11c1d gcc/tr *** 86269,86278 **** 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 --- 86458,86467 ---- c39a05e74944c253a30c592f5e5c050f gcc/tree-predcom.c 0e721a7ed54aae97900bc285a55f9060 gcc/tree-pretty-print.c a47959dbcad350d44f1fb6b79a580f48 gcc/tree-pretty-print.h ! 20c1090dd86afa5fb0289e0cfe13e5f5 gcc/tree-profile.c ! 9cf007034ef41afc8c5dc541807b5d25 gcc/tree-scalar-evolution.c 3119791bf78200bcb022199390392521 gcc/tree-scalar-evolution.h ! 6ede09182cf2549ef14b4c7f1c387587 gcc/tree-sra.c 1ae9bb0b98165f1efe0c7c7a11bab6cc gcc/tree-sra.h ee9c205c9ab2fa90fe88b3ae0c79920e gcc/tree-ssa-address.c c54597ef98c1ca43588073766641d8d8 gcc/tree-ssa-address.h *************** e8d307398085c8e9e10df7def0cee108 gcc/tr *** 86291,86330 **** 1d91441633d5656eb9eb7aaffb6abfbf gcc/tree-ssa-dse.c b0a51b2bfb537b29341db8e5e9d06c49 gcc/tree-ssa-dse.h 398fce9341d9ea8c16943ab286e36a81 gcc/tree-ssa-forwprop.c ! f87b8cba0a5eaf206c581f51abff7795 gcc/tree-ssa-ifcombine.c 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 7cb6e74fa4d4dade053f9fe6a2306265 gcc/tree-ssa-loop-niter.c 17b1022d28a19652c83fa6cb85066528 gcc/tree-ssa-loop-niter.h ! 6324ee4ae64ffdb68be445d3f141e1ec gcc/tree-ssa-loop-prefetch.c 3734808fbeec8aefdcee447131e872d5 gcc/tree-ssa-loop-split.c ! 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 ! 6831853f2b71ee068abf78d13aafa968 gcc/tree-ssa-phiopt.c aca824b1c600ea02a32079f9880c7dea gcc/tree-ssa-phiprop.c 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 --- 86480,86519 ---- 1d91441633d5656eb9eb7aaffb6abfbf gcc/tree-ssa-dse.c b0a51b2bfb537b29341db8e5e9d06c49 gcc/tree-ssa-dse.h 398fce9341d9ea8c16943ab286e36a81 gcc/tree-ssa-forwprop.c ! f741e92c825c4a59c290bc918a0e3db7 gcc/tree-ssa-ifcombine.c 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 ! 7173430b17d50169a94bae19bdc84ede 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 7cb6e74fa4d4dade053f9fe6a2306265 gcc/tree-ssa-loop-niter.c 17b1022d28a19652c83fa6cb85066528 gcc/tree-ssa-loop-niter.h ! 165574ee9ad6fb1fa84dd49735a32011 gcc/tree-ssa-loop-prefetch.c 3734808fbeec8aefdcee447131e872d5 gcc/tree-ssa-loop-split.c ! 4e20b474998f4d7de2876158d0a91fda gcc/tree-ssa-loop-unswitch.c 7c5fb48d5c26a7cc6cc1328519686513 gcc/tree-ssa-loop.c e7b45902d3db8fd8ee5db0a06d9ebd6a gcc/tree-ssa-loop.h ! 415b9a1bf9f189f122f80b3e1b4d2f4e 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 ! e6ef0808f675da444fd9915cfe5494c2 gcc/tree-ssa-phiopt.c aca824b1c600ea02a32079f9880c7dea gcc/tree-ssa-phiprop.c 14975f2fbf60664af2dc43d15b308760 gcc/tree-ssa-pre.c 53216871795caf5a9e7fc4db4952b4cf gcc/tree-ssa-propagate.c 2f608b017c74261fb20e2c50494fd211 gcc/tree-ssa-propagate.h ! 1e26c98cc113574349983113a88424dc 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 ! 9c96703daedeaab1581172a89d9a06a3 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 *** 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 --- 86526,86532 ---- 7bc29409f7411f4024d12d0d0ac494ad gcc/tree-ssa-threadupdate.h f8386c0188448d8e4805f34fc0e485b3 gcc/tree-ssa-uncprop.c ea574c34b2c417a9766c17108b7e8dbf gcc/tree-ssa-uninit.c ! daf2caf85f679ebacf7fb16fbf9d77e3 gcc/tree-ssa.c b1739bf5d288192714af8e0c8b1c1e7d gcc/tree-ssa.h e61b4c021883038ea2d1201943d95548 gcc/tree-ssanames.c 5f0d001d3a6ba13a46a13e9ddf70fd64 gcc/tree-ssanames.h *************** e61b4c021883038ea2d1201943d95548 gcc/tr *** 86353,86362 **** 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 --- 86542,86551 ---- 9255abeccc3056f1b1dec591b5f7b8be gcc/tree-vect-data-refs.c fa3d1b7ce69a8d17ed7bc454487932da gcc/tree-vect-generic.c faa5329b1f390b639f568c946e5a7777 gcc/tree-vect-loop-manip.c ! bff3666362039964fbcab89b265a3338 gcc/tree-vect-loop.c ! 4b522b658f4569967075266652dd31ec gcc/tree-vect-patterns.c d20a5aa2757fc39d3413e3c933b5a72c gcc/tree-vect-slp-patterns.c ! 526136d0fbc3ca9689f5bb0b292df591 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/tr *** 86364,86382 **** 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 ! 1fde85c0d9774255237e001636efb6c8 gcc/tsan.c f3391bab0a8e76804139f10f89a6d8cf gcc/tsan.h 9cb449181fe6b6cec0f12c65964eed4a gcc/tsystem.h e955740dbe777821f2cccc2f1ffe5c2f gcc/typeclass.h 56044162f187e7865585c71c3fa369e8 gcc/typed-splay-tree.c 9db154ca9a8f61137a5d8cde9f565ba0 gcc/typed-splay-tree.h ! f21a431f73f6d2a4b3440f68e998fefb gcc/ubsan.c c71a123f0c3811bd59554fb1ad3c863e gcc/ubsan.h 20c6e75500616d21c9936946caddc196 gcc/unique-ptr-tests.cc 9f40370f290cb66e11bbd1a3249892a7 gcc/valtrack.c --- 86553,86571 ---- 792136b23c7db03363719c735c0ee4d4 gcc/tree-vectorizer.h b54ce4bde08399c6f5c90b9f9a513261 gcc/tree-vrp.c 8b2b735df1dd01f7b24caa58f59891c7 gcc/tree-vrp.h ! 613240b3fb696613e29a173098a9f2bf gcc/tree.c 54bdda1062541e94a710f93dc39c2732 gcc/tree.def a19c8f255b245f3003488a0502147b24 gcc/tree.h f5d9f8fed65a9d8d94c3bc3a54d17175 gcc/treestruct.def 29d87aedf6eb8f5f9b858b6ce49f18ba gcc/tristate.cc 0462624e1a963d1b936e36b375115848 gcc/tristate.h ! 9a77e890e95874bc7a16af1104e2e297 gcc/tsan.c f3391bab0a8e76804139f10f89a6d8cf gcc/tsan.h 9cb449181fe6b6cec0f12c65964eed4a gcc/tsystem.h e955740dbe777821f2cccc2f1ffe5c2f gcc/typeclass.h 56044162f187e7865585c71c3fa369e8 gcc/typed-splay-tree.c 9db154ca9a8f61137a5d8cde9f565ba0 gcc/typed-splay-tree.h ! 11247d6de5f7bba2ce4f23462a9c85f3 gcc/ubsan.c c71a123f0c3811bd59554fb1ad3c863e gcc/ubsan.h 20c6e75500616d21c9936946caddc196 gcc/unique-ptr-tests.cc 9f40370f290cb66e11bbd1a3249892a7 gcc/valtrack.c *************** a5ff571a86711f1889f6148b6f0a1a72 gcc/vt *** 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 --- 86599,86614 ---- b35c7bd9acfca64983cd187331ce7fc6 gcc/wide-int-bitmask.h 8d3319eefa4768131dfef66304346db8 gcc/wide-int-print.cc 010cd322521c1ee0542f4081fab7aaf6 gcc/wide-int-print.h ! a178576602735395bf2d0a72c6c5ba37 gcc/wide-int.cc 3f7c57c8afe9673aff295ccc58ea0024 gcc/wide-int.h 3fbc3ce873dd1439e18734542a1cd26e gcc/xcoff.h 5a99ef1e1f569bf6e04aebf72d4afad4 gcc/xcoffout.c b683ffab756b05a88907135f72dec974 gcc/xcoffout.h ! 8927a15f807286661cd85e948f8edaa1 gnattools/ChangeLog aaa671ca98fa9f94bfedd0ab395c5505 gnattools/Makefile.in 612bff48e9d0bfce4a8a8b2ce0e136ae gnattools/configure 5904825aa8ada9f931733a205c8ed847 gnattools/configure.ac ! c9120a7473b2b4c7b6dc471764f9ede6 gotools/ChangeLog 6f7b730e8dfbdff92349c010bb18cf00 gotools/Makefile.am 040d059ae30c619fdd918cd30bfbfae4 gotools/Makefile.in 7e23031e2e274aaa07b61c1e8f18dc99 gotools/README *************** c4e8176c1964a5ebe0a55900f2141299 gotool *** 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 --- 86619,86625 ---- eb2aeb3a6cffe7b26a8f1c8a2da23dcd gotools/gofmt.1 59530bdf33659b29e73d4adb9f9f6552 include/COPYING d32239bcb673463ab874e80d47fae504 include/COPYING3 ! 5b6a61cb8ab4fe8ae104bb6b698282db include/ChangeLog 4263432a72ff47ed8bf420208ee7eea5 include/ChangeLog-9103 a43d76108493b20da790f953f829c6a5 include/ChangeLog.jit 550446a6d9ed6d7ecce30d964b346154 include/ansidecl.h *************** e58c74ae29d8b45747b53a32b29ba5af includ *** 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 --- 86666,86672 ---- a19eadb3ab028fbbb684ab26b212fe84 include/xregex2.h 05cc8ec924c7145a48d1d059c0b58df2 include/xtensa-config.h 361482dd6b5b5eb7090fff3986fba68a install-sh ! a17e052ce43f1c9d53403f6b4bc9f172 intl/ChangeLog ad7ef2b19b44e4d5518287805d6ded02 intl/Makefile.in 6ec998bb4716c744bf8185e607f69301 intl/README 76ca170a525d5b84d90f0478fe788931 intl/VERSION *************** ec38b8a64a735196854a8f7d76b79a78 intl/p *** 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 --- 86709,86720 ---- b4758a0194e3e41362b939911472ce62 intl/relocatable.c bedade7bcfc3bc5eb09a2c6844f637f3 intl/relocatable.h 43f287d082528203fc85c1d2d81bf30d intl/textdomain.c ! 467db21923142a74beabbca5a8163962 libada/ChangeLog 84bf37346561835ab6fb79f3753dbf61 libada/Makefile.in c851e0f50ad5e334f1cdf3b8c0bae3e2 libada/configure ad0c7ec998fb800e00bc645459274350 libada/configure.ac 46d3fe6da7a771cc2d5420c4137a6861 libatomic/.gitignore ! 405c698cd565de0d27a2dda922a9246b libatomic/ChangeLog d910fab8524c7ab8918b567931a14133 libatomic/Makefile.am 8f480fdd121c7e44c048fec76c598b1f libatomic/Makefile.in 879263fa8d462b018b9a483d6ac68e45 libatomic/acinclude.m4 *************** c03a072efac9b30f8f8429ac52fd246b libato *** 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 --- 86807,86813 ---- 8a7308fda7ed1543cb9e3be0f8e47bce libatomic/testsuite/libatomic.c/atomic-store-5.c 40618200985a15bcba64f871863da498 libatomic/testsuite/libatomic.c/c.exp 97b0c9cdfcb733664bdf4efe0f5dc449 libatomic/testsuite/libatomic.c/generic-2.c ! 716ffc9a7364b08aa317d626f07c9cd1 libbacktrace/ChangeLog eb3a88b53140eb234a99a4b3a55e56bf libbacktrace/ChangeLog.jit e2733ae499e3face714f963e5163ef66 libbacktrace/Makefile.am f5ab4b9f2111a21142693282701ca531 libbacktrace/Makefile.in *************** a1a0a081f4a744549061bcb3714c3dad libbac *** 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 --- 86855,86861 ---- 45e5c08b384a557511236842576c4857 libbacktrace/xcoff.c 16559a9b859947ea3f119724e6184a22 libbacktrace/xztest.c b4592ed6fe2affe39672dd913198f71a libbacktrace/ztest.c ! 9503aa582f93dd208d1ffb13a8d04bbb libcc1/ChangeLog 28f4a58e6f8e07b09cd25b0a1ad72059 libcc1/Makefile.am a02f5370fb2d8bff9e13e39745a680ca libcc1/Makefile.in b39668f1b706dbfe7203b3cfa277b792 libcc1/aclocal.m4 *************** f72f20a90bbc3ff8d1128ff4d5858f29 libcc1 *** 86682,86691 **** 24b42286d357a040ee0f3f5c70a56510 libcc1/findcomp.hh 733552376e05d220031ad362a595f923 libcc1/libcc1.cc 99b3a25ce17ed584d9f0aa42b4713938 libcc1/libcc1.sym ! 7f630591971dc62afbf40d26ddd77f43 libcc1/libcc1plugin.cc 75503db6a0981a95d9c29d9607b29380 libcc1/libcc1plugin.sym af2fd951b0ff389a2208f571ff1fd18f libcc1/libcp1.cc ! eb1415b58ee61832c9463ccb94f9516b libcc1/libcp1plugin.cc 75503db6a0981a95d9c29d9607b29380 libcc1/libcp1plugin.sym 08c5e104e357fd1be6a89f338ed23f19 libcc1/marshall-c.hh 47e2a7ce854718fa1727ef8f89ef6ad8 libcc1/marshall-cp.hh --- 86871,86880 ---- 24b42286d357a040ee0f3f5c70a56510 libcc1/findcomp.hh 733552376e05d220031ad362a595f923 libcc1/libcc1.cc 99b3a25ce17ed584d9f0aa42b4713938 libcc1/libcc1.sym ! 114c642e82504b8b1d805de317988582 libcc1/libcc1plugin.cc 75503db6a0981a95d9c29d9607b29380 libcc1/libcc1plugin.sym af2fd951b0ff389a2208f571ff1fd18f libcc1/libcp1.cc ! 358dded4ed8c7c877936e3a670262bac libcc1/libcp1plugin.cc 75503db6a0981a95d9c29d9607b29380 libcc1/libcp1plugin.sym 08c5e104e357fd1be6a89f338ed23f19 libcc1/marshall-c.hh 47e2a7ce854718fa1727ef8f89ef6ad8 libcc1/marshall-cp.hh *************** d7011f3caeeeb336058853a2a6ae7759 libcc1 *** 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 --- 86887,86893 ---- 8e32b4f309146e8842db7a077d77be28 libcody/CMakeLists.txt c96a56ec7f0400e30e99a9aa445e0425 libcody/CODING.md b5243c8c76fc965a409394a30679e613 libcody/CONTRIB.md ! b36f535d737d89adf7514b53a7b062d6 libcody/ChangeLog 86d3f3a95c324c9479bd8986968f4327 libcody/LICENSE 3d4a4494284f7f6d717caade46832e87 libcody/Makefile.in ca1c6fe3df5427016005ce753c73d454 libcody/README.md *************** a1b928d660ba86d7133b5ee270e45bcc libcod *** 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 --- 86906,86912 ---- 6419dfc879387358e95288142e569914 libcody/packet.cc 688ece05c8b9d378b3df186808162e76 libcody/resolver.cc b1f3850fc5ac62999d1e124aa6f76531 libcody/server.cc ! 0aec30108b8da434397d829c2c2918c9 libcpp/ChangeLog 2bd831b17997584e38305782cebe6948 libcpp/ChangeLog.jit 93f0c1663de0a7f51de84bcf52cf415a libcpp/Makefile.in 9d15bb14e9ac1a74366e673ea260722e libcpp/aclocal.m4 *************** a66a22409e4a783d7044f888621c8bc2 libcpp *** 86731,86750 **** 317ee9a4d4fd5e7d914307f5ba7151ff libcpp/files.c d5218c1d5fc8cde726dc168fafef10a7 libcpp/generated_cpp_wcwidth.h 0b7cb9146c5ba48f860378f633064ffc libcpp/identifiers.c ! 8c5e45738179c971cfcff84b10b932f9 libcpp/include/cpplib.h 7f7df25c19a9fe3179b73a064ed5a6d4 libcpp/include/line-map.h bb66fcb7788c801156bffbd2e7ef157b libcpp/include/mkdeps.h 3be98d97c10d140ead8129799fb0204f libcpp/include/symtab.h 7cc3b270970c81684bb50c91310d8b34 libcpp/init.c 6502fcc1e9f6fc8357698e9717588e3c libcpp/internal.h ! 4ab22ed865a7d5de170fcae8485bdfe3 libcpp/lex.c 0de7096eac026f74c1bfe8a23f629369 libcpp/line-map.c 46a07100f95f5e354c7e25cd19d26884 libcpp/location-example.txt bc0fe66954c989fdf43e0bbe096954b5 libcpp/macro.c 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 --- 86920,86939 ---- 317ee9a4d4fd5e7d914307f5ba7151ff libcpp/files.c d5218c1d5fc8cde726dc168fafef10a7 libcpp/generated_cpp_wcwidth.h 0b7cb9146c5ba48f860378f633064ffc libcpp/identifiers.c ! bcfd21a9304e33a27bdf27353c2dc485 libcpp/include/cpplib.h 7f7df25c19a9fe3179b73a064ed5a6d4 libcpp/include/line-map.h bb66fcb7788c801156bffbd2e7ef157b libcpp/include/mkdeps.h 3be98d97c10d140ead8129799fb0204f libcpp/include/symtab.h 7cc3b270970c81684bb50c91310d8b34 libcpp/init.c 6502fcc1e9f6fc8357698e9717588e3c libcpp/internal.h ! d6829d0dbab4ed8ad86e04cbffda1b6f libcpp/lex.c 0de7096eac026f74c1bfe8a23f629369 libcpp/line-map.c 46a07100f95f5e354c7e25cd19d26884 libcpp/location-example.txt bc0fe66954c989fdf43e0bbe096954b5 libcpp/macro.c a8704715c342e0c595438ec99b83299f libcpp/makeucnid.c 016253cecf75a29fd5f5075b866cca1f libcpp/mkdeps.c 944a753ccf1b023047aaed1f1f362bec libcpp/pch.c ! a19dff755593809683873640b936e05c libcpp/po/ChangeLog 236a7764238de3aa208e3a857c56f478 libcpp/po/be.gmo ede9d45d28b1c1cb82c92ff039a45d66 libcpp/po/be.po a64f63d1193f804860308855177c5f6a libcpp/po/ca.gmo *************** bcbe0b107dacf31d1cf1ca1261d43f1b libcpp *** 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 --- 86983,86989 ---- 56610cf3fd7d260581ebd54124f17a78 libcpp/ucnid.h 89258efea2d9a909c625ed72b6acbd8c libcpp/ucnid.tab a6c2b3de06c7424706b16f4c206396a1 libdecnumber/.gitignore ! 209084c6b01b220afc689111485f91a7 libdecnumber/ChangeLog 2bd831b17997584e38305782cebe6948 libdecnumber/ChangeLog.jit 1eef4e8e73dcf150b06bd03f9621374a libdecnumber/Makefile.in 2a70099a79e40a57a666d5430a5e2529 libdecnumber/aclocal.m4 *************** a97c47969dfc92a7666dfe3c2e1e1448 libdec *** 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 --- 87046,87052 ---- 7557e8f40c659cd1bb5f753e31c6a143 libdecnumber/dpd/decimal64.c 8bd3494633aae56ffed31440b3d78709 libdecnumber/dpd/decimal64.h 0f6db29710e7075c2fd62bc4478b3b8d libdecnumber/dpd/decimal64Symbols.h ! ff4913e29ce5db5bf7f7c70eab884542 libffi/ChangeLog ba66fc19311348d373ec271be939a659 libffi/ChangeLog.libffi fbbc216bc25d759a72ea3e6d734af56b libffi/ChangeLog.libgcj d946d2b97454ad50a1dbfbf48923c5be libffi/ChangeLog.v1 *************** d47c79b281339983862a8e52d8c73f0f libffi *** 87218,87224 **** 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 --- 87407,87413 ---- 291be426192f460f6a07dfe1c96ab094 libffi/testsuite/libffi.special/special.exp 93fc3ea311b79f64004992807ce75d1e libffi/testsuite/libffi.special/unwindtest.cc 185d0795017fbbe253a13db8e34085f9 libffi/testsuite/libffi.special/unwindtest_ffi_call.cc ! 8563c0fc4ff4bfa9c472a110e3ae746d libgcc/ChangeLog 90ca8ec10aa72a56ea751ad2cb5c131a libgcc/Makefile.in 93556a381ebbadb36302bee1564ee40c libgcc/config.host 312fccd8251056a36e26bad71f9cfaa2 libgcc/config.in *************** af04682aec71b972a250792207ece68b libgcc *** 87308,87314 **** d9bcbec2d14baa5135f2a36aef6016bd libgcc/config/arm/bpabi.S 3620d984b369db7d3f3875a80e3b366e libgcc/config/arm/bpabi.c 74837f3eb9bfe8eb95f850587ee60f1c libgcc/config/arm/cmse.c ! 34776f3e177219a2c003d0d14c873da9 libgcc/config/arm/cmse_nonsecure_call.S f1301f028bc00b88c6525f9b250f22a1 libgcc/config/arm/crtfastmath.c 675c3bba5726e1249196dd110a9aa88c libgcc/config/arm/crti.S 3c823dbff1b7f9aecbe3c7d2cbe147db libgcc/config/arm/crtn.S --- 87497,87503 ---- d9bcbec2d14baa5135f2a36aef6016bd libgcc/config/arm/bpabi.S 3620d984b369db7d3f3875a80e3b366e libgcc/config/arm/bpabi.c 74837f3eb9bfe8eb95f850587ee60f1c libgcc/config/arm/cmse.c ! dbb1e02bf55694f0a63033906f5a61d3 libgcc/config/arm/cmse_nonsecure_call.S f1301f028bc00b88c6525f9b250f22a1 libgcc/config/arm/crtfastmath.c 675c3bba5726e1249196dd110a9aa88c libgcc/config/arm/crti.S 3c823dbff1b7f9aecbe3c7d2cbe147db libgcc/config/arm/crtn.S *************** f86b268e128ae9507dd4c4ab33f481bd libgcc *** 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 --- 87535,87541 ---- 528c00778fc721cd65682dee59c24986 libgcc/config/avr/lib1funcs.S 622f81485f02d0eac2caaafa7d3a2fd1 libgcc/config/avr/lib2-object.mk 8694b2f379782b84ed6357615cf633d2 libgcc/config/avr/lib2funcs.c ! df254d74761d63e2f1c4533861933f0d 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 *************** a5336bdb818cef70b030985f1ecd71d2 libgcc *** 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 --- 87826,87832 ---- 106eb3ec1043b9c1da426cc9d86d298d libgcc/config/ia64/vms-unwind.h 3111db86980b8c9207be8642a36d5dd2 libgcc/config/iq2000/lib2funcs.c 102f7dad8ad6b54434a1b8313d1e42c4 libgcc/config/iq2000/t-iq2000 ! 5513dc8820c838a73e852a38b6a47ff8 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 *************** e67a974e1f8cb55dcc72068be10e9832 libgcc *** 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 --- 88886,88892 ---- 8a8461c4f8e531d7252eacf261e3799b libgcc/vtv_end_preinit.c d1bdf1e757a5a9eeb3bc447fc6938f48 libgcc/vtv_start.c f99c5f0b1f8f77dbbb1db940bb61ef02 libgcc/vtv_start_preinit.c ! b1e27ac5fb05aeee07ea319b0d12da0b libgfortran/ChangeLog 9aca36338382e5b4b730e7779170b24d libgfortran/ChangeLog-2002 80d3edc880c2da0b7a2beec2e2c4f774 libgfortran/ChangeLog-2003 9f0239429993a5e64ed793eb6c55a5c1 libgfortran/ChangeLog-2004 *************** b1ed0738be716c69e111b563152b440a libgfo *** 89441,89447 **** 52b80552cf97929403cd03e6751df513 libgfortran/io/write_float.def 9f24547c087e2f4a32ca6eeedec8a34b libgfortran/kinds-override.h bc75d11d3876018d71022cf2311f5e61 libgfortran/libgfortran.h ! 2527bb19b82f08b34038b07b172d029d libgfortran/libgfortran.spec.in dc1a87f5ed3520558b0fe9f43e4f5ba8 libgfortran/libtool-version 41723ca6d9d9d64a55db3792b1be2deb libgfortran/m4/all.m4 62e6284d1841e31965580a9d35acb51b libgfortran/m4/any.m4 --- 89630,89636 ---- 52b80552cf97929403cd03e6751df513 libgfortran/io/write_float.def 9f24547c087e2f4a32ca6eeedec8a34b libgfortran/kinds-override.h bc75d11d3876018d71022cf2311f5e61 libgfortran/libgfortran.h ! eb1d8c9be7951e3c063a8bd590a6bf9d libgfortran/libgfortran.spec.in dc1a87f5ed3520558b0fe9f43e4f5ba8 libgfortran/libtool-version 41723ca6d9d9d64a55db3792b1be2deb libgfortran/m4/all.m4 62e6284d1841e31965580a9d35acb51b libgfortran/m4/any.m4 *************** e3e86019491a40bd4f45424d7ce11037 libgo/ *** 94088,94097 **** 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 2a5f26b1d96224a9bac97798c67316cd libgomp/acc_prof.h c49c27dee875cdeae7024cb9d7fadf27 libgomp/acinclude.m4 30a64ccfecfa60e8b5098e9fe26ea707 libgomp/aclocal.m4 --- 94277,94286 ---- c5574d106d35be5d94e80301b0855ada libgo/testsuite/libgo-test-support.exp.in bf162aa572f7b96b25dbd2b027845d32 libgo/testsuite/libgo.testmain/testmain.exp cc9d2a0e34e31ba866a8caf9f46f48f3 libgomp/.gitattributes ! c977381323ec0d041be2a7094b379ba2 libgomp/ChangeLog 0d55aa862aee66efdc5f8d62c94ff8fb libgomp/ChangeLog.graphite 775674136485d314e8cfa08ec26c4fc4 libgomp/Makefile.am ! cb9958002f9d5af3c049ca5dbe861fe9 libgomp/Makefile.in 2a5f26b1d96224a9bac97798c67316cd libgomp/acc_prof.h c49c27dee875cdeae7024cb9d7fadf27 libgomp/acinclude.m4 30a64ccfecfa60e8b5098e9fe26ea707 libgomp/aclocal.m4 *************** fc96df2ec557da944078791fe7c1f12f libgom *** 94204,94211 **** efc434763cbe71b67359f1858f6c9480 libgomp/config/rtems/sem.c 4d3a8b6f34059afa087aa981d61460dd libgomp/config/rtems/sem.h af41d1d04a4112345554ca8b8a072ed9 libgomp/config/t-aix ! a770c6d5cd51dc1a0736d60fd0f0fc57 libgomp/configure ! ab9ea228856e2fe51dd944933ffc6483 libgomp/configure.ac 5b8ec995a772307aacae5779580b5817 libgomp/configure.tgt 705ffb59b51affa5d25feededd4bdd63 libgomp/critical.c 97efd7efc8cc031e7446d5dc7088a851 libgomp/env.c --- 94393,94400 ---- efc434763cbe71b67359f1858f6c9480 libgomp/config/rtems/sem.c 4d3a8b6f34059afa087aa981d61460dd libgomp/config/rtems/sem.h af41d1d04a4112345554ca8b8a072ed9 libgomp/config/t-aix ! 6a0cc6baac9e56b32ceee9e7e7d9716c libgomp/configure ! 4cfdf80b4f8b2f3a2c2013ace6ea9f00 libgomp/configure.ac 5b8ec995a772307aacae5779580b5817 libgomp/configure.tgt 705ffb59b51affa5d25feededd4bdd63 libgomp/critical.c 97efd7efc8cc031e7446d5dc7088a851 libgomp/env.c *************** de1c2d0c718443d5a90b60ea327939da libgom *** 94219,94225 **** 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 --- 94408,94414 ---- a9602ab9ee9f89734074f35456117573 libgomp/libgomp-plugin.c 465ccd19218bce34f9416c8e5367ac12 libgomp/libgomp-plugin.h aaa17bf11b59931da2d709d5a2e528a2 libgomp/libgomp.h ! fd23b877fc7d3f828c4952428d9b4052 libgomp/libgomp.info 67964eb0101a54721e14945594dc2c5a libgomp/libgomp.map 8b2aa50aecad82171348a6918309afd6 libgomp/libgomp.spec.in 35bd4b0ff6c30e1469eefe3679e00b15 libgomp/libgomp.texi *************** d28876ac11c1d87fccada014c29d267a libgom *** 94265,94276 **** ff8d8695435d2fd418bcc6437db02562 libgomp/taskloop.c 1d1cca28977e6aef439521c8d10eed90 libgomp/team.c 8d61131215921c894f5e0449c79c0a18 libgomp/teams.c ! e07f04fffd2f6276df2fbeca36cc3d91 libgomp/testsuite/Makefile.am ! 648be0a5f804ab0023a14d22cca4a3de libgomp/testsuite/Makefile.in ! e7fa5ebeef61fd5a5de78de61a1f82b3 libgomp/testsuite/config/default.exp 6c859d1c520b245e51a29693632545d6 libgomp/testsuite/lib/libgomp-dg.exp ! 9784a5bd561ffb2eed2694aeaf996bcf libgomp/testsuite/lib/libgomp.exp ! 97fdc33cc25788d4b9dc1db6aefed760 libgomp/testsuite/libgomp-site-extra.exp.in ed323f968c0e2d197ee36bf3b1f678e3 libgomp/testsuite/libgomp-test-support.exp.in 75cc672a1bf25974c5f4c5e3bc1a74b1 libgomp/testsuite/libgomp.c++/affinity-1.C 196ffcd43fb2edf60795e6aabf50d259 libgomp/testsuite/libgomp.c++/allocate-1.C --- 94454,94466 ---- ff8d8695435d2fd418bcc6437db02562 libgomp/taskloop.c 1d1cca28977e6aef439521c8d10eed90 libgomp/team.c 8d61131215921c894f5e0449c79c0a18 libgomp/teams.c ! ae0dcb4c08025996b4bf4550cf72832e libgomp/testsuite/Makefile.am ! ba6af12ee86801d0846dd7004630c627 libgomp/testsuite/Makefile.in ! 669e8e16e749f900f84dfee98ebea627 libgomp/testsuite/config/default.exp ! 989674e1cf3f6739f5d9519d904650c7 libgomp/testsuite/flock 6c859d1c520b245e51a29693632545d6 libgomp/testsuite/lib/libgomp-dg.exp ! 785f7e4af1fb779712c7c9afbde3ed27 libgomp/testsuite/lib/libgomp.exp ! 3ac651fe0ff05f2928ca58df5928eba9 libgomp/testsuite/libgomp-site-extra.exp.in ed323f968c0e2d197ee36bf3b1f678e3 libgomp/testsuite/libgomp-test-support.exp.in 75cc672a1bf25974c5f4c5e3bc1a74b1 libgomp/testsuite/libgomp.c++/affinity-1.C 196ffcd43fb2edf60795e6aabf50d259 libgomp/testsuite/libgomp.c++/allocate-1.C *************** bddf1919febc77ab73283f66e954b61e libgom *** 94368,94373 **** --- 94558,94564 ---- 1af322f02a0df2cf1f3c2c01d328da07 libgomp/testsuite/libgomp.c++/nested-1.C 3f755c96f4b692988ea0d1ddeef1ca9b libgomp/testsuite/libgomp.c++/parallel-1.C 918bd233ad318b00f080ec4f186b4ee1 libgomp/testsuite/libgomp.c++/pr108180.C + 2b5f66e459a48cd1cbeb9dc42d3b751e libgomp/testsuite/libgomp.c++/pr114572.C c57d4e906a72b08e5f49bef40306b63f libgomp/testsuite/libgomp.c++/pr24455-1.C e922df8c56b5c5885b9aa8d370725ea9 libgomp/testsuite/libgomp.c++/pr24455.C ebbf9a13ba035141ba01b3281fd27fea libgomp/testsuite/libgomp.c++/pr26691.C *************** e8a3245c095430c8ef2413afe2ee4c48 libgom *** 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 --- 96232,96238 ---- 1d2e2e1ab9f0d92351625f2c5661dbb8 libgomp/testsuite/libgomp.oacc-fortran/update-dt-array.f90 989e6535f20045be32e9e91643a0b08f libgomp/testsuite/libgomp.oacc-fortran/vector-routine.f90 8ad28ef1808c27a75ad52229a13307c4 libgomp/work.c ! 33f61d930c4ae1ddf2d14ba206ec175f libhsail-rt/ChangeLog 9147b482b39962a71e580b4a8265285e libhsail-rt/Makefile.am f63e3c959c7490f1fbe708067e4884ae libhsail-rt/Makefile.in de97a355fadb5753d182cbcf06b1b33a libhsail-rt/README *************** f35af2a2efaa8dd337095878b57cabf5 libhsa *** 96068,96074 **** 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 --- 96259,96265 ---- ef9f05873915c22cae79ef5545355353 libhsail-rt/target-config.h.in 99c2e5e712b990ee07be10f53e41f3fb libiberty/.gitignore a916467b91076e631dd8edb7424769c7 libiberty/COPYING.LIB ! 37f4b09f7924112f114ba2f7d8774b9a libiberty/ChangeLog 347c31392973de6a4872d540c1718dc1 libiberty/ChangeLog.jit d2b139408a3f08c5813183e34dc39b38 libiberty/Makefile.in c68dbf7834af4281ebd84caa3fd54680 libiberty/README *************** b0bfa24a5463b326e70dd400a27201c8 libibe *** 96177,96183 **** 51026799cd2d665738861e8d6c917701 libiberty/simple-object-coff.c 31967686f407e6ca1bdd2a1fa1cce850 libiberty/simple-object-common.h f1c1668595f1ff3168ebae34df2c6049 libiberty/simple-object-elf.c ! 699ef340f26efedcc9fba9f8cf58cf14 libiberty/simple-object-mach-o.c 159199682f4dd7bbff930e9d8bd572fe libiberty/simple-object-xcoff.c 57fb43d2b927f5e971297262fcefd35b libiberty/simple-object.c 4863a11e04a2021af582edf86f156954 libiberty/simple-object.txh --- 96368,96374 ---- 51026799cd2d665738861e8d6c917701 libiberty/simple-object-coff.c 31967686f407e6ca1bdd2a1fa1cce850 libiberty/simple-object-common.h f1c1668595f1ff3168ebae34df2c6049 libiberty/simple-object-elf.c ! 4443f3f9121ea640e41c1cb2d6fef360 libiberty/simple-object-mach-o.c 159199682f4dd7bbff930e9d8bd572fe libiberty/simple-object-xcoff.c 57fb43d2b927f5e971297262fcefd35b libiberty/simple-object.c 4863a11e04a2021af582edf86f156954 libiberty/simple-object.txh *************** b2c289eb14e9197dcad172f3acba12b7 libibe *** 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 --- 96426,96432 ---- 6f774a92661ca4a067f1691a7925524b libiberty/xstrerror.c 8d3c8fb3f736a2aa560ea573c413e8a7 libiberty/xstrndup.c e99d7e473939c4eba9b0590e304ce757 libiberty/xvasprintf.c ! 4bd6c0bdbccbef646a8a9238e2955dd0 libitm/ChangeLog a9df0726c501bf71a46f426068e8fc9f libitm/Makefile.am 06bb67375770bbbe550b5708624ed9d8 libitm/Makefile.in af64519b66d5357841d3fcdec64563ed libitm/aatree.cc *************** c9222a512fcc4f010415011a88500092 libitm *** 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 --- 96484,96490 ---- 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 *************** b4e503ecfdccc9f13da8f73eeb6f23a9 libitm *** 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 --- 96530,96536 ---- ef24198422c19f99b0c41be6a16f7081 libitm/testsuite/libitm.c/txrelease.c fe2e602544303e0ca40c8acd58bf0397 libitm/useraction.cc c3a4f9a7b553245bf2dbb55c53767427 libitm/util.cc ! a43e94ad9e021a793722afc8e891078f libobjc/ChangeLog fee63cfea98fac80ab4c9369ce19765a libobjc/Makefile.in 0b2f74b5c1588ee9de0dd076fccc99a6 libobjc/NXConstStr.m df7a2af88216fb36f0319f328ada2fb8 libobjc/Object.m *************** e514cfffa12c9e3a276f91bda41431b4 libobj *** 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 --- 96587,96593 ---- b19a45655f215076ddf0ba0abecfbb45 libobjc/selector.c 1c03202bdb561211ad5e1d73cbb0172e libobjc/sendmsg.c efb54be80262d2dd7d3b30974990576e libobjc/thr.c ! d4e2089edff063e556fb315b070a3e60 liboffloadmic/ChangeLog 99e2b0817f42c602b520261f7dee183b liboffloadmic/Makefile.am a64a74f82774f355013471ad4dbe5014 liboffloadmic/Makefile.in ab5ae12a0dda7edadc0bd2be40ccff6a liboffloadmic/aclocal.m4 *************** b1def68202639bd452fb59aea3371fe4 liboff *** 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 --- 96675,96681 ---- 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 ! d23a49f935c43f12c7dcabca512ced5f libphobos/ChangeLog 33bab560c80ad2bb8f6a01c76e8fac58 libphobos/Makefile.am c82f2c9df9a32b41c885f634fd4618b4 libphobos/Makefile.in ee88c20a7744a2305503e1670f3b7889 libphobos/README.gcc *************** a8c8d5fe3bf3060df2aef535a1a3cb15 libpho *** 96515,96521 **** 9d6d58736eca8f18fbb0207d7ea26756 libphobos/libdruntime/core/attribute.d 4fcb39af3195321a158589d875faaa2c libphobos/libdruntime/core/bitop.d bc6c7fad057970ceedf1b4384a0d173d libphobos/libdruntime/core/checkedint.d ! e78005e94abbe57989cebd7c9a7c745f libphobos/libdruntime/core/cpuid.d 0bbfdf6946f532945962f2ea11fe9c65 libphobos/libdruntime/core/demangle.d a44eebee0344cacc3e7b8b0a99cff8c7 libphobos/libdruntime/core/exception.d e83e6a9f6fb52fb24f1796f23f1a18b6 libphobos/libdruntime/core/internal/abort.d --- 96706,96712 ---- 9d6d58736eca8f18fbb0207d7ea26756 libphobos/libdruntime/core/attribute.d 4fcb39af3195321a158589d875faaa2c libphobos/libdruntime/core/bitop.d bc6c7fad057970ceedf1b4384a0d173d libphobos/libdruntime/core/checkedint.d ! c118150dc09078f9987c46ffb8679df1 libphobos/libdruntime/core/cpuid.d 0bbfdf6946f532945962f2ea11fe9c65 libphobos/libdruntime/core/demangle.d a44eebee0344cacc3e7b8b0a99cff8c7 libphobos/libdruntime/core/exception.d e83e6a9f6fb52fb24f1796f23f1a18b6 libphobos/libdruntime/core/internal/abort.d *************** b5ef2bfc6ccc86766453074317e71166 libpho *** 97163,97169 **** a13be93a99fb4f3ac1cd895ac34c9305 libphobos/testsuite/Makefile.in b6823735d7a4e6efcdd761ebf75c53bc libphobos/testsuite/config/default.exp a5710012b14c38efe030c8768c419b84 libphobos/testsuite/lib/libphobos-dg.exp ! b0323a9ca2c057a6dfef1504422c88bc libphobos/testsuite/lib/libphobos.exp 84287a27c199fbae32ce036586eb3e99 libphobos/testsuite/libphobos.aa/aa.exp bc5e4ff02f931c6e4092411c492a23eb libphobos/testsuite/libphobos.aa/test_aa.d 52aa82eb55841708ea1accdcab5dfc19 libphobos/testsuite/libphobos.allocations/allocations.exp --- 97354,97360 ---- a13be93a99fb4f3ac1cd895ac34c9305 libphobos/testsuite/Makefile.in b6823735d7a4e6efcdd761ebf75c53bc libphobos/testsuite/config/default.exp a5710012b14c38efe030c8768c419b84 libphobos/testsuite/lib/libphobos-dg.exp ! 797ee6df126b1e1e7d5e400b4697972d libphobos/testsuite/lib/libphobos.exp 84287a27c199fbae32ce036586eb3e99 libphobos/testsuite/libphobos.aa/aa.exp bc5e4ff02f931c6e4092411c492a23eb libphobos/testsuite/libphobos.aa/test_aa.d 52aa82eb55841708ea1accdcab5dfc19 libphobos/testsuite/libphobos.allocations/allocations.exp *************** f0442e8b8974938ded0d17389f8b0608 libpho *** 97219,97225 **** 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 --- 97410,97416 ---- 245b43d36cad9840fce44fbf4358d424 libphobos/testsuite/libphobos.typeinfo/typeinfo.exp b3afbf17360c0b2823892dba0b9bb0fd libphobos/testsuite/testsuite_flags.in a916467b91076e631dd8edb7424769c7 libquadmath/COPYING.LIB ! fe6033d68ea50e627400281d15b0bb5e libquadmath/ChangeLog 4696eddf264dd090e144b4849b0a6d91 libquadmath/Makefile.am 644a78a01d94abe28b364eaa21142d82 libquadmath/Makefile.in d9afbc1f1e04c7e461265ff9323cc6f4 libquadmath/acinclude.m4 *************** d9afbc1f1e04c7e461265ff9323cc6f4 libqua *** 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 --- 97418,97424 ---- 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 *************** b67a007c23999dda365051cda023edbf libqua *** 97341,97348 **** dccfb932e7a4ec8c89731a6c7a7a9b82 libquadmath/printf/mul.c 1cfc3bffd2c94cb06e55b49841dc8f7f libquadmath/printf/mul_1.c f387f032d813cca837e7cf5477e2f6d5 libquadmath/printf/mul_n.c ! 155ece2d5e94e8539083ccfb4779c856 libquadmath/printf/printf_fp.c ! d372c1026983b3d0a5d2fca4a2ff5226 libquadmath/printf/printf_fphex.c e1960c6cccb78a5a2d60bdfe428c9d1b libquadmath/printf/quadmath-printf.c 793f681760a8266fc2adf2810355df6a libquadmath/printf/quadmath-printf.h 4d100ac07c5c1c4033ef4b9f60c96605 libquadmath/printf/rshift.c --- 97532,97539 ---- dccfb932e7a4ec8c89731a6c7a7a9b82 libquadmath/printf/mul.c 1cfc3bffd2c94cb06e55b49841dc8f7f libquadmath/printf/mul_1.c f387f032d813cca837e7cf5477e2f6d5 libquadmath/printf/mul_n.c ! 8f689c2eecdac18dd2ba0d5492bfcd5d libquadmath/printf/printf_fp.c ! 9bc3ff4862b4fe31d0be46abc64a8bc4 libquadmath/printf/printf_fphex.c e1960c6cccb78a5a2d60bdfe428c9d1b libquadmath/printf/quadmath-printf.c 793f681760a8266fc2adf2810355df6a libquadmath/printf/quadmath-printf.h 4d100ac07c5c1c4033ef4b9f60c96605 libquadmath/printf/rshift.c *************** e0bd9b8669e44ec6010f92da1d5188ad libqua *** 97359,97365 **** 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 --- 97550,97556 ---- af84fa5118f4adec8393614994e1c4d6 libquadmath/strtod/strtoflt128.c d15a18f7c46ba2add6148edc5b7563c0 libquadmath/strtod/tens_in_limb.c 12c73a846f7668d29de720bd79502bef libquadmath/update-quadmath.py ! 19b6f8a7da2af4b4634caa5b036fdd87 libsanitizer/ChangeLog 63916ba64a3cfa7ce2809fb46ab38597 libsanitizer/HOWTO_MERGE 0249c37748936faf5b1efd5789587909 libsanitizer/LICENSE.TXT 4b97cb7f10927471b74a1536f5472643 libsanitizer/LOCAL_PATCHES *************** bd58abd803667b3373381b6bb1b68f1b libsan *** 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 --- 98017,98023 ---- 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 ! 762790a217570c7d6142c4ebfd44f2b0 libssp/ChangeLog cf4ee646515263611d025bd12ba88148 libssp/Makefile.am b56958cdc5828ca811c35bbf479b3a09 libssp/Makefile.in f6f6c804e40e3a3ef407d3d13fafb6c0 libssp/aclocal.m4 *************** df66ccf23f6b963bb290249d790ccb82 libssp *** 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 --- 98046,98052 ---- 0a9dff73d2333b2997da42b4615533fd libssp/strncpy-chk.c 11c140b790d482decba4951f6508dd84 libssp/vsnprintf-chk.c 2ce510f683585f686681d926e3fafb82 libssp/vsprintf-chk.c ! 590ba82a2a623dc8ed20871f8edcb5d6 libstdc++-v3/ChangeLog 7aa6c40440a44fcf5ec94c066160c2f8 libstdc++-v3/ChangeLog-1998 7aff86600b6a1ed3fa87305075a92db0 libstdc++-v3/ChangeLog-1999 a6f28e8fc9bb07696a9e068b439a3a87 libstdc++-v3/ChangeLog-2000 *************** a8f4290dba5b481ad426148a03c75dd0 libstd *** 97882,97890 **** 008caca43b4e195eecb9c08bf29ba4d1 libstdc++-v3/Makefile.am 54e48e33eb9146948dff98aca20830c4 libstdc++-v3/Makefile.in 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 --- 98073,98081 ---- 008caca43b4e195eecb9c08bf29ba4d1 libstdc++-v3/Makefile.am 54e48e33eb9146948dff98aca20830c4 libstdc++-v3/Makefile.in f372af73db4ac0ad88e43199e1f29e08 libstdc++-v3/README ! 713381cc7f14f52793194be10a545449 libstdc++-v3/acinclude.m4 734c1cbc8791fbceb09b49c5d07d6966 libstdc++-v3/aclocal.m4 ! 56a7727493693c70306b9c3299a6639a 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 *************** a3d616175c468c707a25b8abe6451940 libstd *** 97901,97907 **** 1a34bda2bb4c3a576335343c0a4a9377 libstdc++-v3/config/abi/post/mips64-linux-gnu/baseline_symbols.txt 95e879d2bc31a3b6883a980d43f1f98b libstdc++-v3/config/abi/post/powerpc-linux-gnu/baseline_symbols.txt 95e879d2bc31a3b6883a980d43f1f98b libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt ! 1c11af4e80d072f12bfd8bea657897b5 libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt 104287e40f1276a2b123d0a86f37d9b4 libstdc++-v3/config/abi/post/riscv64-linux-gnu/baseline_symbols.txt 3ec228e0d9301df0938cba4a7fb94374 libstdc++-v3/config/abi/post/s390-linux-gnu/baseline_symbols.txt 3ec228e0d9301df0938cba4a7fb94374 libstdc++-v3/config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt --- 98092,98098 ---- 1a34bda2bb4c3a576335343c0a4a9377 libstdc++-v3/config/abi/post/mips64-linux-gnu/baseline_symbols.txt 95e879d2bc31a3b6883a980d43f1f98b libstdc++-v3/config/abi/post/powerpc-linux-gnu/baseline_symbols.txt 95e879d2bc31a3b6883a980d43f1f98b libstdc++-v3/config/abi/post/powerpc64-linux-gnu/32/baseline_symbols.txt ! fded261ed5ba4ce87ee0009eccdb3f26 libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt 104287e40f1276a2b123d0a86f37d9b4 libstdc++-v3/config/abi/post/riscv64-linux-gnu/baseline_symbols.txt 3ec228e0d9301df0938cba4a7fb94374 libstdc++-v3/config/abi/post/s390-linux-gnu/baseline_symbols.txt 3ec228e0d9301df0938cba4a7fb94374 libstdc++-v3/config/abi/post/s390x-linux-gnu/32/baseline_symbols.txt *************** a3baceaeccc8885f6c3a367c82ce462b libstd *** 98002,98008 **** f5a102b966ee58824caab09e7b92c5fa libstdc++-v3/config/os/bsd/darwin/ctype_base.h 73886695d0bba09b495be44138801960 libstdc++-v3/config/os/bsd/darwin/ctype_configure_char.cc 8a4e43750fc88aac4b1290e0de5b1da5 libstdc++-v3/config/os/bsd/darwin/ctype_inline.h ! 7fb69cc175e0cc363fe16c65c04c695c libstdc++-v3/config/os/bsd/darwin/os_defines.h 9e91dfcb11e4c78744df0e1e0cf69b5b libstdc++-v3/config/os/bsd/darwin/ppc-extra.ver 2db5914060fa8f5c79f8ecc010cb96e3 libstdc++-v3/config/os/bsd/dragonfly/ctype_base.h e64fc983738f5792c9fbba8c238a4969 libstdc++-v3/config/os/bsd/dragonfly/ctype_configure_char.cc --- 98193,98199 ---- f5a102b966ee58824caab09e7b92c5fa libstdc++-v3/config/os/bsd/darwin/ctype_base.h 73886695d0bba09b495be44138801960 libstdc++-v3/config/os/bsd/darwin/ctype_configure_char.cc 8a4e43750fc88aac4b1290e0de5b1da5 libstdc++-v3/config/os/bsd/darwin/ctype_inline.h ! 4e12c5197f8cdc62cf3b805d5f28df61 libstdc++-v3/config/os/bsd/darwin/os_defines.h 9e91dfcb11e4c78744df0e1e0cf69b5b libstdc++-v3/config/os/bsd/darwin/ppc-extra.ver 2db5914060fa8f5c79f8ecc010cb96e3 libstdc++-v3/config/os/bsd/dragonfly/ctype_base.h e64fc983738f5792c9fbba8c238a4969 libstdc++-v3/config/os/bsd/dragonfly/ctype_configure_char.cc *************** d00b9bfddb0e8397de2d35e76f678cf4 libstd *** 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 --- 98266,98273 ---- 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 ! fd817850dafb49b138045c528ac518f0 libstdc++-v3/configure ! 141a9dc4dbbba84280c0e2f5a61c2c31 libstdc++-v3/configure.ac 6f48d91af78c16e62f258e7bedec5125 libstdc++-v3/configure.host 1ad0555cf1f65702d35f5d19683b6a49 libstdc++-v3/crossconfig.m4 cc745dd7b8642a37dd519d4df34943fc libstdc++-v3/doc/Makefile.am *************** df705f3839120dcb896e9839cf3404d0 libstd *** 98174,98180 **** 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 7c6d43d50040fdcfce63d3ae3b6a56dc libstdc++-v3/doc/html/manual/appendix.html 9fecd7dab1bd0d46e97d36cded231ebe libstdc++-v3/doc/html/manual/appendix_contributing.html 23038a3eb57967596dd7dc4f944e55e6 libstdc++-v3/doc/html/manual/appendix_free.html --- 98365,98371 ---- 610c408505940d785574f4226d31a6ac libstdc++-v3/doc/html/index.html 24de5f936e90a1f57f037f166ff75004 libstdc++-v3/doc/html/manual/abi.html 4ce10e27356ac31a5b7962aecbeb3638 libstdc++-v3/doc/html/manual/algorithms.html ! 550d90517aa9e650d86b8f4e384b07c6 libstdc++-v3/doc/html/manual/api.html 7c6d43d50040fdcfce63d3ae3b6a56dc libstdc++-v3/doc/html/manual/appendix.html 9fecd7dab1bd0d46e97d36cded231ebe libstdc++-v3/doc/html/manual/appendix_contributing.html 23038a3eb57967596dd7dc4f944e55e6 libstdc++-v3/doc/html/manual/appendix_free.html *************** ffceba0f3c20f451f9753c101c0fa634 libstd *** 98257,98263 **** 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 --- 98448,98454 ---- 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 ! 75c210c0ab7678c97d51efb83b4620a3 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 *************** fcdceeabf3a95117ea22e93a0354e564 libstd *** 98267,98273 **** e19e711d0b369090f4782ac1fc0792bd libstdc++-v3/doc/html/manual/test.html c39b927efcec5ac84139c1490c8ef320 libstdc++-v3/doc/html/manual/traits.html 530b96535baacfe35df2e65f9dfe7efc libstdc++-v3/doc/html/manual/unordered_associative.html ! fc95274c2a36efc3d0f39217d38a914b libstdc++-v3/doc/html/manual/using.html a98d94ba8ccfb620e98ebfe01192e61e libstdc++-v3/doc/html/manual/using_concurrency.html 79fb9de4a4c89a913a76e1828500499d libstdc++-v3/doc/html/manual/using_dual_abi.html 4868e3591133577974ca85a537dbd8a0 libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html --- 98458,98464 ---- e19e711d0b369090f4782ac1fc0792bd libstdc++-v3/doc/html/manual/test.html c39b927efcec5ac84139c1490c8ef320 libstdc++-v3/doc/html/manual/traits.html 530b96535baacfe35df2e65f9dfe7efc libstdc++-v3/doc/html/manual/unordered_associative.html ! a3e4073854025e688cc875bc9321e474 libstdc++-v3/doc/html/manual/using.html a98d94ba8ccfb620e98ebfe01192e61e libstdc++-v3/doc/html/manual/using_concurrency.html 79fb9de4a4c89a913a76e1828500499d libstdc++-v3/doc/html/manual/using_dual_abi.html 4868e3591133577974ca85a537dbd8a0 libstdc++-v3/doc/html/manual/using_dynamic_or_shared.html *************** a1ff7d876c3d43ddeea13056c5d8079b libstd *** 98482,98488 **** e3215d958bafd6fd02249dc5bab42f58 libstdc++-v3/doc/xml/manual/debug_mode.xml 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 --- 98673,98679 ---- e3215d958bafd6fd02249dc5bab42f58 libstdc++-v3/doc/xml/manual/debug_mode.xml f320f25003678cca910f09ba54c923fc libstdc++-v3/doc/xml/manual/diagnostics.xml 561ce4bba87e35c92c47d95599ca9d9b libstdc++-v3/doc/xml/manual/documentation_hacking.xml ! 4a2482018ac149b970b217f0fcdc7119 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 *************** d7f222c42325cd44eadad2c59eef7e6f libstd *** 98504,98510 **** 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 --- 98695,98701 ---- 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 ! e6c87d5cadf556b24fc176fe05b89cea 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 *************** a3c830bf7580b2f5b61bb7806aa3f498 libstd *** 98512,98518 **** 2b80feb1b53a8d0895a292620ec430b2 libstdc++-v3/doc/xml/manual/support.xml 5a89da07906610f85971c9faa717428e libstdc++-v3/doc/xml/manual/test.xml e2e099be3dd6a4b7a940a7232635ee2c libstdc++-v3/doc/xml/manual/test_policy_data_structures.xml ! 93a43df46b9241c15a1d1a3116d9c792 libstdc++-v3/doc/xml/manual/using.xml 30ec356feba73e85c6cef4c27dbb372e libstdc++-v3/doc/xml/manual/using_exceptions.xml 74a5acaa32b3d223bd413c1bb5b69ac6 libstdc++-v3/doc/xml/manual/utilities.xml 05d0e18187995e8ce64185beb05cd6ed libstdc++-v3/doc/xml/spine.xml --- 98703,98709 ---- 2b80feb1b53a8d0895a292620ec430b2 libstdc++-v3/doc/xml/manual/support.xml 5a89da07906610f85971c9faa717428e libstdc++-v3/doc/xml/manual/test.xml e2e099be3dd6a4b7a940a7232635ee2c libstdc++-v3/doc/xml/manual/test_policy_data_structures.xml ! a05ba22f80986c753f307b3ed4230652 libstdc++-v3/doc/xml/manual/using.xml 30ec356feba73e85c6cef4c27dbb372e libstdc++-v3/doc/xml/manual/using_exceptions.xml 74a5acaa32b3d223bd413c1bb5b69ac6 libstdc++-v3/doc/xml/manual/utilities.xml 05d0e18187995e8ce64185beb05cd6ed libstdc++-v3/doc/xml/spine.xml *************** fe864b2a299875de978dcc610a835eb6 libstd *** 98554,98570 **** 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 --- 98745,98761 ---- 00ebb6049dacf8ab023b15caf7b3a690 libstdc++-v3/include/bits/erase_if.h a7d5bb28720ccf51fe638410018fc593 libstdc++-v3/include/bits/forward_list.h 2f0cf51176b50d64270bb5e7ba78708b libstdc++-v3/include/bits/forward_list.tcc ! 4f27d6520fe119a0213cc7e7ed7ff8e6 libstdc++-v3/include/bits/fs_dir.h ! b9ac1c3e6ca6263dfbdc65caf34d78fe libstdc++-v3/include/bits/fs_fwd.h 0b0e4fe70f7a52ec967bc4d0e526470f libstdc++-v3/include/bits/fs_ops.h ! 9fcc148224bb673676a77744f595ff61 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 ! a07574d4f4f9d1f69af74853aee02e70 libstdc++-v3/include/bits/hashtable.h ! 09f316a5ef01ed58fedbab702381893e 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 *************** ce159ba2bb3c8fced8b24b10ca50c912 libstd *** 98583,98589 **** 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 3877d17291319659d2c7ab82f127deeb libstdc++-v3/include/bits/ostream.tcc c6baef5b0dbad526c4a7d462e52887b8 libstdc++-v3/include/bits/ostream_insert.h 518cd0ae140bee151205f0ccbbe7a9d2 libstdc++-v3/include/bits/parse_numbers.h --- 98774,98780 ---- e3279d92169ee9dafabefe79d86b0114 libstdc++-v3/include/bits/max_size_type.h 3f6b104467902cda411d015a32d97cf1 libstdc++-v3/include/bits/memoryfwd.h 156ce13c58f77c44098165fa0e6b5efc libstdc++-v3/include/bits/move.h ! c056a49b2d006f609efe54ec9a95b9b3 libstdc++-v3/include/bits/node_handle.h 3877d17291319659d2c7ab82f127deeb libstdc++-v3/include/bits/ostream.tcc c6baef5b0dbad526c4a7d462e52887b8 libstdc++-v3/include/bits/ostream_insert.h 518cd0ae140bee151205f0ccbbe7a9d2 libstdc++-v3/include/bits/parse_numbers.h *************** e519ad1037772e85daa706ffa7ea28da libstd *** 98646,98652 **** 93170ef391fdcbda38838ce3f8f4b861 libstdc++-v3/include/bits/stl_set.h ba0b8ae642f56a2b5ac0e0f6b5efdb5f libstdc++-v3/include/bits/stl_stack.h cf3c9e963ec99beda2bb6c7db4a045f6 libstdc++-v3/include/bits/stl_tempbuf.h ! 02cdd04bbd0f99a11cf0f12d5a9b21a7 libstdc++-v3/include/bits/stl_tree.h e5b2dfda2795d428e8e4a9ac15177146 libstdc++-v3/include/bits/stl_uninitialized.h abcaf00227294b9790605822a1c03477 libstdc++-v3/include/bits/stl_vector.h 1e99e977ac1c11c7b57913dfa5041da9 libstdc++-v3/include/bits/stream_iterator.h --- 98837,98843 ---- 93170ef391fdcbda38838ce3f8f4b861 libstdc++-v3/include/bits/stl_set.h ba0b8ae642f56a2b5ac0e0f6b5efdb5f libstdc++-v3/include/bits/stl_stack.h cf3c9e963ec99beda2bb6c7db4a045f6 libstdc++-v3/include/bits/stl_tempbuf.h ! 7ea5e83eb4473a085f28047091af1204 libstdc++-v3/include/bits/stl_tree.h e5b2dfda2795d428e8e4a9ac15177146 libstdc++-v3/include/bits/stl_uninitialized.h abcaf00227294b9790605822a1c03477 libstdc++-v3/include/bits/stl_vector.h 1e99e977ac1c11c7b57913dfa5041da9 libstdc++-v3/include/bits/stream_iterator.h *************** dee5de74a647471159287adfbac14498 libstd *** 98784,98790 **** d8ae0f386b639951eabe29a57d2f68cb libstdc++-v3/include/debug/safe_unordered_container.tcc f475c2504647d12ab0026b7c3f256f4d libstdc++-v3/include/debug/set efd6533e84bfc436b900b80a7715e389 libstdc++-v3/include/debug/set.h ! bbaa39c68a8689f894b4d32d8a71a33e libstdc++-v3/include/debug/stl_iterator.h 9338fa7bb61e6716eb79ad8ad9b3cc64 libstdc++-v3/include/debug/string fa95e8291a021fd8d54e739bfb36d8f4 libstdc++-v3/include/debug/unordered_map bbcb44f5d6a75be289854e78c50d6e0e libstdc++-v3/include/debug/unordered_set --- 98975,98981 ---- d8ae0f386b639951eabe29a57d2f68cb libstdc++-v3/include/debug/safe_unordered_container.tcc f475c2504647d12ab0026b7c3f256f4d libstdc++-v3/include/debug/set efd6533e84bfc436b900b80a7715e389 libstdc++-v3/include/debug/set.h ! 68b21fccf0973d0623e5d5efcecb6130 libstdc++-v3/include/debug/stl_iterator.h 9338fa7bb61e6716eb79ad8ad9b3cc64 libstdc++-v3/include/debug/string fa95e8291a021fd8d54e739bfb36d8f4 libstdc++-v3/include/debug/unordered_map bbcb44f5d6a75be289854e78c50d6e0e libstdc++-v3/include/debug/unordered_set *************** fee23cd92a92d6bf2f6fdd3850d1ec1a libstd *** 98797,98817 **** 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 --- 98988,99008 ---- 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 ! d5c890387f9ee783e277af992e7d9df3 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 ! 6b391c15dd79237ca4d5762b649080bc libstdc++-v3/include/experimental/bits/numeric_traits.h 526bcbcdfb0acc96580ff835ceb38948 libstdc++-v3/include/experimental/bits/shared_ptr.h ! 8b5887f03d53f51764229f9143e4bac0 libstdc++-v3/include/experimental/bits/simd.h ! d0fc79a2d34d0588b26602fbc93a3fc2 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 ! 8105f7c27656f7d99fad897d8b096b0e libstdc++-v3/include/experimental/bits/simd_ppc.h 807f9675127d0f7a2fb50eb6d56c5816 libstdc++-v3/include/experimental/bits/simd_scalar.h ! 5e098b9bfb621168ee79f8eb9776dcb9 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 *************** d3d2812c60e828c1e822801f148c7630 libstd *** 99204,99216 **** b156f0d597a2edae1a06e54aba071e41 libstdc++-v3/include/pstl/unseq_backend_simd.h 248e4a4c932ee32246a6216c3b58a482 libstdc++-v3/include/pstl/utils.h 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 --- 99395,99407 ---- b156f0d597a2edae1a06e54aba071e41 libstdc++-v3/include/pstl/unseq_backend_simd.h 248e4a4c932ee32246a6216c3b58a482 libstdc++-v3/include/pstl/utils.h 6f7d40cef8f663c474dbafbd94db6d41 libstdc++-v3/include/std/algorithm ! 0a935a1b49fa422ba20538d90e460f3c libstdc++-v3/include/std/any ! 5250b045e89b32a732a4b403c234104e 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 ! d7b7b58580791a872a706b123f67d0de libstdc++-v3/include/std/charconv a3c948e3df2b6be15b9120cd88c5d7ea libstdc++-v3/include/std/chrono 9fc8010f8954d7f9d9b7b73480068af4 libstdc++-v3/include/std/codecvt 34ecc2d19af4343e2194a05671920bcf libstdc++-v3/include/std/complex *************** f36de15c1f3b7e03051daa3f7c7472c5 libstd *** 99240,99246 **** 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 --- 99431,99437 ---- 44c7dab7177844460c0d95f3b2c6d2dd libstdc++-v3/include/std/mutex 0f98490a23012b0d475a6438918e05e8 libstdc++-v3/include/std/numbers 05fc9ec988e9d247d6fa5ac50919e7aa libstdc++-v3/include/std/numeric ! 52a624996b32a38c3e8550926f624614 libstdc++-v3/include/std/optional efcc2fdc15a99e21f2c4a97ee2924fce libstdc++-v3/include/std/ostream 61b007baae14c52b13732aad82286815 libstdc++-v3/include/std/queue aad0b8c05c77db48c9ae1eddb9e0380d libstdc++-v3/include/std/random *************** ed0009b64dfff30999a2182d0189ee7f libstd *** 99259,99274 **** 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 --- 99450,99465 ---- 34c6da09a169cc099e8108f6af279a65 libstdc++-v3/include/std/stop_token 05c6cffed4833f117e386206af8f878e libstdc++-v3/include/std/streambuf 8eccd3adbdc9f406ec98e5483acf9c01 libstdc++-v3/include/std/string ! 5cec94972e6ac627f383e0c626ca759d 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 ! 29aaf447a2e15f8afd0c1ff9f15dcfc9 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 ! ad60f79562bc3143fa81ee211d6b6e27 libstdc++-v3/include/std/utility c850b998f4d1266de1335fea45c46997 libstdc++-v3/include/std/valarray aa36fc0f6303b753dfa37dc4df5ea6dd libstdc++-v3/include/std/variant b2ab68817368c3805d64bb4978a6129d libstdc++-v3/include/std/vector *************** c89b275a194b7370f322c7128b243090 libstd *** 99341,99348 **** cc2a0b62bf04cad951e0838fd4e29e3d libstdc++-v3/include/tr2/dynamic_bitset.tcc 95f8128d43e4fa453bad55b8db6307bc libstdc++-v3/include/tr2/ratio cb6ce365cf504ab2292795d611943c6e libstdc++-v3/include/tr2/type_traits ! 5559362627331d7a7be957332eba7b9f libstdc++-v3/libsupc++/Makefile.am ! 0e698fb2d933bed1c0fd85b86464a335 libstdc++-v3/libsupc++/Makefile.in b992d92f8e27c5837ac0932ebba6e786 libstdc++-v3/libsupc++/array_type_info.cc d773d7947ef6fa9dba87bc66d1556985 libstdc++-v3/libsupc++/atexit_arm.cc bcd2caa5d8bd8939dccd73056d9b9954 libstdc++-v3/libsupc++/atexit_thread.cc --- 99532,99539 ---- cc2a0b62bf04cad951e0838fd4e29e3d libstdc++-v3/include/tr2/dynamic_bitset.tcc 95f8128d43e4fa453bad55b8db6307bc libstdc++-v3/include/tr2/ratio cb6ce365cf504ab2292795d611943c6e libstdc++-v3/include/tr2/type_traits ! 8e1128dfe6e8215db6a21c0f3dbe9d3c libstdc++-v3/libsupc++/Makefile.am ! d68409fb13871b8e454f0d51d6e41ae5 libstdc++-v3/libsupc++/Makefile.in b992d92f8e27c5837ac0932ebba6e786 libstdc++-v3/libsupc++/array_type_info.cc d773d7947ef6fa9dba87bc66d1556985 libstdc++-v3/libsupc++/atexit_arm.cc bcd2caa5d8bd8939dccd73056d9b9954 libstdc++-v3/libsupc++/atexit_thread.cc *************** b21af20d19c1de40ba9cd41e413f6562 libstd *** 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 --- 99629,99636 ---- ef60735f8655321222e620486f219e8d libstdc++-v3/python/hook.in 68b329da9893e34099c7d8ad5cb9c940 libstdc++-v3/python/libstdcxx/__init__.py 484cb11df73bf42227946114a89d29b5 libstdc++-v3/python/libstdcxx/v6/__init__.py ! dacc414c9c7957b64a85d9a7452f7b52 libstdc++-v3/python/libstdcxx/v6/printers.py ! 4851740f7f78303c2bd8c1b265fa7c34 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 *************** fdce91d6f0e0cb276b62993742bb7146 libstd *** 99464,99470 **** a9122c87521f59de28f5cb332637e5fd libstdc++-v3/src/c++11/compatibility-chrono.cc 58d704fbd5d7285885ddbcf519c39b85 libstdc++-v3/src/c++11/compatibility-condvar.cc 13d8eb617ee09a49ddae147ced1116e1 libstdc++-v3/src/c++11/compatibility-ldbl-alt128-cxx11.cc ! 2c0c2b7d24e35933118507d044750127 libstdc++-v3/src/c++11/compatibility-ldbl-alt128.cc 2684f76d9a220ab6d41add8127f6ade0 libstdc++-v3/src/c++11/compatibility-ldbl-facets-aliases.h 70b5162172c80d0b9e539a8376d23cdf libstdc++-v3/src/c++11/compatibility-thread-c++0x.cc 67763c2722b1fecba6026d3a5e279186 libstdc++-v3/src/c++11/condition_variable.cc --- 99655,99661 ---- a9122c87521f59de28f5cb332637e5fd libstdc++-v3/src/c++11/compatibility-chrono.cc 58d704fbd5d7285885ddbcf519c39b85 libstdc++-v3/src/c++11/compatibility-condvar.cc 13d8eb617ee09a49ddae147ced1116e1 libstdc++-v3/src/c++11/compatibility-ldbl-alt128-cxx11.cc ! 5e1ffa06df4912e3578157cad5494a02 libstdc++-v3/src/c++11/compatibility-ldbl-alt128.cc 2684f76d9a220ab6d41add8127f6ade0 libstdc++-v3/src/c++11/compatibility-ldbl-facets-aliases.h 70b5162172c80d0b9e539a8376d23cdf libstdc++-v3/src/c++11/compatibility-thread-c++0x.cc 67763c2722b1fecba6026d3a5e279186 libstdc++-v3/src/c++11/condition_variable.cc *************** fe48c009c5684613dd310097f544a115 libstd *** 99528,99535 **** 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 --- 99719,99726 ---- 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 ! 4de514c7a2a5606a4af30b42db1f2dd2 libstdc++-v3/src/c++17/fs_dir.cc ! c0d56c9b5c329d50fb78538d32d0d47c 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 *************** b673220babee424d2b70a4dbda885118 libstd *** 99599,99608 **** 0b7a43e506d04a83193b7dec27610ac1 libstdc++-v3/src/filesystem/cow-dir.cc 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 --- 99790,99799 ---- 0b7a43e506d04a83193b7dec27610ac1 libstdc++-v3/src/filesystem/cow-dir.cc d61e45b9d5e6a114646872dd2109583e libstdc++-v3/src/filesystem/cow-ops.cc 1cec190567d6217eca7c91ba30fcac96 libstdc++-v3/src/filesystem/cow-path.cc ! 31caf9df8688ac10a93b2575f6fe7388 libstdc++-v3/src/filesystem/dir-common.h ! b88294a6a476549ce867b2a67879540c libstdc++-v3/src/filesystem/dir.cc ! 0c47febb03f6b49448e9ae9507bd0d80 libstdc++-v3/src/filesystem/ops-common.h ! fe77b49f85474ff8e57e5948bf4ab59d 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 *************** e86ec8d2ed640d1ec738b949c0b35654 libstd *** 99867,99873 **** 9603e23b21ade23013c90a748ed9bc50 libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-big.cc 47f4f27ecf4bda087c5b0a3cd14a7c66 libstdc++-v3/testsuite/19_diagnostics/stdexcept.cc 2264c22a40011e311f857936e455ea01 libstdc++-v3/testsuite/19_diagnostics/system_error/39880.cc ! 6c5934a5df61fc5c08b17f85f553babc libstdc++-v3/testsuite/19_diagnostics/system_error/cons-1.cc f50967809900e6d07ee02904a6e39903 libstdc++-v3/testsuite/19_diagnostics/system_error/cons_virtual_derivation.cc 4e7eceb75a1b5e9a861de98219de4b8e libstdc++-v3/testsuite/19_diagnostics/system_error/what-1.cc e78a2781f39a561579731ed4b960a801 libstdc++-v3/testsuite/19_diagnostics/system_error/what-2.cc --- 100058,100064 ---- 9603e23b21ade23013c90a748ed9bc50 libstdc++-v3/testsuite/19_diagnostics/runtime_error/what-big.cc 47f4f27ecf4bda087c5b0a3cd14a7c66 libstdc++-v3/testsuite/19_diagnostics/stdexcept.cc 2264c22a40011e311f857936e455ea01 libstdc++-v3/testsuite/19_diagnostics/system_error/39880.cc ! d0cfd9070f656ec2f209a7cbcd9906c2 libstdc++-v3/testsuite/19_diagnostics/system_error/cons-1.cc f50967809900e6d07ee02904a6e39903 libstdc++-v3/testsuite/19_diagnostics/system_error/cons_virtual_derivation.cc 4e7eceb75a1b5e9a861de98219de4b8e libstdc++-v3/testsuite/19_diagnostics/system_error/what-1.cc e78a2781f39a561579731ed4b960a801 libstdc++-v3/testsuite/19_diagnostics/system_error/what-2.cc *************** b23d8220c3c4e6866e0b70777d2b719f libstd *** 99944,99949 **** --- 100135,100141 ---- ae5f2b511a8ac0e2f746944d5f364ecd libstdc++-v3/testsuite/20_util/any/assign/self.cc 27618b256b3ff639d38c4846b3aaf998 libstdc++-v3/testsuite/20_util/any/cons/1.cc 097d518046e23537949952c936ddfa1c libstdc++-v3/testsuite/20_util/any/cons/101034.cc + 335e5502fad2ac140247bdc170504f8f libstdc++-v3/testsuite/20_util/any/cons/104242.cc be1cb95da16161c56ff3fb401785ba4f libstdc++-v3/testsuite/20_util/any/cons/2.cc 91f5cde4d51f2fd0f418f3728ed9fcfe libstdc++-v3/testsuite/20_util/any/cons/90415.cc a29542e205fd4b7d8b4379d28281ee96 libstdc++-v3/testsuite/20_util/any/cons/92156.cc *************** d0d1654776dfccff0809ac830a8ed639 libstd *** 100233,100249 **** 677741b8ec87de8ab0d685b43bb7ed8c libstdc++-v3/testsuite/20_util/integer_comparisons/equal_neg.cc c6250601e3e7183f7bd3726fdd8c1203 libstdc++-v3/testsuite/20_util/integer_comparisons/greater.cc 5fd145478b104e494f38be141565346c libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal.cc ! cc2c834d24fde49e9b39d5fdc21a1036 libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal_neg.cc ! 73941640eda6ad80833bff73ab600f99 libstdc++-v3/testsuite/20_util/integer_comparisons/greater_neg.cc 1ba63da49f446aa61ae4eece9dcdf0e4 libstdc++-v3/testsuite/20_util/integer_comparisons/in_range.cc 3a808b88ff8bc53eebb599b8846d8ca9 libstdc++-v3/testsuite/20_util/integer_comparisons/in_range_neg.cc 41f8e6faea974f81048b7e7b2703e87b libstdc++-v3/testsuite/20_util/integer_comparisons/less.cc b8cc0f425b7279d2a7bb8dcff88e0079 libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal.cc ! ebd1e27c1fabfae2ef9106e1af190bd0 libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal_neg.cc fe02c44fa83bf1abd4e8e421763db1c3 libstdc++-v3/testsuite/20_util/integer_comparisons/less_neg.cc 838931508535aea3cd86c8c312864fc8 libstdc++-v3/testsuite/20_util/integer_comparisons/not_equal.cc 677741b8ec87de8ab0d685b43bb7ed8c libstdc++-v3/testsuite/20_util/integer_comparisons/not_equal_neg.cc 40f5e1f8a5ca516f07c6130a54751e24 libstdc++-v3/testsuite/20_util/integer_sequence/intseq.cc 79f7cfe5881b0b28786f2b954c1f68b8 libstdc++-v3/testsuite/20_util/integer_sequence/requirements/typedefs.cc cb6a4a4c95418eeed0f87f65e932d1bc libstdc++-v3/testsuite/20_util/integral_constant/call_operator.cc 5913c1f46d1efe34bc33bf1b27f30367 libstdc++-v3/testsuite/20_util/integral_constant/operator_value_type.cc --- 100425,100442 ---- 677741b8ec87de8ab0d685b43bb7ed8c libstdc++-v3/testsuite/20_util/integer_comparisons/equal_neg.cc c6250601e3e7183f7bd3726fdd8c1203 libstdc++-v3/testsuite/20_util/integer_comparisons/greater.cc 5fd145478b104e494f38be141565346c libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal.cc ! 91c63114c2ad04c8e57c3c8963b46857 libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal_neg.cc ! 400238eb92d68a5833239ab4a096b227 libstdc++-v3/testsuite/20_util/integer_comparisons/greater_neg.cc 1ba63da49f446aa61ae4eece9dcdf0e4 libstdc++-v3/testsuite/20_util/integer_comparisons/in_range.cc 3a808b88ff8bc53eebb599b8846d8ca9 libstdc++-v3/testsuite/20_util/integer_comparisons/in_range_neg.cc 41f8e6faea974f81048b7e7b2703e87b libstdc++-v3/testsuite/20_util/integer_comparisons/less.cc b8cc0f425b7279d2a7bb8dcff88e0079 libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal.cc ! 1e1d905066daadc1b6a5062205b1aed0 libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal_neg.cc fe02c44fa83bf1abd4e8e421763db1c3 libstdc++-v3/testsuite/20_util/integer_comparisons/less_neg.cc 838931508535aea3cd86c8c312864fc8 libstdc++-v3/testsuite/20_util/integer_comparisons/not_equal.cc 677741b8ec87de8ab0d685b43bb7ed8c libstdc++-v3/testsuite/20_util/integer_comparisons/not_equal_neg.cc 40f5e1f8a5ca516f07c6130a54751e24 libstdc++-v3/testsuite/20_util/integer_sequence/intseq.cc + b299881c5f8a46c9954c9cfffbb15437 libstdc++-v3/testsuite/20_util/integer_sequence/pr111357.cc 79f7cfe5881b0b28786f2b954c1f68b8 libstdc++-v3/testsuite/20_util/integer_sequence/requirements/typedefs.cc cb6a4a4c95418eeed0f87f65e932d1bc libstdc++-v3/testsuite/20_util/integral_constant/call_operator.cc 5913c1f46d1efe34bc33bf1b27f30367 libstdc++-v3/testsuite/20_util/integral_constant/operator_value_type.cc *************** bc6d2bbf0bcd31318330e91b1b056ee0 libstd *** 100615,100620 **** --- 100808,100814 ---- 0f3cbdfcf310adf8a2062b3707a2c00d libstdc++-v3/testsuite/20_util/optional/observers/5.cc 2e81d7ad50ea9f316654c390436dec79 libstdc++-v3/testsuite/20_util/optional/observers/6.cc 637314cfcf5e8a6eecf543eff0b5701b libstdc++-v3/testsuite/20_util/optional/relops/1.cc + 9b0c6c5d74424693ceca6e756d7db294 libstdc++-v3/testsuite/20_util/optional/relops/104606.cc 7d016ff53a538b7abde794687e94107d libstdc++-v3/testsuite/20_util/optional/relops/2.cc 1f0d1aef6f0adb7ba9009254dd76901e libstdc++-v3/testsuite/20_util/optional/relops/3.cc 80f54c69a118e2a0a1ad953cdacdc704 libstdc++-v3/testsuite/20_util/optional/relops/4.cc *************** a29daf4250ec6836d29ee219cb6e3c24 libstd *** 100981,100986 **** --- 101175,101181 ---- 1a535e0b93b4813fb9d5ce3c26d0d3fc libstdc++-v3/testsuite/20_util/tuple/comparison_operators/three_way.cc d23b1a747046dfeaadefce18d2c02b12 libstdc++-v3/testsuite/20_util/tuple/cons/101960.cc 32c154912a091023741fdaa263538a86 libstdc++-v3/testsuite/20_util/tuple/cons/102270.cc + 9a6dc1f9548e126de2581231c632a19f libstdc++-v3/testsuite/20_util/tuple/cons/114147.cc e3566f9668d13eea0bc28024e1e60adc libstdc++-v3/testsuite/20_util/tuple/cons/41530.cc b8b6f7aca02de3d0464000ca018da3ba libstdc++-v3/testsuite/20_util/tuple/cons/44487.cc 521de308a3f68c36303b621ffb72195a libstdc++-v3/testsuite/20_util/tuple/cons/45228.cc *************** ee58fb862feae3d2e5437a3162ad0907 libstd *** 101480,101487 **** --- 101675,101684 ---- 1dfae14cd0546ce2c05ad629019edd83 libstdc++-v3/testsuite/21_strings/basic_string_view/literals/values-char8_t.cc f5762b9d721f3378d727068f209ad0d8 libstdc++-v3/testsuite/21_strings/basic_string_view/literals/values.cc d39abc44372d1e360778ec88d360319d libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_prefix/char/1.cc + be3b65e8d28ffd0b6c071ad71ef5662a libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_prefix/debug.cc 266ed8198a85e13d9a1b1373fcf255ff libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_prefix/wchar_t/1.cc 1120045f4cf7d6af14f28d056f9e9ced libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_suffix/char/1.cc + ef869b073577745bda077a76ccf586b4 libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_suffix/debug.cc 1826d293cf96efd29214f6db5b7d4f16 libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_suffix/wchar_t/1.cc 78409eaaaf815a0ac855279bbba4642a libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/swap/char/1.cc 7c9068c530aa7387a9b568fb4690865d libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/swap/wchar_t/1.cc *************** b3c9e3af0f49a131973d6c4ac03b1a69 libstd *** 102221,102226 **** --- 102418,102424 ---- 1b1e181106122b30a450ec8e7f99267d libstdc++-v3/testsuite/23_containers/array/cons/deduction.cc ab27bad72c6bd3cea021b7abe8c50d05 libstdc++-v3/testsuite/23_containers/array/cons/deduction_neg.cc d2a212f2b8f6fdc5c0cfbd95e4c8c0d3 libstdc++-v3/testsuite/23_containers/array/creation/1.cc + c33e3cf546fa87ee1cf2a1313c16655a libstdc++-v3/testsuite/23_containers/array/creation/111512.cc d5f4d148e3e8b228594162f3ef05c987 libstdc++-v3/testsuite/23_containers/array/creation/2.cc dcfec188e09b247823945c7fcfd7d096 libstdc++-v3/testsuite/23_containers/array/creation/3_neg.cc 1a5de8290102971098844454cfa49d9e libstdc++-v3/testsuite/23_containers/array/debug/back1_neg.cc *************** e8cca5d4509afe48ec69099546eec4b7 libstd *** 102868,102873 **** --- 103066,103072 ---- 551fd45774593c0c8d934bfaf2be92f6 libstdc++-v3/testsuite/23_containers/multiset/debug/move_assign_neg.cc e4d60375ddeb1bb67555d79d6f3bf551 libstdc++-v3/testsuite/23_containers/multiset/debug/move_neg.cc 88c561bccd85e62fadc7c43287e671cf libstdc++-v3/testsuite/23_containers/multiset/init-list.cc + b761d5230bf4935944006f713e5604d5 libstdc++-v3/testsuite/23_containers/multiset/modifiers/114401.cc 9fa7e3af060081b7d9cfad93a15fe4f9 libstdc++-v3/testsuite/23_containers/multiset/modifiers/dr130.cc dbaff1331137b71965546885e60d275b libstdc++-v3/testsuite/23_containers/multiset/modifiers/emplace/1.cc 5b392904ec0c46196eb3eee21db0c5e7 libstdc++-v3/testsuite/23_containers/multiset/modifiers/emplace/92878_92947.cc *************** cd19f08a642afb80becf0268e6af9f98 libstd *** 102976,102981 **** --- 103175,103181 ---- 2d5cb9ca33e1afcd6502856d8bde1853 libstdc++-v3/testsuite/23_containers/set/debug/move_neg.cc cf914f74e1887effc611d4e59d596f43 libstdc++-v3/testsuite/23_containers/set/erasure.cc e7183d05aaab60e1babfca3603253809 libstdc++-v3/testsuite/23_containers/set/init-list.cc + 600f3a07c5d12def9ca643094daf86cd libstdc++-v3/testsuite/23_containers/set/modifiers/114401.cc 337f1743c04fa5a6f80b4d012abea9ac libstdc++-v3/testsuite/23_containers/set/modifiers/16728.cc 2634b21875a441cf53f4bfd7cfefec5c libstdc++-v3/testsuite/23_containers/set/modifiers/17948.cc 67d274e8cb6fafff84fe2140ffac712c libstdc++-v3/testsuite/23_containers/set/modifiers/dr130.cc *************** a391c6711d5a25e7aa133ccb1e4fcc6a libstd *** 103312,103317 **** --- 103512,103518 ---- 2537293881e8cc49cb4a3ff428e1db74 libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/multiset_range.cc 666d70c227528357e013bcdf7588657c libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/multiset_single.cc 4ff0eb9e76e9c9c8f229c2529f983cdd libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/multiset_single_move.cc + 81ce776a3ac75fcc704e7f3efc65de81 libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/114401.cc c18c77ba1ace5ae23a8cfa8253228f14 libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/92878_92947.cc 9e5e202c22d69db839959e7fb0677b73 libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/emplace.cc e69cb7b7690f6e33fd730bc6b1e6aad5 libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/extract.cc *************** f9b36f93158a45b95505cc0b8d1214ca libstd *** 103417,103422 **** --- 103618,103624 ---- a70fac297764bf83bc8bc857c756815d libstdc++-v3/testsuite/23_containers/unordered_set/insert/set_single_move.cc 43438f8e1c5808890b21b18d32e3b2d2 libstdc++-v3/testsuite/23_containers/unordered_set/instantiation_neg.cc d7e3d76f83a4c549010b84ef2e211c1b libstdc++-v3/testsuite/23_containers/unordered_set/max_load_factor/robustness.cc + 48b51763d3c882761e49bc54aa3174c2 libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/114401.cc 5515806c64ef5269e6c55c5b517376ac libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/92878_92947.cc 69d96fa11ffafa089d5f551b31c705c8 libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/emplace.cc 198a8e614d70827f189f8caf13975072 libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/extract.cc *************** fe2d7d571db188f036d9f737a42d9631 libstd *** 104217,104223 **** 138597d597be1c7bb6bf760221951b1c libstdc++-v3/testsuite/25_algorithms/move/93872.cc c481e5e926bd5482086f725fee988614 libstdc++-v3/testsuite/25_algorithms/move/94013.cc 7f4c47f2585231deb19c22a359d2abd4 libstdc++-v3/testsuite/25_algorithms/move/95578.cc ! 5d57a7c1d0519d60477b53cdbcb8e7bb libstdc++-v3/testsuite/25_algorithms/move/constexpr.cc 51a03c07bbcbb89a9cf9412a4b64ce26 libstdc++-v3/testsuite/25_algorithms/move/constrained.cc c41fedc68e3cee79d652221a1c6b2c9a libstdc++-v3/testsuite/25_algorithms/move/deque_iterators/1.cc 7f90edf77fe9772f53a72430e8d69939 libstdc++-v3/testsuite/25_algorithms/move/deque_iterators/2.cc --- 104419,104425 ---- 138597d597be1c7bb6bf760221951b1c libstdc++-v3/testsuite/25_algorithms/move/93872.cc c481e5e926bd5482086f725fee988614 libstdc++-v3/testsuite/25_algorithms/move/94013.cc 7f4c47f2585231deb19c22a359d2abd4 libstdc++-v3/testsuite/25_algorithms/move/95578.cc ! 8a39c328d588445253bbfbd913a4260b libstdc++-v3/testsuite/25_algorithms/move/constexpr.cc 51a03c07bbcbb89a9cf9412a4b64ce26 libstdc++-v3/testsuite/25_algorithms/move/constrained.cc c41fedc68e3cee79d652221a1c6b2c9a libstdc++-v3/testsuite/25_algorithms/move/deque_iterators/1.cc 7f90edf77fe9772f53a72430e8d69939 libstdc++-v3/testsuite/25_algorithms/move/deque_iterators/2.cc *************** cead5db9b01b01a53ce66c98bc2ccfa5 libstd *** 105883,105904 **** 41561d8f83912896b48d6f92ea7dd704 libstdc++-v3/testsuite/27_io/filesystem/filesystem_error/cons.cc a8f08f12e07d34aced996f0ef16f7486 libstdc++-v3/testsuite/27_io/filesystem/filesystem_error/copy.cc 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 --- 106085,106108 ---- 41561d8f83912896b48d6f92ea7dd704 libstdc++-v3/testsuite/27_io/filesystem/filesystem_error/cons.cc a8f08f12e07d34aced996f0ef16f7486 libstdc++-v3/testsuite/27_io/filesystem/filesystem_error/copy.cc 12c64f56a311b7479e97421eb4245118 libstdc++-v3/testsuite/27_io/filesystem/iterators/91067.cc + 8776f2dbe03dc89e720cbdf2268f8787 libstdc++-v3/testsuite/27_io/filesystem/iterators/97731.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 ! 0f68b00981d919299e8031e2bd3875e5 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 + 10b6e95add9984bd29138cd25bc3a19f libstdc++-v3/testsuite/27_io/filesystem/operations/copy_file_108178.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 ! b84f4e773559517da3c3ba612f419f04 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 *************** a22e69eb2c027825b8fb3e0e6df6a97d libstd *** 105934,105939 **** --- 106138,106144 ---- f7519f418c9e3f8120af2f159eb4361c libstdc++-v3/testsuite/27_io/filesystem/path/construct/80762.cc 6a8b9ad795e9531e42ff0e3afee721b3 libstdc++-v3/testsuite/27_io/filesystem/path/construct/90281.cc f09d25591d80f944624fffcdeff9a666 libstdc++-v3/testsuite/27_io/filesystem/path/construct/90634.cc + 7e3f9d185f69161e92a1fe6e162069f3 libstdc++-v3/testsuite/27_io/filesystem/path/construct/95048.cc 1fef6fcccb3ed4650d0ef626edfe0dc7 libstdc++-v3/testsuite/27_io/filesystem/path/construct/copy.cc c88e947c48c410c8d019b1f85cc7b44c libstdc++-v3/testsuite/27_io/filesystem/path/construct/default.cc 2abd082ffbea2eed136e7c98ac008b72 libstdc++-v3/testsuite/27_io/filesystem/path/construct/format.cc *************** e38807857185bfa4fa204e43c8d76017 libstd *** 107003,107009 **** 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 --- 107208,107214 ---- 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 ! 990b9748f8c0e28de554f3f3f3fd2b34 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 libstd *** 107012,107018 **** 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 --- 107217,107223 ---- 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 ! 29cfb2ff8089be1bed116e97ebdde498 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 *************** c06b01e19066f0d4ffa4faa5202f4e3e libstd *** 107037,107042 **** --- 107242,107248 ---- 666ce8536a1d012f2ee912f2bc7b75d4 libstdc++-v3/testsuite/experimental/filesystem/path/construct/80762.cc 1ed54cf5b1c47566d1d83d4e7de0a095 libstdc++-v3/testsuite/experimental/filesystem/path/construct/90281.cc b777506554ae3816bf36f62dee7df96e libstdc++-v3/testsuite/experimental/filesystem/path/construct/90634.cc + bc0c58037ed5ab6415d0899ccc8799af libstdc++-v3/testsuite/experimental/filesystem/path/construct/95048.cc 0b30494068df58ea8b093ca0e48b8446 libstdc++-v3/testsuite/experimental/filesystem/path/construct/copy.cc fb7624577970bd78022accc91341a06b libstdc++-v3/testsuite/experimental/filesystem/path/construct/default.cc 2125ab42c3b94c829ffea078d2ba2a81 libstdc++-v3/testsuite/experimental/filesystem/path/construct/locale.cc *************** d11b0cf5365cf27c6d9b1d7791b5032a libstd *** 107241,107246 **** --- 107447,107455 ---- 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 + 40516291f4d97883db23570b8f0c38a0 libstdc++-v3/testsuite/experimental/simd/pr109822_cast_functions.cc + 4abe9d75da280cd5bcef090bd6898210 libstdc++-v3/testsuite/experimental/simd/pr114803_vecbuiltin_cvt.cc + 72770f3a6a190c82b48017c1f83cfec6 libstdc++-v3/testsuite/experimental/simd/pr115454_find_last_set.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 *************** aa99c7456e1a6412989b2f1963298165 libstd *** 107259,107265 **** 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 --- 107468,107474 ---- 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 ! 272f3f27aa6efd90aa6dc0ffda2206de 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 *************** a56eeb3150825c9a4db053388474786f libstd *** 107272,107278 **** 2e951eede60753f8c47d4b6fad76899d libstdc++-v3/testsuite/experimental/simd/tests/mask_reductions.cc 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 --- 107481,107487 ---- 2e951eede60753f8c47d4b6fad76899d libstdc++-v3/testsuite/experimental/simd/tests/mask_reductions.cc 05e6aa776ac3dde07f0f2ce945c4a544 libstdc++-v3/testsuite/experimental/simd/tests/math_1arg.cc f37dc37a1f2deeadb0848d5805880a2a libstdc++-v3/testsuite/experimental/simd/tests/math_2arg.cc ! dc61ccbf6c000329574dca0a43367604 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 *************** ffd4d328ed3db14dab111a3eddab2930 libstd *** 107722,107731 **** f94bea1910070856d4cae7efca4beca3 libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/wchar_t/1.cc 1888ed86914a7f7d2120635c05a1203c libstdc++-v3/testsuite/ext/vstring/requirements/typedefs.cc b32547780ab0170daaf7ba32e51255b3 libstdc++-v3/testsuite/ext/vstring/types/23767.cc ! 6075d499921cafc9adbb1ee50a9ae4c9 libstdc++-v3/testsuite/lib/dg-options.exp 9d3360da3142060294f47a364bf5975b libstdc++-v3/testsuite/lib/gdb-test.exp ! f9fcbd8dec04b924fd4e917ed3e5bc10 libstdc++-v3/testsuite/lib/libstdc++.exp ! d0c11fe8cb799b7e38c3d765c7786345 libstdc++-v3/testsuite/lib/prune.exp 6554148313affda6d0d8314d097b450d libstdc++-v3/testsuite/libstdc++-abi/abi.exp 33cb7d617aef9ee6c04c69c0e91f20b6 libstdc++-v3/testsuite/libstdc++-dg/conformance.exp 17358114f0793d43ab875182de659dde libstdc++-v3/testsuite/libstdc++-prettyprinters/48362.cc --- 107931,107940 ---- f94bea1910070856d4cae7efca4beca3 libstdc++-v3/testsuite/ext/vstring/requirements/explicit_instantiation/wchar_t/1.cc 1888ed86914a7f7d2120635c05a1203c libstdc++-v3/testsuite/ext/vstring/requirements/typedefs.cc b32547780ab0170daaf7ba32e51255b3 libstdc++-v3/testsuite/ext/vstring/types/23767.cc ! e476c973593356f60a1ad4cc96918b98 libstdc++-v3/testsuite/lib/dg-options.exp 9d3360da3142060294f47a364bf5975b libstdc++-v3/testsuite/lib/gdb-test.exp ! 79ad89c4f23326b624d35174378ebf44 libstdc++-v3/testsuite/lib/libstdc++.exp ! 1667eea41c4da2f11a8cdb678ab6827d libstdc++-v3/testsuite/lib/prune.exp 6554148313affda6d0d8314d097b450d libstdc++-v3/testsuite/libstdc++-abi/abi.exp 33cb7d617aef9ee6c04c69c0e91f20b6 libstdc++-v3/testsuite/libstdc++-dg/conformance.exp 17358114f0793d43ab875182de659dde libstdc++-v3/testsuite/libstdc++-prettyprinters/48362.cc *************** be2c942175f821c48748bb874e440b9b libstd *** 107749,107755 **** cc762851bcdba119feec0f3235e4468c libstdc++-v3/testsuite/libstdc++-prettyprinters/whatis2.cc 981266ed691c1072655ca68488588724 libstdc++-v3/testsuite/libstdc++-xmethods/array.cc 9b015a334512eb7b9cd10b23704d2064 libstdc++-v3/testsuite/libstdc++-xmethods/associative-containers.cc ! 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 --- 107958,107964 ---- cc762851bcdba119feec0f3235e4468c libstdc++-v3/testsuite/libstdc++-prettyprinters/whatis2.cc 981266ed691c1072655ca68488588724 libstdc++-v3/testsuite/libstdc++-xmethods/array.cc 9b015a334512eb7b9cd10b23704d2064 libstdc++-v3/testsuite/libstdc++-xmethods/associative-containers.cc ! d46f904f7548b392dd76566d66672b92 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 *************** ccdc4ae1b41638162b9e60936a7f2e0e libstd *** 108030,108036 **** 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 --- 108239,108245 ---- 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 ! 18a05829ac282a87a3a9f5c5716e78ee 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 *************** cf3e21e6c73107c1e9f760462552b969 libstd *** 108657,108666 **** b472697eb58bc5dbe9e42aa65a798d67 libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/overloads_float.cc 5398ea792bd9bef6d57ad7fed966cecd libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/overloads_int.cc 7e3377b516687f6ca4655aed371dce1a libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdint/types_std_tr1.cc ! c943779acbb4064d671fe13195ea6150 libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdio/functions.cc 71e169ce1f7d106c8624b8734ebad5b4 libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdlib/functions.cc 09f7e1882b87989ab4d101f3cf8cbcf8 libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdlib/types_std_tr1.cc ! 52b3346039ee2164851f22da08b7721f libstdc++-v3/testsuite/tr1/8_c_compatibility/cwchar/functions.cc c8a0c4dceadd15c4d6af6a728d25b350 libstdc++-v3/testsuite/tr1/8_c_compatibility/cwctype/functions.cc 61fa289d03c65bb4f0cda9d11caf090a libstdc++-v3/testsuite/tr1/headers/all.cc 9ad6bcd8b44d87756069dac2dbca6e09 libstdc++-v3/testsuite/tr1/headers/c++200x/complex.cc --- 108866,108875 ---- b472697eb58bc5dbe9e42aa65a798d67 libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/overloads_float.cc 5398ea792bd9bef6d57ad7fed966cecd libstdc++-v3/testsuite/tr1/8_c_compatibility/complex/overloads_int.cc 7e3377b516687f6ca4655aed371dce1a libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdint/types_std_tr1.cc ! 91630f7f6e4467821a5380858867dfc6 libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdio/functions.cc 71e169ce1f7d106c8624b8734ebad5b4 libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdlib/functions.cc 09f7e1882b87989ab4d101f3cf8cbcf8 libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdlib/types_std_tr1.cc ! 01846c1bef73f814448be1783695f707 libstdc++-v3/testsuite/tr1/8_c_compatibility/cwchar/functions.cc c8a0c4dceadd15c4d6af6a728d25b350 libstdc++-v3/testsuite/tr1/8_c_compatibility/cwctype/functions.cc 61fa289d03c65bb4f0cda9d11caf090a libstdc++-v3/testsuite/tr1/headers/all.cc 9ad6bcd8b44d87756069dac2dbca6e09 libstdc++-v3/testsuite/tr1/headers/c++200x/complex.cc *************** a1640714fc4e3657cefdedd4db899838 libstd *** 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 --- 109015,109021 ---- d7927f85e40de3823114f01b93b3bf21 libstdc++-v3/testsuite/util/thread/all.h b950d655469c477755252b1e18009596 libtool-ldflags 1936a81f2a04a996ff99c7ebdebc5003 libtool.m4 ! 2d17af752118835fa51e4fc8ed2f67bc libvtv/ChangeLog 7ad6a0c753c219e31237f212c5854dd8 libvtv/Makefile.am b1170aae9472f26fdc8326737dc22aba libvtv/Makefile.in 3b765c4f4a0a0f606db1472bce2b8d29 libvtv/acinclude.m4 *************** fd301005dc07375a9b1b26c1df04e576 libvtv *** 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 --- 109098,109104 ---- 4a2d91c71136af55b12e42fa84195778 libvtv/vtv_utils.h 247597a3fcc5b5aa8bd923351c59d853 ltgcc.m4 06c2854f9cfe5864b2885e0d0e9c512f ltmain.sh ! 3b136c85c68deaa02c7a7dc12964106b lto-plugin/ChangeLog b4172d0962c2ec3a954d98e768b4995e lto-plugin/Makefile.am 93fe746c6f1d54ade83e13d65096fe9f lto-plugin/Makefile.in 75fc65b35d0a47ac098f7a278d37060b lto-plugin/aclocal.m4 *************** dee72a6a60e99528b0d17bf3ff9a1e15 ltopti *** 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 --- 109110,109116 ---- bc2f6032c98896249eadb56177c7d357 ltsugar.m4 c30cd33c496505f13d9fbdb6970c7c33 ltversion.m4 293853a13b7e218e3a4342cf85fbbf25 lt~obsolete.m4 ! 72fed350620dcc3e914fcbf59bef7b81 maintainer-scripts/ChangeLog 33c7bc2d2c55956dfac85a05d8a80eff maintainer-scripts/README 507e832af5f2d63b8a78eef217c807a7 maintainer-scripts/branch_changer.py c819510f0d438149c1518bda7b165ac4 maintainer-scripts/bugzilla-close-candidate.py *************** cf2baa0854f564a7785307e79f155efc symlin *** 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 --- 109131,109137 ---- 40bb1f4ce4a60a36d1ec50d66aeed4d1 test-driver cb06c1be6a41d68b0a65e0c1a91752bc ylwrap 03bf3ba8089f4bf475ef4035cf316a47 zlib/CMakeLists.txt ! 0af6aef066fd2b32e44062da67100a30 zlib/ChangeLog f10e5e9394787b288e91fed29533720a zlib/ChangeLog.gcj 0e9a37be8e3b85cc0ccf60504064c297 zlib/ChangeLog.jit b7a1991f01daea3efe108a215c5514a5 zlib/FAQ diff -Nrcpad gcc-11.4.0/NEWS gcc-11.5.0/NEWS *** gcc-11.4.0/NEWS Mon May 29 08:50:07 2023 --- gcc-11.5.0/NEWS Fri Jul 19 05:54:40 2024 *************** see ONEWS. *** 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 --- 6,37 ---- ====================================================================== http://gcc.gnu.org/gcc-11/index.html + GCC 11 Release Series ! July 19, 2024 ! The GCC developers are pleased to announce the release of GCC 11.5. This release is a bug-fix release, containing fixes for regressions in ! GCC 11.4 relative to previous releases of GCC. Release History + GCC 11.5 + July 19, 2024 ([1]changes, [2]documentation) + GCC 11.4 ! May 29, 2023 ([3]changes, [4]documentation) GCC 11.3 ! April 21, 2022 ([5]changes, [6]documentation) GCC 11.2 ! July 28, 2021 ([7]changes, [8]documentation) GCC 11.1 ! April 27, 2021 ([9]changes, [10]documentation) References and Acknowledgements *************** References and Acknowledgements *** 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 --- 39,96 ---- supports several other languages aside from C, it now stands for the GNU Compiler Collection. The GCC developers would like to thank the numerous people that have contributed new features, improvements, bug fixes, and other changes as ! well as test results to GCC. This [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 ! 2024-07-19. References ! 1. https://gcc.gnu.org/gcc-11/changes.html ! 2. https://gcc.gnu.org/onlinedocs/11.5.0/ ! 3. https://gcc.gnu.org/gcc-11/changes.html ! 4. https://gcc.gnu.org/onlinedocs/11.4.0/ ! 5. https://gcc.gnu.org/gcc-11/changes.html ! 6. https://gcc.gnu.org/onlinedocs/11.3.0/ ! 7. https://gcc.gnu.org/gcc-11/changes.html ! 8. https://gcc.gnu.org/onlinedocs/11.2.0/ ! 9. https://gcc.gnu.org/gcc-11/changes.html ! 10. https://gcc.gnu.org/onlinedocs/11.1.0/ ! 11. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Contributors.html ! 12. https://gcc.gnu.org/index.html ! 13. mailto:gcc@gcc.gnu.org ! 14. https://gcc.gnu.org/mirrors.html ! 15. https://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-11/changes.html + GCC 11 Release Series Changes, New Features, and Fixes *************** General Improvements *** 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. --- 143,152 ---- 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. *************** New Languages and Language specific impr *** 454,460 **** core.stdc.config module. + User-defined attributes can now be used to annotate enum members, alias declarations, and function parameters. ! + Templates alias parameters can now be instantiated with basic types such as int or void function(). + The mixin construct can now be used as types in the form mixin(string) var. --- 457,463 ---- core.stdc.config module. + User-defined attributes can now be used to annotate enum members, alias declarations, and function parameters. ! + Template alias parameters can now be instantiated with basic types such as int or void function(). + The mixin construct can now be used as types in the form mixin(string) var. *************** New Targets and Target Specific Improvem *** 575,581 **** AArch64 & arm * A number of new CPUs are supported through arguments to the -mcpu ! and -mtune options in both the arm and aarch64 backends (GCC identifiers in parentheses): + Arm Cortex-A78 (cortex-a78). + Arm Cortex-A78AE (cortex-a78ae). --- 578,584 ---- AArch64 & arm * A number of new CPUs are supported through arguments to the -mcpu ! and -mtune options in both the arm and aarch64 back ends (GCC identifiers in parentheses): + Arm Cortex-A78 (cortex-a78). + Arm Cortex-A78AE (cortex-a78ae). *************** Operating Systems *** 718,725 **** AIX ! * GCC for AIX can be built as a 64 bit application and the runtime is ! built as FAT libraries containing both 32 bit and 64 bit objects. * Support AIX Vector Extended ABI with -mabi=vec-extabi. * Thread-Local uninitiated data placed in local common section. * Use thread-safe access in ctype. --- 721,728 ---- AIX ! * GCC for AIX can be built as a 64-bit application and the runtime is ! built as FAT libraries containing both 32-bit and 64-bit objects. * Support AIX Vector Extended ABI with -mabi=vec-extabi. * Thread-Local uninitiated data placed in local common section. * Use thread-safe access in ctype. *************** GCC 11.4 *** 807,831 **** * Add CS prefix to call and jmp to indirect thunk with branch target in r8-r15 registers via -mindirect-branch-cs-prefix. 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 ! 1. http://gcc.gnu.org/gcc-11/porting_to.html ! 2. http://gcc.gnu.org/onlinedocs/index.html#current 3. https://wg21.link/p0522r0 4. https://gcc.gnu.org/pipermail/gcc-patches/2020-May/546494.html 5. https://github.com/google/sanitizers/wiki/ThreadSanitizerCppManual --- 810,841 ---- * Add CS prefix to call and jmp to indirect thunk with branch target in r8-r15 registers via -mindirect-branch-cs-prefix. + GCC 11.5 + + This is the [71]list of problem reports (PRs) from GCC's bug tracking + system that are known to be fixed in the 11.5 release. This list might + not be complete (that is, it is possible that some PRs that have been + fixed are not listed here). + For questions related to the use of GCC, please consult these web ! pages and the [72]GCC manuals. If that fails, the ! [73]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [74]gcc@gcc.gnu.org. All of [75]our lists have public archives. ! Copyright (C) [76]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [77]maintained by the GCC team. Last modified ! 2024-07-19. References ! 1. https://gcc.gnu.org/gcc-11/porting_to.html ! 2. https://gcc.gnu.org/onlinedocs/index.html#current 3. https://wg21.link/p0522r0 4. https://gcc.gnu.org/pipermail/gcc-patches/2020-May/546494.html 5. https://github.com/google/sanitizers/wiki/ThreadSanitizerCppManual *************** References *** 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 --- 854,860 ---- 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 *************** References *** 860,867 **** 34. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wuninitialized 35. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Warray-parameter 36. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wvla-parameter ! 37. http://gcc.gnu.org/projects/cxx-status.html#cxx20 ! 38. http://gcc.gnu.org/projects/cxx-status.html#cxx23 39. https://gcc.gnu.org/PR41437 40. https://gcc.gnu.org/PR95307 41. https://gcc.gnu.org/PR97518 --- 870,877 ---- 34. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wuninitialized 35. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Warray-parameter 36. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wvla-parameter ! 37. https://gcc.gnu.org/projects/cxx-status.html#cxx20 ! 38. https://gcc.gnu.org/projects/cxx-status.html#cxx23 39. https://gcc.gnu.org/PR41437 40. https://gcc.gnu.org/PR95307 41. https://gcc.gnu.org/PR97518 *************** References *** 872,878 **** 46. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wmismatched-new-delete 47. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wvexing-parse 48. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wnonnull ! 49. http://gcc.gnu.org/gcc-5/changes.html#jit 50. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/jit/topics/compatibility.html 51. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/jit/topics/expressions.html#c.gcc_jit_global_set_initializer 52. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/jit/topics/asm.html --- 882,888 ---- 46. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wmismatched-new-delete 47. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wvexing-parse 48. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/gcc/Warning-Options.html#index-Wnonnull ! 49. https://gcc.gnu.org/gcc-5/changes.html#jit 50. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/jit/topics/compatibility.html 51. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/jit/topics/expressions.html#c.gcc_jit_global_set_initializer 52. https://gcc.gnu.org/onlinedocs/gcc-11.1.0/jit/topics/asm.html *************** References *** 894,930 **** 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 --- 904,947 ---- 68. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.2 69. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.3 70. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.4 ! 71. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=11.5 ! 72. https://gcc.gnu.org/onlinedocs/ ! 73. mailto:gcc-help@gcc.gnu.org ! 74. mailto:gcc@gcc.gnu.org ! 75. https://gcc.gnu.org/lists.html ! 76. https://www.fsf.org/ ! 77. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-10/index.html + GCC 10 Release Series ! (This release series is no longer supported.) ! ! July, 7, 2023 The [1]GNU project and the GCC developers are pleased to announce the ! release of GCC 10.5. This release is a bug-fix release, containing fixes for regressions in ! GCC 10.4 relative to previous releases of GCC. Release History + GCC 10.5 + July 7, 2023 ([2]changes, [3]documentation) + GCC 10.4 ! June 28, 2022 ([4]changes, [5]documentation) GCC 10.3 ! April 8, 2021 ([6]changes, [7]documentation) GCC 10.2 ! July 23, 2020 ([8]changes, [9]documentation) GCC 10.1 ! May 7, 2020 ([10]changes, [11]documentation) References and Acknowledgements *************** References and Acknowledgements *** 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 --- 949,1007 ---- supports several other languages aside from C, it now stands for the GNU Compiler Collection. The GCC developers would like to thank the numerous people that have contributed new features, improvements, bug fixes, and other changes as ! well as test results to GCC. This [12]amazing group of volunteers is what makes GCC successful. ! For additional information about GCC please refer to the [13]GCC ! project web site or contact the [14]GCC development mailing list. ! To obtain GCC please use [15]our mirror sites or [16]our version control system. For questions related to the use of GCC, please consult these web ! pages and the [17]GCC manuals. If that fails, the ! [18]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 [19]gcc@gcc.gnu.org. All of [20]our lists have public archives. ! Copyright (C) [21]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 [22]maintained by the GCC team. Last modified ! 2024-05-30. References 1. http://www.gnu.org/ ! 2. https://gcc.gnu.org/gcc-10/changes.html ! 3. https://gcc.gnu.org/onlinedocs/10.5.0/ ! 4. https://gcc.gnu.org/gcc-10/changes.html ! 5. https://gcc.gnu.org/onlinedocs/10.4.0/ ! 6. https://gcc.gnu.org/gcc-10/changes.html ! 7. https://gcc.gnu.org/onlinedocs/10.3.0/ ! 8. https://gcc.gnu.org/gcc-10/changes.html ! 9. https://gcc.gnu.org/onlinedocs/10.2.0/ ! 10. https://gcc.gnu.org/gcc-10/changes.html ! 11. https://gcc.gnu.org/onlinedocs/10.1.0/ ! 12. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Contributors.html ! 13. https://gcc.gnu.org/index.html ! 14. mailto:gcc@gcc.gnu.org ! 15. https://gcc.gnu.org/mirrors.html ! 16. https://gcc.gnu.org/git.html ! 17. https://gcc.gnu.org/onlinedocs/ ! 18. mailto:gcc-help@gcc.gnu.org ! 19. mailto:gcc@gcc.gnu.org ! 20. https://gcc.gnu.org/lists.html ! 21. https://www.fsf.org/ ! 22. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-10/changes.html + GCC 10 Release Series Changes, New Features, and Fixes *************** New Languages and Language-Specific Impr *** 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 --- 1169,1177 ---- 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 *************** typedef svbool_t pred512 __attribute__(( *** 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 --- 1451,1457 ---- 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 *************** GCC 10.4 *** 1724,1751 **** MMX no longer changes how they are passed nor returned. This ABI change is now diagnosed with -Wpsabi. 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 ! 1. http://gcc.gnu.org/gcc-10/porting_to.html ! 2. http://gcc.gnu.org/onlinedocs/index.html#current ! 3. http://gcc.gnu.org/gcc-10/changes.html#empty_base 4. https://www.mpfr.org/ ! 5. http://gcc.gnu.org/gcc-10/changes.html#iterator_base 6. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/cpp/_005f_005fhas_005fbuiltin.html#g_t_005f_005fhas_005fbuiltin 7. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Optimize-Options.html#index-fno-allocation-dce 8. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Optimize-Options.html#index-fprofile-partial-training --- 1740,1774 ---- MMX no longer changes how they are passed nor returned. This ABI change is now diagnosed with -Wpsabi. + GCC 10.5 + + This is the [61]list of problem reports (PRs) from GCC's bug tracking + system that are known to be fixed in the 10.5 release. This list might + not be complete (that is, it is possible that some PRs that have been + fixed are not listed here). + For questions related to the use of GCC, please consult these web ! pages and the [62]GCC manuals. If that fails, the ! [63]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [64]gcc@gcc.gnu.org. All of [65]our lists have public archives. ! Copyright (C) [66]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [67]maintained by the GCC team. Last modified ! 2023-07-07. References ! 1. https://gcc.gnu.org/gcc-10/porting_to.html ! 2. https://gcc.gnu.org/onlinedocs/index.html#current ! 3. https://gcc.gnu.org/gcc-10/changes.html#empty_base 4. https://www.mpfr.org/ ! 5. https://gcc.gnu.org/gcc-10/changes.html#iterator_base 6. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/cpp/_005f_005fhas_005fbuiltin.html#g_t_005f_005fhas_005fbuiltin 7. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Optimize-Options.html#index-fno-allocation-dce 8. https://gcc.gnu.org/onlinedocs/gcc-10.1.0/gcc/Optimize-Options.html#index-fprofile-partial-training *************** References *** 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 --- 1781,1787 ---- 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 *************** References *** 1784,1790 **** 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 --- 1807,1813 ---- 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%20Architecture 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 *************** References *** 1801,1814 **** 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.) --- 1824,1839 ---- 58. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.2 59. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.3 60. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.4 ! 61. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=10.5 ! 62. https://gcc.gnu.org/onlinedocs/ ! 63. mailto:gcc-help@gcc.gnu.org ! 64. mailto:gcc@gcc.gnu.org ! 65. https://gcc.gnu.org/lists.html ! 66. https://www.fsf.org/ ! 67. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-9/index.html + GCC 9 Release Series (This release series is no longer supported.) *************** References and Acknowledgements *** 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 --- 1869,1927 ---- supports several other languages aside from C, it now stands for the GNU Compiler Collection. The GCC developers would like to thank the numerous people that have contributed new features, improvements, bug fixes, and other changes as ! well as test results to GCC. This [12]amazing group of volunteers is what makes GCC successful. ! For additional information about GCC please refer to the [13]GCC ! project web site or contact the [14]GCC development mailing list. ! To obtain GCC please use [15]our mirror sites or [16]our version control system. For questions related to the use of GCC, please consult these web ! pages and the [17]GCC manuals. If that fails, the ! [18]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 [19]gcc@gcc.gnu.org. All of [20]our lists have public archives. ! Copyright (C) [21]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 [22]maintained by the GCC team. Last modified ! 2024-05-30. References 1. http://www.gnu.org/ ! 2. https://gcc.gnu.org/gcc-9/changes.html ! 3. https://gcc.gnu.org/onlinedocs/9.5.0/ ! 4. https://gcc.gnu.org/gcc-9/changes.html ! 5. https://gcc.gnu.org/onlinedocs/9.4.0/ ! 6. https://gcc.gnu.org/gcc-9/changes.html ! 7. https://gcc.gnu.org/onlinedocs/9.3.0/ ! 8. https://gcc.gnu.org/gcc-9/changes.html ! 9. https://gcc.gnu.org/onlinedocs/9.2.0/ ! 10. https://gcc.gnu.org/gcc-9/changes.html ! 11. https://gcc.gnu.org/onlinedocs/9.1.0/ ! 12. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Contributors.html ! 13. https://gcc.gnu.org/index.html ! 14. mailto:gcc@gcc.gnu.org ! 15. https://gcc.gnu.org/mirrors.html ! 16. https://gcc.gnu.org/git.html ! 17. https://gcc.gnu.org/onlinedocs/ ! 18. mailto:gcc-help@gcc.gnu.org ! 19. mailto:gcc@gcc.gnu.org ! 20. https://gcc.gnu.org/lists.html ! 21. https://www.fsf.org/ ! 22. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-9/changes.html + GCC 9 Release Series Changes, New Features, and Fixes *************** mory"); *** 2035,2041 **** chain, and profile information (if available). * Inter-procedural propagation of stack alignment can now be controlled by [22]-fipa-stack-alignment. ! * Propagation of addressability, readonly and writeonly flags on static variables can now be controlled by [23]-fipa-reference-addressable. --- 2057,2063 ---- chain, and profile information (if available). * Inter-procedural propagation of stack alignment can now be controlled by [22]-fipa-stack-alignment. ! * Propagation of addressability, readonly, and writeonly flags on static variables can now be controlled by [23]-fipa-reference-addressable. *************** foo (int how) *** 2074,2081 **** can be transformed into 100 * how + 5 (for values defined in the switch statement). * Inter-procedural optimization improvements: ! + Inliner defaults was tuned to better suits modern C++ ! codebases especially when built with link time optimizations. New parameters max-inline-insns-small, max-inline-insns-size, uninlined-function-insns, uninlined-function-time, uninlined-thunk-insns, and uninlined-thunk-time were added. --- 2096,2103 ---- can be transformed into 100 * how + 5 (for values defined in the switch statement). * Inter-procedural optimization improvements: ! + Inliner defaults were tuned to better suit modern C++ ! codebases, especially when built with link time-optimizations. New parameters max-inline-insns-small, max-inline-insns-size, uninlined-function-insns, uninlined-function-time, uninlined-thunk-insns, and uninlined-thunk-time were added. *************** foo (int how) *** 2086,2110 **** + [29]-fprofile-use now enables [30]-fversion-loops-for-strides, [31]-floop-interchange, [32]-floop-unroll-and-jam, [33]-ftree-loop-distribution. ! + Streaming of counter histograms was removed. This reduces the ! size of profile files. Histogram is computed on the fly with ! link-time optimization. Parameter hot-bb-count-ws-permille was ! reduced from 999 to 990 to account for more precise ! histograms. * Link-time optimization improvements: ! + Types are now simplified prior streaming resulting in ! significant reductions of the LTO object files, link-time ! memory use, and improvements of link-time parallelism. ! + Default number of partitions (--param lto-partitions) was increased from 32 to 128 enabling effective use of CPUs with more than 32 hyperthreads. --param ! lto-max-streaming-parallelism can now be used to control number of streaming processes. + Warnings on C++ One Decl Rule violations (-Wodr) are now more informative and produce fewer redundant results. Overall compile time of Firefox 66 and LibreOffice 6.2.3 on an 8-core machine was reduced by about 5% compared to GCC 8.3, and the ! size of LTO object files by 7%. LTO link-time improves by 11% on an 8-core machine and scales significantly better for more parallel build environments. The serial stage of the link-time optimization is 28% faster consuming 20% less memory. The parallel stage now --- 2108,2132 ---- + [29]-fprofile-use now enables [30]-fversion-loops-for-strides, [31]-floop-interchange, [32]-floop-unroll-and-jam, [33]-ftree-loop-distribution. ! + Streaming of counter histograms was removed, which reduces the ! size of profile files. Histograms are computed on the fly with ! link-time optimization. ! + The parameter hot-bb-count-ws-permille was reduced from 999 to ! 990 to account for more precise histograms. * Link-time optimization improvements: ! + Types are now simplified prior to streaming resulting in ! significant reductions of LTO object file sizes and link-time ! memory use as well as improvements of link-time parallelism. ! + The default number of partitions (--param lto-partitions) was increased from 32 to 128 enabling effective use of CPUs with more than 32 hyperthreads. --param ! lto-max-streaming-parallelism can now be used to control the number of streaming processes. + Warnings on C++ One Decl Rule violations (-Wodr) are now more informative and produce fewer redundant results. Overall compile time of Firefox 66 and LibreOffice 6.2.3 on an 8-core machine was reduced by about 5% compared to GCC 8.3, and the ! size of LTO object files by 7%. LTO link time improves by 11% on an 8-core machine and scales significantly better for more parallel build environments. The serial stage of the link-time optimization is 28% faster consuming 20% less memory. The parallel stage now *************** New Targets and Target Specific Improvem *** 2586,2592 **** The produced code is compatible only with newer glibc versions, which provide the __fentry__ symbol and do not clobber r0 when resolving lazily bound functions. -mfentry is only supported when ! generating 64 bit code and does not work with nested C functions. * The -mnop-mcount option can be used to emit NOP instructions instead of an mcount or fentry call stub. * With the -mrecord-mcount option a __mcount_loc section is generated --- 2608,2614 ---- The produced code is compatible only with newer glibc versions, which provide the __fentry__ symbol and do not clobber r0 when resolving lazily bound functions. -mfentry is only supported when ! generating 64-bit code and does not work with nested C functions. * The -mnop-mcount option can be used to emit NOP instructions instead of an mcount or fentry call stub. * With the -mrecord-mcount option a __mcount_loc section is generated *************** GCC 9.5 *** 2699,2710 **** provided this notice is preserved. These pages are [75]maintained by the GCC team. Last modified ! 2023-02-22. References ! 1. http://gcc.gnu.org/gcc-9/porting_to.html ! 2. http://gcc.gnu.org/onlinedocs/index.html#current 3. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88469 4. https://gcc.gnu.org/ml/gcc/2018-10/msg00139.html 5. https://gcc.gnu.org/ml/gcc/2019-04/msg00023.html --- 2721,2732 ---- provided this notice is preserved. These pages are [75]maintained by the GCC team. Last modified ! 2024-05-09. References ! 1. https://gcc.gnu.org/gcc-9/porting_to.html ! 2. https://gcc.gnu.org/onlinedocs/index.html#current 3. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88469 4. https://gcc.gnu.org/ml/gcc/2018-10/msg00139.html 5. https://gcc.gnu.org/ml/gcc/2019-04/msg00023.html *************** References *** 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 --- 2760,2766 ---- 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 *************** References *** 2755,2761 **** 50. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wredundant-move 51. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wpessimizing-move 52. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wclass-conversion ! 53. http://gcc.gnu.org/projects/cxx-status.html#cxx2a 54. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Warning-Options.html#index-Wformat 55. https://github.com/oneapi-src/oneTBB 56. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gfortran/Fortran-Dialect-Options.html#index-fdec-include --- 2777,2783 ---- 50. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wredundant-move 51. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wpessimizing-move 52. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/C_002b_002b-Dialect-Options.html#index-Wclass-conversion ! 53. https://gcc.gnu.org/projects/cxx-status.html#cxx2a 54. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gcc/Warning-Options.html#index-Wformat 55. https://github.com/oneapi-src/oneTBB 56. https://gcc.gnu.org/onlinedocs/gcc-9.1.0/gfortran/Fortran-Dialect-Options.html#index-fdec-include *************** References *** 2780,2785 **** --- 2802,2808 ---- 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.) *************** References and Acknowledgements *** 2842,2868 **** 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-8/changes.html ! 3. http://gcc.gnu.org/onlinedocs/8.5.0/ ! 4. http://gcc.gnu.org/gcc-8/changes.html ! 5. http://gcc.gnu.org/onlinedocs/8.4.0/ ! 6. http://gcc.gnu.org/gcc-8/changes.html ! 7. http://gcc.gnu.org/onlinedocs/8.3.0/ ! 8. http://gcc.gnu.org/gcc-8/changes.html ! 9. http://gcc.gnu.org/onlinedocs/8.2.0/ ! 10. http://gcc.gnu.org/gcc-8/changes.html ! 11. http://gcc.gnu.org/onlinedocs/8.1.0/ ! 12. http://gcc.gnu.org/gcc-8/buildstat.html ! 13. http://gcc.gnu.org/onlinedocs/gcc-8.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 --- 2865,2891 ---- provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2024-05-30. References 1. http://www.gnu.org/ ! 2. https://gcc.gnu.org/gcc-8/changes.html ! 3. https://gcc.gnu.org/onlinedocs/8.5.0/ ! 4. https://gcc.gnu.org/gcc-8/changes.html ! 5. https://gcc.gnu.org/onlinedocs/8.4.0/ ! 6. https://gcc.gnu.org/gcc-8/changes.html ! 7. https://gcc.gnu.org/onlinedocs/8.3.0/ ! 8. https://gcc.gnu.org/gcc-8/changes.html ! 9. https://gcc.gnu.org/onlinedocs/8.2.0/ ! 10. https://gcc.gnu.org/gcc-8/changes.html ! 11. https://gcc.gnu.org/onlinedocs/8.1.0/ ! 12. https://gcc.gnu.org/gcc-8/buildstat.html ! 13. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Contributors.html ! 14. https://gcc.gnu.org/index.html 15. mailto:gcc@gcc.gnu.org ! 16. https://gcc.gnu.org/mirrors.html ! 17. https://gcc.gnu.org/git.html 18. https://gcc.gnu.org/onlinedocs/ 19. mailto:gcc-help@gcc.gnu.org 20. mailto:gcc@gcc.gnu.org *************** References *** 2871,2876 **** --- 2894,2900 ---- 23. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-8/changes.html + GCC 8 Release Series Changes, New Features, and Fixes *************** void copy (const char *s) *** 3155,3161 **** { char buf[80]; strncpy (buf, s, sizeof buf); ! … } warning: 'strncpy' specified bound 80 equals destination size [-Wstringop-trunca tion] --- 3179,3185 ---- { char buf[80]; strncpy (buf, s, sizeof buf); ! ... } warning: 'strncpy' specified bound 80 equals destination size [-Wstringop-trunca tion] *************** void f (void) *** 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] --- 3252,3258 ---- { char a[] = "abcd1234"; strcpy (a, a + 4); ! ... } warning: 'strcpy' accessing 5 bytes at offsets 0 and 4 overlaps 1 byte at offset 4 [-Wrestrict] *************** GCC 8.5 *** 3954,3961 **** References ! 1. http://gcc.gnu.org/gcc-8/porting_to.html ! 2. http://gcc.gnu.org/onlinedocs/index.html#current 3. https://gcc.gnu.org/ml/gcc/2018-04/msg00102.html 4. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html#index-Wmultistatement-macros 5. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html#index-Wstringop-truncation --- 3978,3985 ---- References ! 1. https://gcc.gnu.org/gcc-8/porting_to.html ! 2. https://gcc.gnu.org/onlinedocs/index.html#current 3. https://gcc.gnu.org/ml/gcc/2018-04/msg00102.html 4. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html#index-Wmultistatement-macros 5. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html#index-Wstringop-truncation *************** References *** 3970,3976 **** 14. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html#index-Wformat-truncation 15. https://gcc.gnu.org/PR86094 16. https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Dialect-Options.html#index-Wclass-memaccess ! 17. http://gcc.gnu.org/projects/cxx-status.html#cxx2a 18. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/jit/topics/types.html#gcc_jit_type_get_vector 19. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/jit/topics/expressions.html#gcc_jit_context_new_rvalue_from_vector 20. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/jit/topics/types.html#gcc_jit_type_get_aligned --- 3994,4000 ---- 14. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/gcc/Warning-Options.html#index-Wformat-truncation 15. https://gcc.gnu.org/PR86094 16. https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Dialect-Options.html#index-Wclass-memaccess ! 17. https://gcc.gnu.org/projects/cxx-status.html#cxx2a 18. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/jit/topics/types.html#gcc_jit_type_get_vector 19. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/jit/topics/expressions.html#gcc_jit_context_new_rvalue_from_vector 20. https://gcc.gnu.org/onlinedocs/gcc-8.1.0/jit/topics/types.html#gcc_jit_type_get_aligned *************** References *** 3986,3992 **** 30. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=8.0 31. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=8.2 32. https://gcc.gnu.org/PR86094 ! 33. http://gcc.gnu.org/gcc-8/changes.html#cxx 34. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84413 35. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=8.3 36. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87137 --- 4010,4016 ---- 30. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=8.0 31. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=8.2 32. https://gcc.gnu.org/PR86094 ! 33. https://gcc.gnu.org/gcc-8/changes.html#cxx 34. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84413 35. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=8.3 36. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87137 *************** References *** 4000,4005 **** --- 4024,4030 ---- 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.) *************** References and Acknowledgements *** 4062,4088 **** 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-7/changes.html ! 3. http://gcc.gnu.org/onlinedocs/7.5.0/ ! 4. http://gcc.gnu.org/gcc-7/changes.html ! 5. http://gcc.gnu.org/onlinedocs/7.4.0/ ! 6. http://gcc.gnu.org/gcc-7/changes.html ! 7. http://gcc.gnu.org/onlinedocs/7.3.0/ ! 8. http://gcc.gnu.org/gcc-7/changes.html ! 9. http://gcc.gnu.org/onlinedocs/7.2.0/ ! 10. http://gcc.gnu.org/gcc-7/changes.html ! 11. http://gcc.gnu.org/onlinedocs/7.1.0/ ! 12. http://gcc.gnu.org/gcc-7/buildstat.html ! 13. http://gcc.gnu.org/onlinedocs/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 --- 4087,4113 ---- provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2024-05-30. References 1. http://www.gnu.org/ ! 2. https://gcc.gnu.org/gcc-7/changes.html ! 3. https://gcc.gnu.org/onlinedocs/7.5.0/ ! 4. https://gcc.gnu.org/gcc-7/changes.html ! 5. https://gcc.gnu.org/onlinedocs/7.4.0/ ! 6. https://gcc.gnu.org/gcc-7/changes.html ! 7. https://gcc.gnu.org/onlinedocs/7.3.0/ ! 8. https://gcc.gnu.org/gcc-7/changes.html ! 9. https://gcc.gnu.org/onlinedocs/7.2.0/ ! 10. https://gcc.gnu.org/gcc-7/changes.html ! 11. https://gcc.gnu.org/onlinedocs/7.1.0/ ! 12. https://gcc.gnu.org/gcc-7/buildstat.html ! 13. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 14. https://gcc.gnu.org/index.html 15. mailto:gcc@gcc.gnu.org ! 16. https://gcc.gnu.org/mirrors.html ! 17. https://gcc.gnu.org/git.html 18. https://gcc.gnu.org/onlinedocs/ 19. mailto:gcc-help@gcc.gnu.org 20. mailto:gcc@gcc.gnu.org *************** References *** 4091,4096 **** --- 4116,4122 ---- 23. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-7/changes.html + GCC 7 Release Series Changes, New Features, and Fixes *************** void f (int n) *** 4459,4465 **** d = alloca (n); else d = malloc (n); ! … } warning: argument to 'alloca may be too large due to conversion from 'int' to 'l --- 4485,4491 ---- 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= *** 4472,4478 **** void f (size_t n) { char *d = alloca (n); ! … } warning: unbounded use of 'alloca' [-Walloca-larger-than=] --- 4498,4504 ---- void f (size_t n) { char *d = alloca (n); ! ... } warning: unbounded use of 'alloca' [-Walloca-larger-than=] *************** void f (unsigned x) *** 4520,4526 **** { char d[4]; snprintf (d, sizeof d, "%#02x", x & 0xff); ! … } warning: 'snprintf' output may be truncated before the last format character [-W --- 4546,4552 ---- { 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) *** 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 --- 4574,4580 ---- 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 *** 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 --- 4712,4721 ---- + 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) *** 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 --- 4885,4891 ---- } * 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 *** 5162,5169 **** References ! 1. http://gcc.gnu.org/gcc-7/porting_to.html ! 2. http://gcc.gnu.org/onlinedocs/index.html#current 3. https://gcc.gnu.org/wiki/LRAIsDefault 4. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/libstdc++/manual/manual/profile_mode.html 5. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77728 --- 5188,5195 ---- References ! 1. https://gcc.gnu.org/gcc-7/porting_to.html ! 2. https://gcc.gnu.org/onlinedocs/index.html#current 3. https://gcc.gnu.org/wiki/LRAIsDefault 4. https://gcc.gnu.org/onlinedocs/gcc-7.1.0/libstdc++/manual/manual/profile_mode.html 5. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77728 *************** References *** 5197,5202 **** --- 5223,5229 ---- 33. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-6/index.html + GCC 6 Release Series (This release series is no longer supported.) *************** References and Acknowledgements *** 5259,5285 **** 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-6/changes.html ! 3. http://gcc.gnu.org/onlinedocs/6.5.0/ ! 4. http://gcc.gnu.org/gcc-6/changes.html ! 5. http://gcc.gnu.org/onlinedocs/6.4.0/ ! 6. http://gcc.gnu.org/gcc-6/changes.html ! 7. http://gcc.gnu.org/onlinedocs/6.3.0/ ! 8. http://gcc.gnu.org/gcc-6/changes.html ! 9. http://gcc.gnu.org/onlinedocs/6.2.0/ ! 10. http://gcc.gnu.org/gcc-6/changes.html ! 11. http://gcc.gnu.org/onlinedocs/6.1.0/ ! 12. http://gcc.gnu.org/gcc-6/buildstat.html ! 13. http://gcc.gnu.org/onlinedocs/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 --- 5286,5312 ---- provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2024-05-30. References 1. http://www.gnu.org/ ! 2. https://gcc.gnu.org/gcc-6/changes.html ! 3. https://gcc.gnu.org/onlinedocs/6.5.0/ ! 4. https://gcc.gnu.org/gcc-6/changes.html ! 5. https://gcc.gnu.org/onlinedocs/6.4.0/ ! 6. https://gcc.gnu.org/gcc-6/changes.html ! 7. https://gcc.gnu.org/onlinedocs/6.3.0/ ! 8. https://gcc.gnu.org/gcc-6/changes.html ! 9. https://gcc.gnu.org/onlinedocs/6.2.0/ ! 10. https://gcc.gnu.org/gcc-6/changes.html ! 11. https://gcc.gnu.org/onlinedocs/6.1.0/ ! 12. https://gcc.gnu.org/gcc-6/buildstat.html ! 13. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 14. https://gcc.gnu.org/index.html 15. mailto:gcc@gcc.gnu.org ! 16. https://gcc.gnu.org/mirrors.html ! 17. https://gcc.gnu.org/git.html 18. https://gcc.gnu.org/onlinedocs/ 19. mailto:gcc-help@gcc.gnu.org 20. mailto:gcc@gcc.gnu.org *************** References *** 5288,5293 **** --- 5315,5321 ---- 23. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-6/changes.html + GCC 6 Release Series Changes, New Features, and Fixes *************** Operating Systems *** 6000,6007 **** References ! 1. http://gcc.gnu.org/gcc-6/porting_to.html ! 2. http://gcc.gnu.org/onlinedocs/index.html#current 3. https://gcc.gnu.org/ml/gcc/2015-08/msg00101.html 4. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71151 5. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87822 --- 6028,6035 ---- References ! 1. https://gcc.gnu.org/gcc-6/porting_to.html ! 2. https://gcc.gnu.org/onlinedocs/index.html#current 3. https://gcc.gnu.org/ml/gcc/2015-08/msg00101.html 4. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71151 5. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87822 *************** References *** 6034,6039 **** --- 6062,6068 ---- 32. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-5/index.html + GCC 5 Release Series (This release series is no longer supported.) *************** References and Acknowledgements *** 6096,6122 **** 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-5/changes.html ! 3. http://gcc.gnu.org/onlinedocs/5.5.0/ ! 4. http://gcc.gnu.org/gcc-5/changes.html ! 5. http://gcc.gnu.org/onlinedocs/5.4.0/ ! 6. http://gcc.gnu.org/gcc-5/changes.html ! 7. http://gcc.gnu.org/onlinedocs/5.3.0/ ! 8. http://gcc.gnu.org/gcc-5/changes.html ! 9. http://gcc.gnu.org/onlinedocs/5.2.0/ ! 10. http://gcc.gnu.org/gcc-5/changes.html ! 11. http://gcc.gnu.org/onlinedocs/5.1.0/ ! 12. http://gcc.gnu.org/gcc-5/buildstat.html ! 13. http://gcc.gnu.org/onlinedocs/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 --- 6125,6151 ---- provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2024-05-30. References 1. http://www.gnu.org/ ! 2. https://gcc.gnu.org/gcc-5/changes.html ! 3. https://gcc.gnu.org/onlinedocs/5.5.0/ ! 4. https://gcc.gnu.org/gcc-5/changes.html ! 5. https://gcc.gnu.org/onlinedocs/5.4.0/ ! 6. https://gcc.gnu.org/gcc-5/changes.html ! 7. https://gcc.gnu.org/onlinedocs/5.3.0/ ! 8. https://gcc.gnu.org/gcc-5/changes.html ! 9. https://gcc.gnu.org/onlinedocs/5.2.0/ ! 10. https://gcc.gnu.org/gcc-5/changes.html ! 11. https://gcc.gnu.org/onlinedocs/5.1.0/ ! 12. https://gcc.gnu.org/gcc-5/buildstat.html ! 13. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 14. https://gcc.gnu.org/index.html 15. mailto:gcc@gcc.gnu.org ! 16. https://gcc.gnu.org/mirrors.html ! 17. https://gcc.gnu.org/git.html 18. https://gcc.gnu.org/onlinedocs/ 19. mailto:gcc-help@gcc.gnu.org 20. mailto:gcc@gcc.gnu.org *************** References *** 6125,6130 **** --- 6154,6160 ---- 23. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-5/changes.html + GCC 5 Release Series Changes, New Features, and Fixes *************** New Targets and Target Specific Improvem *** 6659,6665 **** Using -mcpu=cortex-a72 requires a version of GNU binutils that has support for the Cortex-A72. * The transitional options -mlra and -mno-lra have been removed. The ! AArch64 backend now uses the local register allocator (LRA) only. ARM --- 6689,6695 ---- Using -mcpu=cortex-a72 requires a version of GNU binutils that has support for the Cortex-A72. * The transitional options -mlra and -mno-lra have been removed. The ! AArch64 back end now uses the local register allocator (LRA) only. ARM *************** New Targets and Target Specific Improvem *** 6692,6698 **** -mtpcs-leaf-frame which are only applicable to the old ABI have been deprecated. * The transitional options -mlra and -mno-lra have been removed. The ! ARM backend now uses the local register allocator (LRA) only. AVR --- 6722,6728 ---- -mtpcs-leaf-frame which are only applicable to the old ABI have been deprecated. * The transitional options -mlra and -mno-lra have been removed. The ! ARM back end now uses the local register allocator (LRA) only. AVR *************** Target Specific Changes *** 7004,7029 **** 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 8. https://gcc.gnu.org/install/configure.html 9. https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations ! 10. http://gcc.gnu.org/projects/cxx1y.html 11. https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations ! 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 --- 7034,7059 ---- provided this notice is preserved. These pages are [49]maintained by the GCC team. Last modified ! 2024-06-08. References ! 1. https://gcc.gnu.org/gcc-5/changes.html#libstdcxx 2. https://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html 3. https://savannah.nongnu.org/bugs/?44574 ! 4. https://gcc.gnu.org/wiki/Intel%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 8. https://gcc.gnu.org/install/configure.html 9. https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations ! 10. https://gcc.gnu.org/projects/cxx1y.html 11. https://isocpp.org/std/standing-documents/sd-6-sg10-feature-test-recommendations ! 12. https://gcc.gnu.org/projects/cxx1y.html ! 13. https://gcc.gnu.org/projects/cxx1y.html ! 14. https://gcc.gnu.org/projects/cxx1y.html 15. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3639.html ! 16. https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html 17. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/libstdc++/manual/manual/status.html#status.iso.2011 18. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/libstdc++/manual/manual/status.html#status.iso.2014 19. https://gcc.gnu.org/onlinedocs/gcc-5.1.0/libstdc++/manual/manual/status.html#status.iso.2014 *************** References *** 7059,7064 **** --- 7089,7095 ---- 49. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-4.9/index.html + GCC 4.9 Release Series (This release series is no longer supported.) *************** References and Acknowledgements *** 7121,7147 **** 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-4.9/changes.html ! 3. http://gcc.gnu.org/onlinedocs/4.9.4/ ! 4. http://gcc.gnu.org/gcc-4.9/changes.html ! 5. http://gcc.gnu.org/onlinedocs/4.9.3/ ! 6. http://gcc.gnu.org/gcc-4.9/changes.html ! 7. http://gcc.gnu.org/onlinedocs/4.9.2/ ! 8. http://gcc.gnu.org/gcc-4.9/changes.html ! 9. http://gcc.gnu.org/onlinedocs/4.9.1/ ! 10. http://gcc.gnu.org/gcc-4.9/changes.html 11. https://gcc.gnu.org/onlinedocs/4.9.0/ ! 12. http://gcc.gnu.org/gcc-4.9/buildstat.html 13. https://gcc.gnu.org/onlinedocs/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 --- 7152,7178 ---- provided this notice is preserved. These pages are [23]maintained by the GCC team. Last modified ! 2024-05-30. References 1. http://www.gnu.org/ ! 2. https://gcc.gnu.org/gcc-4.9/changes.html ! 3. https://gcc.gnu.org/onlinedocs/4.9.4/ ! 4. https://gcc.gnu.org/gcc-4.9/changes.html ! 5. https://gcc.gnu.org/onlinedocs/4.9.3/ ! 6. https://gcc.gnu.org/gcc-4.9/changes.html ! 7. https://gcc.gnu.org/onlinedocs/4.9.2/ ! 8. https://gcc.gnu.org/gcc-4.9/changes.html ! 9. https://gcc.gnu.org/onlinedocs/4.9.1/ ! 10. https://gcc.gnu.org/gcc-4.9/changes.html 11. https://gcc.gnu.org/onlinedocs/4.9.0/ ! 12. https://gcc.gnu.org/gcc-4.9/buildstat.html 13. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 14. https://gcc.gnu.org/index.html 15. mailto:gcc@gcc.gnu.org ! 16. https://gcc.gnu.org/mirrors.html ! 17. https://gcc.gnu.org/git.html 18. https://gcc.gnu.org/onlinedocs/ 19. mailto:gcc-help@gcc.gnu.org 20. mailto:gcc@gcc.gnu.org *************** References *** 7150,7155 **** --- 7181,7187 ---- 23. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-4.9/changes.html + GCC 4.9 Release Series Changes, New Features, and Fixes *************** New Languages and Language specific impr *** 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 --- 7295,7315 ---- -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++; }; *** 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. --- 7414,7421 ---- // 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++; } *** 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 --- 7508,7514 ---- 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 *************** New Targets and Target Specific Improvem *** 7524,7538 **** * Coverage of more of the ISA including the SIMD extensions has been added. The Advanced SIMD intrinsics have also been improved. * The new local register allocator (LRA) is now on by default for the ! AArch64 backend. * The REE (Redundant extension elimination) pass has now been enabled ! by default for the AArch64 backend. * Tuning for the Cortex-A53 and Cortex-A57 has been improved. * Initial big.LITTLE tuning support for the combination of Cortex-A57 and Cortex-A53 was added through the -mcpu=cortex-a57.cortex-a53 option. * A number of structural changes have been made to both the ARM and ! AArch64 backends to facilitate improved code-generation. * As of GCC 4.9.2 a workaround for the ARM Cortex-A53 erratum 835769 has been added and can be enabled by giving the -mfix-cortex-a53-835769 option. Alternatively it can be enabled by --- 7556,7570 ---- * Coverage of more of the ISA including the SIMD extensions has been added. The Advanced SIMD intrinsics have also been improved. * The new local register allocator (LRA) is now on by default for the ! AArch64 back end. * The REE (Redundant extension elimination) pass has now been enabled ! by default for the AArch64 back end. * Tuning for the Cortex-A53 and Cortex-A57 has been improved. * Initial big.LITTLE tuning support for the combination of Cortex-A57 and Cortex-A53 was added through the -mcpu=cortex-a57.cortex-a53 option. * A number of structural changes have been made to both the ARM and ! AArch64 back ends to facilitate improved code-generation. * As of GCC 4.9.2 a workaround for the ARM Cortex-A53 erratum 835769 has been added and can be enabled by giving the -mfix-cortex-a53-835769 option. Alternatively it can be enabled by *************** New Targets and Target Specific Improvem *** 7573,7579 **** data segments to be relative to text segments has been added. This is on by default for all targets except VxWorks RTP. * A number of infrastructural changes have been made to both the ARM ! and AArch64 backends to facilitate improved code-generation. * GCC now supports Cortex-A12 and the Cortex-R7 through the -mcpu=cortex-a12 and -mcpu=cortex-r7 options. * GCC now has tuning for the Cortex-A57 and Cortex-A53 through the --- 7605,7611 ---- data segments to be relative to text segments has been added. This is on by default for all targets except VxWorks RTP. * A number of infrastructural changes have been made to both the ARM ! and AArch64 back ends to facilitate improved code-generation. * GCC now supports Cortex-A12 and the Cortex-R7 through the -mcpu=cortex-a12 and -mcpu=cortex-r7 options. * GCC now has tuning for the Cortex-A57 and Cortex-A53 through the *************** New Targets and Target Specific Improvem *** 7635,7648 **** MSP430 ! * A new command-line option -mcpu= has been added to the MSP430 ! backend. This option is used to specify the ISA to be used. ! Accepted values are msp430 (the default), msp430x and msp430xv2. ! The ISA is no longer deduced from the -mmcu= option as there are ! far too many different MCU names. The -mmcu= option is still ! supported, and this is still used to select linker scripts and ! generate a C preprocessor symbol that will be recognised by the ! msp430.h header file. NDS32 --- 7667,7680 ---- MSP430 ! * A new command-line option -mcpu= has been added to the MSP430 back ! end. This option is used to specify the ISA to be used. Accepted ! values are msp430 (the default), msp430x and msp430xv2. The ISA is ! no longer deduced from the -mmcu= option as there are far too many ! different MCU names. The -mmcu= option is still supported, and this ! is still used to select linker scripts and generate a C ! preprocessor symbol that will be recognised by the msp430.h header ! file. NDS32 *************** GCC 4.9.4 *** 7759,7765 **** provided this notice is preserved. These pages are [33]maintained by the GCC team. Last modified ! 2023-01-19. References --- 7791,7797 ---- provided this notice is preserved. These pages are [33]maintained by the GCC team. Last modified ! 2023-09-02. References *************** References *** 7770,7782 **** 5. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Optimize-Options.html#index-fsimd-cost-model-908 6. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Language-Independent-Options.html#index-fdiagnostics-color-252 7. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Loop-Specific-Pragmas.html ! 8. 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 --- 7802,7814 ---- 5. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Optimize-Options.html#index-fsimd-cost-model-908 6. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Language-Independent-Options.html#index-fdiagnostics-color-252 7. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/Loop-Specific-Pragmas.html ! 8. https://gcc.gnu.org/projects/cxx1y.html 9. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3638.html ! 10. https://gcc.gnu.org/projects/cxx1y.html ! 11. https://gcc.gnu.org/projects/cxx1y.html ! 12. https://gcc.gnu.org/projects/cxx1y.html ! 13. https://gcc.gnu.org/projects/cxx1y.html ! 14. https://gcc.gnu.org/projects/cxx1y.html 15. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3889.pdf 16. https://gcc.gnu.org/onlinedocs/gcc-4.9.2/libstdc++/manual/manual/status.html#status.iso.2011 17. https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.2014 *************** References *** 7798,7803 **** --- 7830,7836 ---- 33. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-4.8/index.html + GCC 4.8 Release Series (This release series is no longer supported.) *************** References and Acknowledgements *** 7868,7891 **** References 1. http://www.gnu.org/ ! 2. http://gcc.gnu.org/gcc-4.8/changes.html 3. https://gcc.gnu.org/onlinedocs/4.8.5/ ! 4. http://gcc.gnu.org/gcc-4.8/changes.html 5. https://gcc.gnu.org/onlinedocs/4.8.4/ ! 6. http://gcc.gnu.org/gcc-4.8/changes.html 7. https://gcc.gnu.org/onlinedocs/4.8.3/ ! 8. http://gcc.gnu.org/gcc-4.8/changes.html 9. https://gcc.gnu.org/onlinedocs/4.8.2/ ! 10. http://gcc.gnu.org/gcc-4.8/changes.html 11. https://gcc.gnu.org/onlinedocs/4.8.1/ ! 12. http://gcc.gnu.org/gcc-4.8/changes.html 13. https://gcc.gnu.org/onlinedocs/4.8.0/ ! 14. http://gcc.gnu.org/gcc-4.8/buildstat.html 15. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 16. http://gcc.gnu.org/index.html 17. mailto:gcc@gcc.gnu.org ! 18. http://gcc.gnu.org/mirrors.html ! 19. http://gcc.gnu.org/git.html 20. https://gcc.gnu.org/onlinedocs/ 21. mailto:gcc-help@gcc.gnu.org 22. mailto:gcc@gcc.gnu.org --- 7901,7924 ---- References 1. http://www.gnu.org/ ! 2. https://gcc.gnu.org/gcc-4.8/changes.html 3. https://gcc.gnu.org/onlinedocs/4.8.5/ ! 4. https://gcc.gnu.org/gcc-4.8/changes.html 5. https://gcc.gnu.org/onlinedocs/4.8.4/ ! 6. https://gcc.gnu.org/gcc-4.8/changes.html 7. https://gcc.gnu.org/onlinedocs/4.8.3/ ! 8. https://gcc.gnu.org/gcc-4.8/changes.html 9. https://gcc.gnu.org/onlinedocs/4.8.2/ ! 10. https://gcc.gnu.org/gcc-4.8/changes.html 11. https://gcc.gnu.org/onlinedocs/4.8.1/ ! 12. https://gcc.gnu.org/gcc-4.8/changes.html 13. https://gcc.gnu.org/onlinedocs/4.8.0/ ! 14. https://gcc.gnu.org/gcc-4.8/buildstat.html 15. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 16. https://gcc.gnu.org/index.html 17. mailto:gcc@gcc.gnu.org ! 18. https://gcc.gnu.org/mirrors.html ! 19. https://gcc.gnu.org/git.html 20. https://gcc.gnu.org/onlinedocs/ 21. mailto:gcc-help@gcc.gnu.org 22. mailto:gcc@gcc.gnu.org *************** References *** 7894,7899 **** --- 7927,7933 ---- 25. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-4.8/changes.html + GCC 4.8 Release Series Changes, New Features, and Fixes *************** New Languages and Language specific impr *** 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; }) --- 8056,8063 ---- 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 *** 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 --- 8181,8188 ---- 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 *** 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 --- 8209,8215 ---- * 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 *** 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 --- 8221,8227 ---- 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 *** 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; --- 8316,8323 ---- } 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; *************** References *** 8629,8641 **** 6. https://github.com/google/sanitizers 7. https://code.google.com/archive/p/data-race-test/wikis/ThreadSanitizer.wiki 8. https://lkml.org/lkml/2006/11/28/239 ! 9. 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 18. https://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html --- 8663,8675 ---- 6. https://github.com/google/sanitizers 7. https://code.google.com/archive/p/data-race-test/wikis/ThreadSanitizer.wiki 8. https://lkml.org/lkml/2006/11/28/239 ! 9. https://gcc.gnu.org/gcc-4.8/cxx0x_status.html ! 10. https://gcc.gnu.org/gcc-4.8/cxx0x_status.html ! 11. https://gcc.gnu.org/gcc-4.8/cxx0x_status.html 12. https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3276.pdf ! 13. https://gcc.gnu.org/gcc-4.8/cxx0x_status.html 14. https://www.open-std.org/JTC1/SC22/WG21/docs/papers/2012/n3386.html ! 15. https://gcc.gnu.org/projects/cxx1y.html 16. https://gcc.gnu.org/onlinedocs/gcc-4.8.4/libstdc++/manual/manual/status.html#status.iso.2011 17. https://gcc.gnu.org/onlinedocs/gfortran/BACKTRACE.html 18. https://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html *************** References *** 8666,8671 **** --- 8700,8706 ---- 43. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-4.7/index.html + GCC 4.7 Release Series (This release series is no longer supported.) *************** References and Acknowledgements *** 8733,8754 **** References 1. http://www.gnu.org/ ! 2. http://gcc.gnu.org/gcc-4.7/changes.html 3. https://gcc.gnu.org/onlinedocs/4.7.4/ ! 4. http://gcc.gnu.org/gcc-4.7/changes.html 5. https://gcc.gnu.org/onlinedocs/4.7.3/ ! 6. http://gcc.gnu.org/gcc-4.7/changes.html 7. https://gcc.gnu.org/onlinedocs/4.7.2/ ! 8. http://gcc.gnu.org/gcc-4.7/changes.html 9. https://gcc.gnu.org/onlinedocs/4.7.1/ ! 10. http://gcc.gnu.org/gcc-4.7/changes.html 11. https://gcc.gnu.org/onlinedocs/4.7.0/ ! 12. http://gcc.gnu.org/gcc-4.7/buildstat.html 13. https://gcc.gnu.org/onlinedocs/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 --- 8768,8789 ---- References 1. http://www.gnu.org/ ! 2. https://gcc.gnu.org/gcc-4.7/changes.html 3. https://gcc.gnu.org/onlinedocs/4.7.4/ ! 4. https://gcc.gnu.org/gcc-4.7/changes.html 5. https://gcc.gnu.org/onlinedocs/4.7.3/ ! 6. https://gcc.gnu.org/gcc-4.7/changes.html 7. https://gcc.gnu.org/onlinedocs/4.7.2/ ! 8. https://gcc.gnu.org/gcc-4.7/changes.html 9. https://gcc.gnu.org/onlinedocs/4.7.1/ ! 10. https://gcc.gnu.org/gcc-4.7/changes.html 11. https://gcc.gnu.org/onlinedocs/4.7.0/ ! 12. https://gcc.gnu.org/gcc-4.7/buildstat.html 13. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 14. https://gcc.gnu.org/index.html 15. mailto:gcc@gcc.gnu.org ! 16. https://gcc.gnu.org/mirrors.html ! 17. https://gcc.gnu.org/git.html 18. https://gcc.gnu.org/onlinedocs/ 19. mailto:gcc-help@gcc.gnu.org 20. mailto:gcc@gcc.gnu.org *************** References *** 8757,8762 **** --- 8792,8798 ---- 23. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-4.7/changes.html + GCC 4.7 Release Series Changes, New Features, and Fixes *************** long double pi = 180.0_degrees; *** 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 { --- 9123,9129 ---- 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 *** 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) --- 9317,9323 ---- * 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) *** 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 --- 9361,9367 ---- 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) *** 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. --- 9373,9379 ---- + If-else decision trees generated by switch instructions + Merging of data located in flash memory + New libgcc variants for devices with 8-bit wide stack pointer ! + ... * Better documentation: + Handling of EIND and indirect jumps on devices with more than 128 KiB of program memory. *************** References *** 9558,9569 **** 4. https://gcc.gnu.org/gcc-4.7/porting_to.html 5. https://gcc.gnu.org/wiki/TransactionalMemory 6. https://gcc.gnu.org/wiki/Atomic/GCCMM ! 7. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html ! 8. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html ! 9. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html ! 10. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html ! 11. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html ! 12. http://gcc.gnu.org/gcc-4.7/cxx0x_status.html 13. https://gcc.gnu.org/PR14258 14. https://gcc.gnu.org/PR35688 15. https://gcc.gnu.org/onlinedocs/gcc-4.7.4/libstdc++/manual/manual/status.html#status.iso.2011 --- 9594,9605 ---- 4. https://gcc.gnu.org/gcc-4.7/porting_to.html 5. https://gcc.gnu.org/wiki/TransactionalMemory 6. https://gcc.gnu.org/wiki/Atomic/GCCMM ! 7. https://gcc.gnu.org/gcc-4.7/cxx0x_status.html ! 8. https://gcc.gnu.org/gcc-4.7/cxx0x_status.html ! 9. https://gcc.gnu.org/gcc-4.7/cxx0x_status.html ! 10. https://gcc.gnu.org/gcc-4.7/cxx0x_status.html ! 11. https://gcc.gnu.org/gcc-4.7/cxx0x_status.html ! 12. https://gcc.gnu.org/gcc-4.7/cxx0x_status.html 13. https://gcc.gnu.org/PR14258 14. https://gcc.gnu.org/PR35688 15. https://gcc.gnu.org/onlinedocs/gcc-4.7.4/libstdc++/manual/manual/status.html#status.iso.2011 *************** References *** 9589,9595 **** 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 --- 9625,9631 ---- 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://dwarfstd.org/issues/100909.1.html 41. https://dwarfstd.org/issues/100909.2.html *************** References *** 9608,9613 **** --- 9644,9650 ---- 54. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-4.6/index.html + GCC 4.6 Release Series (This release series is no longer supported.) *************** References and Acknowledgements *** 9675,9696 **** References 1. http://www.gnu.org/ ! 2. http://gcc.gnu.org/gcc-4.6/changes.html 3. https://gcc.gnu.org/onlinedocs/4.6.4/ ! 4. http://gcc.gnu.org/gcc-4.6/changes.html 5. https://gcc.gnu.org/onlinedocs/4.6.3/ ! 6. http://gcc.gnu.org/gcc-4.6/changes.html 7. https://gcc.gnu.org/onlinedocs/4.6.2/ ! 8. http://gcc.gnu.org/gcc-4.6/changes.html 9. https://gcc.gnu.org/onlinedocs/4.6.1/ ! 10. http://gcc.gnu.org/gcc-4.6/changes.html 11. https://gcc.gnu.org/onlinedocs/4.6.0/ ! 12. http://gcc.gnu.org/gcc-4.6/buildstat.html 13. https://gcc.gnu.org/onlinedocs/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 --- 9712,9733 ---- References 1. http://www.gnu.org/ ! 2. https://gcc.gnu.org/gcc-4.6/changes.html 3. https://gcc.gnu.org/onlinedocs/4.6.4/ ! 4. https://gcc.gnu.org/gcc-4.6/changes.html 5. https://gcc.gnu.org/onlinedocs/4.6.3/ ! 6. https://gcc.gnu.org/gcc-4.6/changes.html 7. https://gcc.gnu.org/onlinedocs/4.6.2/ ! 8. https://gcc.gnu.org/gcc-4.6/changes.html 9. https://gcc.gnu.org/onlinedocs/4.6.1/ ! 10. https://gcc.gnu.org/gcc-4.6/changes.html 11. https://gcc.gnu.org/onlinedocs/4.6.0/ ! 12. https://gcc.gnu.org/gcc-4.6/buildstat.html 13. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 14. https://gcc.gnu.org/index.html 15. mailto:gcc@gcc.gnu.org ! 16. https://gcc.gnu.org/mirrors.html ! 17. https://gcc.gnu.org/git.html 18. https://gcc.gnu.org/onlinedocs/ 19. mailto:gcc-help@gcc.gnu.org 20. mailto:gcc@gcc.gnu.org *************** References *** 9699,9704 **** --- 9736,9742 ---- 23. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-4.6/changes.html + GCC 4.6 Release Series Changes, New Features, and Fixes *************** New Languages and Language specific impr *** 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 --- 10076,10082 ---- * [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 *** 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. --- 10131,10137 ---- 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 *** 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. --- 10186,10192 ---- 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. *************** New Targets and Target Specific Improvem *** 10278,10284 **** and store multiples. * Several enhancements were committed to improve SIMD code generation for NEON by adding support for widening instructions, misaligned ! loads and stores, vector conditionals and support for 64 bit arithmetic. * Support was added for the Faraday cores fa526, fa606te, fa626te, fmp626te, fmp626 and fa726te and can be used with the respective --- 10316,10322 ---- and store multiples. * Several enhancements were committed to improve SIMD code generation for NEON by adding support for widening instructions, misaligned ! loads and stores, vector conditionals and support for 64-bit arithmetic. * Support was added for the Faraday cores fa526, fa606te, fa626te, fmp626te, fmp626 and fa726te and can be used with the respective *************** New Targets and Target Specific Improvem *** 10384,10392 **** instructions. * The GCC compiler on AIX now defaults to a process layout with a larger data space allowing larger programs to be compiled. ! * The GCC long double type on AIX 6.1 and above has reverted to 64 ! bit double precision, matching the AIX XL compiler default, because ! of missing C99 symbols required by the GCC runtime. * The default processor scheduling model and tuning for PowerPC64 GNU/Linux and for AIX 6.1 and above now is POWER7. * Starting with GCC 4.6.1, vectors of type vector long long or vector --- 10422,10430 ---- instructions. * The GCC compiler on AIX now defaults to a process layout with a larger data space allowing larger programs to be compiled. ! * The GCC long double type on AIX 6.1 and above has reverted to ! 64-bit double precision, matching the AIX XL compiler default, ! because of missing C99 symbols required by the GCC runtime. * The default processor scheduling model and tuning for PowerPC64 GNU/Linux and for AIX 6.1 and above now is POWER7. * Starting with GCC 4.6.1, vectors of type vector long long or vector *************** GCC 4.6.4 *** 10593,10609 **** provided this notice is preserved. These pages are [28]maintained by the GCC team. Last modified ! 2023-01-18. References 1. https://sourceware.org/bugzilla/show_bug.cgi?id=10401 ! 2. http://gcc.gnu.org/gcc-4.5/changes.html ! 3. http://gcc.gnu.org/gcc-4.5/changes.html#obsoleted ! 4. http://gcc.gnu.org/gcc-4.6/porting_to.html ! 5. http://gcc.gnu.org/projects/lto/whopr.pdf 6. https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#Warning-Options ! 7. http://gcc.gnu.org/gcc-4.6/cxx0x_status.html 8. https://gcc.gnu.org/PR43145 9. https://gcc.gnu.org/PR43680 10. https://gcc.gnu.org/PR33558 --- 10631,10647 ---- provided this notice is preserved. These pages are [28]maintained by the GCC team. Last modified ! 2024-05-17. References 1. https://sourceware.org/bugzilla/show_bug.cgi?id=10401 ! 2. https://gcc.gnu.org/gcc-4.5/changes.html ! 3. https://gcc.gnu.org/gcc-4.5/changes.html#obsoleted ! 4. https://gcc.gnu.org/gcc-4.6/porting_to.html ! 5. https://gcc.gnu.org/projects/lto/whopr.pdf 6. https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#Warning-Options ! 7. https://gcc.gnu.org/gcc-4.6/cxx0x_status.html 8. https://gcc.gnu.org/PR43145 9. https://gcc.gnu.org/PR43680 10. https://gcc.gnu.org/PR33558 *************** References *** 10627,10632 **** --- 10665,10671 ---- 28. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-4.5/index.html + GCC 4.5 Release Series (This release series is no longer supported.) *************** References and Acknowledgements *** 10694,10710 **** References 1. http://www.gnu.org/ ! 2. http://gcc.gnu.org/gcc-4.5/changes.html ! 3. http://gcc.gnu.org/gcc-4.5/changes.html ! 4. http://gcc.gnu.org/gcc-4.5/changes.html ! 5. http://gcc.gnu.org/gcc-4.5/changes.html ! 6. http://gcc.gnu.org/gcc-4.5/changes.html ! 7. http://gcc.gnu.org/gcc-4.5/buildstat.html 8. https://gcc.gnu.org/onlinedocs/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 --- 10733,10749 ---- References 1. http://www.gnu.org/ ! 2. https://gcc.gnu.org/gcc-4.5/changes.html ! 3. https://gcc.gnu.org/gcc-4.5/changes.html ! 4. https://gcc.gnu.org/gcc-4.5/changes.html ! 5. https://gcc.gnu.org/gcc-4.5/changes.html ! 6. https://gcc.gnu.org/gcc-4.5/changes.html ! 7. https://gcc.gnu.org/gcc-4.5/buildstat.html 8. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 9. https://gcc.gnu.org/index.html 10. mailto:gcc@gcc.gnu.org ! 11. https://gcc.gnu.org/mirrors.html ! 12. https://gcc.gnu.org/git.html 13. https://gcc.gnu.org/onlinedocs/ 14. mailto:gcc-help@gcc.gnu.org 15. mailto:gcc@gcc.gnu.org *************** References *** 10713,10718 **** --- 10752,10758 ---- 18. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-4.5/changes.html + GCC 4.5 Release Series Changes, New Features, and Fixes *************** New Languages and Language specific impr *** 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 --- 10989,10995 ---- 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 *** 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 --- 11071,11077 ---- 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 *** 11360,11386 **** provided this notice is preserved. These pages are [32]maintained by the GCC team. Last modified ! 2023-01-15. References ! 1. https://www.multiprecision.org/mpc/ 2. https://gcc.gnu.org/install/prerequisites.html 3. https://gcc.gnu.org/ml/gcc/2010-01/msg00510.html ! 4. http://gcc.gnu.org/gcc-4.4/changes.html#obsoleted ! 5. http://gcc.gnu.org/gcc-4.5/changes.html#x86 6. https://gcc.gnu.org/PR30789 7. https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-flto-801 8. https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-fwhopr-802 9. https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-fwhole-program-800 10. https://gcc.gnu.org/onlinedocs/gcc/Restricted-Pointers.html ! 11. 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 ! 17. http://gcc.gnu.org/gcc-4.4/changes.html 18. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html 19. https://gcc.gnu.org/onlinedocs/gfortran/Mixed-Language-Programming.html 20. https://gcc.gnu.org/onlinedocs/gfortran/GNU-Fortran-Compiler-Directives.html --- 11400,11426 ---- provided this notice is preserved. These pages are [32]maintained by the GCC team. Last modified ! 2023-07-30. References ! 1. https://www.multiprecision.org/ 2. https://gcc.gnu.org/install/prerequisites.html 3. https://gcc.gnu.org/ml/gcc/2010-01/msg00510.html ! 4. https://gcc.gnu.org/gcc-4.4/changes.html#obsoleted ! 5. https://gcc.gnu.org/gcc-4.5/changes.html#x86 6. https://gcc.gnu.org/PR30789 7. https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-flto-801 8. https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-fwhopr-802 9. https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-fwhole-program-800 10. https://gcc.gnu.org/onlinedocs/gcc/Restricted-Pointers.html ! 11. https://gcc.gnu.org/gcc-4.5/cxx0x_status.html 12. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#757 13. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#176 14. https://gcc.gnu.org/onlinedocs/libstdc++/manual/profile_mode.html 15. https://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.tr24733 16. https://sourceware.org/gdb/wiki/STLSupport ! 17. https://gcc.gnu.org/gcc-4.4/changes.html 18. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html 19. https://gcc.gnu.org/onlinedocs/gfortran/Mixed-Language-Programming.html 20. https://gcc.gnu.org/onlinedocs/gfortran/GNU-Fortran-Compiler-Directives.html *************** References *** 11398,11403 **** --- 11438,11444 ---- 32. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-4.4/index.html + GCC 4.4 Release Series This release series is no longer maintained. *************** References and Acknowledgements *** 11474,11493 **** References 1. http://www.gnu.org/ ! 2. http://gcc.gnu.org/gcc-4.4/changes.html ! 3. http://gcc.gnu.org/gcc-4.4/changes.html ! 4. http://gcc.gnu.org/gcc-4.4/changes.html ! 5. http://gcc.gnu.org/gcc-4.4/changes.html ! 6. http://gcc.gnu.org/gcc-4.4/changes.html ! 7. http://gcc.gnu.org/gcc-4.4/changes.html ! 8. http://gcc.gnu.org/gcc-4.4/changes.html ! 9. http://gcc.gnu.org/gcc-4.4/changes.html ! 10. http://gcc.gnu.org/gcc-4.4/buildstat.html 11. https://gcc.gnu.org/onlinedocs/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 --- 11515,11534 ---- References 1. http://www.gnu.org/ ! 2. https://gcc.gnu.org/gcc-4.4/changes.html ! 3. https://gcc.gnu.org/gcc-4.4/changes.html ! 4. https://gcc.gnu.org/gcc-4.4/changes.html ! 5. https://gcc.gnu.org/gcc-4.4/changes.html ! 6. https://gcc.gnu.org/gcc-4.4/changes.html ! 7. https://gcc.gnu.org/gcc-4.4/changes.html ! 8. https://gcc.gnu.org/gcc-4.4/changes.html ! 9. https://gcc.gnu.org/gcc-4.4/changes.html ! 10. https://gcc.gnu.org/gcc-4.4/buildstat.html 11. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 12. https://gcc.gnu.org/index.html 13. mailto:gcc@gcc.gnu.org ! 14. https://gcc.gnu.org/mirrors.html ! 15. https://gcc.gnu.org/git.html 16. https://gcc.gnu.org/onlinedocs/ 17. mailto:gcc-help@gcc.gnu.org 18. mailto:gcc@gcc.gnu.org *************** References *** 11496,11501 **** --- 11537,11543 ---- 21. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-4.4/changes.html + GCC 4.4 Release Series Changes, New Features, and Fixes *************** GCC 4.4.7 *** 12102,12113 **** References ! 1. http://gcc.gnu.org/gcc-4.4/changes.html#4.4.7 ! 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 9. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfcheck-array-temporaries_007d-221 --- 12144,12155 ---- References ! 1. https://gcc.gnu.org/gcc-4.4/changes.html#4.4.7 ! 2. https://gcc.gnu.org/gcc-4.3/changes.html#obsoleted ! 3. https://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. https://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 9. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfcheck-array-temporaries_007d-221 *************** References *** 12127,12132 **** --- 12169,12175 ---- 23. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-4.3/index.html + GCC 4.3 Release Series (This release series is no longer supported.) *************** References and Acknowledgements *** 12200,12218 **** References 1. http://www.gnu.org/ ! 2. http://gcc.gnu.org/gcc-4.3/changes.html ! 3. http://gcc.gnu.org/gcc-4.3/changes.html ! 4. http://gcc.gnu.org/gcc-4.3/changes.html ! 5. http://gcc.gnu.org/gcc-4.3/changes.html ! 6. http://gcc.gnu.org/gcc-4.3/changes.html ! 7. http://gcc.gnu.org/gcc-4.3/changes.html ! 8. http://gcc.gnu.org/gcc-4.3/changes.html ! 9. http://gcc.gnu.org/gcc-4.3/buildstat.html 10. https://gcc.gnu.org/onlinedocs/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 --- 12243,12261 ---- References 1. http://www.gnu.org/ ! 2. https://gcc.gnu.org/gcc-4.3/changes.html ! 3. https://gcc.gnu.org/gcc-4.3/changes.html ! 4. https://gcc.gnu.org/gcc-4.3/changes.html ! 5. https://gcc.gnu.org/gcc-4.3/changes.html ! 6. https://gcc.gnu.org/gcc-4.3/changes.html ! 7. https://gcc.gnu.org/gcc-4.3/changes.html ! 8. https://gcc.gnu.org/gcc-4.3/changes.html ! 9. https://gcc.gnu.org/gcc-4.3/buildstat.html 10. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 11. https://gcc.gnu.org/index.html 12. mailto:gcc@gcc.gnu.org ! 13. https://gcc.gnu.org/mirrors.html ! 14. https://gcc.gnu.org/git.html 15. https://gcc.gnu.org/onlinedocs/ 16. mailto:gcc-help@gcc.gnu.org 17. mailto:gcc@gcc.gnu.org *************** References *** 12221,12226 **** --- 12264,12270 ---- 20. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-4.3/changes.html + GCC 4.3 Release Series Changes, New Features, and Fixes *************** GCC 4.3.6 *** 13003,13018 **** References ! 1. http://gcc.gnu.org/gcc-4.3/changes.html#4.3.5 2. https://gmplib.org/ 3. https://www.mpfr.org/ 4. https://gcc.gnu.org/install/prerequisites.html 5. https://gcc.gnu.org/ml/gcc-announce/2001/msg00000.html 6. https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#Warning-Options ! 7. http://gcc.gnu.org/gcc-4.3/porting_to.html 8. https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html ! 9. http://gcc.gnu.org/gcc-4.3/cxx0x_status.html ! 10. http://gcc.gnu.org/gcc-4.3/cxx0x_status.html 11. https://gcc.gnu.org/onlinedocs/libstdc++/manual/parallel_mode.html 12. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#Code-Gen-Options 13. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfinit-local-zero_007d-167 --- 13047,13062 ---- References ! 1. https://gcc.gnu.org/gcc-4.3/changes.html#4.3.5 2. https://gmplib.org/ 3. https://www.mpfr.org/ 4. https://gcc.gnu.org/install/prerequisites.html 5. https://gcc.gnu.org/ml/gcc-announce/2001/msg00000.html 6. https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#Warning-Options ! 7. https://gcc.gnu.org/gcc-4.3/porting_to.html 8. https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html ! 9. https://gcc.gnu.org/gcc-4.3/cxx0x_status.html ! 10. https://gcc.gnu.org/gcc-4.3/cxx0x_status.html 11. https://gcc.gnu.org/onlinedocs/libstdc++/manual/parallel_mode.html 12. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#Code-Gen-Options 13. https://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfinit-local-zero_007d-167 *************** References *** 13035,13040 **** --- 13079,13085 ---- 30. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-4.2/index.html + GCC 4.2 Release Series (This release series is no longer supported.) *************** References and Acknowledgements *** 13102,13118 **** References 1. http://www.gnu.org/ ! 2. http://gcc.gnu.org/gcc-4.2/changes.html ! 3. http://gcc.gnu.org/gcc-4.2/changes.html ! 4. http://gcc.gnu.org/gcc-4.2/changes.html ! 5. http://gcc.gnu.org/gcc-4.2/changes.html ! 6. http://gcc.gnu.org/gcc-4.2/changes.html ! 7. http://gcc.gnu.org/gcc-4.2/buildstat.html 8. https://gcc.gnu.org/onlinedocs/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 --- 13147,13163 ---- References 1. http://www.gnu.org/ ! 2. https://gcc.gnu.org/gcc-4.2/changes.html ! 3. https://gcc.gnu.org/gcc-4.2/changes.html ! 4. https://gcc.gnu.org/gcc-4.2/changes.html ! 5. https://gcc.gnu.org/gcc-4.2/changes.html ! 6. https://gcc.gnu.org/gcc-4.2/changes.html ! 7. https://gcc.gnu.org/gcc-4.2/buildstat.html 8. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 9. https://gcc.gnu.org/index.html 10. mailto:gcc@gcc.gnu.org ! 11. https://gcc.gnu.org/mirrors.html ! 12. https://gcc.gnu.org/git.html 13. https://gcc.gnu.org/onlinedocs/ 14. mailto:gcc-help@gcc.gnu.org 15. mailto:gcc@gcc.gnu.org *************** References *** 13121,13126 **** --- 13166,13172 ---- 18. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-4.2/changes.html + GCC 4.2 Release Series Changes, New Features, and Fixes *************** Other significant improvements *** 13428,13434 **** References ! 1. http://gcc.gnu.org/projects/gomp/ 2. https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html 3. https://gcc.gnu.org/onlinedocs/libstdc++/ext/pb_ds/index.html 4. https://gcc.gnu.org/onlinedocs/gfortran/Runtime-Options.html --- 13474,13480 ---- References ! 1. https://gcc.gnu.org/projects/gomp/ 2. https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html 3. https://gcc.gnu.org/onlinedocs/libstdc++/ext/pb_ds/index.html 4. https://gcc.gnu.org/onlinedocs/gfortran/Runtime-Options.html *************** References *** 13441,13446 **** --- 13487,13493 ---- 11. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-4.1/index.html + GCC 4.1 Release Series (This release series is no longer supported.) *************** References and Acknowledgements *** 13502,13516 **** References 1. http://www.gnu.org/ ! 2. http://gcc.gnu.org/gcc-4.1/changes.html#4.1.2 ! 3. http://gcc.gnu.org/gcc-4.1/changes.html ! 4. http://gcc.gnu.org/gcc-4.1/changes.html ! 5. http://gcc.gnu.org/gcc-4.1/buildstat.html 6. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 7. http://gcc.gnu.org/index.html 8. mailto:gcc@gcc.gnu.org ! 9. http://gcc.gnu.org/mirrors.html ! 10. http://gcc.gnu.org/git.html 11. https://gcc.gnu.org/onlinedocs/ 12. mailto:gcc-help@gcc.gnu.org 13. mailto:gcc@gcc.gnu.org --- 13549,13563 ---- References 1. http://www.gnu.org/ ! 2. https://gcc.gnu.org/gcc-4.1/changes.html#4.1.2 ! 3. https://gcc.gnu.org/gcc-4.1/changes.html ! 4. https://gcc.gnu.org/gcc-4.1/changes.html ! 5. https://gcc.gnu.org/gcc-4.1/buildstat.html 6. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 7. https://gcc.gnu.org/index.html 8. mailto:gcc@gcc.gnu.org ! 9. https://gcc.gnu.org/mirrors.html ! 10. https://gcc.gnu.org/git.html 11. https://gcc.gnu.org/onlinedocs/ 12. mailto:gcc-help@gcc.gnu.org 13. mailto:gcc@gcc.gnu.org *************** References *** 13519,13524 **** --- 13566,13572 ---- 16. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-4.1/changes.html + GCC 4.1 Release Series Changes, New Features, and Fixes *************** GCC 4.1.2 *** 14059,14065 **** References ! 1. http://gcc.gnu.org/gcc-4.1/changes.html#4.1.2 2. https://gcc.gnu.org/ml/java/2005-05/msg00260.html 3. https://developer.classpath.org/doc/ 4. https://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html --- 14107,14113 ---- References ! 1. https://gcc.gnu.org/gcc-4.1/changes.html#4.1.2 2. https://gcc.gnu.org/ml/java/2005-05/msg00260.html 3. https://developer.classpath.org/doc/ 4. https://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html *************** References *** 14072,14077 **** --- 14120,14126 ---- 11. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-4.0/index.html + GCC 4.0 Release Series (This release series is no longer supported.) *************** References and Acknowledgements *** 14139,14155 **** References 1. http://www.gnu.org/ ! 2. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.4 ! 3. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.3 ! 4. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.2 ! 5. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.1 ! 6. http://gcc.gnu.org/gcc-4.0/changes.html ! 7. http://gcc.gnu.org/gcc-4.0/buildstat.html 8. https://gcc.gnu.org/onlinedocs/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 --- 14188,14204 ---- References 1. http://www.gnu.org/ ! 2. https://gcc.gnu.org/gcc-4.0/changes.html#4.0.4 ! 3. https://gcc.gnu.org/gcc-4.0/changes.html#4.0.3 ! 4. https://gcc.gnu.org/gcc-4.0/changes.html#4.0.2 ! 5. https://gcc.gnu.org/gcc-4.0/changes.html#4.0.1 ! 6. https://gcc.gnu.org/gcc-4.0/changes.html ! 7. https://gcc.gnu.org/gcc-4.0/buildstat.html 8. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 9. https://gcc.gnu.org/index.html 10. mailto:gcc@gcc.gnu.org ! 11. https://gcc.gnu.org/mirrors.html ! 12. https://gcc.gnu.org/git.html 13. https://gcc.gnu.org/onlinedocs/ 14. mailto:gcc-help@gcc.gnu.org 15. mailto:gcc@gcc.gnu.org *************** References *** 14158,14163 **** --- 14207,14213 ---- 18. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-4.0/changes.html + GCC 4.0 Release Series Changes, New Features, and Fixes *************** GCC 4.0.4 *** 14663,14677 **** References ! 1. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.4 2. https://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html ! 3. http://gcc.gnu.org/projects/tree-ssa/ ! 4. http://gcc.gnu.org/projects/tree-ssa/vectorization.html ! 5. http://gcc.gnu.org/news/sms.html 6. https://www.akkadia.org/drepper/dsohowto.pdf ! 7. http://gcc.gnu.org/gcc-4.0/changes.html#visibility 8. https://itanium-cxx-abi.github.io/cxx-abi/ ! 9. http://gcc.gnu.org/fortran/ 10. https://gcc.gnu.org/install/ 11. https://gcc.gnu.org/wiki/Visibility 12. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.1 --- 14713,14727 ---- References ! 1. https://gcc.gnu.org/gcc-4.0/changes.html#4.0.4 2. https://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html ! 3. https://gcc.gnu.org/projects/tree-ssa/ ! 4. https://gcc.gnu.org/projects/tree-ssa/vectorization.html ! 5. https://gcc.gnu.org/news/sms.html 6. https://www.akkadia.org/drepper/dsohowto.pdf ! 7. https://gcc.gnu.org/gcc-4.0/changes.html#visibility 8. https://itanium-cxx-abi.github.io/cxx-abi/ ! 9. https://gcc.gnu.org/fortran/ 10. https://gcc.gnu.org/install/ 11. https://gcc.gnu.org/wiki/Visibility 12. https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.1 *************** References *** 14686,14691 **** --- 14736,14742 ---- 21. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-3.4/index.html + GCC 3.4 Release Series (This release series is no longer supported.) *************** References and Acknowledgements *** 14764,14784 **** References 1. http://www.gnu.org/ ! 2. http://gcc.gnu.org/gcc-3.4/changes.html 3. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 4. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.6 ! 5. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.5 ! 6. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.4 ! 7. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.3 ! 8. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.2 ! 9. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.1 ! 10. http://gcc.gnu.org/gcc-3.4/changes.html ! 11. http://gcc.gnu.org/gcc-3.4/buildstat.html 12. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 13. http://gcc.gnu.org/index.html 14. mailto:gcc@gcc.gnu.org ! 15. http://gcc.gnu.org/mirrors.html ! 16. http://gcc.gnu.org/git.html 17. https://gcc.gnu.org/onlinedocs/ 18. mailto:gcc-help@gcc.gnu.org 19. mailto:gcc@gcc.gnu.org --- 14815,14835 ---- References 1. http://www.gnu.org/ ! 2. https://gcc.gnu.org/gcc-3.4/changes.html 3. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 4. https://gcc.gnu.org/gcc-3.4/changes.html#3.4.6 ! 5. https://gcc.gnu.org/gcc-3.4/changes.html#3.4.5 ! 6. https://gcc.gnu.org/gcc-3.4/changes.html#3.4.4 ! 7. https://gcc.gnu.org/gcc-3.4/changes.html#3.4.3 ! 8. https://gcc.gnu.org/gcc-3.4/changes.html#3.4.2 ! 9. https://gcc.gnu.org/gcc-3.4/changes.html#3.4.1 ! 10. https://gcc.gnu.org/gcc-3.4/changes.html ! 11. https://gcc.gnu.org/gcc-3.4/buildstat.html 12. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 13. https://gcc.gnu.org/index.html 14. mailto:gcc@gcc.gnu.org ! 15. https://gcc.gnu.org/mirrors.html ! 16. https://gcc.gnu.org/git.html 17. https://gcc.gnu.org/onlinedocs/ 18. mailto:gcc-help@gcc.gnu.org 19. mailto:gcc@gcc.gnu.org *************** References *** 14787,14792 **** --- 14838,14844 ---- 22. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-3.4/changes.html + GCC 3.4 Release Series Changes, New Features, and Fixes *************** GCC 3.4.6 *** 16550,16567 **** References ! 1. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.6 ! 2. http://gcc.gnu.org/gcc-3.4/changes.html#cplusplus ! 3. http://gcc.gnu.org/gcc-3.3/changes.html#obsolete_systems ! 4. http://gcc.gnu.org/gcc-3.4/changes.html#obsolete_systems ! 5. http://gcc.gnu.org/gcc-3.4/mips-abi.html ! 6. http://gcc.gnu.org/gcc-3.4/sparc-abi.html 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 --- 16602,16619 ---- References ! 1. https://gcc.gnu.org/gcc-3.4/changes.html#3.4.6 ! 2. https://gcc.gnu.org/gcc-3.4/changes.html#cplusplus ! 3. https://gcc.gnu.org/gcc-3.3/changes.html#obsolete_systems ! 4. https://gcc.gnu.org/gcc-3.4/changes.html#obsolete_systems ! 5. https://gcc.gnu.org/gcc-3.4/mips-abi.html ! 6. https://gcc.gnu.org/gcc-3.4/sparc-abi.html 7. https://www.boost.org/ 8. https://gcc.gnu.org/PR11953 9. https://gcc.gnu.org/PR8361 ! 10. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Other-Builtins.html#Other%20Builtins 11. https://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#209 ! 12. https://gcc.gnu.org/bugs/#cxx_rvalbind 13. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html 14. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html 15. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html *************** References *** 16572,16581 **** 20. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html 21. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Comparison-of-the-two-descriptions.html 22. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html ! 23. 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 --- 16624,16633 ---- 20. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html 21. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Comparison-of-the-two-descriptions.html 22. https://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html ! 23. https://gcc.gnu.org/gcc-3.4/mips-abi.html ! 24. https://gcc.gnu.org/gcc-3.4/powerpc-abi.html ! 25. https://gcc.gnu.org/gcc-3.4/sparc-abi.html ! 26. https://gcc.gnu.org/bugzilla/buglist.cgi?short_desc_type=notregexp&short_desc=%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 *************** References *** 16968,16973 **** --- 17020,17026 ---- 416. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-3.3/index.html + GCC 3.3 Release Series (This release series is no longer supported.) *************** References and Acknowledgements *** 17046,17065 **** References 1. http://www.gnu.org/ ! 2. http://gcc.gnu.org/gcc-3.3/changes.html 3. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 4. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.6 ! 5. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.5 ! 6. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.4 ! 7. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.3 ! 8. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.2 ! 9. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.1 ! 10. http://gcc.gnu.org/gcc-3.3/changes.html ! 11. http://gcc.gnu.org/gcc-3.3/buildstat.html 12. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 13. http://gcc.gnu.org/index.html 14. mailto:gcc@gcc.gnu.org ! 15. http://gcc.gnu.org/mirrors.html 16. https://gcc.gnu.org/onlinedocs/ 17. mailto:gcc-help@gcc.gnu.org 18. mailto:gcc@gcc.gnu.org --- 17099,17118 ---- References 1. http://www.gnu.org/ ! 2. https://gcc.gnu.org/gcc-3.3/changes.html 3. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 4. https://gcc.gnu.org/gcc-3.3/changes.html#3.3.6 ! 5. https://gcc.gnu.org/gcc-3.3/changes.html#3.3.5 ! 6. https://gcc.gnu.org/gcc-3.3/changes.html#3.3.4 ! 7. https://gcc.gnu.org/gcc-3.3/changes.html#3.3.3 ! 8. https://gcc.gnu.org/gcc-3.3/changes.html#3.3.2 ! 9. https://gcc.gnu.org/gcc-3.3/changes.html#3.3.1 ! 10. https://gcc.gnu.org/gcc-3.3/changes.html ! 11. https://gcc.gnu.org/gcc-3.3/buildstat.html 12. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 13. https://gcc.gnu.org/index.html 14. mailto:gcc@gcc.gnu.org ! 15. https://gcc.gnu.org/mirrors.html 16. https://gcc.gnu.org/onlinedocs/ 17. mailto:gcc-help@gcc.gnu.org 18. mailto:gcc@gcc.gnu.org *************** References *** 17068,17073 **** --- 17121,17127 ---- 21. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-3.3/changes.html + GCC 3.3 Release Series Changes, New Features, and Fixes *************** GCC 3.3.6 *** 18419,18430 **** References ! 1. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.6 ! 2. http://gcc.gnu.org/gcc-3.1/changes.html#obsolete_systems ! 3. http://gcc.gnu.org/gcc-3.3/changes.html#obsolete_systems ! 4. http://gcc.gnu.org/gcc-3.3/changes.html#nonnull_attribute ! 5. http://gcc.gnu.org/news/dfa.html ! 6. http://gcc.gnu.org/c99status.html 7. https://gcc.gnu.org/onlinedocs/gcc-3.3.6/g77/News.html 8. https://gcc.gnu.org/PR10140 9. https://gcc.gnu.org/PR10198 --- 18473,18484 ---- References ! 1. https://gcc.gnu.org/gcc-3.3/changes.html#3.3.6 ! 2. https://gcc.gnu.org/gcc-3.1/changes.html#obsolete_systems ! 3. https://gcc.gnu.org/gcc-3.3/changes.html#obsolete_systems ! 4. https://gcc.gnu.org/gcc-3.3/changes.html#nonnull_attribute ! 5. https://gcc.gnu.org/news/dfa.html ! 6. https://gcc.gnu.org/c99status.html 7. https://gcc.gnu.org/onlinedocs/gcc-3.3.6/g77/News.html 8. https://gcc.gnu.org/PR10140 9. https://gcc.gnu.org/PR10198 *************** References *** 18977,18982 **** --- 19031,19037 ---- 556. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-3.2/index.html + GCC 3.2 Release Series (This release series is no longer supported.) *************** References and Acknowledgements *** 19049,19064 **** References 1. http://www.gnu.org/ ! 2. http://gcc.gnu.org/gcc-3.2/changes.html ! 3. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.3 ! 4. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.2 ! 5. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.1 ! 6. http://gcc.gnu.org/gcc-3.2/changes.html#3.2 ! 7. http://gcc.gnu.org/gcc-3.2/buildstat.html 8. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 9. http://gcc.gnu.org/index.html 10. mailto:gcc@gcc.gnu.org ! 11. http://gcc.gnu.org/mirrors.html 12. https://gcc.gnu.org/onlinedocs/ 13. mailto:gcc-help@gcc.gnu.org 14. mailto:gcc@gcc.gnu.org --- 19104,19119 ---- References 1. http://www.gnu.org/ ! 2. https://gcc.gnu.org/gcc-3.2/changes.html ! 3. https://gcc.gnu.org/gcc-3.2/changes.html#3.2.3 ! 4. https://gcc.gnu.org/gcc-3.2/changes.html#3.2.2 ! 5. https://gcc.gnu.org/gcc-3.2/changes.html#3.2.1 ! 6. https://gcc.gnu.org/gcc-3.2/changes.html#3.2 ! 7. https://gcc.gnu.org/gcc-3.2/buildstat.html 8. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 9. https://gcc.gnu.org/index.html 10. mailto:gcc@gcc.gnu.org ! 11. https://gcc.gnu.org/mirrors.html 12. https://gcc.gnu.org/onlinedocs/ 13. mailto:gcc-help@gcc.gnu.org 14. mailto:gcc@gcc.gnu.org *************** References *** 19067,19072 **** --- 19122,19128 ---- 17. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-3.2/changes.html + GCC 3.2 Release Series Changes, New Features, and Fixes *************** GCC 3.2 *** 19670,19678 **** References ! 1. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.3 ! 2. http://gcc.gnu.org/gcc-3.1/changes.html ! 3. http://gcc.gnu.org/gcc-3.2/c++-abi.html 4. https://gcc.gnu.org/PR3782 5. https://gcc.gnu.org/PR6440 6. https://gcc.gnu.org/PR7050 --- 19726,19734 ---- References ! 1. https://gcc.gnu.org/gcc-3.2/changes.html#3.2.3 ! 2. https://gcc.gnu.org/gcc-3.1/changes.html ! 3. https://gcc.gnu.org/gcc-3.2/c++-abi.html 4. https://gcc.gnu.org/PR3782 5. https://gcc.gnu.org/PR6440 6. https://gcc.gnu.org/PR7050 *************** References *** 19923,19995 **** 251. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-3.1/index.html GCC 3.1 (This release series is no longer supported.) July 27, 2002 ! The [1]GNU project and the GCC developers are pleased to announce the release of GCC 3.1.1. The links below still apply to GCC 3.1.1. May 15, 2002 ! The [2]GNU project and the GCC developers are pleased to announce the release of GCC 3.1. GCC used to stand for the GNU C Compiler, but since the compiler supports several other languages aside from C, it now stands for the GNU Compiler Collection. ! A list of [3]successful builds is updated as new information becomes available. The GCC developers would like to thank the numerous people that have ! contributed [4]new features, improvements, bug fixes, and other changes ! as well as test results to GCC. This [5]amazing group of volunteers is what makes GCC successful. ! For additional information about GCC please refer to the [6]GCC project ! web site or contact the [7]GCC development mailing list. ! To obtain GCC please use [8]our mirror sites, or our CVS server. __________________________________________________________________ For questions related to the use of GCC, please consult these web ! pages and the [9]GCC manuals. If that fails, the ! [10]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [11]gcc@gcc.gnu.org. All of [12]our lists have public archives. ! Copyright (C) [13]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [14]maintained by the GCC team. Last modified ! 2022-10-26. References ! 1. http://www.gnu.org/ ! 2. http://www.gnu.org/ ! 3. http://gcc.gnu.org/gcc-3.1/buildstat.html ! 4. http://gcc.gnu.org/gcc-3.1/changes.html ! 5. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 6. http://gcc.gnu.org/index.html ! 7. mailto:gcc@gcc.gnu.org ! 8. http://gcc.gnu.org/mirrors.html ! 9. https://gcc.gnu.org/onlinedocs/ ! 10. mailto:gcc-help@gcc.gnu.org ! 11. mailto:gcc@gcc.gnu.org ! 12. https://gcc.gnu.org/lists.html ! 13. https://www.fsf.org/ ! 14. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-3.1/changes.html GCC 3.1 Release Series Changes, New Features, and Fixes --- 19979,20052 ---- 251. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-3.1/index.html + GCC 3.1 (This release series is no longer supported.) July 27, 2002 ! The GNU project and the GCC developers are pleased to announce the release of GCC 3.1.1. The links below still apply to GCC 3.1.1. May 15, 2002 ! The [1]GNU project and the GCC developers are pleased to announce the release of GCC 3.1. GCC used to stand for the GNU C Compiler, but since the compiler supports several other languages aside from C, it now stands for the GNU Compiler Collection. ! A list of [2]successful builds is updated as new information becomes available. The GCC developers would like to thank the numerous people that have ! contributed [3]new features, improvements, bug fixes, and other changes ! as well as test results to GCC. This [4]amazing group of volunteers is what makes GCC successful. ! For additional information about GCC please refer to the [5]GCC project ! web site or contact the [6]GCC development mailing list. ! To obtain GCC please use [7]our mirror sites, or our CVS server. __________________________________________________________________ For questions related to the use of GCC, please consult these web ! pages and the [8]GCC manuals. If that fails, the ! [9]gcc-help@gcc.gnu.org mailing list might help. Comments on these web pages and the development of GCC are welcome on our developer ! list at [10]gcc@gcc.gnu.org. All of [11]our lists have public archives. ! Copyright (C) [12]Free Software Foundation, Inc. Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. ! These pages are [13]maintained by the GCC team. Last modified ! 2024-07-04. References ! 1. https://www.gnu.org/ ! 2. https://gcc.gnu.org/gcc-3.1/buildstat.html ! 3. https://gcc.gnu.org/gcc-3.1/changes.html ! 4. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 5. https://gcc.gnu.org/index.html ! 6. mailto:gcc@gcc.gnu.org ! 7. https://gcc.gnu.org/mirrors.html ! 8. https://gcc.gnu.org/onlinedocs/ ! 9. mailto:gcc-help@gcc.gnu.org ! 10. mailto:gcc@gcc.gnu.org ! 11. https://gcc.gnu.org/lists.html ! 12. https://www.fsf.org/ ! 13. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-3.1/changes.html + GCC 3.1 Release Series Changes, New Features, and Fixes *************** New Targets and Target Specific Improvem *** 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, --- 20264,20270 ---- + 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 *** 20328,20336 **** References 1. https://gcc.gnu.org/ml/gcc/2002-07/msg01208.html ! 2. http://gcc.gnu.org/news/profiledriven.html ! 3. http://gcc.gnu.org/benchmarks/ ! 4. http://gcc.gnu.org/c99status.html 5. https://gcc.gnu.org/onlinedocs/libstdc++/faq.html 6. https://gcc.gnu.org/onlinedocs/gcc-3.1.1/g77/News.html 7. https://www.adacore.com/ --- 20385,20393 ---- References 1. https://gcc.gnu.org/ml/gcc/2002-07/msg01208.html ! 2. https://gcc.gnu.org/news/profiledriven.html ! 3. https://gcc.gnu.org/benchmarks/ ! 4. https://gcc.gnu.org/c99status.html 5. https://gcc.gnu.org/onlinedocs/libstdc++/faq.html 6. https://gcc.gnu.org/onlinedocs/gcc-3.1.1/g77/News.html 7. https://www.adacore.com/ *************** References *** 20342,20347 **** --- 20399,20405 ---- 13. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-3.0/index.html + GCC 3.0.4 (This release series is no longer supported.) *************** Previous 3.0.x Releases *** 20396,20413 **** provided this notice is preserved. These pages are [14]maintained by the GCC team. Last modified ! 2022-10-26. References ! 1. http://www.gnu.org/ ! 2. http://gcc.gnu.org/gcc-3.0/features.html ! 3. http://gcc.gnu.org/gcc-3.0/buildstat.html 4. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 5. http://gcc.gnu.org/gcc-3.0/caveats.html ! 6. http://gcc.gnu.org/index.html 7. mailto:gcc@gcc.gnu.org ! 8. http://gcc.gnu.org/mirrors.html 9. https://gcc.gnu.org/onlinedocs/ 10. mailto:gcc-help@gcc.gnu.org 11. mailto:gcc@gcc.gnu.org --- 20454,20471 ---- provided this notice is preserved. These pages are [14]maintained by the GCC team. Last modified ! 2024-07-04. References ! 1. https://www.gnu.org/ ! 2. https://gcc.gnu.org/gcc-3.0/features.html ! 3. https://gcc.gnu.org/gcc-3.0/buildstat.html 4. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 5. https://gcc.gnu.org/gcc-3.0/caveats.html ! 6. https://gcc.gnu.org/index.html 7. mailto:gcc@gcc.gnu.org ! 8. https://gcc.gnu.org/mirrors.html 9. https://gcc.gnu.org/onlinedocs/ 10. mailto:gcc-help@gcc.gnu.org 11. mailto:gcc@gcc.gnu.org *************** References *** 20416,20421 **** --- 20474,20480 ---- 14. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-3.0/features.html + GCC 3.0 New Features Additional changes in GCC 3.0.4 *************** Other significant improvements *** 20591,20607 **** References 1. http://www.netbsd.org/ ! 2. http://gcc.gnu.org/news/reorder.html ! 3. http://gcc.gnu.org/news/ssa.html ! 4. http://gcc.gnu.org/news/null.html ! 5. http://gcc.gnu.org/news/unify.html ! 6. http://gcc.gnu.org/gcc-3.0/c++features.html ! 7. http://gcc.gnu.org/news/inlining.html ! 8. http://gcc.gnu.org/news/dependencies.html ! 9. http://gcc.gnu.org/c99status.html 10. https://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/News.html ! 11. http://gcc.gnu.org/gcc-3.0/libgcc.html ! 12. http://gcc.gnu.org/gcc-2.95/features.html 13. https://gcc.gnu.org/onlinedocs/ 14. mailto:gcc-help@gcc.gnu.org 15. mailto:gcc@gcc.gnu.org --- 20650,20666 ---- References 1. http://www.netbsd.org/ ! 2. https://gcc.gnu.org/news/reorder.html ! 3. https://gcc.gnu.org/news/ssa.html ! 4. https://gcc.gnu.org/news/null.html ! 5. https://gcc.gnu.org/news/unify.html ! 6. https://gcc.gnu.org/gcc-3.0/c++features.html ! 7. https://gcc.gnu.org/news/inlining.html ! 8. https://gcc.gnu.org/news/dependencies.html ! 9. https://gcc.gnu.org/c99status.html 10. https://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/News.html ! 11. https://gcc.gnu.org/gcc-3.0/libgcc.html ! 12. https://gcc.gnu.org/gcc-2.95/features.html 13. https://gcc.gnu.org/onlinedocs/ 14. mailto:gcc-help@gcc.gnu.org 15. mailto:gcc@gcc.gnu.org *************** References *** 20610,20615 **** --- 20669,20675 ---- 18. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-3.0/caveats.html + GCC 3.0 Caveats * -fstrict-aliasing is now part of -O2 and higher optimization *************** References *** 20669,20674 **** --- 20729,20735 ---- 7. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-2.95/index.html + GCC 2.95 (This release series is no longer supported.) *************** References and Acknowledgements *** 20741,20754 **** References ! 1. http://gcc.gnu.org/gcc-2.95/regress.html ! 2. http://gcc.gnu.org/gcc-2.95/othertest.html ! 3. http://gcc.gnu.org/gcc-2.95/features.html ! 4. http://gcc.gnu.org/gcc-2.95/buildstat.html 5. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 6. http://gcc.gnu.org/gcc-2.95/caveats.html ! 7. http://gcc.gnu.org/mirrors.html ! 8. http://gcc.gnu.org/index.html 9. mailto:gcc@gcc.gnu.org 10. https://gcc.gnu.org/onlinedocs/ 11. mailto:gcc-help@gcc.gnu.org --- 20802,20815 ---- References ! 1. https://gcc.gnu.org/gcc-2.95/regress.html ! 2. https://gcc.gnu.org/gcc-2.95/othertest.html ! 3. https://gcc.gnu.org/gcc-2.95/features.html ! 4. https://gcc.gnu.org/gcc-2.95/buildstat.html 5. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 6. https://gcc.gnu.org/gcc-2.95/caveats.html ! 7. https://gcc.gnu.org/mirrors.html ! 8. https://gcc.gnu.org/index.html 9. mailto:gcc@gcc.gnu.org 10. https://gcc.gnu.org/onlinedocs/ 11. mailto:gcc-help@gcc.gnu.org *************** References *** 20758,20763 **** --- 20819,20825 ---- 15. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-2.95/features.html + GCC 2.95 New Features * General Optimizer Improvements: *************** http://gcc.gnu.org/gcc-2.95/features.htm *** 20786,20792 **** + More support for various pragmas which appear in vendor include files * New Targets and Target Specific Improvements ! + [14]SPARC backend rewrite. + -mschedule=8000 will optimize code for PA8000 class processors; -mpa-risc-2-0 will generate code for PA2.0 processors --- 20848,20854 ---- + More support for various pragmas which appear in vendor include files * New Targets and Target Specific Improvements ! + [14]SPARC back end rewrite. + -mschedule=8000 will optimize code for PA8000 class processors; -mpa-risc-2-0 will generate code for PA2.0 processors *************** Additional Changes in GCC 2.95.2 *** 20926,20932 **** * Platform specific bugfixes and improvements + Work around bug in Sun V5.0 compilers which caused bootstrap comparison failures on SPARC targets. ! + Fix SPARC backend bug which caused aborts in final.c. + Fix sparc-hal-solaris2* configuration fragments. + Fix bug in sparc block profiling. + Fix obscure code generation bug for the PARISC targets. --- 20988,20994 ---- * Platform specific bugfixes and improvements + Work around bug in Sun V5.0 compilers which caused bootstrap comparison failures on SPARC targets. ! + Fix SPARC back end bug which caused aborts in final.c. + Fix sparc-hal-solaris2* configuration fragments. + Fix bug in sparc block profiling. + Fix obscure code generation bug for the PARISC targets. *************** Additional Changes in GCC 2.95.3 *** 21001,21026 **** provided this notice is preserved. These pages are [22]maintained by the GCC team. Last modified ! 2022-10-26. References ! 1. http://gcc.gnu.org/news/spill.html ! 2. http://gcc.gnu.org/news/lcm.html ! 3. http://gcc.gnu.org/news/cprop.html ! 4. http://gcc.gnu.org/news/cfg.html ! 5. http://gcc.gnu.org/news/dse.html ! 6. http://gcc.gnu.org/news/hoist.html ! 7. http://gcc.gnu.org/news/alias.html ! 8. http://gcc.gnu.org/gcc-2.95/c++features.html 9. https://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/News.html ! 10. http://gcc.gnu.org/news/gcj-announce.txt ! 11. http://gcc.gnu.org/news/javaannounce.html ! 12. http://gcc.gnu.org/c99status.html ! 13. http://gcc.gnu.org/news/chill.html ! 14. http://gcc.gnu.org/news/sparc.html ! 15. http://gcc.gnu.org/news/egcs-vcg.html ! 16. http://gcc.gnu.org/egcs-1.0/features-2.8.html 17. https://gcc.gnu.org/onlinedocs/ 18. mailto:gcc-help@gcc.gnu.org 19. mailto:gcc@gcc.gnu.org --- 21063,21088 ---- provided this notice is preserved. These pages are [22]maintained by the GCC team. Last modified ! 2023-09-02. References ! 1. https://gcc.gnu.org/news/spill.html ! 2. https://gcc.gnu.org/news/lcm.html ! 3. https://gcc.gnu.org/news/cprop.html ! 4. https://gcc.gnu.org/news/cfg.html ! 5. https://gcc.gnu.org/news/dse.html ! 6. https://gcc.gnu.org/news/hoist.html ! 7. https://gcc.gnu.org/news/alias.html ! 8. https://gcc.gnu.org/gcc-2.95/c++features.html 9. https://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/News.html ! 10. https://gcc.gnu.org/news/gcj-announce.txt ! 11. https://gcc.gnu.org/news/javaannounce.html ! 12. https://gcc.gnu.org/c99status.html ! 13. https://gcc.gnu.org/news/chill.html ! 14. https://gcc.gnu.org/news/sparc.html ! 15. https://gcc.gnu.org/news/egcs-vcg.html ! 16. https://gcc.gnu.org/egcs-1.0/features-2.8.html 17. https://gcc.gnu.org/onlinedocs/ 18. mailto:gcc-help@gcc.gnu.org 19. mailto:gcc@gcc.gnu.org *************** References *** 21029,21034 **** --- 21091,21097 ---- 22. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/gcc-2.95/caveats.html + GCC 2.95 Caveats * GCC 2.95 will issue an error for invalid asm statements that had *************** References *** 21096,21101 **** --- 21159,21165 ---- 7. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/egcs-1.1/index.html + EGCS 1.1 September 3, 1998: We are pleased to announce the release of EGCS 1.1. *************** http://gcc.gnu.org/egcs-1.1/index.html *** 21122,21128 **** * Vastly improved [4]C++ compiler and integrated C++ runtime libraries. * Fixes for the /tmp symlink race security problems. ! * New targets including mips16, arm-thumb and 64 bit PowerPC. * Improvements to GNU Fortran (g77) compiler and runtime library made since g77 version 0.5.23. --- 21186,21192 ---- * Vastly improved [4]C++ compiler and integrated C++ runtime libraries. * Fixes for the /tmp symlink race security problems. ! * New targets including mips16, arm-thumb and 64-bit PowerPC. * Improvements to GNU Fortran (g77) compiler and runtime library made since g77 version 0.5.23. *************** http://gcc.gnu.org/egcs-1.1/index.html *** 21166,21172 **** + Fix a few arm code generation bugs. + Fixincludes will fix additional broken SCO OpenServer header files. ! + Fix a m68k backend bug which caused invalid offsets in reg+d addresses. + Fix problems with 64bit AIX 4.3 support. + Fix handling of long longs for varargs/stdarg functions on the --- 21230,21236 ---- + Fix a few arm code generation bugs. + Fixincludes will fix additional broken SCO OpenServer header files. ! + Fix a m68k back end bug which caused invalid offsets in reg+d addresses. + Fix problems with 64bit AIX 4.3 support. + Fix handling of long longs for varargs/stdarg functions on the *************** http://gcc.gnu.org/egcs-1.1/index.html *** 21303,21321 **** provided this notice is preserved. These pages are [15]maintained by the GCC team. Last modified ! 2023-01-21. References ! 1. http://gcc.gnu.org/egcs-1.1/egcs-1.1-test.html ! 2. http://gcc.gnu.org/news/gcse.html ! 3. http://gcc.gnu.org/news/alias.html ! 4. http://gcc.gnu.org/egcs-1.1/c++features.html ! 5. http://gcc.gnu.org/egcs-1.1/features.html ! 6. http://gcc.gnu.org/egcs-1.1/buildstat.html 7. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 8. http://gcc.gnu.org/egcs-1.1/caveats.html ! 9. http://gcc.gnu.org/mirrors.html 10. https://gcc.gnu.org/onlinedocs/ 11. mailto:gcc-help@gcc.gnu.org 12. mailto:gcc@gcc.gnu.org --- 21367,21385 ---- provided this notice is preserved. These pages are [15]maintained by the GCC team. Last modified ! 2024-05-18. References ! 1. https://gcc.gnu.org/egcs-1.1/egcs-1.1-test.html ! 2. https://gcc.gnu.org/news/gcse.html ! 3. https://gcc.gnu.org/news/alias.html ! 4. https://gcc.gnu.org/egcs-1.1/c++features.html ! 5. https://gcc.gnu.org/egcs-1.1/features.html ! 6. https://gcc.gnu.org/egcs-1.1/buildstat.html 7. https://gcc.gnu.org/onlinedocs/gcc/Contributors.html ! 8. https://gcc.gnu.org/egcs-1.1/caveats.html ! 9. https://gcc.gnu.org/mirrors.html 10. https://gcc.gnu.org/onlinedocs/ 11. mailto:gcc-help@gcc.gnu.org 12. mailto:gcc@gcc.gnu.org *************** References *** 21324,21329 **** --- 21388,21394 ---- 15. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/egcs-1.1/features.html + EGCS 1.1 new features * Integrated GNU Fortran (g77) compiler and runtime library with *************** http://gcc.gnu.org/egcs-1.1/features.htm *** 21378,21384 **** Intel recommendations now. Various improvements throughout the x86 port to improve performance on Pentium processors (including improved epilogue sequences for Pentium chips and ! backend improvements which should help register allocation on all x86 variants. Conditional move support has been fixed and enabled for PPro processors. The x86 port also better supports 64bit operations now. Unixware 7, a System V Release 5 target, --- 21443,21449 ---- Intel recommendations now. Various improvements throughout the x86 port to improve performance on Pentium processors (including improved epilogue sequences for Pentium chips and ! back end improvements which should help register allocation on all x86 variants. Conditional move support has been fixed and enabled for PPro processors. The x86 port also better supports 64bit operations now. Unixware 7, a System V Release 5 target, *************** http://gcc.gnu.org/egcs-1.1/features.htm *** 21401,21414 **** provided this notice is preserved. These pages are [10]maintained by the GCC team. Last modified ! 2022-10-26. References ! 1. http://gcc.gnu.org/egcs-1.1/c++features.html ! 2. http://gcc.gnu.org/news/gcse.html ! 3. http://gcc.gnu.org/news/alias.html ! 4. http://gcc.gnu.org/egcs-1.0/features-2.8.html 5. https://gcc.gnu.org/onlinedocs/ 6. mailto:gcc-help@gcc.gnu.org 7. mailto:gcc@gcc.gnu.org --- 21466,21479 ---- provided this notice is preserved. These pages are [10]maintained by the GCC team. Last modified ! 2023-09-02. References ! 1. https://gcc.gnu.org/egcs-1.1/c++features.html ! 2. https://gcc.gnu.org/news/gcse.html ! 3. https://gcc.gnu.org/news/alias.html ! 4. https://gcc.gnu.org/egcs-1.0/features-2.8.html 5. https://gcc.gnu.org/onlinedocs/ 6. mailto:gcc-help@gcc.gnu.org 7. mailto:gcc@gcc.gnu.org *************** References *** 21417,21422 **** --- 21482,21488 ---- 10. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/egcs-1.1/caveats.html + EGCS 1.1 Caveats * EGCS has an integrated libstdc++, but does not have an integrated *************** References *** 21466,21471 **** --- 21532,21538 ---- 6. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/egcs-1.0/index.html + EGCS 1.0 December 3, 1997: We are pleased to announce the release of EGCS 1.0. *************** http://gcc.gnu.org/egcs-1.0/index.html *** 21574,21580 **** + Add missing entries to g77 lang-options. + Fix problem with -fpedantic in the g77 compiler. + Fix "backspace" problem with g77 on alphas. ! + Fix x86 backend problem with Fortran literals and -fpic. + Fix some of the problems with negative subscripts for g77 on alphas. + Fixes for Fortran builds on cygwin32/mingw32. --- 21641,21647 ---- + Add missing entries to g77 lang-options. + Fix problem with -fpedantic in the g77 compiler. + Fix "backspace" problem with g77 on alphas. ! + Fix x86 back end problem with Fortran literals and -fpic. + Fix some of the problems with negative subscripts for g77 on alphas. + Fixes for Fortran builds on cygwin32/mingw32. *************** http://gcc.gnu.org/egcs-1.0/index.html *** 21649,21662 **** provided this notice is preserved. These pages are [10]maintained by the GCC team. Last modified ! 2023-01-21. References ! 1. http://gcc.gnu.org/egcs-1.0/features.html ! 2. http://gcc.gnu.org/egcs-1.0/buildstat.html ! 3. http://gcc.gnu.org/egcs-1.0/caveats.html ! 4. http://gcc.gnu.org/mirrors.html 5. https://gcc.gnu.org/onlinedocs/ 6. mailto:gcc-help@gcc.gnu.org 7. mailto:gcc@gcc.gnu.org --- 21716,21729 ---- provided this notice is preserved. These pages are [10]maintained by the GCC team. Last modified ! 2023-09-02. References ! 1. https://gcc.gnu.org/egcs-1.0/features.html ! 2. https://gcc.gnu.org/egcs-1.0/buildstat.html ! 3. https://gcc.gnu.org/egcs-1.0/caveats.html ! 4. https://gcc.gnu.org/mirrors.html 5. https://gcc.gnu.org/onlinedocs/ 6. mailto:gcc-help@gcc.gnu.org 7. mailto:gcc@gcc.gnu.org *************** References *** 21665,21670 **** --- 21732,21738 ---- 10. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/egcs-1.0/features.html + EGCS 1.0 features * Core compiler is based on the gcc2 development tree from Aug 2, *************** http://gcc.gnu.org/egcs-1.0/features.htm *** 21718,21725 **** References ! 1. http://gcc.gnu.org/egcs-1.0/features-2.8.html ! 2. http://gcc.gnu.org/egcs-1.0/c++features.html 3. https://gcc.gnu.org/onlinedocs/ 4. mailto:gcc-help@gcc.gnu.org 5. mailto:gcc@gcc.gnu.org --- 21786,21793 ---- References ! 1. https://gcc.gnu.org/egcs-1.0/features-2.8.html ! 2. https://gcc.gnu.org/egcs-1.0/c++features.html 3. https://gcc.gnu.org/onlinedocs/ 4. mailto:gcc-help@gcc.gnu.org 5. mailto:gcc@gcc.gnu.org *************** References *** 21728,21733 **** --- 21796,21802 ---- 8. https://gcc.gnu.org/about.html ====================================================================== http://gcc.gnu.org/egcs-1.0/caveats.html + EGCS 1.0 Caveats * EGCS has an integrated libstdc++, but does not have an integrated diff -Nrcpad gcc-11.4.0/c++tools/ChangeLog gcc-11.5.0/c++tools/ChangeLog *** gcc-11.4.0/c++tools/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/c++tools/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/config/ChangeLog gcc-11.5.0/config/ChangeLog *** gcc-11.4.0/config/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/config/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/contrib/ChangeLog gcc-11.5.0/contrib/ChangeLog *** gcc-11.4.0/contrib/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/contrib/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/contrib/header-tools/ChangeLog gcc-11.5.0/contrib/header-tools/ChangeLog *** gcc-11.4.0/contrib/header-tools/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/contrib/header-tools/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/contrib/reghunt/ChangeLog gcc-11.5.0/contrib/reghunt/ChangeLog *** gcc-11.4.0/contrib/reghunt/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/contrib/reghunt/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/contrib/regression/ChangeLog gcc-11.5.0/contrib/regression/ChangeLog *** gcc-11.4.0/contrib/regression/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/contrib/regression/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/fixincludes/ChangeLog gcc-11.5.0/fixincludes/ChangeLog *** gcc-11.4.0/fixincludes/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/fixincludes/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,26 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + + 2024-04-24 Rainer Orth + + Backported from master: + 2023-08-17 Rainer Orth + + * inclhack.def (darwin_flt_eval_method): Handle macOS 14 guard + variant. + * fixincl.x: Regenerate. + * tests/base/math.h [DARWIN_FLT_EVAL_METHOD_CHECK]: Update test. + + 2024-04-24 Francois-Xavier Coudert + + Backported from master: + 2022-01-01 Francois-Xavier Coudert + + * inclhack.def: Add new fix on darwin. + * fixincl.x: Regenerate. + * tests/base/math.h: Regenerate. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/fixincludes/fixincl.x gcc-11.5.0/fixincludes/fixincl.x *** gcc-11.4.0/fixincludes/fixincl.x Mon May 29 08:46:28 2023 --- gcc-11.5.0/fixincludes/fixincl.x Fri Jul 19 05:52:43 2024 *************** *** 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. * --- 2,12 ---- * * DO NOT EDIT THIS FILE (fixincl.x) * ! * It has been AutoGen-ed April 12, 2024 at 01:20:56 PM by AutoGen 5.18.7 * From the definitions inclhack.def * and the template file fixincl */ ! /* DO NOT SVN-MERGE THIS FILE, EITHER Fri Apr 12 13:20:56 BST 2024 * * 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 262 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 263 fixup descriptions. * * See README for more information. * *************** static const char* apzDarwin_Ucred__Atom *** 3653,3658 **** --- 3653,3695 ---- /* * * * * * * * * * * * * * * * * * * * * * * * * * * + * Description of Darwin_Flt_Eval_Method fix + */ + tSCC zDarwin_Flt_Eval_MethodName[] = + "darwin_flt_eval_method"; + + /* + * File name selection pattern + */ + tSCC zDarwin_Flt_Eval_MethodList[] = + "math.h\0"; + /* + * Machine/OS name selection pattern + */ + tSCC* apzDarwin_Flt_Eval_MethodMachs[] = { + "*-*-darwin*", + (const char*)NULL }; + + /* + * content selection pattern - do fix if pattern found + */ + tSCC zDarwin_Flt_Eval_MethodSelect0[] = + "^#if __FLT_EVAL_METHOD__ == 0( \\|\\| __FLT_EVAL_METHOD__ == -1)?$"; + + #define DARWIN_FLT_EVAL_METHOD_TEST_CT 1 + static tTestDesc aDarwin_Flt_Eval_MethodTests[] = { + { TT_EGREP, zDarwin_Flt_Eval_MethodSelect0, (regex_t*)NULL }, }; + + /* + * Fix Command Arguments for Darwin_Flt_Eval_Method + */ + static const char* apzDarwin_Flt_Eval_MethodPatch[] = { + "format", + "%0 || __FLT_EVAL_METHOD__ == 16", + (char*)NULL }; + + /* * * * * * * * * * * * * * * * * * * * * * * * * * + * * Description of Dec_Intern_Asm fix */ tSCC zDec_Intern_AsmName[] = *************** static const char* apzX11_SprintfPatch[] *** 10647,10655 **** * * List of all fixes */ ! #define REGEX_COUNT 300 #define MACH_LIST_SIZE_LIMIT 187 ! #define FIX_COUNT 262 /* * Enumerate the fixes --- 10684,10692 ---- * * List of all fixes */ ! #define REGEX_COUNT 301 #define MACH_LIST_SIZE_LIMIT 187 ! #define FIX_COUNT 263 /* * Enumerate the fixes *************** typedef enum { *** 10741,10746 **** --- 10778,10784 ---- DARWIN_STDINT_6_FIXIDX, DARWIN_STDINT_7_FIXIDX, DARWIN_UCRED__ATOMIC_FIXIDX, + DARWIN_FLT_EVAL_METHOD_FIXIDX, DEC_INTERN_ASM_FIXIDX, DJGPP_WCHAR_H_FIXIDX, ECD_CURSOR_FIXIDX, *************** tFixDesc fixDescList[ FIX_COUNT ] = { *** 11350,11355 **** --- 11388,11398 ---- DARWIN_UCRED__ATOMIC_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, aDarwin_Ucred__AtomicTests, apzDarwin_Ucred__AtomicPatch, 0 }, + { zDarwin_Flt_Eval_MethodName, zDarwin_Flt_Eval_MethodList, + apzDarwin_Flt_Eval_MethodMachs, + DARWIN_FLT_EVAL_METHOD_TEST_CT, FD_MACH_ONLY | FD_SUBROUTINE, + aDarwin_Flt_Eval_MethodTests, apzDarwin_Flt_Eval_MethodPatch, 0 }, + { zDec_Intern_AsmName, zDec_Intern_AsmList, apzDec_Intern_AsmMachs, DEC_INTERN_ASM_TEST_CT, FD_MACH_ONLY, diff -Nrcpad gcc-11.4.0/fixincludes/inclhack.def gcc-11.5.0/fixincludes/inclhack.def *** gcc-11.4.0/fixincludes/inclhack.def Mon May 29 08:46:28 2023 --- gcc-11.5.0/fixincludes/inclhack.def Fri Jul 19 05:52:43 2024 *************** fix = { *** 1814,1819 **** --- 1814,1831 ---- test_text = ""; /* Don't provide this for wrap fixes. */ }; + /* The darwin headers don't accept __FLT_EVAL_METHOD__ == 16. */ + fix = { + hackname = darwin_flt_eval_method; + mach = "*-*-darwin*"; + files = math.h; + select = "^#if __FLT_EVAL_METHOD__ == 0( \\|\\| __FLT_EVAL_METHOD__ == -1)?$"; + c_fix = format; + c_fix_arg = "%0 || __FLT_EVAL_METHOD__ == 16"; + test_text = "#if __FLT_EVAL_METHOD__ == 0\n" + "#if __FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == -1"; + }; + /* * Fix on Digital UNIX V4.0: * It contains a prototype for a DEC C internal asm() function, diff -Nrcpad gcc-11.4.0/fixincludes/tests/base/math.h gcc-11.5.0/fixincludes/tests/base/math.h *** gcc-11.4.0/fixincludes/tests/base/math.h Mon May 29 08:46:28 2023 --- gcc-11.5.0/fixincludes/tests/base/math.h Fri Jul 19 05:52:43 2024 *************** *** 30,35 **** --- 30,41 ---- #endif /* DARWIN_9_LONG_DOUBLE_FUNCS_2_CHECK */ + #if defined( DARWIN_FLT_EVAL_METHOD_CHECK ) + #if __FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == 16 + #if __FLT_EVAL_METHOD__ == 0 || __FLT_EVAL_METHOD__ == -1 || __FLT_EVAL_METHOD__ == 16 + #endif /* DARWIN_FLT_EVAL_METHOD_CHECK */ + + #if defined( HPPA_HPUX_FP_MACROS_CHECK ) #endif /* _INCLUDE_HPUX_SOURCE */ diff -Nrcpad gcc-11.4.0/gcc/BASE-VER gcc-11.5.0/gcc/BASE-VER *** gcc-11.4.0/gcc/BASE-VER Mon May 29 08:46:50 2023 --- gcc-11.5.0/gcc/BASE-VER Fri Jul 19 05:53:33 2024 *************** *** 1 **** ! 11.4.0 --- 1 ---- ! 11.5.0 diff -Nrcpad gcc-11.4.0/gcc/ChangeLog gcc-11.5.0/gcc/ChangeLog *** gcc-11.4.0/gcc/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/gcc/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,1735 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + + 2024-07-17 Jakub Jelinek + + Backported from master: + 2024-07-17 Jakub Jelinek + + PR middle-end/115527 + * gimple-fold.c (clear_padding_flush): Introduce endsize + variable and use it instead of wordsize when comparing it against + nonzero_last. + (clear_padding_type): Increment off by sz. + + 2024-07-16 Richard Biener + + Backported from master: + 2024-07-16 Richard Biener + + PR tree-optimization/115843 + * config/i386/x86-tune-costs.h (znver4_cost): Update unaligned + load and store cost from the aligned costs. + + 2024-07-11 Andre Vieira + + Backported from master: + 2024-07-11 Andre Vieira + + PR target/115611 + * config/arm/mve.md (mve_vec_setv2di_internal): Fix printing of input + scalar register pair when lane = 1. + + 2024-07-10 Uros Bizjak + + Backported from master: + 2024-07-10 Uros Bizjak + + PR middle-end/115836 + * expmed.c (emit_store_flag_1): Move calculation of + scode just before its only usage site. + + 2024-07-09 Kyrylo Tkachov + + Backported from master: + 2024-07-03 Kyrylo Tkachov + + PR target/115475 + * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): + Define __ARM_FEATURE_SVE_BF16 for TARGET_SVE_BF16. + + 2024-07-09 Kyrylo Tkachov + + Backported from master: + 2024-07-03 Kyrylo Tkachov + + PR target/115457 + * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): + Define __ARM_FEATURE_BF16 for TARGET_BF16_FP. + + 2024-07-08 Richard Biener + + Backported from master: + 2023-11-28 Richard Biener + + PR middle-end/112732 + * tree.c (build_opaque_vector_type): Reset TYPE_ALIAS_SET + of the newly built type. + + 2024-07-03 John David Anglin + + PR target/115691 + * config/pa/pa.md: Remove incorrect xmpyu patterns. + + 2024-06-29 Francois-Xavier Coudert + + Backported from master: + 2024-03-07 Francois-Xavier Coudert + + * system.h: Include safe-ctype.h after C++ standard headers. + + 2024-06-27 Kyrylo Tkachov + + * config/aarch64/aarch64-cores.def (grace): New entry. + * config/aarch64/aarch64-tune.md: Regenerate. + * doc/invoke.texi (AArch64 Options): Document the above. + + 2024-06-24 Kewen Lin + + Backported from master: + 2024-05-29 Kewen Lin + + PR target/114846 + * config/rs6000/rs6000-logue.c (rs6000_emit_epilogue): As + EPILOGUE_TYPE_EH_RETURN would be passed as epilogue_type directly + now, adjust the relevant handlings on it. + * config/rs6000/rs6000.md (eh_return expander): Append by calling + gen_eh_return_internal and emit_barrier. + (eh_return_internal): New define_insn_and_split, call function + rs6000_emit_epilogue with epilogue type EPILOGUE_TYPE_EH_RETURN. + + 2024-06-21 Richard Biener + + Backported from master: + 2024-01-31 Richard Biener + + PR middle-end/110176 + * match.pd (zext (bool) <= (int) 4294967295u): Make sure + to match INTEGER_CST only without outstanding conversion. + + 2024-06-21 Richard Biener + + PR tree-optimization/111070 + * tree-ssa-ifcombine.c (ifcombine_ifandif): Check we have + an SSA name before checking SSA_NAME_OCCURS_IN_ABNORMAL_PHI. + + 2024-06-21 Richard Biener + + PR tree-optimization/111039 + * tree-ssa-ifcombine.c (ifcombine_ifandif): Check for + SSA_NAME_OCCURS_IN_ABNORMAL_PHI. + + 2024-06-21 Richard Biener + + PR debug/111080 + * dwarf2out.c (prune_unused_types_walk): Handle + DW_TAG_restrict_type, DW_TAG_shared_type, DW_TAG_atomic_type, + DW_TAG_immutable_type, DW_TAG_coarray_type, DW_TAG_unspecified_type + and DW_TAG_dynamic_type as to only output them when referenced. + + 2024-06-21 Richard Biener + + Backported from master: + 2023-10-20 Richard Biener + + PR tree-optimization/111445 + * tree-scalar-evolution.c (simple_iv_with_niters): + Add missing check for a sign-conversion. + + 2024-06-21 Richard Biener + + Backported from master: + 2023-11-13 Richard Biener + + PR tree-optimization/112495 + * tree-data-ref.c (runtime_alias_check_p): Reject checks + between different address spaces. + + 2024-06-21 Richard Biener + + Backported from master: + 2024-01-11 Richard Biener + + PR tree-optimization/112505 + * tree-vect-loop.c (vectorizable_induction): Reject + bit-precision induction. + + 2024-06-21 Richard Biener + + Backported from master: + 2024-01-23 Richard Biener + + PR debug/112718 + * dwarf2out.c (dwarf2out_finish): Reset all type units + for the fat part of an LTO compile. + + 2024-06-21 Richard Biener + + Backported from master: + 2023-12-14 Richard Biener + + PR tree-optimization/112793 + * tree-vect-slp.c (vect_schedule_slp_node): Already + code-generated constant/external nodes are OK. + + 2024-06-21 Richard Biener + + Backported from master: + 2024-02-22 Richard Biener + + PR tree-optimization/114027 + * tree-vect-loop.c (vecctorizable_reduction): Use optimized + condition reduction classification only for single-element + chains. + + 2024-06-21 Richard Biener + + Backported from master: + 2024-05-06 Richard Biener + + PR middle-end/114734 + * internal-fn.c (expand_call_mem_ref): Use + get_gimple_for_ssa_name to get at the def stmt of the address + argument to honor SSA coalescing constraints. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-06-17 Jakub Jelinek + + PR driver/115440 + * opts-common.c (add_misspelling_candidates): If opt1 is non-NULL, + add a space and opt1 to the alternative suggestion text. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-06-04 Jakub Jelinek + + PR tree-optimization/115337 + * fold-const.c (tree_call_nonnegative_warnv_p) : + If fn is CFN_CLZ, use CLZ_DEFINED_VALUE_AT. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-06-04 Jakub Jelinek + + PR middle-end/108789 + * builtins.c (fold_builtin_arith_overflow): For ovf_only, + don't call save_expr and don't build REALPART_EXPR, otherwise + set TREE_SIDE_EFFECTS on call before calling save_expr. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-05-15 Jakub Jelinek + + PR rtl-optimization/114902 + PR rtl-optimization/115092 + * combine.c (simplify_compare_const): Don't optimize + GE op0 SIGNED_MIN or LT op0 SIGNED_MIN into NE op0 const0_rtx or + EQ op0 const0_rtx. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-05-07 Jakub Jelinek + + PR sanitizer/114956 + * tree-inline.c: Include asan.h. + (copy_bb): Remove also .ASAN_MARK calls if id->dst_fn has asan/hwasan + sanitization disabled. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-04-30 Jakub Jelinek + + PR tree-optimization/114876 + * gimple-ssa-sprintf.c (format_character): For min == 0 && max == 0, + set max, likely and unlikely members to 1 rather than 0. Remove + useless res.knownrange = true;. Formatting fixes. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-04-25 Jakub Jelinek + + PR fortran/114825 + * tree-nested.c (get_debug_decl): New function. + (get_nonlocal_debug_decl): Use it. + (get_local_debug_decl): Likewise. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-04-19 Jakub Jelinek + + PR rtl-optimization/114768 + * rtlanal.c (set_noop_p): Don't return true for MEM <- MEM + sets if src has side-effects or for stores into ZERO_EXTRACT + if ZERO_EXTRACT operand has side-effects. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-04-18 Jakub Jelinek + + PR middle-end/114753 + * internal-fn.c (expand_mul_overflow): Save flag_trapv and + temporarily clear it for the duration of the function, then + restore previous value. + (expand_vector_ubsan_overflow): Likewise. + (expand_arith_overflow): Likewise. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-04-15 Jakub Jelinek + + PR c++/114634 + * attribs.c (diag_attr_exclusions): Set attrs[1] to NULL_TREE for + decls with NULL TREE_TYPE. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-04-11 Jakub Jelinek + + PR middle-end/110027 + * asan.c (asan_emit_stack_protection): Assert offsets[0] is + zero if there is no stack protect guard, otherwise + -ASAN_RED_ZONE_SIZE. If alignb > ASAN_RED_ZONE_SIZE and there is + stack pointer guard, take the ASAN_RED_ZONE_SIZE bytes allocated at + the top of the stack into account when computing base_align_bias. + Recompute use_after_return_class from asan_frame_size + base_align_bias + and set to -1 if that would overflow to 11. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-04-05 Jakub Jelinek + + PR tree-optimization/114566 + * tree-vect-loop.c (update_epilogue_loop_vinfo): Don't clear + base_misaligned. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-04-04 Jakub Jelinek + + PR c++/114537 + * fold-const.c (native_encode_initializer): Look through + NON_LVALUE_EXPR if val is INTEGER_CST. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-03-14 Jakub Jelinek + + PR middle-end/113907 + * ipa-icf.c (sem_item_optimizer::merge_classes): Reset + SSA_NAME_RANGE_INFO and SSA_NAME_PTR_INFO on successfully ICF merged + functions. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-03-14 Jakub Jelinek + + PR target/114310 + * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): For + TImode force newval into a register. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-03-07 Jakub Jelinek + + PR rtl-optimization/110079 + * bb-reorder.c (fix_crossing_unconditional_branches): Don't adjust + asm goto. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-03-04 Jakub Jelinek + + PR target/114184 + * config/i386/i386-expand.c (ix86_expand_move): If XFmode op1 + is SUBREG of CONSTANT_P, force the SUBREG_REG into memory or + register. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-02-12 Jakub Jelinek + + PR c++/113674 + * attribs.c (extract_attribute_substring): Remove. + (lookup_scoped_attribute_spec): Don't call it. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-01-30 Jakub Jelinek + + PR tree-optimization/113603 + * tree-ssa-strlen.c (strlen_pass::handle_store): After + count_nonzero_bytes call refetch si using get_strinfo in case it + has been unshared in the meantime. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-01-25 Jakub Jelinek + + * doc/generic.texi (VECTOR_CST): Fix typo - petterns -> patterns. + * doc/rtl.texi (CONST_VECTOR): Likewise. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-01-18 Jakub Jelinek + + PR target/113122 + * config/i386/i386.c (x86_function_profiler): Add -masm=intel + support. Add missing space after , in emitted assembly in some + cases. Formatting fixes. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-01-16 Jakub Jelinek + + PR tree-optimization/113372 + PR middle-end/90348 + PR middle-end/110115 + PR middle-end/111422 + * cfgexpand.c (add_scope_conflicts_2): New function. + (add_scope_conflicts_1): Use it. + + 2024-06-12 Torbjörn SVENSSON + + Backported from master: + 2024-06-12 Torbjörn SVENSSON + Yvan ROUX + + PR target/115253 + * config/arm/arm.c (cmse_nonsecure_call_inline_register_clear): + Sign extend for Thumb1. + (thumb1_expand_prologue): Add zero/sign extend. + + 2024-06-04 Richard Sandiford + + Backported from master: + 2021-04-29 Richard Sandiford + + PR rtl-optimization/100303 + * rtl-ssa/accesses.cc (function_info::make_use_available): Take a + boolean that indicates whether the use will only be used in + debug instructions. Treat it in the same way that existing + cross-EBB debug references would be handled if so. + (function_info::make_uses_available): Likewise. + * rtl-ssa/functions.h (function_info::make_uses_available): Update + prototype accordingly. + (function_info::make_uses_available): Likewise. + * fwprop.c (try_fwprop_subst): Update call accordingly. + + 2024-06-04 Richard Sandiford + + Backported from master: + 2023-02-02 Richard Sandiford + + PR rtl-optimization/108086 + * rtl-ssa/insns.h (insn_info): Make m_num_defs a full unsigned int. + Adjust size-related commentary accordingly. + + 2024-06-04 Richard Sandiford + + Backported from master: + 2024-01-29 Richard Sandiford + + PR target/113281 + * tree-vect-patterns.c (vect_recog_over_widening_pattern): Remove + workaround for right shifts. + (vect_truncatable_operation_p): Handle NEGATE_EXPR and BIT_NOT_EXPR. + (vect_determine_precisions_from_range): Be more selective about + which codes can be narrowed based on their input and output ranges. + For shifts, require at least one more bit of precision than the + maximum shift amount. + + 2024-06-04 Richard Sandiford + + Backported from master: + 2024-05-24 Richard Sandiford + + PR tree-optimization/115192 + * tree-data-ref.c (create_intersect_range_checks): Take the + alignment of the access sizes into account. + + 2024-06-03 Uros Bizjak + + Backported from master: + 2024-05-31 Uros Bizjak + + PR target/115297 + * config/alpha/alpha.md (si3): Wrap DImode + operands 3 and 4 with truncate:SI RTX. + (*divmodsi_internal_er): Ditto for operands 1 and 2. + (*divmodsi_internal_er_1): Ditto. + (*divmodsi_internal): Ditto. + * config/alpha/constraints.md ("b"): Correct register + number in the description. + + 2024-05-30 YunQiang Su + + Backported from master: + 2024-05-29 YunQiang Su + + * config/mips/mips.c(mips16_gp_pseudo_reg): Mark + MIPS16_PIC_TEMP and MIPS_PROLOGUE_TEMP clobbered. + (mips_emit_call_insn): Mark MIPS16_PIC_TEMP and + MIPS_PROLOGUE_TEMP clobbered if MIPS16 and CALL_CLOBBERED_GP. + + 2024-05-28 Jakub Jelinek + + Backported from master: + 2024-05-22 Jakub Jelinek + + PR sanitizer/115172 + * ubsan.c (instrument_bool_enum_load): If rhs is not in generic + address space, use qualified version of utype with the right + address space. Formatting fix. + + 2024-05-09 Andrew Pinski + + Backported from master: + 2023-09-25 Andrew Pinski + + PR tree-optimization/110386 + * gimple-ssa-backprop.c (strip_sign_op_1): Remove ABSU_EXPR. + + 2024-05-08 Andrew Pinski + + Backported from master: + 2023-09-10 Andrew Pinski + + PR tree-optimization/111331 + * tree-ssa-phiopt.c (minmax_replacement): + Fix the LE/GE comparison for the + `(a CMP CST1) ? max : a` optimization. + + 2024-05-08 Andrew Pinski + + Backported from master: + 2024-03-11 Andrew Pinski + + PR middle-end/95351 + * fold-const.c (merge_truthop_with_opposite_arm): Use + the type of the operands of the comparison and not the type + of the comparison. + + 2024-05-02 Peter Bergner + + Backported from master: + 2024-04-12 Will Schmidt + Peter Bergner + + PR target/101865 + * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Use + OPTION_MASK_POWER8. + * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_POWER8. + (ISA_2_7_MASKS_SERVER): Likewise. + * config/rs6000/rs6000.c (rs6000_option_override_internal): Update + comment. Use OPTION_MASK_POWER8 and TARGET_POWER8. + * config/rs6000/rs6000.h (TARGET_SYNC_HI_QI): Use TARGET_POWER8. + * config/rs6000/rs6000.md (define_attr "isa"): Add p8. + (define_attr "enabled"): Handle it. + (define_insn "prefetch"): Use TARGET_POWER8. + * config/rs6000/rs6000.opt (mpower8-internal): New. + + 2024-05-02 Peter Bergner + + Backported from master: + 2024-04-10 Peter Bergner + + PR target/101865 + * config/rs6000/rs6000.h (TARGET_DIRECT_MOVE): Define. + * config/rs6000/rs6000.c (rs6000_option_override_internal): Replace + OPTION_MASK_DIRECT_MOVE with OPTION_MASK_P8_VECTOR. Delete redundant + OPTION_MASK_DIRECT_MOVE usage. Delete TARGET_DIRECT_MOVE dead code. + (rs6000_opt_masks): Neuter the "direct-move" option. + * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Replace + OPTION_MASK_DIRECT_MOVE with OPTION_MASK_P8_VECTOR. Delete useless + comment. + * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete + OPTION_MASK_DIRECT_MOVE. + (OTHER_P8_VECTOR_MASKS): Likewise. + (POWERPC_MASKS): Likewise. + * config/rs6000/rs6000.opt (mdirect-move): Remove Mask and Var. + + 2024-04-29 Iain Sandoe + + Backported from master: + 2024-04-02 Iain Sandoe + + * config/darwin.c (darwin_override_options): Reduce the debug + level to 2 if dsymutil cannot handle .macinfo sections. + + 2024-04-28 Iain Sandoe + + * config/darwin.c: Return true as the default libc avaiability. + + 2024-04-28 Iain Sandoe + + * config/darwin.h (LINK_COMMAND_SPEC_A): Handle weak crts + before other objects. (REAL_LIBGCC_SPEC): Remove weak crts + from here. (DARWIN_WEAK_CRTS): New. + + 2024-04-28 Iain Sandoe + + Backported from master: + 2024-01-28 Iain Sandoe + + * config/darwin.c (darwin_build_constant_cfstring): Prevent over- + alignment of CFString constants by setting DECL_USER_ALIGN. + + 2024-04-28 Iain Sandoe + + Backported from master: + 2024-01-18 Iain Sandoe + + * config/darwin.c (darwin_objc1_section): Use the correct + meta-data version for constant strings. + (machopic_select_section): Assert if we fail to handle CFString + sections as Obejctive-C meta-data or drectly. + + 2024-04-28 Iain Sandoe + + Backported from master: + 2024-01-18 Iain Sandoe + + PR target/105522 + * config/darwin.c (machopic_select_section): Handle C and C++ + CFStrings. + (darwin_rename_builtins): Move this out of the CFString code. + (darwin_libc_has_function): Likewise. + (darwin_build_constant_cfstring): Create an anonymous var to + hold each CFString. + * config/darwin.h (ASM_OUTPUT_LABELREF): Handle constant + CFstrings. + + 2024-04-27 Francois-Xavier Coudert + + Backported from master: + 2023-10-30 Francois-Xavier Coudert + Iain Sandoe + + * config/darwin.c (darwin_override_options): Cannot use + OPTION_SET_P here. + + 2024-04-27 Iain Sandoe + + Backported from master: + 2023-10-25 Iain Sandoe + + * config/darwin.c (darwin_override_options): Handle fPIE. + + 2024-04-27 Iain Sandoe + + Backported from master: + 2024-04-27 Iain Sandoe + + * config/darwin.h + (darwin_label_is_anonymous_local_objc_name): Make metadata names + linker-visibile for GNU objective C. + + 2024-04-27 Iain Sandoe + + Backported from master: + 2023-09-26 Iain Sandoe + + * config/darwin.h (DARWIN_CC1_SPEC): Remove -dynamiclib. + + 2024-04-27 Iain Sandoe + + Backported from master: + 2023-09-20 Iain Sandoe + + * config/darwin.h: + (SUBTARGET_DRIVER_SELF_SPECS): Move handling of 'shared' into the same + specs as 'dynamiclib'. (STARTFILE_SPEC): Handle 'shared'. + + 2024-04-25 Iain Sandoe + + Backported from master: + 2024-04-02 Iain Sandoe + + * config/darwin.c (darwin_override_options): Update the + clang major version value in the dsymutil check. + + 2024-04-25 Iain Sandoe + + Backported from master: + 2023-10-18 Iain Sandoe + + * config.in: Regenerate. + * config/darwin.c (darwin_file_start): Add assembler directives + for the target OS version, where these are supported by the + assembler. + (darwin_override_options): Check for building >= macOS 10.14. + * configure: Regenerate. + * configure.ac: Check for assembler support of .build_version + directives. + + 2024-04-25 Iain Sandoe + + Backported from master: + 2023-09-27 Iain Sandoe + + PR target/111610 + * configure: Regenerate. + * configure.ac: Rename the missing dsymutil case to "DET_UNKNOWN". + + 2024-04-25 Iain Sandoe + + Backported from master: + 2023-09-18 Iain Sandoe + + * config/darwin-protos.h (enum darwin_external_toolchain): New. + * config/darwin.c (DSYMUTIL_VERSION): New. + (darwin_override_options): Choose the default debug DWARF version + depending on the configured dsymutil version. + + 2024-04-25 Iain Sandoe + + Backported from master: + 2023-09-04 Iain Sandoe + + * config/rs6000/darwin.h (LIB_SPEC): Include libSystemStubs for + all 32b Darwin PowerPC cases. + + 2024-04-25 Iain Sandoe + + Backported from master: + 2023-09-10 Iain Sandoe + + * config/darwin.c (darwin_function_section): Place unlikely + executed global init code into the standard cold section. + + 2024-04-25 Iain Sandoe + + Backported from master: + 2023-09-04 Iain Sandoe + + * config/darwin-sections.def (static_init_section): Add the + __TEXT,__StaticInit section. + * config/darwin.c (darwin_function_section): Use the static init + section for global initializers, to match other platform toolchains. + + 2024-04-25 Iain Sandoe + + Backported from master: + 2023-09-04 Iain Sandoe + + * config/darwin-sections.def (darwin_exception_section): Move to + the __TEXT segment. + * config/darwin.c (darwin_emit_except_table_label): Align before + the exception table label. + * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use indirect PC- + relative 4byte relocs. + + 2024-04-25 Richard Ball + + Backported from master: + 2024-04-25 Richard Ball + + PR target/114837 + * config/arm/arm.c (cmse_nonsecure_call_inline_register_clear): + Add zero/sign extend. + (arm_expand_prologue): Add zero/sign extend. + + 2024-04-25 Kewen Lin + + Backported from master: + 2024-04-09 Kewen Lin + Andrew Pinski + + PR target/88309 + * config/rs6000/rs6000-call.c (rs6000_gimple_fold_builtin): Fix + wrong align passed to function build_aligned_type. + * tree-ssa-loop-prefetch.c (is_miss_rate_acceptable): Add an + assertion to ensure align_unit should be positive. + * tree.c (build_qualified_type): Update function comments. + + 2024-04-24 Rainer Orth + + Backported from master: + 2023-08-17 Rainer Orth + + * configure.ac (gcc_cv_ld64_version): Allow for dyld in ld -v + output. + * configure: Regenerate. + + 2024-04-24 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. + + 2024-04-24 Jakub Jelinek + + Backported from master: + 2024-03-26 Jakub Jelinek + + PR sanitizer/111736 + * tsan.c (instrument_expr): Punt on non-generic address space + accesses. + + 2024-04-24 Jakub Jelinek + + Backported from master: + 2024-03-22 Jakub Jelinek + + PR sanitizer/111736 + * ubsan.c (ubsan_expand_null_ifn, instrument_mem_ref): Avoid + SANITIZE_NULL instrumentation for non-generic address spaces + for which targetm.addr_space.zero_address_valid (as) is true. + + 2024-04-24 Richard Biener + + Backported from master: + 2024-03-21 Richard Biener + + PR tree-optimization/111736 + * asan.c (instrument_derefs): Do not instrument accesses + to non-generic address-spaces. + + 2024-04-24 Richard Biener + + Backported from master: + 2023-12-05 Richard Biener + + PR sanitizer/111736 + * asan.c (asan_protect_global): Do not protect globals + in non-generic address-space. + + 2024-04-23 Iain Sandoe + + Backported from master: + 2022-03-04 Iain Sandoe + + * config/darwin.c (darwin_fold_builtin): Make fcode an int to + avoid a mismatch with DECL_MD_FUNCTION_CODE(). + + 2024-04-23 Iain Sandoe + + Backported from master: + 2021-11-15 Iain Sandoe + + * config.in: Regenerate. + * configure: Regenerate. + * configure.ac: Test ld64 for -platform-version support. + + 2024-04-22 Iain Sandoe + + Backported from master: + 2022-05-03 Iain Sandoe + + * config/darwin.c (darwin_label_is_anonymous_local_objc_name): Make + protocol class methods linker-visible. + + 2024-04-22 Iain Sandoe + + Backported from master: + 2023-07-03 Iain Sandoe + + * config/darwin.h: Avoid duplicate multiply_defined specs on + earlier Darwin versions with shared libgcc. + + 2024-04-22 Iain Sandoe + + Backported from master: + 2023-09-18 Iain Sandoe + + * configure: Regenerate. + * configure.ac: Handle explict disable of stdlib option, set + defaults for Darwin. + + 2024-04-15 Tamar Christina + + PR tree-optimization/113552 + * config/aarch64/aarch64.c + (aarch64_simd_clone_compute_vecsize_and_simdlen): Block simdlen 1. + + 2024-04-15 Richard Biener + + Backported from master: + 2024-04-05 Richard Biener + + PR middle-end/114599 + PR gcov-profile/114115 + * symtab.c (ifunc_ref_map): Do not use auto_bitmap. + (is_caller_ifunc_resolver): Optimize bitmap_bit_p/bitmap_set_bit + pair. + (symtab_node::check_ifunc_callee_symtab_nodes): Properly + allocate ifunc_ref_map here. + + 2024-04-15 H.J. Lu + + Backported from master: + 2024-04-03 H.J. Lu + + PR tree-optimization/114115 + * cgraph.h (symtab_node): Add check_ifunc_callee_symtab_nodes. + (cgraph_node): Add called_by_ifunc_resolver. + * cgraphunit.c (symbol_table::compile): Call + symtab_node::check_ifunc_callee_symtab_nodes. + * symtab.c (check_ifunc_resolver): New. + (ifunc_ref_map): Likewise. + (is_caller_ifunc_resolver): Likewise. + (symtab_node::check_ifunc_callee_symtab_nodes): Likewise. + * tree-profile.c (gimple_gen_ic_func_profiler): Disable indirect + call profiling for IFUNC resolvers and their callees. + + 2024-04-12 Kito Cheng + + Backported from master: + 2024-02-29 Kito Cheng + + PR target/114130 + * config/riscv/sync.md (atomic_compare_and_swap): Sign + extend the expected value if needed. + + 2024-04-02 Qing Zhao + + Backported from master: + 2023-09-15 Qing Zhao + + PR tree-optimization/111407 + * tree-ssa-math-opts.c (convert_mult_to_widen): Avoid the transform + when one of the operands is subject to abnormal coalescing. + + 2024-03-27 Richard Sandiford + + Backported from master: + 2024-03-05 Richard Sandiford + + PR sanitizer/97696 + * asan.c (asan_expand_mark_ifn): Allow the length to be a poly_int. + + 2024-03-27 Richard Sandiford + + * config/aarch64/arm_neon.h (vld1_s8_x4, vld1_s16_x4, vld1_s32_x4): + (vld1_u8_x4, vld1_u16_x4, vld1_u32_x4, vld1_f16_x4, vld1_f32_x4): + (vld1_p8_x4, vld1_p16_x4, vld1_s64_x4, vld1_u64_x4, vld1_p64_x4): + (vld1_f64_x4): Avoid using a union of a 256-bit structure and 512-bit + XImode integer. Instead use the same approach as the vld4 intrinsics. + (vst1_s8_x4, vst1_s16_x4, vst1_s32_x4, vst1_u8_x4, vst1_u16_x4): + (vst1_u32_x4, vst1_f16_x4, vst1_f32_x4, vst1_p8_x4, vst1_p16_x4): + (vst1_s64_x4, vst1_u64_x4, vst1_p64_x4, vst1_f64_x4, vld1_bf16_x4): + (vst1_bf16_x4): Likewise for stores. + (vst1q_s8_x4, vst1q_s16_x4, vst1q_s32_x4, vst1q_u8_x4, vst1q_u16_x4): + (vst1q_u32_x4, vst1q_f16_x4, vst1q_f32_x4, vst1q_p8_x4, vst1q_p16_x4): + (vst1q_s64_x4, vst1q_u64_x4, vst1q_p64_x4, vst1q_f64_x4) + (vst1q_bf16_x4): Rename val parameter to __val. + + 2024-03-17 Iain Sandoe + + Backported from master: + 2023-07-02 Iain Sandoe + + PR target/108743 + * config/darwin.opt: Add fconstant-cfstrings alias to + mconstant-cfstrings. + * doc/invoke.texi: Amend invocation descriptions to reflect + that the fconstant-cfstrings is a target-option alias and to + add the missing mconstant-cfstrings option description to the + Darwin section. + + 2024-03-03 Oleg Endo + + PR target/101737 + * config/sh/sh.c (sh_is_nott_insn): Handle case where the input + is not an insn, but e.g. a code label. + + 2024-02-27 H.J. Lu + + Backported from master: + 2024-02-26 H.J. Lu + + PR target/114098 + * config/i386/amxtileintrin.h (_tile_loadconfig): Use + __builtin_ia32_ldtilecfg. + (_tile_storeconfig): Use __builtin_ia32_sttilecfg. + * config/i386/i386-builtin.def (BDESC): Add + __builtin_ia32_ldtilecfg and __builtin_ia32_sttilecfg. + * config/i386/i386-expand.c (ix86_expand_builtin): Handle + IX86_BUILTIN_LDTILECFG and IX86_BUILTIN_STTILECFG. + * config/i386/i386.md (ldtilecfg): New pattern. + (sttilecfg): Likewise. + + 2024-02-27 Jeevitha + + Backported from master: + 2023-08-31 Jeevitha Palanisamy + + PR target/110411 + * config/rs6000/mma.md (define_insn_and_split movoo): Disallow + AltiVec address operands. + (define_insn_and_split movxo): Likewise. + * config/rs6000/predicates.md (vsx_quad_dform_memory_operand): Remove + redundant mode size check. + + 2024-02-23 Richard Earnshaw + + Backported from master: + 2024-02-23 Richard Earnshaw + + PR target/108120 + * config/arm/neon.md (div3): Rename from div3. + Gate with ARM_HAVE_NEON__ARITH. + + 2024-02-20 Alex Coplan + + Backported from master: + 2024-02-14 Alex Coplan + + PR target/111677 + * config/aarch64/aarch64.c (aarch64_reg_save_mode): Use + V16QImode for the full 16-byte FPR saves in the vector PCS case. + (aarch64_gen_storewb_pair): Handle V16QImode. + (aarch64_gen_loadwb_pair): Likewise. + (aarch64_gen_load_pair): Likewise. + * config/aarch64/aarch64.md (loadwb_pair_): + Rename to ... + (loadwb_pair_): ... this, extending to + V16QImode. + (storewb_pair_): Rename to ... + (storewb_pair_): ... this, extending to + V16QImode. + * config/aarch64/iterators.md (TX_V16QI): New. + + 2024-02-15 Jakub Jelinek + + Backported from master: + 2024-02-15 Jakub Jelinek + + PR middle-end/113921 + * cfgrtl.h (prepend_insn_to_edge): New declaration. + * cfgrtl.c (insert_insn_on_edge): Clarify behavior in function + comment. + (prepend_insn_to_edge): New function. + * cfgexpand.c (expand_asm_stmt): Use prepend_insn_to_edge instead of + insert_insn_on_edge. + + 2024-02-09 Martin Jambor + + Backported from master: + 2024-01-24 Martin Jambor + + PR tree-optimization/110422 + * tree-sra.c (scan_function): Disqualify bases of operands of asm + gotos. + + 2024-02-05 Xi Ruoyao + + Backported from master: + 2024-02-05 Xi Ruoyao + + * config/mips/mips-msa.md (neg2): Add missing mode for + neg. + + 2024-02-05 Xi Ruoyao + + Backported from master: + 2024-02-05 Xi Ruoyao + + * config/mips/mips-msa.md (elmsgnbit): New define_mode_attr. + (neg2): Change the mode iterator from MSA to IMSA because + in FP arithmetic we cannot use (0 - x) for -x. + (neg2): New define_insn to implement FP vector negation, + using a bnegi instruction to negate the sign bit. + + 2024-02-01 John David Anglin + + * config/pa/pa.md (atomic_storedi_1): Fix bug in + alternative 1. + + 2024-01-26 Wilco Dijkstra + + Backported from master: + 2024-01-16 Wilco Dijkstra + + * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add 'cobalt-100' CPU. + * config/aarch64/aarch64-tune.md: Regenerated. + * doc/invoke.texi (-mcpu): Add cobalt-100 core. + + 2024-01-18 Jan Hubicka + + * config/i386/i386-options.c (ix86_option_override_internal): + Fix handling of X86_TUNE_AVOID_512FMA_CHAINS + + 2024-01-18 Jan Hubicka + + Backported from master: + 2022-12-22 Jan Hubicka + + * config/i386/i386-expand.c (ix86_expand_set_or_cpymem): Add + TARGET_AVX512_SPLIT_REGS + * config/i386/i386-options.c (ix86_option_override_internal): + Honor x86_TONE_AVOID_256FMA_CHAINS. + * config/i386/i386.c (ix86_vec_cost): Honor TARGET_AVX512_SPLIT_REGS. + (ix86_reassociation_width): Likewise. + * config/i386/i386.h (TARGET_AVX512_SPLIT_REGS): New tune. + * config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): Disable + for znver4. + (X86_TUNE_USE_GATHER_4PARTS): Likewise. + (X86_TUNE_AVOID_256FMA_CHAINS): Set for znver4. + (X86_TUNE_AVOID_512FMA_CHAINS): New utne; set for znver4. + (X86_TUNE_AVX256_OPTIMAL): Add znver4. + (X86_TUNE_AVX512_SPLIT_REGS): New tune. + (X86_TUNE_AVX256_MOVE_BY_PIECES): Add znver1-3. + (X86_TUNE_AVX256_STORE_BY_PIECES): Add znver1-3. + (X86_TUNE_AVX512_MOVE_BY_PIECES): Add znver4. + (X86_TUNE_AVX512_STORE_BY_PIECES): Add znver4. + + 2024-01-18 Tejas Joshi + + Backported from master: + 2023-01-05 Tejas Joshi + + * common/config/i386/i386-common.c (processor_alias_table): + Use CPU_ZNVER4 for znver4. + * config/i386/i386.md: Add znver4.md. + * config/i386/znver4.md: New. + + 2024-01-18 Tejas Joshi + + Backported from master: + 2022-10-25 Tejas Joshi + + * common/config/i386/i386-common.c (processor_alias_table): Use + CPU_ZNVER3 for znver4. + * config/i386/znver.md: Remove znver4 reservations. + + 2024-01-18 Tejas Joshi + + Backported from master: + 2022-10-21 Tejas Joshi + + * common/config/i386/cpuinfo.h (get_amd_cpu): Recognize znver4. + * common/config/i386/i386-common.c (processor_names): Add znver4. + (processor_alias_table): Add znver4 and modularize old znvers. + * common/config/i386/i386-cpuinfo.h (processor_subtypes): + AMDFAM19H_ZNVER4. + * config.gcc (x86_64-*-* |...): Likewise. + * config/i386/driver-i386.c (host_detect_local_cpu): Let + -march=native recognize znver4 cpus. + * config/i386/i386-c.c (ix86_target_macros_internal): Add znver4. + * config/i386/i386-options.c (m_ZNVER4): New definition. + (m_ZNVER): Include m_ZNVER4. + (processor_cost_table): Add znver4. + * config/i386/i386.c (ix86_reassociation_width): Likewise. + * config/i386/i386.h (processor_type): Add PROCESSOR_ZNVER4. + (PTA_ZNVER1): New definition. + (PTA_ZNVER2): Likewise. + (PTA_ZNVER3): Likewise. + (PTA_ZNVER4): Likewise. + * config/i386/i386.md (define_attr "cpu"): Add znver4 and rename + md file. + * config/i386/x86-tune-sched.c (ix86_issue_rate): Add znver4. + (ix86_adjust_cost): Likewise. + * config/i386/znver1.md: Rename to znver.md. + * config/i386/znver.md: Add new reservations for znver4. + * doc/extend.texi: Add details about znver4. + * doc/invoke.texi: Likewise. + + 2024-01-18 Jan Hubicka + + Backported from master: + 2022-12-22 Jan Hubicka + + * config/i386/x86-tune-costs.h (znver4_cost): Upate costs of FP and SSE + moves, division multiplication, gathers, L2 cache size, and more + complex FP instrutions. + + 2023-12-19 Jakub Jelinek + + Backported from master: + 2023-12-19 Jakub Jelinek + + PR target/112816 + * config/i386/mmx.md (signbitv2sf2): Force operands[1] into a REG. + + 2023-12-17 Jakub Jelinek + + Backported from master: + 2023-11-29 Jakub Jelinek + + PR middle-end/112733 + * fold-const.c (multiple_of_p): Pass SIGNED rather than + UNSIGNED for wi::multiple_of_p on widest_int arguments. + + 2023-12-17 Jakub Jelinek + + Backported from master: + 2023-12-05 Jakub Jelinek + + PR target/112845 + * config/i386/i386.md (movabsq $(i32 << shift), r64 peephole2): FAIL + if the new immediate is ix86_endbr_immediate_operand. + + 2023-12-17 Jakub Jelinek + + Backported from master: + 2023-12-04 Jakub Jelinek + + PR target/112837 + * config/i386/i386.c (ix86_elim_entry_set_got): Before checking + for UNSPEC_SET_GOT check that SET_SRC is UNSPEC. Use SET_SRC and + SET_DEST macros instead of XEXP, rename vec variable to set. + + 2023-12-17 Jakub Jelinek + + Backported from master: + 2023-12-04 Jakub Jelinek + + PR target/112816 + * config/i386/sse.md (signbit2): Force operands[1] into a REG. + + 2023-12-17 Jakub Jelinek + + Backported from master: + 2023-11-25 Jakub Jelinek + + PR target/111408 + * config/i386/i386.md (*jcc_bt_mask): Add (const_int 0) as + expected second operand of bt_comparison_operator. + + 2023-12-17 Jakub Jelinek + + Backported from master: + 2023-07-19 Jakub Jelinek + + PR tree-optimization/110731 + * wide-int.cc (wi::divmod_internal): Always unpack dividend and + divisor as UNSIGNED regardless of sgn. + + 2023-12-15 Richard Biener + + Backported from master: + 2023-10-23 Richard Biener + + PR tree-optimization/111917 + * tree-ssa-loop-unswitch.c (hoist_guard): Always insert + new conditional after last stmt. + + 2023-12-15 Richard Biener + + Backported from master: + 2023-09-28 Richard Biener + + PR tree-optimization/111614 + * tree-ssa-reassoc.c (undistribute_bitref_for_vector): Properly + convert the first vector when required. + + 2023-12-15 Richard Biener + + Backported from master: + 2023-10-12 Richard Biener + + PR tree-optimization/111764 + * tree-vect-loop.c (check_reduction_path): Remove the attempt + to allow x + x via special-casing of assigns. + + 2023-12-15 Richard Biener + + Backported from master: + 2023-10-17 Richard Biener + + PR middle-end/111818 + * tree-ssa.c (maybe_optimize_var): When clearing + DECL_NOT_GIMPLE_REG_P always rewrite into SSA. + + 2023-12-15 Richard Biener + + Backported from master: + 2023-06-19 Richard Biener + + PR tree-optimization/110298 + * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely): + Clear number of iterations info before cleaning up the CFG. + + 2023-12-15 Richard Biener + + Backported from master: + 2023-06-20 Richard Biener + + PR debug/110295 + * dwarf2out.c (process_scope_var): Continue processing + the decl after setting a parent in case the existing DIE + was in limbo. + + 2023-12-15 Richard Biener + + Backported from master: + 2023-06-09 Richard Biener + + * match.pd (two conversions in a row): Use element_precision + to DTRT for VECTOR_TYPE. + + 2023-12-12 liuhongt + + Backported from master: + 2023-12-12 liuhongt + + PR target/112891 + * config/i386/i386.c (ix86_avx_u128_mode_after): Return + AVX_U128_ANY if callee_abi doesn't clobber all_sse_regs to + align with ix86_avx_u128_mode_needed. + (ix86_avx_u128_mode_needed): Return AVX_U128_ClEAN for + sibling_call. + + 2023-11-24 Uros Bizjak + + Backported from master: + 2023-11-23 Uros Bizjak + + PR target/112672 + * config/i386/i386.md (parityhi2): + Use temporary register in the call to gen_parityhi2_cmp. + + 2023-11-22 Maciej W. Rozycki + + Backported from master: + 2023-11-22 Maciej W. Rozycki + + PR target/111815 + * config/vax/vax.c (index_term_p): Only accept the index scaler + as the RHS operand to ASHIFT. + + 2023-11-06 John David Anglin + + * config/pa/pa.c (pa_asm_trampoline_template): Fix typo. + + 2023-10-23 Oleg Endo + + PR target/111001 + * config/sh/sh_treg_combine.cc (sh_treg_combine::record_set_of_reg): + Skip over nop move insns. + + 2023-10-23 Kewen Lin + + Backported from master: + 2023-10-12 Kewen Lin + + PR target/111367 + * config/rs6000/rs6000.md (stack_protect_setsi): Support prefixed + instruction emission and incorporate to stack_protect_set. + (stack_protect_setdi): Rename to ... + (stack_protect_set): ... this, adjust constraint. + (stack_protect_testsi): Support prefixed instruction emission and + incorporate to stack_protect_test. + (stack_protect_testdi): Rename to ... + (stack_protect_test): ... this, adjust constraint. + + 2023-10-20 Oleg Endo + + PR target/101177 + * config/sh/sh.md (unnamed split pattern): Fix comparison of + find_regno_note result. + + 2023-10-17 liuhongt + + Backported from master: + 2023-07-06 liuhongt + + PR target/110170 + * config/i386/i386.md (movdf_internal): Disparage slightly for + 2 alternatives (r,v) and (v,r) by adding constraint modifier + '?'. + + 2023-10-07 Andrew Pinski + + Backported from master: + 2023-10-06 Andrew Pinski + + PR middle-end/111699 + * match.pd ((c ? a : b) op d, (c ? a : b) op (c ? d : e), + (v ? w : 0) ? a : b, c1 ? c2 ? a : b : b): Enable only for GIMPLE. + + 2023-10-02 Pat Haugen + + Backported from master: + 2023-09-19 Pat Haugen + + * config/rs6000/rs6000.c (rs6000_rtx_costs): Check whether the + modulo instruction is disabled. + * config/rs6000/rs6000.h (RS6000_DISABLE_SCALAR_MODULO): New. + * config/rs6000/rs6000.md (mod3, *mod3): Check it. + (define_expand umod3): New. + (define_insn umod3): Rename to *umod3 and check if the modulo + instruction is disabled. + (umodti3, modti3): Check if the modulo instruction is disabled. + + 2023-09-12 Uros Bizjak + + Backported from master: + 2023-09-11 Uros Bizjak + + PR target/111340 + * config/i386/i386.c (output_pic_addr_const): Handle CONST_WIDE_INT. + Call output_addr_const for CASE_CONST_SCALAR_INT. + + 2023-09-12 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_save_regs_above_locals_p): + New function. + (aarch64_layout_frame): Use it to decide whether locals should + go above or below the saved registers. + (aarch64_expand_prologue): Update stack layout comment. + Emit a stack tie after the final adjustment. + + 2023-09-12 Richard Sandiford + + * config/aarch64/aarch64.h (aarch64_frame::saved_regs_size) + (aarch64_frame::below_hard_fp_saved_regs_size): Delete. + * config/aarch64/aarch64.c (aarch64_layout_frame): Update accordingly. + + 2023-09-12 Richard Sandiford + + * config/aarch64/aarch64.h (aarch64_frame::sve_save_and_probe) + (aarch64_frame::hard_fp_save_and_probe): New fields. + * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize them. + Rather than asserting that a leaf function saves LR, instead assert + that a leaf function saves something. + (aarch64_get_separate_components): Prevent the chosen probe + registers from being individually shrink-wrapped. + (aarch64_allocate_and_probe_stack_space): Remove workaround for + probe registers that aren't at the bottom of the previous allocation. + + 2023-09-12 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): + Always probe the residual allocation at offset 1024, asserting + that that is in range. + + 2023-09-12 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_layout_frame): Ensure that + the LR save slot is in the first 16 bytes of the register save area. + (aarch64_allocate_and_probe_stack_space): Remove workaround for + when LR was not in the first 16 bytes. + + 2023-09-12 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): + Don't probe final allocations that are exactly 1KiB in size (after + unprobed space above the final allocation has been deducted). + + 2023-09-12 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_layout_frame): Tweak + calculation of initial_adjust for frames in which all saves + are SVE saves. + + 2023-09-12 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_layout_frame): Simplify + the allocation of the top of the frame. + + 2023-09-12 Richard Sandiford + + * config/aarch64/aarch64.h (aarch64_frame): Add comment above + reg_offset. + * config/aarch64/aarch64.c (aarch64_layout_frame): Walk offsets + from the bottom of the frame, rather than the bottom of the saved + register area. Measure reg_offset from the bottom of the frame + rather than the bottom of the saved register area. + (aarch64_save_callee_saves): Update accordingly. + (aarch64_restore_callee_saves): Likewise. + (aarch64_get_separate_components): Likewise. + (aarch64_process_components): Likewise. + + 2023-09-12 Richard Sandiford + + * config/aarch64/aarch64.h (aarch64_frame::frame_size): Tweak comment. + + 2023-09-12 Richard Sandiford + + * config/aarch64/aarch64.h (aarch64_frame::hard_fp_offset): Rename + to... + (aarch64_frame::bytes_above_hard_fp): ...this. + * config/aarch64/aarch64.c (aarch64_layout_frame) + (aarch64_expand_prologue): Update accordingly. + (aarch64_initial_elimination_offset): Likewise. + + 2023-09-12 Richard Sandiford + + * config/aarch64/aarch64.h (aarch64_frame::locals_offset): Rename to... + (aarch64_frame::bytes_above_locals): ...this. + * config/aarch64/aarch64.c (aarch64_layout_frame) + (aarch64_initial_elimination_offset): Update accordingly. + + 2023-09-12 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_expand_prologue): Move the + calculation of chain_offset into the emit_frame_chain block. + + 2023-09-12 Richard Sandiford + + * config/aarch64/aarch64.h (aarch64_frame::callee_offset): Delete. + * config/aarch64/aarch64.c (aarch64_layout_frame): Remove + callee_offset handling. + (aarch64_save_callee_saves): Replace the start_offset parameter + with a bytes_below_sp parameter. + (aarch64_restore_callee_saves): Likewise. + (aarch64_expand_prologue): Update accordingly. + (aarch64_expand_epilogue): Likewise. + + 2023-09-12 Richard Sandiford + + * config/aarch64/aarch64.h (aarch64_frame::bytes_below_hard_fp): New + field. + * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize it. + (aarch64_expand_epilogue): Use it instead of + below_hard_fp_saved_regs_size. + + 2023-09-12 Richard Sandiford + + * config/aarch64/aarch64.h (aarch64_frame::bytes_below_saved_regs): New + field. + * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize it, + and use it instead of crtl->outgoing_args_size. + (aarch64_get_separate_components): Use bytes_below_saved_regs instead + of outgoing_args_size. + (aarch64_process_components): Likewise. + + 2023-09-12 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_layout_frame): Explicitly + allocate the frame in one go if there are no saved registers. + + 2023-09-12 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_expand_prologue): Use + chain_offset rather than callee_offset. + + 2023-09-12 Richard Sandiford + + * config/aarch64/aarch64.c (aarch64_save_callee_saves): Use + a local shorthand for cfun->machine->frame. + (aarch64_restore_callee_saves, aarch64_get_separate_components): + (aarch64_process_components): Likewise. + (aarch64_allocate_and_probe_stack_space): Likewise. + (aarch64_expand_prologue, aarch64_expand_epilogue): Likewise. + (aarch64_layout_frame): Use existing shorthand for one more case. + + 2023-09-12 Haochen Gui + + Backported from master: + 2023-08-31 Haochen Gui + + PR target/96762 + * config/rs6000/rs6000-string.c (expand_block_move): Call vector + load/store with length only on 64-bit Power10. + + 2023-08-30 Jakub Jelinek + + Backported from master: + 2023-08-30 Jakub Jelinek + + PR tree-optimization/110914 + * tree-ssa-strlen.c (strlen_pass::handle_builtin_memcpy): Don't call + adjust_last_stmt unless len is known constant. + + 2023-08-30 Jakub Jelinek + + Backported from master: + 2023-08-30 Jakub Jelinek + + PR tree-optimization/111015 + * gimple-ssa-store-merging.c + (imm_store_chain_info::output_merged_store): Use wi::mask and + wide_int_to_tree instead of unsigned HOST_WIDE_INT shift and + build_int_cst to build BIT_AND_EXPR mask. + + 2023-08-16 liuhongt + + * config/i386/i386.opt: Add new option mgather. + + 2023-08-16 liuhongt + + Backported from master: + 2023-08-16 liuhongt + + * config/i386/i386-options.c (m_GDS): New macro. + * config/i386/x86-tune.def (X86_TUNE_USE_GATHER): Don't enable + for m_GDS. + + 2023-08-09 liuhongt + + * common/config/i386/cpuinfo.h (get_available_features): Check + max_subleaf_level for valid subleaf before use CPUID. + + 2023-08-01 Kewen Lin + + Backported from master: + 2023-07-26 Kewen Lin + + PR target/110741 + * config/rs6000/altivec.md (define_insn xxeval): Correct vsx + operands output with "x". + + 2023-07-14 Oleg Endo + + PR target/101469 + * config/sh/sh.md (peephole2): Handle case where eliminated reg + is also used by the address of the following memory operand. + + 2023-07-05 Michael Meissner + + Backported from master: + 2023-06-23 Michael Meissner + Aaron Sawdey + + PR target/105325 + * config/rs6000/genfusion.pl (gen_ld_cmpi_p10_one): Fix problems that + allowed prefixed lwa to be generated. + * config/rs6000/fusion.md: Regenerate. + * config/rs6000/predicates.md (ds_form_mem_operand): Delete. + * config/rs6000/rs6000.md (prefixed attribute): Add support for load + plus compare immediate fused insns. + (maybe_prefixed): Likewise. + + 2023-07-05 Segher Boessenkool + + Backported from master: + 2023-06-06 Segher Boessenkool + + * config/rs6000/genfusion.pl (gen_ld_cmpi_p10_one): New, rewritten and + split out from... + (gen_ld_cmpi_p10): ... this. + + 2023-06-29 liuhongt + + PR rtl-optimization/110237 + * config/i386/sse.md (_store_mask): Refine with + UNSPEC_MASKMOV. + (maskstore_store_mask): New define_insn, it's renamed + from original _store_mask. + + 2023-06-29 liuhongt + + PR target/110309 + * config/i386/sse.md (maskload): + Refine pattern with UNSPEC_MASKLOAD. + (maskload): Ditto. + + 2023-06-28 Thomas Schwinge + + Backported from master: + 2023-06-02 Thomas Schwinge + + PR testsuite/66005 + * doc/install.texi: Document (optional) Perl usage for parallel + testing of libgomp. + + 2023-06-28 liuhongt + + * config/i386/i386-features.c (pass_insert_vzeroupper:gate): + Move flag_expensive_optimizations && !optimize_size to .. + * config/i386/i386-options.c (ix86_option_override_internal): + .. this, it makes -mvzeroupper independent of optimization + level, but still keeps the behavior of architecture + tuning(emit_vzeroupper) unchanged. + (rest_of_handle_insert_vzeroupper): Remove + flag_expensive_optimizations && !optimize_size. + + 2023-06-20 Kewen Lin + + PR target/109932 + * config/rs6000/rs6000-builtin.def (BU_VSX_MISC_2): New macro. + ({un,}pack_vector_int128): Use BU_VSX_MISC_2 instead of + BU_P7_MISC_2. + + 2023-06-20 Kewen Lin + + Backported from master: + 2023-06-12 Kewen Lin + + PR target/110011 + * config/rs6000/rs6000.c (output_toc): Use the mode of the 128-bit + floating constant itself for real_to_target call. + + 2023-06-12 Richard Biener + + Backported from master: + 2023-06-12 Richard Biener + + PR middle-end/110200 + * genmatch.c (expr::gen_transform): Put braces around + the if arm for the (convert ...) short-cut. + + 2023-06-09 Alex Coplan + + Backported from master: + 2023-05-25 Alex Coplan + + PR target/109800 + * config/arm/arm.md (movdf): Generate temporary pseudo in DImode + instead of DFmode. + * config/arm/vfp.md (no_literal_pool_df_immediate): Rather than punning an + lvalue DFmode pseudo into DImode, use a DImode pseudo and pun it into + DFmode as an rvalue. + + 2023-06-09 Iain Sandoe + + Backported from master: + 2023-06-02 Iain Sandoe + + PR target/110044 + * config/rs6000/rs6000.c (darwin_rs6000_special_round_type_align): + Make sure that we do not have a cap on field alignment before altering + the struct layout based on the type alignment of the first entry. + + 2023-06-02 Jakub Jelinek + + Backported from master: + 2023-05-21 Jakub Jelinek + + PR tree-optimization/109505 + * match.pd ((x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2), + Combine successive equal operations with constants, + (A +- CST1) +- CST2 -> A + CST3, (CST1 - A) +- CST2 -> CST3 - A, + CST1 - (CST2 - A) -> CST3 + A): Use ! on ops with 2 CONSTANT_CLASS_P + operands. + + 2023-06-02 Richard Biener + + PR tree-optimization/109505 + * doc/match-and-simplify.texi: Amend ! documentation. + * genmatch.c (expr::gen_transform): Code-generate ! support + for GENERIC. + (parser::parse_expr): Allow ! for GENERIC. + + 2023-06-01 Jonathan Wakely + + Backported from master: + 2023-06-01 Jonathan Wakely + + PR target/109954 + * doc/invoke.texi (x86 Options): Fix description of -m32 option. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/gcc/DATESTAMP gcc-11.5.0/gcc/DATESTAMP *** gcc-11.4.0/gcc/DATESTAMP Mon May 29 08:46:28 2023 --- gcc-11.5.0/gcc/DATESTAMP Fri Jul 19 05:52:43 2024 *************** *** 1 **** ! 20230528 --- 1 ---- ! 20240719 diff -Nrcpad gcc-11.4.0/gcc/ada/ChangeLog gcc-11.5.0/gcc/ada/ChangeLog *** gcc-11.4.0/gcc/ada/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/gcc/ada/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,30 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + + 2024-06-29 Iain Sandoe + + * gcc-interface/Makefile.in: Use DSYMUTIL_FOR_TARGET in + libgnat/libgnarl recipies. + + 2024-03-07 Eric Botcazou + + PR ada/113979 + * exp_ch4.adb (Expand_N_Allocator): In the subtype indication case, + remove call to Apply_Predicate_Check. + + 2024-02-26 Eric Botcazou + + PR ada/113893 + * exp_ch7.adb (Build_Anonymous_Master): Do not build the master + for a local designated type. + * exp_util.adb (Build_Allocate_Deallocate_Proc): Force Needs_Fin + to false if no finalization master is attached to an access type + and assert that it is anonymous in this case. + * sem_res.adb (Resolve_Allocator): Mention that the object might + not be finalized at all in the warning given when the type is an + anonymous access-to-controlled type. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/gcc/ada/exp_ch4.adb gcc-11.5.0/gcc/ada/exp_ch4.adb *** gcc-11.4.0/gcc/ada/exp_ch4.adb Mon May 29 08:46:28 2023 --- gcc-11.5.0/gcc/ada/exp_ch4.adb Fri Jul 19 05:52:43 2024 *************** package body Exp_Ch4 is *** 4970,4977 **** if Is_Array_Type (Dtyp) and then not No_Initialization (N) then Apply_Constraint_Check (Expression (N), Dtyp, No_Sliding => True); - Apply_Predicate_Check (Expression (N), Dtyp); - if Nkind (Expression (N)) = N_Raise_Constraint_Error then Rewrite (N, New_Copy (Expression (N))); Set_Etype (N, PtrT); --- 4970,4975 ---- diff -Nrcpad gcc-11.4.0/gcc/ada/exp_ch7.adb gcc-11.5.0/gcc/ada/exp_ch7.adb *** gcc-11.4.0/gcc/ada/exp_ch7.adb Mon May 29 08:46:28 2023 --- gcc-11.5.0/gcc/ada/exp_ch7.adb Fri Jul 19 05:52:43 2024 *************** package body Exp_Ch7 is *** 802,807 **** --- 802,808 ---- Desig_Typ : Entity_Id; FM_Id : Entity_Id; Priv_View : Entity_Id; + Scop : Entity_Id; Unit_Decl : Node_Id; Unit_Id : Entity_Id; *************** package body Exp_Ch7 is *** 840,845 **** --- 841,858 ---- Desig_Typ := Priv_View; end if; + -- For a designated type not declared at library level, we cannot create + -- a finalization collection attached to an outer unit since this would + -- generate dangling references to the dynamic scope through access-to- + -- procedure values designating the local Finalize_Address primitive. + + Scop := Enclosing_Dynamic_Scope (Desig_Typ); + if Scop /= Standard_Standard + and then Scope_Depth (Scop) > Scope_Depth (Unit_Id) + then + return; + end if; + -- Determine whether the current semantic unit already has an anonymous -- master which services the designated type. diff -Nrcpad gcc-11.4.0/gcc/ada/exp_util.adb gcc-11.5.0/gcc/ada/exp_util.adb *** gcc-11.4.0/gcc/ada/exp_util.adb Mon May 29 08:46:28 2023 --- gcc-11.5.0/gcc/ada/exp_util.adb Fri Jul 19 05:52:43 2024 *************** package body Exp_Util is *** 856,861 **** --- 856,871 ---- Needs_Finalization (Desig_Typ) and then not No_Heap_Finalization (Ptr_Typ); + -- The allocation/deallocation of a controlled object must be associated + -- with an attachment to/detachment from a finalization master, but the + -- implementation cannot guarantee this property for every anonymous + -- access tyoe, see Build_Anonymous_Collection. + + if Needs_Fin and then No (Finalization_Master (Ptr_Typ)) then + pragma Assert (Ekind (Ptr_Typ) = E_Anonymous_Access_Type); + Needs_Fin := False; + end if; + if Needs_Fin then -- Do nothing if the access type may never allocate / deallocate *************** package body Exp_Util is *** 865,875 **** return; end if; - -- The allocation / deallocation of a controlled object must be - -- chained on / detached from a finalization master. - - pragma Assert (Present (Finalization_Master (Ptr_Typ))); - -- The only other kind of allocation / deallocation supported by this -- routine is on / from a subpool. --- 875,880 ---- diff -Nrcpad gcc-11.4.0/gcc/ada/gcc-interface/Makefile.in gcc-11.5.0/gcc/ada/gcc-interface/Makefile.in *** gcc-11.4.0/gcc/ada/gcc-interface/Makefile.in Mon May 29 08:46:28 2023 --- gcc-11.5.0/gcc/ada/gcc-interface/Makefile.in Fri Jul 19 05:52:43 2024 *************** gnatlib-shared-darwin: *** 805,812 **** libgnat$(soext) cd $(RTSDIR); $(LN_S) libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ libgnarl$(soext) ! cd $(RTSDIR); dsymutil libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) ! cd $(RTSDIR); dsymutil libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) gnatlib-shared: $(MAKE) $(FLAGS_TO_PASS) \ --- 805,812 ---- libgnat$(soext) cd $(RTSDIR); $(LN_S) libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ libgnarl$(soext) ! cd $(RTSDIR); $(DSYMUTIL_FOR_TARGET) libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) ! cd $(RTSDIR); $(DSYMUTIL_FOR_TARGET) libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) gnatlib-shared: $(MAKE) $(FLAGS_TO_PASS) \ diff -Nrcpad gcc-11.4.0/gcc/ada/sem_res.adb gcc-11.5.0/gcc/ada/sem_res.adb *** gcc-11.4.0/gcc/ada/sem_res.adb Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/ada/sem_res.adb Fri Jul 19 05:52:43 2024 *************** package body Sem_Res is *** 5574,5592 **** Set_Is_Dynamic_Coextension (N, False); Set_Is_Static_Coextension (N, False); ! -- Anonymous access-to-controlled objects are not finalized on ! -- time because this involves run-time ownership and currently ! -- this property is not available. In rare cases the object may ! -- not be finalized at all. Warn on potential issues involving ! -- anonymous access-to-controlled objects. if Ekind (Typ) = E_Anonymous_Access_Type and then Is_Controlled_Active (Desig_T) then Error_Msg_N ! ("??object designated by anonymous access object might " & "not be finalized until its enclosing library unit " ! & "goes out of scope", N); Error_Msg_N ("\use named access type instead", N); end if; end if; --- 5574,5592 ---- Set_Is_Dynamic_Coextension (N, False); Set_Is_Static_Coextension (N, False); ! -- Objects allocated through anonymous access types are not ! -- finalized on time because this involves run-time ownership ! -- and currently this property is not available. In rare cases ! -- the object might not be finalized at all. Warn on potential ! -- issues involving anonymous access-to-controlled types. if Ekind (Typ) = E_Anonymous_Access_Type and then Is_Controlled_Active (Desig_T) then Error_Msg_N ! ("??object designated by anonymous access value might " & "not be finalized until its enclosing library unit " ! & "goes out of scope, or not be finalized at all", N); Error_Msg_N ("\use named access type instead", N); end if; end if; diff -Nrcpad gcc-11.4.0/gcc/analyzer/ChangeLog gcc-11.5.0/gcc/analyzer/ChangeLog *** gcc-11.4.0/gcc/analyzer/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/gcc/analyzer/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/gcc/asan.c gcc-11.5.0/gcc/asan.c *** gcc-11.4.0/gcc/asan.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/asan.c Fri Jul 19 05:52:43 2024 *************** asan_emit_stack_protection (rtx base, rt *** 1856,1874 **** } str_cst = asan_pp_string (&asan_pp); /* Emit the prologue sequence. */ if (asan_frame_size > 32 && asan_frame_size <= 65536 && pbase && param_asan_use_after_return) { use_after_return_class = floor_log2 (asan_frame_size - 1) - 5; /* __asan_stack_malloc_N guarantees alignment N < 6 ? (64 << N) : 4096 bytes. */ if (alignb > (use_after_return_class < 6 ? (64U << use_after_return_class) : 4096U)) use_after_return_class = -1; ! else if (alignb > ASAN_RED_ZONE_SIZE && (asan_frame_size & (alignb - 1))) ! base_align_bias = ((asan_frame_size + alignb - 1) ! & ~(alignb - HOST_WIDE_INT_1)) - asan_frame_size; } /* Align base if target is STRICT_ALIGNMENT. */ --- 1856,1894 ---- } str_cst = asan_pp_string (&asan_pp); + gcc_checking_assert (offsets[0] == (crtl->stack_protect_guard + ? -ASAN_RED_ZONE_SIZE : 0)); /* Emit the prologue sequence. */ if (asan_frame_size > 32 && asan_frame_size <= 65536 && pbase && param_asan_use_after_return) { + HOST_WIDE_INT adjusted_frame_size = asan_frame_size; + /* The stack protector guard is allocated at the top of the frame + and cfgexpand.cc then uses align_frame_offset (ASAN_RED_ZONE_SIZE); + while in that case we can still use asan_frame_size, we need to take + that into account when computing base_align_bias. */ + if (alignb > ASAN_RED_ZONE_SIZE && crtl->stack_protect_guard) + adjusted_frame_size += ASAN_RED_ZONE_SIZE; use_after_return_class = floor_log2 (asan_frame_size - 1) - 5; /* __asan_stack_malloc_N guarantees alignment N < 6 ? (64 << N) : 4096 bytes. */ if (alignb > (use_after_return_class < 6 ? (64U << use_after_return_class) : 4096U)) use_after_return_class = -1; ! else if (alignb > ASAN_RED_ZONE_SIZE ! && (adjusted_frame_size & (alignb - 1))) ! { ! base_align_bias ! = ((adjusted_frame_size + alignb - 1) ! & ~(alignb - HOST_WIDE_INT_1)) - adjusted_frame_size; ! use_after_return_class ! = floor_log2 (asan_frame_size + base_align_bias - 1) - 5; ! if (use_after_return_class > 10) ! { ! base_align_bias = 0; ! use_after_return_class = -1; ! } ! } } /* Align base if target is STRICT_ALIGNMENT. */ *************** asan_protect_global (tree decl, bool ign *** 2238,2243 **** --- 2258,2265 ---- || (DECL_SECTION_NAME (decl) != NULL && !symtab_node::get (decl)->implicit_section && !section_sanitized_p (DECL_SECTION_NAME (decl))) + /* Don't protect variables in non-generic address-space. */ + || !ADDR_SPACE_GENERIC_P (TYPE_ADDR_SPACE (TREE_TYPE (decl))) || DECL_SIZE (decl) == 0 || ASAN_RED_ZONE_SIZE * BITS_PER_UNIT > MAX_OFILE_ALIGNMENT || TREE_CODE (DECL_SIZE_UNIT (decl)) != INTEGER_CST *************** instrument_derefs (gimple_stmt_iterator *** 2697,2702 **** --- 2719,2728 ---- if (VAR_P (inner) && DECL_HARD_REGISTER (inner)) return; + /* Accesses to non-generic address-spaces should not be instrumented. */ + if (!ADDR_SPACE_GENERIC_P (TYPE_ADDR_SPACE (TREE_TYPE (inner)))) + return; + poly_int64 decl_size; if ((VAR_P (inner) || TREE_CODE (inner) == RESULT_DECL) && offset == NULL_TREE *************** asan_expand_mark_ifn (gimple_stmt_iterat *** 3723,3731 **** } tree len = gimple_call_arg (g, 2); ! gcc_assert (tree_fits_shwi_p (len)); ! unsigned HOST_WIDE_INT size_in_bytes = tree_to_shwi (len); ! gcc_assert (size_in_bytes); g = gimple_build_assign (make_ssa_name (pointer_sized_int_node), NOP_EXPR, base); --- 3749,3755 ---- } tree len = gimple_call_arg (g, 2); ! gcc_assert (poly_int_tree_p (len)); g = gimple_build_assign (make_ssa_name (pointer_sized_int_node), NOP_EXPR, base); *************** asan_expand_mark_ifn (gimple_stmt_iterat *** 3734,3742 **** tree base_addr = gimple_assign_lhs (g); /* Generate direct emission if size_in_bytes is small. */ ! if (size_in_bytes ! <= (unsigned)param_use_after_scope_direct_emission_threshold) { const unsigned HOST_WIDE_INT shadow_size = shadow_mem_size (size_in_bytes); const unsigned int shadow_align --- 3758,3767 ---- tree base_addr = gimple_assign_lhs (g); /* Generate direct emission if size_in_bytes is small. */ ! unsigned threshold = param_use_after_scope_direct_emission_threshold; ! if (tree_fits_uhwi_p (len) && tree_to_uhwi (len) <= threshold) { + unsigned HOST_WIDE_INT size_in_bytes = tree_to_uhwi (len); const unsigned HOST_WIDE_INT shadow_size = shadow_mem_size (size_in_bytes); const unsigned int shadow_align diff -Nrcpad gcc-11.4.0/gcc/attribs.c gcc-11.5.0/gcc/attribs.c *** gcc-11.4.0/gcc/attribs.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/attribs.c Fri Jul 19 05:52:43 2024 *************** static const struct attribute_spec empty *** 105,124 **** { NULL, 0, 0, false, false, false, false, NULL, NULL } }; - /* Return base name of the attribute. Ie '__attr__' is turned into 'attr'. - To avoid need for copying, we simply return length of the string. */ - - static void - extract_attribute_substring (struct substring *str) - { - if (str->length > 4 && str->str[0] == '_' && str->str[1] == '_' - && str->str[str->length - 1] == '_' && str->str[str->length - 2] == '_') - { - str->length -= 4; - str->str += 2; - } - } - /* Insert an array of attributes ATTRIBUTES into a namespace. This array must be NULL terminated. NS is the name of attribute namespace. The function returns the namespace into which the --- 105,110 ---- *************** lookup_scoped_attribute_spec (const_tree *** 312,318 **** attr.str = IDENTIFIER_POINTER (name); attr.length = IDENTIFIER_LENGTH (name); - extract_attribute_substring (&attr); return attrs->attribute_hash->find_with_hash (&attr, substring_hash (attr.str, attr.length)); --- 298,303 ---- *************** diag_attr_exclusions (tree last_decl, tr *** 392,398 **** if (DECL_P (node)) { attrs[0] = DECL_ATTRIBUTES (node); ! attrs[1] = TYPE_ATTRIBUTES (TREE_TYPE (node)); } else { --- 377,388 ---- if (DECL_P (node)) { attrs[0] = DECL_ATTRIBUTES (node); ! if (TREE_TYPE (node)) ! attrs[1] = TYPE_ATTRIBUTES (TREE_TYPE (node)); ! else ! /* TREE_TYPE can be NULL e.g. while processing attributes on ! enumerators. */ ! attrs[1] = NULL_TREE; } else { diff -Nrcpad gcc-11.4.0/gcc/bb-reorder.c gcc-11.5.0/gcc/bb-reorder.c *** gcc-11.4.0/gcc/bb-reorder.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/bb-reorder.c Fri Jul 19 05:52:43 2024 *************** fix_crossing_unconditional_branches (voi *** 2266,2272 **** /* Make sure the jump is not already an indirect or table jump. */ if (!computed_jump_p (last_insn) ! && !tablejump_p (last_insn, NULL, NULL)) { /* We have found a "crossing" unconditional branch. Now we must convert it to an indirect jump. First create --- 2266,2273 ---- /* Make sure the jump is not already an indirect or table jump. */ if (!computed_jump_p (last_insn) ! && !tablejump_p (last_insn, NULL, NULL) ! && asm_noperands (PATTERN (last_insn)) < 0) { /* We have found a "crossing" unconditional branch. Now we must convert it to an indirect jump. First create diff -Nrcpad gcc-11.4.0/gcc/brig/ChangeLog gcc-11.5.0/gcc/brig/ChangeLog *** gcc-11.4.0/gcc/brig/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/gcc/brig/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/gcc/builtins.c gcc-11.5.0/gcc/builtins.c *** gcc-11.4.0/gcc/builtins.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/builtins.c Fri Jul 19 05:52:43 2024 *************** fold_builtin_arith_overflow (location_t *** 11821,11827 **** tree ctype = build_complex_type (type); tree call = build_call_expr_internal_loc (loc, ifn, ctype, 2, arg0, arg1); ! tree tgt = save_expr (call); intres = build1_loc (loc, REALPART_EXPR, type, tgt); ovfres = build1_loc (loc, IMAGPART_EXPR, type, tgt); ovfres = fold_convert_loc (loc, boolean_type_node, ovfres); --- 11821,11841 ---- tree ctype = build_complex_type (type); tree call = build_call_expr_internal_loc (loc, ifn, ctype, 2, arg0, arg1); ! tree tgt; ! if (ovf_only) ! { ! tgt = call; ! intres = NULL_TREE; ! } ! else ! { ! /* Force SAVE_EXPR even for calls which satisfy tree_invariant_p_1, ! as while the call itself is const, the REALPART_EXPR store is ! certainly not. And in any case, we want just one call, ! not multiple and trying to CSE them later. */ ! TREE_SIDE_EFFECTS (call) = 1; ! tgt = save_expr (call); ! } intres = build1_loc (loc, REALPART_EXPR, type, tgt); ovfres = build1_loc (loc, IMAGPART_EXPR, type, tgt); ovfres = fold_convert_loc (loc, boolean_type_node, ovfres); diff -Nrcpad gcc-11.4.0/gcc/c/ChangeLog gcc-11.5.0/gcc/c/ChangeLog *** gcc-11.4.0/gcc/c/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/gcc/c/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,17 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-06-06 Jakub Jelinek + + PR c/114493 + * c-decl.c (c_fixup_may_alias): New function. + (finish_struct): Call it if "may_alias" attribute is + specified. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/gcc/c/c-decl.c gcc-11.5.0/gcc/c/c-decl.c *** gcc-11.4.0/gcc/c/c-decl.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/c/c-decl.c Fri Jul 19 05:52:43 2024 *************** finish_incomplete_vars (tree incomplete_ *** 8664,8669 **** --- 8664,8680 ---- } } + /* TYPE is a struct or union that we're applying may_alias to after the body is + parsed. Fixup any POINTER_TO types. */ + + static void + c_fixup_may_alias (tree type) + { + for (tree t = TYPE_POINTER_TO (type); t; t = TYPE_NEXT_PTR_TO (t)) + for (tree v = TYPE_MAIN_VARIANT (t); v; v = TYPE_NEXT_VARIANT (v)) + TYPE_REF_CAN_ALIAS_ALL (v) = true; + } + /* Fill in the fields of a RECORD_TYPE or UNION_TYPE node, T. LOC is the location of the RECORD_TYPE or UNION_TYPE's definition. FIELDLIST is a chain of FIELD_DECL nodes for the fields. *************** finish_struct (location_t loc, tree t, t *** 8922,8927 **** --- 8933,8942 ---- warning_at (loc, 0, "union cannot be made transparent"); } + if (lookup_attribute ("may_alias", TYPE_ATTRIBUTES (t))) + for (x = TYPE_MAIN_VARIANT (t); x; x = TYPE_NEXT_VARIANT (x)) + c_fixup_may_alias (x); + tree incomplete_vars = C_TYPE_INCOMPLETE_VARS (TYPE_MAIN_VARIANT (t)); for (x = TYPE_MAIN_VARIANT (t); x; x = TYPE_NEXT_VARIANT (x)) { diff -Nrcpad gcc-11.4.0/gcc/c-family/ChangeLog gcc-11.5.0/gcc/c-family/ChangeLog *** gcc-11.4.0/gcc/c-family/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/gcc/c-family/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,59 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-02-22 Jakub Jelinek + + PR c/114007 + * c-lex.c (c_common_has_attribute): Parse 2 CPP_COLONs with + the first one with COLON_SCOPE flag the same as CPP_SCOPE but + ensure 0 is returned then. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-02-12 Jakub Jelinek + + PR c++/113674 + * c-lex.c (c_common_has_attribute): Call canonicalize_attr_name. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-01-09 Jakub Jelinek + + PR c/113262 + * c-attribs.c (handle_copy_attribute): Don't use + DECL_SOURCE_LOCATION (decl) if decl is not DECL_P, use input_location + instead. Formatting fixes. + + 2024-05-08 Andrew Pinski + + Backported from master: + 2024-05-07 Andrew Pinski + + PR c++/89224 + * c-common.c (convert_vector_to_array_for_subscript): Call build_qualified_type + for the inner type. + + 2024-04-23 Matt Jacobson + + Backported from master: + 2021-08-17 Matt Jacobson + + * c-opts.c (c_common_post_options): Default to + flag_objc_sjlj_exceptions = 1 only when flag_objc_abi < 2. + + 2024-01-27 Lewis Hyatt + + PR preprocessor/105608 + * c-pch.c (c_common_read_pch): Start a new line map before asking + libcpp to restore macros defined prior to reading the PCH, instead + of afterward. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/gcc/c-family/c-attribs.c gcc-11.5.0/gcc/c-family/c-attribs.c *** gcc-11.4.0/gcc/c-family/c-attribs.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/c-family/c-attribs.c Fri Jul 19 05:52:43 2024 *************** handle_copy_attribute (tree *node, tree *** 2772,2784 **** if (ref == error_mark_node) return NULL_TREE; if (TREE_CODE (ref) == STRING_CST) { /* Explicitly handle this case since using a string literal as an argument is a likely mistake. */ ! error_at (DECL_SOURCE_LOCATION (decl), ! "%qE attribute argument cannot be a string", ! name); return NULL_TREE; } --- 2772,2785 ---- if (ref == error_mark_node) return NULL_TREE; + location_t loc = input_location; + if (DECL_P (decl)) + loc = DECL_SOURCE_LOCATION (decl); if (TREE_CODE (ref) == STRING_CST) { /* Explicitly handle this case since using a string literal as an argument is a likely mistake. */ ! error_at (loc, "%qE attribute argument cannot be a string", name); return NULL_TREE; } *************** handle_copy_attribute (tree *node, tree *** 2789,2798 **** /* Similar to the string case, since some function attributes accept literal numbers as arguments (e.g., alloc_size or nonnull) using one here is a likely mistake. */ ! error_at (DECL_SOURCE_LOCATION (decl), ! "%qE attribute argument cannot be a constant arithmetic " ! "expression", ! name); return NULL_TREE; } --- 2790,2797 ---- /* Similar to the string case, since some function attributes accept literal numbers as arguments (e.g., alloc_size or nonnull) using one here is a likely mistake. */ ! error_at (loc, "%qE attribute argument cannot be a constant arithmetic " ! "expression", name); return NULL_TREE; } *************** handle_copy_attribute (tree *node, tree *** 2800,2811 **** { /* Another possible mistake (but indirect self-references aren't and diagnosed and shouldn't be). */ ! if (warning_at (DECL_SOURCE_LOCATION (decl), OPT_Wattributes, "%qE attribute ignored on a redeclaration " ! "of the referenced symbol", ! name)) ! inform (DECL_SOURCE_LOCATION (node[1]), ! "previous declaration here"); return NULL_TREE; } --- 2799,2809 ---- { /* Another possible mistake (but indirect self-references aren't and diagnosed and shouldn't be). */ ! if (warning_at (loc, OPT_Wattributes, "%qE attribute ignored on a redeclaration " ! "of the referenced symbol", name) ! && DECL_P (node[1])) ! inform (DECL_SOURCE_LOCATION (node[1]), "previous declaration here"); return NULL_TREE; } *************** handle_copy_attribute (tree *node, tree *** 2825,2831 **** ref = TREE_OPERAND (ref, 1); else break; ! } while (!DECL_P (ref)); /* For object pointer expressions, consider those to be requests to copy from their type, such as in: --- 2823,2830 ---- ref = TREE_OPERAND (ref, 1); else break; ! } ! while (!DECL_P (ref)); /* For object pointer expressions, consider those to be requests to copy from their type, such as in: *************** handle_copy_attribute (tree *node, tree *** 2857,2864 **** to a variable, or variable attributes to a function. */ if (warning (OPT_Wattributes, "%qE attribute ignored on a declaration of " ! "a different kind than referenced symbol", ! name) && DECL_P (ref)) inform (DECL_SOURCE_LOCATION (ref), "symbol %qD referenced by %qD declared here", ref, decl); --- 2856,2862 ---- to a variable, or variable attributes to a function. */ if (warning (OPT_Wattributes, "%qE attribute ignored on a declaration of " ! "a different kind than referenced symbol", name) && DECL_P (ref)) inform (DECL_SOURCE_LOCATION (ref), "symbol %qD referenced by %qD declared here", ref, decl); *************** handle_copy_attribute (tree *node, tree *** 2908,2916 **** } else if (!TYPE_P (decl)) { ! error_at (DECL_SOURCE_LOCATION (decl), ! "%qE attribute must apply to a declaration", ! name); return NULL_TREE; } --- 2906,2912 ---- } else if (!TYPE_P (decl)) { ! error_at (loc, "%qE attribute must apply to a declaration", name); return NULL_TREE; } diff -Nrcpad gcc-11.4.0/gcc/c-family/c-common.c gcc-11.5.0/gcc/c-family/c-common.c *** gcc-11.4.0/gcc/c-family/c-common.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/c-family/c-common.c Fri Jul 19 05:52:43 2024 *************** convert_vector_to_array_for_subscript (l *** 8274,8279 **** --- 8274,8280 ---- if (gnu_vector_type_p (TREE_TYPE (*vecp))) { tree type = TREE_TYPE (*vecp); + tree newitype; ret = !lvalue_p (*vecp); *************** convert_vector_to_array_for_subscript (l *** 8288,8295 **** for function parameters. */ c_common_mark_addressable_vec (*vecp); *vecp = build1 (VIEW_CONVERT_EXPR, ! build_array_type_nelts (TREE_TYPE (type), TYPE_VECTOR_SUBPARTS (type)), *vecp); } --- 8289,8300 ---- for function parameters. */ c_common_mark_addressable_vec (*vecp); + /* Make sure qualifiers are copied from the vector type to the new element + of the array type. */ + newitype = build_qualified_type (TREE_TYPE (type), TYPE_QUALS (type)); + *vecp = build1 (VIEW_CONVERT_EXPR, ! build_array_type_nelts (newitype, TYPE_VECTOR_SUBPARTS (type)), *vecp); } diff -Nrcpad gcc-11.4.0/gcc/c-family/c-lex.c gcc-11.5.0/gcc/c-family/c-lex.c *** gcc-11.4.0/gcc/c-family/c-lex.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/c-family/c-lex.c Fri Jul 19 05:52:43 2024 *************** c_common_has_attribute (cpp_reader *pfil *** 327,335 **** do nxt_token = cpp_peek_token (pfile, idx++); while (nxt_token->type == CPP_PADDING); ! if (nxt_token->type == CPP_SCOPE) { - have_scope = true; get_token_no_padding (pfile); // Eat scope. nxt_token = get_token_no_padding (pfile); if (nxt_token->type == CPP_NAME) --- 327,354 ---- do nxt_token = cpp_peek_token (pfile, idx++); while (nxt_token->type == CPP_PADDING); ! if (!c_dialect_cxx () ! && nxt_token->type == CPP_COLON ! && (nxt_token->flags & COLON_SCOPE) != 0) ! { ! const cpp_token *prev_token = nxt_token; ! do ! nxt_token = cpp_peek_token (pfile, idx++); ! while (nxt_token->type == CPP_PADDING); ! if (nxt_token->type == CPP_COLON) ! { ! /* __has_attribute (vendor::attr) in -std=c17 etc. modes. ! :: isn't CPP_SCOPE but 2 CPP_COLON tokens, where the ! first one should have COLON_SCOPE flag to distinguish ! it from : :. */ ! have_scope = true; ! get_token_no_padding (pfile); // Eat first colon. ! } ! else ! nxt_token = prev_token; ! } ! if (nxt_token->type == CPP_SCOPE || have_scope) { get_token_no_padding (pfile); // Eat scope. nxt_token = get_token_no_padding (pfile); if (nxt_token->type == CPP_NAME) *************** c_common_has_attribute (cpp_reader *pfil *** 338,343 **** --- 357,363 ---- tree attr_id = get_identifier ((const char *) cpp_token_as_text (pfile, nxt_token)); + attr_id = canonicalize_attr_name (attr_id); attr_name = build_tree_list (attr_ns, attr_id); } else *************** c_common_has_attribute (cpp_reader *pfil *** 346,351 **** --- 366,380 ---- "attribute identifier required after scope"); attr_name = NULL_TREE; } + if (have_scope) + { + /* The parser in this case won't be able to parse + [[vendor::attr]], so ensure 0 is returned. */ + result = 0; + attr_name = NULL_TREE; + } + else + have_scope = true; } else { diff -Nrcpad gcc-11.4.0/gcc/c-family/c-opts.c gcc-11.5.0/gcc/c-family/c-opts.c *** gcc-11.4.0/gcc/c-family/c-opts.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/c-family/c-opts.c Fri Jul 19 05:52:43 2024 *************** c_common_post_options (const char **pfil *** 852,860 **** else if (!flag_gnu89_inline && !flag_isoc99) error ("%<-fno-gnu89-inline%> is only supported in GNU99 or C99 mode"); ! /* Default to ObjC sjlj exception handling if NeXT runtime. */ if (flag_objc_sjlj_exceptions < 0) ! flag_objc_sjlj_exceptions = flag_next_runtime; if (flag_objc_exceptions && !flag_objc_sjlj_exceptions) flag_exceptions = 1; --- 852,860 ---- else if (!flag_gnu89_inline && !flag_isoc99) error ("%<-fno-gnu89-inline%> is only supported in GNU99 or C99 mode"); ! /* Default to ObjC sjlj exception handling if NeXT runtime < v2. */ if (flag_objc_sjlj_exceptions < 0) ! flag_objc_sjlj_exceptions = (flag_next_runtime && flag_objc_abi < 2); if (flag_objc_exceptions && !flag_objc_sjlj_exceptions) flag_exceptions = 1; diff -Nrcpad gcc-11.4.0/gcc/c-family/c-pch.c gcc-11.5.0/gcc/c-family/c-pch.c *** gcc-11.4.0/gcc/c-family/c-pch.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/c-family/c-pch.c Fri Jul 19 05:52:43 2024 *************** c_common_read_pch (cpp_reader *pfile, co *** 354,359 **** --- 354,361 ---- gt_pch_restore (f); cpp_set_line_map (pfile, line_table); rebuild_location_adhoc_htab (line_table); + line_table->trace_includes = saved_trace_includes; + linemap_add (line_table, LC_ENTER, 0, saved_loc.file, saved_loc.line); timevar_push (TV_PCH_CPP_RESTORE); if (cpp_read_state (pfile, name, f, smd) != 0) *************** c_common_read_pch (cpp_reader *pfile, co *** 367,375 **** fclose (f); - line_table->trace_includes = saved_trace_includes; - linemap_add (line_table, LC_ENTER, 0, saved_loc.file, saved_loc.line); - /* Give the front end a chance to take action after a PCH file has been loaded. */ if (lang_post_pch_load) --- 369,374 ---- diff -Nrcpad gcc-11.4.0/gcc/cfgexpand.c gcc-11.5.0/gcc/cfgexpand.c *** gcc-11.4.0/gcc/cfgexpand.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/cfgexpand.c Fri Jul 19 05:52:43 2024 *************** visit_conflict (gimple *, tree op, tree, *** 571,576 **** --- 571,596 ---- return false; } + /* Helper function for add_scope_conflicts_1. For USE on + a stmt, if it is a SSA_NAME and in its SSA_NAME_DEF_STMT is known to be + based on some ADDR_EXPR, invoke VISIT on that ADDR_EXPR. */ + + static inline void + add_scope_conflicts_2 (tree use, bitmap work, + walk_stmt_load_store_addr_fn visit) + { + if (TREE_CODE (use) == SSA_NAME + && (POINTER_TYPE_P (TREE_TYPE (use)) + || INTEGRAL_TYPE_P (TREE_TYPE (use)))) + { + gimple *g = SSA_NAME_DEF_STMT (use); + if (is_gimple_assign (g)) + if (tree op = gimple_assign_rhs1 (g)) + if (TREE_CODE (op) == ADDR_EXPR) + visit (g, TREE_OPERAND (op, 0), op, work); + } + } + /* Helper routine for add_scope_conflicts, calculating the active partitions at the end of BB, leaving the result in WORK. We're called to generate conflicts when FOR_CONFLICT is true, otherwise we're just tracking *************** add_scope_conflicts_1 (basic_block bb, b *** 583,588 **** --- 603,610 ---- edge_iterator ei; gimple_stmt_iterator gsi; walk_stmt_load_store_addr_fn visit; + use_operand_p use_p; + ssa_op_iter iter; bitmap_clear (work); FOR_EACH_EDGE (e, ei, bb->preds) *************** add_scope_conflicts_1 (basic_block bb, b *** 593,599 **** --- 615,624 ---- for (gsi = gsi_start_phis (bb); !gsi_end_p (gsi); gsi_next (&gsi)) { gimple *stmt = gsi_stmt (gsi); + gphi *phi = as_a (stmt); walk_stmt_load_store_addr_ops (stmt, work, NULL, NULL, visit); + FOR_EACH_PHI_ARG (use_p, phi, iter, SSA_OP_USE) + add_scope_conflicts_2 (USE_FROM_PTR (use_p), work, visit); } for (gsi = gsi_after_labels (bb); !gsi_end_p (gsi); gsi_next (&gsi)) { *************** add_scope_conflicts_1 (basic_block bb, b *** 613,620 **** } else if (!is_gimple_debug (stmt)) { ! if (for_conflict ! && visit == visit_op) { /* If this is the first real instruction in this BB we need to add conflicts for everything live at this point now. --- 638,644 ---- } else if (!is_gimple_debug (stmt)) { ! if (for_conflict && visit == visit_op) { /* If this is the first real instruction in this BB we need to add conflicts for everything live at this point now. *************** add_scope_conflicts_1 (basic_block bb, b *** 634,639 **** --- 658,665 ---- visit = visit_conflict; } walk_stmt_load_store_addr_ops (stmt, work, visit, visit, visit); + FOR_EACH_SSA_USE_OPERAND (use_p, stmt, iter, SSA_OP_USE) + add_scope_conflicts_2 (USE_FROM_PTR (use_p), work, visit); } } } *************** expand_asm_stmt (gasm *stmt) *** 3639,3645 **** emit_insn (copy_insn (PATTERN (curr))); rtx_insn *copy = get_insns (); end_sequence (); ! insert_insn_on_edge (copy, e); } } } --- 3665,3671 ---- emit_insn (copy_insn (PATTERN (curr))); rtx_insn *copy = get_insns (); end_sequence (); ! prepend_insn_to_edge (copy, e); } } } diff -Nrcpad gcc-11.4.0/gcc/cfgrtl.c gcc-11.5.0/gcc/cfgrtl.c *** gcc-11.4.0/gcc/cfgrtl.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/cfgrtl.c Fri Jul 19 05:52:43 2024 *************** along with GCC; see the file COPYING3. *** 25,31 **** - CFG-aware instruction chain manipulation delete_insn, delete_insn_chain - Edge splitting and committing to edges ! insert_insn_on_edge, commit_edge_insertions - CFG updating after insn simplification purge_dead_edges, purge_all_dead_edges - CFG fixing after coarse manipulation --- 25,31 ---- - CFG-aware instruction chain manipulation delete_insn, delete_insn_chain - Edge splitting and committing to edges ! insert_insn_on_edge, prepend_insn_to_edge, commit_edge_insertions - CFG updating after insn simplification purge_dead_edges, purge_all_dead_edges - CFG fixing after coarse manipulation *************** rtl_split_edge (edge edge_in) *** 1990,1996 **** /* Queue instructions for insertion on an edge between two basic blocks. The new instructions and basic blocks (if any) will not appear in the ! CFG until commit_edge_insertions is called. */ void insert_insn_on_edge (rtx pattern, edge e) --- 1990,1997 ---- /* Queue instructions for insertion on an edge between two basic blocks. The new instructions and basic blocks (if any) will not appear in the ! CFG until commit_edge_insertions is called. If there are already ! queued instructions on the edge, PATTERN is appended to them. */ void insert_insn_on_edge (rtx pattern, edge e) *************** insert_insn_on_edge (rtx pattern, edge e *** 2008,2013 **** --- 2009,2033 ---- e->insns.r = get_insns (); end_sequence (); + } + + /* Like insert_insn_on_edge, but if there are already queued instructions + on the edge, PATTERN is prepended to them. */ + + void + prepend_insn_to_edge (rtx pattern, edge e) + { + /* We cannot insert instructions on an abnormal critical edge. + It will be easier to find the culprit if we die now. */ + gcc_assert (!((e->flags & EDGE_ABNORMAL) && EDGE_CRITICAL_P (e))); + + start_sequence (); + + emit_insn (pattern); + emit_insn (e->insns.r); + + e->insns.r = get_insns (); + end_sequence (); } /* Update the CFG for the instructions queued on edge E. */ diff -Nrcpad gcc-11.4.0/gcc/cfgrtl.h gcc-11.5.0/gcc/cfgrtl.h *** gcc-11.4.0/gcc/cfgrtl.h Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/cfgrtl.h Fri Jul 19 05:52:43 2024 *************** extern edge try_redirect_by_replacing_ju *** 38,43 **** --- 38,44 ---- extern void emit_barrier_after_bb (basic_block bb); extern basic_block force_nonfallthru_and_redirect (edge, basic_block, rtx); extern void insert_insn_on_edge (rtx, edge); + extern void prepend_insn_to_edge (rtx, edge); extern void commit_one_edge_insertion (edge e); extern void commit_edge_insertions (void); extern void print_rtl_with_bb (FILE *, const rtx_insn *, dump_flags_t); diff -Nrcpad gcc-11.4.0/gcc/cgraph.h gcc-11.5.0/gcc/cgraph.h *** gcc-11.4.0/gcc/cgraph.h Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/cgraph.h Fri Jul 19 05:52:43 2024 *************** public: *** 473,478 **** --- 473,481 ---- Return NULL if there's no such node. */ static symtab_node *get_for_asmname (const_tree asmname); + /* Check symbol table for callees of IFUNC resolvers. */ + static void check_ifunc_callee_symtab_nodes (void); + /* Verify symbol table for internal consistency. */ static DEBUG_FUNCTION void verify_symtab_nodes (void); *************** struct GTY((tag ("SYMTAB_FUNCTION"))) cg *** 883,889 **** versionable (false), can_change_signature (false), redefined_extern_inline (false), tm_may_enter_irr (false), ipcp_clone (false), declare_variant_alt (false), ! calls_declare_variant_alt (false), m_uid (uid), m_summary_id (-1) {} /* Remove the node from cgraph and all inline clones inlined into it. --- 886,894 ---- versionable (false), can_change_signature (false), redefined_extern_inline (false), tm_may_enter_irr (false), ipcp_clone (false), declare_variant_alt (false), ! calls_declare_variant_alt (false), ! called_by_ifunc_resolver (false), ! m_uid (uid), m_summary_id (-1) {} /* Remove the node from cgraph and all inline clones inlined into it. *************** struct GTY((tag ("SYMTAB_FUNCTION"))) cg *** 1475,1480 **** --- 1480,1487 ---- unsigned declare_variant_alt : 1; /* True if the function calls declare_variant_alt functions. */ unsigned calls_declare_variant_alt : 1; + /* Set if the function is called by an IFUNC resolver. */ + unsigned called_by_ifunc_resolver : 1; private: /* Unique id of the node. */ diff -Nrcpad gcc-11.4.0/gcc/cgraphunit.c gcc-11.5.0/gcc/cgraphunit.c *** gcc-11.4.0/gcc/cgraphunit.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/cgraphunit.c Fri Jul 19 05:52:43 2024 *************** symbol_table::compile (void) *** 2273,2278 **** --- 2273,2280 ---- symtab_node::checking_verify_symtab_nodes (); + symtab_node::check_ifunc_callee_symtab_nodes (); + timevar_push (TV_CGRAPHOPT); if (pre_ipa_mem_report) dump_memory_report ("Memory consumption before IPA"); diff -Nrcpad gcc-11.4.0/gcc/combine.c gcc-11.5.0/gcc/combine.c *** gcc-11.4.0/gcc/combine.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/combine.c Fri Jul 19 05:52:43 2024 *************** simplify_compare_const (enum rtx_code co *** 11879,11886 **** `and'ed with that bit), we can replace this with a comparison with zero. */ if (const_op ! && (code == EQ || code == NE || code == GE || code == GEU ! || code == LT || code == LTU) && is_a (mode, &int_mode) && GET_MODE_PRECISION (int_mode) - 1 < HOST_BITS_PER_WIDE_INT && pow2p_hwi (const_op & GET_MODE_MASK (int_mode)) --- 11879,11888 ---- `and'ed with that bit), we can replace this with a comparison with zero. */ if (const_op ! && (code == EQ || code == NE || code == GEU || code == LTU ! /* This optimization is incorrect for signed >= INT_MIN or ! < INT_MIN, those are always true or always false. */ ! || ((code == GE || code == LT) && const_op > 0)) && is_a (mode, &int_mode) && GET_MODE_PRECISION (int_mode) - 1 < HOST_BITS_PER_WIDE_INT && pow2p_hwi (const_op & GET_MODE_MASK (int_mode)) diff -Nrcpad gcc-11.4.0/gcc/common/config/i386/cpuinfo.h gcc-11.5.0/gcc/common/config/i386/cpuinfo.h *** gcc-11.4.0/gcc/common/config/i386/cpuinfo.h Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/common/config/i386/cpuinfo.h Fri Jul 19 05:52:43 2024 *************** get_amd_cpu (struct __processor_model *c *** 243,255 **** break; case 0x19: cpu_model->__cpu_type = AMDFAM19H; ! /* AMD family 19h version 1. */ if (model <= 0x0f) { cpu = "znver3"; CHECK___builtin_cpu_is ("znver3"); cpu_model->__cpu_subtype = AMDFAM19H_ZNVER3; } else if (has_cpu_feature (cpu_model, cpu_features2, FEATURE_VAES)) { --- 243,269 ---- break; case 0x19: cpu_model->__cpu_type = AMDFAM19H; ! /* AMD family 19h. */ if (model <= 0x0f) { cpu = "znver3"; CHECK___builtin_cpu_is ("znver3"); cpu_model->__cpu_subtype = AMDFAM19H_ZNVER3; } + else if ((model >= 0x10 && model <= 0x1f) + || (model >= 0x60 && model <= 0xaf)) + { + cpu = "znver4"; + CHECK___builtin_cpu_is ("znver4"); + cpu_model->__cpu_subtype = AMDFAM19H_ZNVER4; + } + else if (has_cpu_feature (cpu_model, cpu_features2, + FEATURE_AVX512F)) + { + cpu = "znver4"; + CHECK___builtin_cpu_is ("znver4"); + cpu_model->__cpu_subtype = AMDFAM19H_ZNVER4; + } else if (has_cpu_feature (cpu_model, cpu_features2, FEATURE_VAES)) { *************** get_available_features (struct __process *** 623,629 **** /* Get Advanced Features at level 7 (eax = 7, ecx = 0/1). */ if (max_cpuid_level >= 7) { ! __cpuid_count (7, 0, eax, ebx, ecx, edx); if (ebx & bit_BMI) set_feature (FEATURE_BMI); if (ebx & bit_SGX) --- 637,645 ---- /* Get Advanced Features at level 7 (eax = 7, ecx = 0/1). */ if (max_cpuid_level >= 7) { ! unsigned int max_subleaf_level; ! ! __cpuid_count (7, 0, max_subleaf_level, ebx, ecx, edx); if (ebx & bit_BMI) set_feature (FEATURE_BMI); if (ebx & bit_SGX) *************** get_available_features (struct __process *** 733,750 **** set_feature (FEATURE_AVX512VP2INTERSECT); } ! __cpuid_count (7, 1, eax, ebx, ecx, edx); ! if (eax & bit_HRESET) ! set_feature (FEATURE_HRESET); ! if (avx_usable) ! { ! if (eax & bit_AVXVNNI) ! set_feature (FEATURE_AVXVNNI); ! } ! if (avx512_usable) { ! if (eax & bit_AVX512BF16) ! set_feature (FEATURE_AVX512BF16); } } --- 749,769 ---- set_feature (FEATURE_AVX512VP2INTERSECT); } ! if (max_subleaf_level >= 1) { ! __cpuid_count (7, 1, eax, ebx, ecx, edx); ! if (eax & bit_HRESET) ! set_feature (FEATURE_HRESET); ! if (avx_usable) ! { ! if (eax & bit_AVXVNNI) ! set_feature (FEATURE_AVXVNNI); ! } ! if (avx512_usable) ! { ! if (eax & bit_AVX512BF16) ! set_feature (FEATURE_AVX512BF16); ! } } } diff -Nrcpad gcc-11.4.0/gcc/common/config/i386/i386-common.c gcc-11.5.0/gcc/common/config/i386/i386-common.c *** gcc-11.4.0/gcc/common/config/i386/i386-common.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/common/config/i386/i386-common.c Fri Jul 19 05:52:43 2024 *************** const char *const processor_names[] = *** 1806,1812 **** "btver2", "znver1", "znver2", ! "znver3" }; /* Guarantee that the array is aligned with enum processor_type. */ --- 1806,1813 ---- "btver2", "znver1", "znver2", ! "znver3", ! "znver4" }; /* Guarantee that the array is aligned with enum processor_type. */ *************** const pta processor_alias_table[] = *** 2031,2067 **** | PTA_MOVBE | PTA_MWAITX, M_CPU_SUBTYPE (AMDFAM15H_BDVER4), P_PROC_AVX2}, {"znver1", PROCESSOR_ZNVER1, CPU_ZNVER1, ! PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 | PTA_SSE3 ! | PTA_SSE4A | PTA_CX16 | PTA_ABM | PTA_SSSE3 | PTA_SSE4_1 ! | PTA_SSE4_2 | PTA_AES | PTA_PCLMUL | PTA_AVX | PTA_AVX2 ! | PTA_BMI | PTA_BMI2 | PTA_F16C | PTA_FMA | PTA_PRFCHW ! | PTA_FXSR | PTA_XSAVE | PTA_XSAVEOPT | PTA_FSGSBASE ! | PTA_RDRND | PTA_MOVBE | PTA_MWAITX | PTA_ADX | PTA_RDSEED ! | PTA_CLZERO | PTA_CLFLUSHOPT | PTA_XSAVEC | PTA_XSAVES ! | PTA_SHA | PTA_LZCNT | PTA_POPCNT, M_CPU_SUBTYPE (AMDFAM17H_ZNVER1), P_PROC_AVX2}, {"znver2", PROCESSOR_ZNVER2, CPU_ZNVER2, ! PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 | PTA_SSE3 ! | PTA_SSE4A | PTA_CX16 | PTA_ABM | PTA_SSSE3 | PTA_SSE4_1 ! | PTA_SSE4_2 | PTA_AES | PTA_PCLMUL | PTA_AVX | PTA_AVX2 ! | PTA_BMI | PTA_BMI2 | PTA_F16C | PTA_FMA | PTA_PRFCHW ! | PTA_FXSR | PTA_XSAVE | PTA_XSAVEOPT | PTA_FSGSBASE ! | PTA_RDRND | PTA_MOVBE | PTA_MWAITX | PTA_ADX | PTA_RDSEED ! | PTA_CLZERO | PTA_CLFLUSHOPT | PTA_XSAVEC | PTA_XSAVES ! | PTA_SHA | PTA_LZCNT | PTA_POPCNT | PTA_CLWB | PTA_RDPID ! | PTA_WBNOINVD, M_CPU_SUBTYPE (AMDFAM17H_ZNVER2), P_PROC_AVX2}, {"znver3", PROCESSOR_ZNVER3, CPU_ZNVER3, ! PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 | PTA_SSE3 ! | PTA_SSE4A | PTA_CX16 | PTA_ABM | PTA_SSSE3 | PTA_SSE4_1 ! | PTA_SSE4_2 | PTA_AES | PTA_PCLMUL | PTA_AVX | PTA_AVX2 ! | PTA_BMI | PTA_BMI2 | PTA_F16C | PTA_FMA | PTA_PRFCHW ! | PTA_FXSR | PTA_XSAVE | PTA_XSAVEOPT | PTA_FSGSBASE ! | PTA_RDRND | PTA_MOVBE | PTA_MWAITX | PTA_ADX | PTA_RDSEED ! | PTA_CLZERO | PTA_CLFLUSHOPT | PTA_XSAVEC | PTA_XSAVES ! | PTA_SHA | PTA_LZCNT | PTA_POPCNT | PTA_CLWB | PTA_RDPID ! | PTA_WBNOINVD | PTA_VAES | PTA_VPCLMULQDQ | PTA_PKU, M_CPU_SUBTYPE (AMDFAM19H_ZNVER3), P_PROC_AVX2}, {"btver1", PROCESSOR_BTVER1, CPU_GENERIC, PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 | PTA_SSE3 | PTA_SSSE3 | PTA_SSE4A | PTA_ABM | PTA_CX16 | PTA_PRFCHW --- 2032,2048 ---- | PTA_MOVBE | PTA_MWAITX, M_CPU_SUBTYPE (AMDFAM15H_BDVER4), P_PROC_AVX2}, {"znver1", PROCESSOR_ZNVER1, CPU_ZNVER1, ! PTA_ZNVER1, M_CPU_SUBTYPE (AMDFAM17H_ZNVER1), P_PROC_AVX2}, {"znver2", PROCESSOR_ZNVER2, CPU_ZNVER2, ! PTA_ZNVER2, M_CPU_SUBTYPE (AMDFAM17H_ZNVER2), P_PROC_AVX2}, {"znver3", PROCESSOR_ZNVER3, CPU_ZNVER3, ! PTA_ZNVER3, M_CPU_SUBTYPE (AMDFAM19H_ZNVER3), P_PROC_AVX2}, + {"znver4", PROCESSOR_ZNVER4, CPU_ZNVER4, + PTA_ZNVER4, + M_CPU_SUBTYPE (AMDFAM19H_ZNVER4), P_PROC_AVX512F}, {"btver1", PROCESSOR_BTVER1, CPU_GENERIC, PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 | PTA_SSE3 | PTA_SSSE3 | PTA_SSE4A | PTA_ABM | PTA_CX16 | PTA_PRFCHW diff -Nrcpad gcc-11.4.0/gcc/common/config/i386/i386-cpuinfo.h gcc-11.5.0/gcc/common/config/i386/i386-cpuinfo.h *** gcc-11.4.0/gcc/common/config/i386/i386-cpuinfo.h Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/common/config/i386/i386-cpuinfo.h Fri Jul 19 05:52:43 2024 *************** enum processor_subtypes *** 91,96 **** --- 91,97 ---- INTEL_COREI7_ALDERLAKE, AMDFAM19H_ZNVER3, INTEL_COREI7_ROCKETLAKE, + AMDFAM19H_ZNVER4, CPU_SUBTYPE_MAX }; diff -Nrcpad gcc-11.4.0/gcc/config/aarch64/aarch64-c.c gcc-11.5.0/gcc/config/aarch64/aarch64-c.c *** gcc-11.4.0/gcc/config/aarch64/aarch64-c.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/aarch64/aarch64-c.c Fri Jul 19 05:52:43 2024 *************** aarch64_update_cpp_builtins (cpp_reader *** 200,205 **** --- 200,210 ---- "__ARM_FEATURE_BF16_VECTOR_ARITHMETIC", pfile); aarch64_def_or_undef (TARGET_BF16_FP, "__ARM_FEATURE_BF16_SCALAR_ARITHMETIC", pfile); + aarch64_def_or_undef (TARGET_BF16_FP, + "__ARM_FEATURE_BF16", pfile); + aarch64_def_or_undef (TARGET_SVE_BF16, + "__ARM_FEATURE_SVE_BF16", 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 diff -Nrcpad gcc-11.4.0/gcc/config/aarch64/aarch64-cores.def gcc-11.5.0/gcc/config/aarch64/aarch64-cores.def *** gcc-11.4.0/gcc/config/aarch64/aarch64-cores.def Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/aarch64/aarch64-cores.def Fri Jul 19 05:52:43 2024 *************** AARCH64_CORE("saphira", saphira, *** 148,154 **** --- 148,156 ---- /* 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("cobalt-100", cobalt100, 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, 0x6d, 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) + AARCH64_CORE("grace", grace, cortexa57, 8_5A, AARCH64_FL_FOR_ARCH8_5 | AARCH64_FL_I8MM | AARCH64_FL_BF16 | AARCH64_FL_F16 | AARCH64_FL_CRYPTO | AARCH64_FL_SHA3 | AARCH64_FL_SM4 | AARCH64_FL_SVE | AARCH64_FL_SVE2 | AARCH64_FL_SVE2_BITPERM | AARCH64_FL_SVE2_AES | AARCH64_FL_SVE2_SM4 | AARCH64_FL_SVE2_SHA3, neoverse512tvb, 0x41, 0xd4f, -1) /* ARMv8-A big.LITTLE implementations. */ diff -Nrcpad gcc-11.4.0/gcc/config/aarch64/aarch64-tune.md gcc-11.5.0/gcc/config/aarch64/aarch64-tune.md *** gcc-11.4.0/gcc/config/aarch64/aarch64-tune.md Mon May 29 08:49:47 2023 --- gcc-11.5.0/gcc/config/aarch64/aarch64-tune.md Fri Jul 19 05:53:51 2024 *************** *** 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)"))) --- 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,cobalt100,neoversev2,grace,cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,cortexa75cortexa55,cortexa76cortexa55,cortexr82" (const (symbol_ref "((enum attr_tune) aarch64_tune)"))) diff -Nrcpad gcc-11.4.0/gcc/config/aarch64/aarch64.c gcc-11.5.0/gcc/config/aarch64/aarch64.c *** gcc-11.4.0/gcc/config/aarch64/aarch64.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/aarch64/aarch64.c Fri Jul 19 05:52:43 2024 *************** aarch64_reg_save_mode (unsigned int regn *** 3466,3472 **** case ARM_PCS_SIMD: /* The vector PCS saves the low 128 bits (which is the full register on non-SVE targets). */ ! return TFmode; case ARM_PCS_SVE: /* Use vectors of DImode for registers that need frame --- 3466,3472 ---- case ARM_PCS_SIMD: /* The vector PCS saves the low 128 bits (which is the full register on non-SVE targets). */ ! return V16QImode; case ARM_PCS_SVE: /* Use vectors of DImode for registers that need frame *************** aarch64_needs_frame_chain (void) *** 7392,7409 **** return aarch64_use_frame_pointer; } /* Mark the registers that need to be saved by the callee and calculate the size of the callee-saved registers area and frame record (both FP and LR may be omitted). */ static void aarch64_layout_frame (void) { - poly_int64 offset = 0; int regno, last_fp_reg = INVALID_REGNUM; machine_mode vector_save_mode = aarch64_reg_save_mode (V8_REGNUM); poly_int64 vector_save_size = GET_MODE_SIZE (vector_save_mode); bool frame_related_fp_reg_p = false; aarch64_frame &frame = cfun->machine->frame; frame.emit_frame_chain = aarch64_needs_frame_chain (); --- 7392,7423 ---- return aarch64_use_frame_pointer; } + /* Return true if the current function should save registers above + the locals area, rather than below it. */ + + static bool + aarch64_save_regs_above_locals_p () + { + /* When using stack smash protection, make sure that the canary slot + comes between the locals and the saved registers. Otherwise, + it would be possible for a carefully sized smash attack to change + the saved registers (particularly LR and FP) without reaching the + canary. */ + return crtl->stack_protect_guard; + } + /* Mark the registers that need to be saved by the callee and calculate the size of the callee-saved registers area and frame record (both FP and LR may be omitted). */ static void aarch64_layout_frame (void) { int regno, last_fp_reg = INVALID_REGNUM; machine_mode vector_save_mode = aarch64_reg_save_mode (V8_REGNUM); poly_int64 vector_save_size = GET_MODE_SIZE (vector_save_mode); bool frame_related_fp_reg_p = false; aarch64_frame &frame = cfun->machine->frame; + poly_int64 top_of_locals = -1; frame.emit_frame_chain = aarch64_needs_frame_chain (); *************** aarch64_layout_frame (void) *** 7470,7480 **** && !crtl->abi->clobbers_full_reg_p (regno)) frame.reg_offset[regno] = SLOT_REQUIRED; ! /* With stack-clash, LR must be saved in non-leaf functions. The saving of ! LR counts as an implicit probe which allows us to maintain the invariant ! described in the comment at expand_prologue. */ ! gcc_assert (crtl->is_leaf ! || maybe_ne (frame.reg_offset[R30_REGNUM], SLOT_NOT_REQUIRED)); /* Now assign stack slots for the registers. Start with the predicate registers, since predicate LDR and STR have a relatively small --- 7484,7501 ---- && !crtl->abi->clobbers_full_reg_p (regno)) frame.reg_offset[regno] = SLOT_REQUIRED; ! bool regs_at_top_p = aarch64_save_regs_above_locals_p (); ! ! poly_int64 offset = crtl->outgoing_args_size; ! gcc_assert (multiple_p (offset, STACK_BOUNDARY / BITS_PER_UNIT)); ! if (regs_at_top_p) ! { ! offset += get_frame_size (); ! offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT); ! top_of_locals = offset; ! } ! frame.bytes_below_saved_regs = offset; ! frame.sve_save_and_probe = INVALID_REGNUM; /* Now assign stack slots for the registers. Start with the predicate registers, since predicate LDR and STR have a relatively small *************** aarch64_layout_frame (void) *** 7482,7492 **** for (regno = P0_REGNUM; regno <= P15_REGNUM; regno++) if (known_eq (frame.reg_offset[regno], SLOT_REQUIRED)) { frame.reg_offset[regno] = offset; offset += BYTES_PER_SVE_PRED; } ! if (maybe_ne (offset, 0)) { /* If we have any vector registers to save above the predicate registers, the offset of the vector register save slots need to be a multiple --- 7503,7516 ---- for (regno = P0_REGNUM; regno <= P15_REGNUM; regno++) if (known_eq (frame.reg_offset[regno], SLOT_REQUIRED)) { + if (frame.sve_save_and_probe == INVALID_REGNUM) + frame.sve_save_and_probe = regno; frame.reg_offset[regno] = offset; offset += BYTES_PER_SVE_PRED; } ! poly_int64 saved_prs_size = offset - frame.bytes_below_saved_regs; ! if (maybe_ne (saved_prs_size, 0)) { /* If we have any vector registers to save above the predicate registers, the offset of the vector register save slots need to be a multiple *************** aarch64_layout_frame (void) *** 7504,7513 **** offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT); else { ! if (known_le (offset, vector_save_size)) ! offset = vector_save_size; ! else if (known_le (offset, vector_save_size * 2)) ! offset = vector_save_size * 2; else gcc_unreachable (); } --- 7528,7537 ---- offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT); else { ! if (known_le (saved_prs_size, vector_save_size)) ! offset = frame.bytes_below_saved_regs + vector_save_size; ! else if (known_le (saved_prs_size, vector_save_size * 2)) ! offset = frame.bytes_below_saved_regs + vector_save_size * 2; else gcc_unreachable (); } *************** aarch64_layout_frame (void) *** 7518,7551 **** for (regno = V0_REGNUM; regno <= V31_REGNUM; regno++) if (known_eq (frame.reg_offset[regno], SLOT_REQUIRED)) { frame.reg_offset[regno] = offset; offset += vector_save_size; } /* OFFSET is now the offset of the hard frame pointer from the bottom of the callee save area. */ ! bool saves_below_hard_fp_p = maybe_ne (offset, 0); ! frame.below_hard_fp_saved_regs_size = offset; if (frame.emit_frame_chain) { /* FP and LR are placed in the linkage record. */ ! frame.reg_offset[R29_REGNUM] = offset; ! frame.wb_candidate1 = R29_REGNUM; ! frame.reg_offset[R30_REGNUM] = offset + UNITS_PER_WORD; ! frame.wb_candidate2 = R30_REGNUM; ! offset += 2 * UNITS_PER_WORD; } for (regno = R0_REGNUM; regno <= R30_REGNUM; regno++) if (known_eq (frame.reg_offset[regno], SLOT_REQUIRED)) ! { ! frame.reg_offset[regno] = offset; ! if (frame.wb_candidate1 == INVALID_REGNUM) ! frame.wb_candidate1 = regno; ! else if (frame.wb_candidate2 == INVALID_REGNUM) ! frame.wb_candidate2 = regno; ! offset += UNITS_PER_WORD; ! } poly_int64 max_int_offset = offset; offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT); --- 7542,7594 ---- for (regno = V0_REGNUM; regno <= V31_REGNUM; regno++) if (known_eq (frame.reg_offset[regno], SLOT_REQUIRED)) { + if (frame.sve_save_and_probe == INVALID_REGNUM) + frame.sve_save_and_probe = regno; frame.reg_offset[regno] = offset; offset += vector_save_size; } /* OFFSET is now the offset of the hard frame pointer from the bottom of the callee save area. */ ! auto below_hard_fp_saved_regs_size = offset - frame.bytes_below_saved_regs; ! bool saves_below_hard_fp_p = maybe_ne (below_hard_fp_saved_regs_size, 0); ! gcc_assert (!saves_below_hard_fp_p ! || (frame.sve_save_and_probe != INVALID_REGNUM ! && known_eq (frame.reg_offset[frame.sve_save_and_probe], ! frame.bytes_below_saved_regs))); ! ! frame.bytes_below_hard_fp = offset; ! frame.hard_fp_save_and_probe = INVALID_REGNUM; ! ! auto allocate_gpr_slot = [&](unsigned int regno) ! { ! if (frame.hard_fp_save_and_probe == INVALID_REGNUM) ! frame.hard_fp_save_and_probe = regno; ! frame.reg_offset[regno] = offset; ! if (frame.wb_candidate1 == INVALID_REGNUM) ! frame.wb_candidate1 = regno; ! else if (frame.wb_candidate2 == INVALID_REGNUM) ! frame.wb_candidate2 = regno; ! offset += UNITS_PER_WORD; ! }; ! if (frame.emit_frame_chain) { /* FP and LR are placed in the linkage record. */ ! allocate_gpr_slot (R29_REGNUM); ! allocate_gpr_slot (R30_REGNUM); } + else if (flag_stack_clash_protection + && known_eq (frame.reg_offset[R30_REGNUM], SLOT_REQUIRED)) + /* Put the LR save slot first, since it makes a good choice of probe + for stack clash purposes. The idea is that the link register usually + has to be saved before a call anyway, and so we lose little by + stopping it from being individually shrink-wrapped. */ + allocate_gpr_slot (R30_REGNUM); for (regno = R0_REGNUM; regno <= R30_REGNUM; regno++) if (known_eq (frame.reg_offset[regno], SLOT_REQUIRED)) ! allocate_gpr_slot (regno); poly_int64 max_int_offset = offset; offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT); *************** aarch64_layout_frame (void) *** 7554,7559 **** --- 7597,7604 ---- for (regno = V0_REGNUM; regno <= V31_REGNUM; regno++) if (known_eq (frame.reg_offset[regno], SLOT_REQUIRED)) { + if (frame.hard_fp_save_and_probe == INVALID_REGNUM) + frame.hard_fp_save_and_probe = regno; /* If there is an alignment gap between integer and fp callee-saves, allocate the last fp register to it if possible. */ if (regno == last_fp_reg *************** aarch64_layout_frame (void) *** 7576,7605 **** offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT); ! frame.saved_regs_size = offset; ! ! poly_int64 varargs_and_saved_regs_size = offset + frame.saved_varargs_size; ! ! poly_int64 above_outgoing_args ! = aligned_upper_bound (varargs_and_saved_regs_size ! + get_frame_size (), ! STACK_BOUNDARY / BITS_PER_UNIT); ! frame.hard_fp_offset ! = above_outgoing_args - frame.below_hard_fp_saved_regs_size; ! /* Both these values are already aligned. */ ! gcc_assert (multiple_p (crtl->outgoing_args_size, ! STACK_BOUNDARY / BITS_PER_UNIT)); ! frame.frame_size = above_outgoing_args + crtl->outgoing_args_size; ! frame.locals_offset = frame.saved_varargs_size; frame.initial_adjust = 0; frame.final_adjust = 0; frame.callee_adjust = 0; frame.sve_callee_adjust = 0; - frame.callee_offset = 0; HOST_WIDE_INT max_push_offset = 0; if (frame.wb_candidate2 != INVALID_REGNUM) --- 7621,7656 ---- offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT); ! auto saved_regs_size = offset - frame.bytes_below_saved_regs; ! gcc_assert (known_eq (saved_regs_size, below_hard_fp_saved_regs_size) ! || (frame.hard_fp_save_and_probe != INVALID_REGNUM ! && known_eq (frame.reg_offset[frame.hard_fp_save_and_probe], ! frame.bytes_below_hard_fp))); ! /* With stack-clash, a register must be saved in non-leaf functions. ! The saving of the bottommost register counts as an implicit probe, ! which allows us to maintain the invariant described in the comment ! at expand_prologue. */ ! gcc_assert (crtl->is_leaf || maybe_ne (saved_regs_size, 0)); ! if (!regs_at_top_p) ! { ! offset += get_frame_size (); ! offset = aligned_upper_bound (offset, STACK_BOUNDARY / BITS_PER_UNIT); ! top_of_locals = offset; ! } ! offset += frame.saved_varargs_size; ! gcc_assert (multiple_p (offset, STACK_BOUNDARY / BITS_PER_UNIT)); ! frame.frame_size = offset; ! frame.bytes_above_hard_fp = frame.frame_size - frame.bytes_below_hard_fp; ! gcc_assert (known_ge (top_of_locals, 0)); ! frame.bytes_above_locals = frame.frame_size - top_of_locals; frame.initial_adjust = 0; frame.final_adjust = 0; frame.callee_adjust = 0; frame.sve_callee_adjust = 0; HOST_WIDE_INT max_push_offset = 0; if (frame.wb_candidate2 != INVALID_REGNUM) *************** aarch64_layout_frame (void) *** 7607,7676 **** else if (frame.wb_candidate1 != INVALID_REGNUM) max_push_offset = 256; ! HOST_WIDE_INT const_size, const_outgoing_args_size, const_fp_offset; HOST_WIDE_INT const_saved_regs_size; ! if (frame.frame_size.is_constant (&const_size) ! && const_size < max_push_offset ! && known_eq (frame.hard_fp_offset, const_size)) { ! /* Simple, small frame with no outgoing arguments: stp reg1, reg2, [sp, -frame_size]! stp reg3, reg4, [sp, 16] */ frame.callee_adjust = const_size; } ! else if (crtl->outgoing_args_size.is_constant (&const_outgoing_args_size) ! && frame.saved_regs_size.is_constant (&const_saved_regs_size) ! && const_outgoing_args_size + const_saved_regs_size < 512 ! /* We could handle this case even with outgoing args, provided ! that the number of args left us with valid offsets for all ! predicate and vector save slots. It's such a rare case that ! it hardly seems worth the effort though. */ ! && (!saves_below_hard_fp_p || const_outgoing_args_size == 0) && !(cfun->calls_alloca ! && frame.hard_fp_offset.is_constant (&const_fp_offset) ! && const_fp_offset < max_push_offset)) { ! /* Frame with small outgoing arguments: sub sp, sp, frame_size ! stp reg1, reg2, [sp, outgoing_args_size] ! stp reg3, reg4, [sp, outgoing_args_size + 16] */ frame.initial_adjust = frame.frame_size; - frame.callee_offset = const_outgoing_args_size; } else if (saves_below_hard_fp_p ! && known_eq (frame.saved_regs_size, ! frame.below_hard_fp_saved_regs_size)) { /* Frame in which all saves are SVE saves: ! sub sp, sp, hard_fp_offset + below_hard_fp_saved_regs_size save SVE registers relative to SP ! sub sp, sp, outgoing_args_size */ ! frame.initial_adjust = (frame.hard_fp_offset ! + frame.below_hard_fp_saved_regs_size); ! frame.final_adjust = crtl->outgoing_args_size; } ! else if (frame.hard_fp_offset.is_constant (&const_fp_offset) ! && const_fp_offset < max_push_offset) { ! /* Frame with large outgoing arguments or SVE saves, but with ! a small local area: stp reg1, reg2, [sp, -hard_fp_offset]! stp reg3, reg4, [sp, 16] [sub sp, sp, below_hard_fp_saved_regs_size] [save SVE registers relative to SP] ! sub sp, sp, outgoing_args_size */ ! frame.callee_adjust = const_fp_offset; ! frame.sve_callee_adjust = frame.below_hard_fp_saved_regs_size; ! frame.final_adjust = crtl->outgoing_args_size; } else { ! /* Frame with large local area and outgoing arguments or SVE saves, ! using frame pointer: sub sp, sp, hard_fp_offset stp x29, x30, [sp, 0] --- 7658,7725 ---- else if (frame.wb_candidate1 != INVALID_REGNUM) max_push_offset = 256; ! HOST_WIDE_INT const_size, const_below_saved_regs, const_above_fp; HOST_WIDE_INT const_saved_regs_size; ! if (known_eq (saved_regs_size, 0)) ! frame.initial_adjust = frame.frame_size; ! else if (frame.frame_size.is_constant (&const_size) ! && const_size < max_push_offset ! && known_eq (frame.bytes_above_hard_fp, const_size)) { ! /* Simple, small frame with no data below the saved registers. stp reg1, reg2, [sp, -frame_size]! stp reg3, reg4, [sp, 16] */ frame.callee_adjust = const_size; } ! else if (frame.bytes_below_saved_regs.is_constant (&const_below_saved_regs) ! && saved_regs_size.is_constant (&const_saved_regs_size) ! && const_below_saved_regs + const_saved_regs_size < 512 ! /* We could handle this case even with data below the saved ! registers, provided that that data left us with valid offsets ! for all predicate and vector save slots. It's such a rare ! case that it hardly seems worth the effort though. */ ! && (!saves_below_hard_fp_p || const_below_saved_regs == 0) && !(cfun->calls_alloca ! && frame.bytes_above_hard_fp.is_constant (&const_above_fp) ! && const_above_fp < max_push_offset)) { ! /* Frame with small area below the saved registers: sub sp, sp, frame_size ! stp reg1, reg2, [sp, bytes_below_saved_regs] ! stp reg3, reg4, [sp, bytes_below_saved_regs + 16] */ frame.initial_adjust = frame.frame_size; } else if (saves_below_hard_fp_p ! && known_eq (saved_regs_size, below_hard_fp_saved_regs_size)) { /* Frame in which all saves are SVE saves: ! sub sp, sp, frame_size - bytes_below_saved_regs save SVE registers relative to SP ! sub sp, sp, bytes_below_saved_regs */ ! frame.initial_adjust = frame.frame_size - frame.bytes_below_saved_regs; ! frame.final_adjust = frame.bytes_below_saved_regs; } ! else if (frame.bytes_above_hard_fp.is_constant (&const_above_fp) ! && const_above_fp < max_push_offset) { ! /* Frame with large area below the saved registers, or with SVE saves, ! but with a small area above: stp reg1, reg2, [sp, -hard_fp_offset]! stp reg3, reg4, [sp, 16] [sub sp, sp, below_hard_fp_saved_regs_size] [save SVE registers relative to SP] ! sub sp, sp, bytes_below_saved_regs */ ! frame.callee_adjust = const_above_fp; ! frame.sve_callee_adjust = below_hard_fp_saved_regs_size; ! frame.final_adjust = frame.bytes_below_saved_regs; } else { ! /* General case: sub sp, sp, hard_fp_offset stp x29, x30, [sp, 0] *************** aarch64_layout_frame (void) *** 7678,7687 **** stp reg3, reg4, [sp, 16] [sub sp, sp, below_hard_fp_saved_regs_size] [save SVE registers relative to SP] ! sub sp, sp, outgoing_args_size */ ! frame.initial_adjust = frame.hard_fp_offset; ! frame.sve_callee_adjust = frame.below_hard_fp_saved_regs_size; ! frame.final_adjust = crtl->outgoing_args_size; } /* Make sure the individual adjustments add up to the full frame size. */ --- 7727,7755 ---- stp reg3, reg4, [sp, 16] [sub sp, sp, below_hard_fp_saved_regs_size] [save SVE registers relative to SP] ! sub sp, sp, bytes_below_saved_regs */ ! frame.initial_adjust = frame.bytes_above_hard_fp; ! frame.sve_callee_adjust = below_hard_fp_saved_regs_size; ! frame.final_adjust = frame.bytes_below_saved_regs; ! } ! ! /* The frame is allocated in pieces, with each non-final piece ! including a register save at offset 0 that acts as a probe for ! the following piece. In addition, the save of the bottommost register ! acts as a probe for callees and allocas. Roll back any probes that ! aren't needed. ! ! A probe isn't needed if it is associated with the final allocation ! (including callees and allocas) that happens before the epilogue is ! executed. */ ! if (crtl->is_leaf ! && !cfun->calls_alloca ! && known_eq (frame.final_adjust, 0)) ! { ! if (maybe_ne (frame.sve_callee_adjust, 0)) ! frame.sve_save_and_probe = INVALID_REGNUM; ! else ! frame.hard_fp_save_and_probe = INVALID_REGNUM; } /* Make sure the individual adjustments add up to the full frame size. */ *************** aarch64_gen_storewb_pair (machine_mode m *** 7762,7767 **** --- 7830,7839 ---- return gen_storewb_pairtf_di (base, base, reg, reg2, GEN_INT (-adjustment), GEN_INT (UNITS_PER_VREG - adjustment)); + case E_V16QImode: + return gen_storewb_pairv16qi_di (base, base, reg, reg2, + GEN_INT (-adjustment), + GEN_INT (UNITS_PER_VREG - adjustment)); default: gcc_unreachable (); } *************** aarch64_gen_loadwb_pair (machine_mode mo *** 7807,7812 **** --- 7879,7888 ---- case E_TFmode: return gen_loadwb_pairtf_di (base, base, reg, reg2, GEN_INT (adjustment), GEN_INT (UNITS_PER_VREG)); + case E_V16QImode: + return gen_loadwb_pairv16qi_di (base, base, reg, reg2, + GEN_INT (adjustment), + GEN_INT (UNITS_PER_VREG)); default: gcc_unreachable (); } *************** aarch64_gen_load_pair (machine_mode mode *** 7890,7895 **** --- 7966,7974 ---- case E_V4SImode: return gen_load_pairv4siv4si (reg1, mem1, reg2, mem2); + case E_V16QImode: + return gen_load_pairv16qiv16qi (reg1, mem1, reg2, mem2); + default: gcc_unreachable (); } *************** aarch64_add_cfa_expression (rtx_insn *in *** 7985,7999 **** } /* Emit code to save the callee-saved registers from register number START ! to LIMIT to the stack at the location starting at offset START_OFFSET, ! skipping any write-back candidates if SKIP_WB is true. HARD_FP_VALID_P ! is true if the hard frame pointer has been set up. */ static void ! aarch64_save_callee_saves (poly_int64 start_offset, unsigned start, unsigned limit, bool skip_wb, bool hard_fp_valid_p) { rtx_insn *insn; unsigned regno; unsigned regno2; --- 8064,8080 ---- } /* Emit code to save the callee-saved registers from register number START ! to LIMIT to the stack. The stack pointer is currently BYTES_BELOW_SP ! bytes above the bottom of the static frame. Skip any write-back ! candidates if SKIP_WB is true. HARD_FP_VALID_P is true if the hard ! frame pointer has been set up. */ static void ! aarch64_save_callee_saves (poly_int64 bytes_below_sp, unsigned start, unsigned limit, bool skip_wb, bool hard_fp_valid_p) { + aarch64_frame &frame = cfun->machine->frame; rtx_insn *insn; unsigned regno; unsigned regno2; *************** aarch64_save_callee_saves (poly_int64 st *** 8008,8015 **** bool frame_related_p = aarch64_emit_cfi_for_reg_p (regno); if (skip_wb ! && (regno == cfun->machine->frame.wb_candidate1 ! || regno == cfun->machine->frame.wb_candidate2)) continue; if (cfun->machine->reg_is_wrapped_separately[regno]) --- 8089,8096 ---- bool frame_related_p = aarch64_emit_cfi_for_reg_p (regno); if (skip_wb ! && (regno == frame.wb_candidate1 ! || regno == frame.wb_candidate2)) continue; if (cfun->machine->reg_is_wrapped_separately[regno]) *************** aarch64_save_callee_saves (poly_int64 st *** 8017,8023 **** machine_mode mode = aarch64_reg_save_mode (regno); reg = gen_rtx_REG (mode, regno); ! offset = start_offset + cfun->machine->frame.reg_offset[regno]; rtx base_rtx = stack_pointer_rtx; poly_int64 sp_offset = offset; --- 8098,8104 ---- machine_mode mode = aarch64_reg_save_mode (regno); reg = gen_rtx_REG (mode, regno); ! offset = frame.reg_offset[regno] - bytes_below_sp; rtx base_rtx = stack_pointer_rtx; poly_int64 sp_offset = offset; *************** aarch64_save_callee_saves (poly_int64 st *** 8028,8036 **** else if (GP_REGNUM_P (regno) && (!offset.is_constant (&const_offset) || const_offset >= 512)) { ! gcc_assert (known_eq (start_offset, 0)); ! poly_int64 fp_offset ! = cfun->machine->frame.below_hard_fp_saved_regs_size; if (hard_fp_valid_p) base_rtx = hard_frame_pointer_rtx; else --- 8109,8115 ---- else if (GP_REGNUM_P (regno) && (!offset.is_constant (&const_offset) || const_offset >= 512)) { ! poly_int64 fp_offset = frame.bytes_below_hard_fp - bytes_below_sp; if (hard_fp_valid_p) base_rtx = hard_frame_pointer_rtx; else *************** aarch64_save_callee_saves (poly_int64 st *** 8052,8059 **** && (regno2 = aarch64_next_callee_save (regno + 1, limit)) <= limit && !cfun->machine->reg_is_wrapped_separately[regno2] && known_eq (GET_MODE_SIZE (mode), ! cfun->machine->frame.reg_offset[regno2] ! - cfun->machine->frame.reg_offset[regno])) { rtx reg2 = gen_rtx_REG (mode, regno2); rtx mem2; --- 8131,8137 ---- && (regno2 = aarch64_next_callee_save (regno + 1, limit)) <= limit && !cfun->machine->reg_is_wrapped_separately[regno2] && known_eq (GET_MODE_SIZE (mode), ! frame.reg_offset[regno2] - frame.reg_offset[regno])) { rtx reg2 = gen_rtx_REG (mode, regno2); rtx mem2; *************** aarch64_save_callee_saves (poly_int64 st *** 8095,8108 **** } /* Emit code to restore the callee registers from register number START ! up to and including LIMIT. Restore from the stack offset START_OFFSET, ! skipping any write-back candidates if SKIP_WB is true. Write the ! appropriate REG_CFA_RESTORE notes into CFI_OPS. */ static void ! aarch64_restore_callee_saves (poly_int64 start_offset, unsigned start, unsigned limit, bool skip_wb, rtx *cfi_ops) { unsigned regno; unsigned regno2; poly_int64 offset; --- 8173,8188 ---- } /* Emit code to restore the callee registers from register number START ! up to and including LIMIT. The stack pointer is currently BYTES_BELOW_SP ! bytes above the bottom of the static frame. Skip any write-back ! candidates if SKIP_WB is true. Write the appropriate REG_CFA_RESTORE ! notes into CFI_OPS. */ static void ! aarch64_restore_callee_saves (poly_int64 bytes_below_sp, unsigned start, unsigned limit, bool skip_wb, rtx *cfi_ops) { + aarch64_frame &frame = cfun->machine->frame; unsigned regno; unsigned regno2; poly_int64 offset; *************** aarch64_restore_callee_saves (poly_int64 *** 8119,8131 **** rtx reg, mem; if (skip_wb ! && (regno == cfun->machine->frame.wb_candidate1 ! || regno == cfun->machine->frame.wb_candidate2)) continue; machine_mode mode = aarch64_reg_save_mode (regno); reg = gen_rtx_REG (mode, regno); ! offset = start_offset + cfun->machine->frame.reg_offset[regno]; rtx base_rtx = stack_pointer_rtx; if (mode == VNx2DImode && BYTES_BIG_ENDIAN) aarch64_adjust_sve_callee_save_base (mode, base_rtx, anchor_reg, --- 8199,8211 ---- rtx reg, mem; if (skip_wb ! && (regno == frame.wb_candidate1 ! || regno == frame.wb_candidate2)) continue; machine_mode mode = aarch64_reg_save_mode (regno); reg = gen_rtx_REG (mode, regno); ! offset = frame.reg_offset[regno] - bytes_below_sp; rtx base_rtx = stack_pointer_rtx; if (mode == VNx2DImode && BYTES_BIG_ENDIAN) aarch64_adjust_sve_callee_save_base (mode, base_rtx, anchor_reg, *************** aarch64_restore_callee_saves (poly_int64 *** 8136,8143 **** && (regno2 = aarch64_next_callee_save (regno + 1, limit)) <= limit && !cfun->machine->reg_is_wrapped_separately[regno2] && known_eq (GET_MODE_SIZE (mode), ! cfun->machine->frame.reg_offset[regno2] ! - cfun->machine->frame.reg_offset[regno])) { rtx reg2 = gen_rtx_REG (mode, regno2); rtx mem2; --- 8216,8222 ---- && (regno2 = aarch64_next_callee_save (regno + 1, limit)) <= limit && !cfun->machine->reg_is_wrapped_separately[regno2] && known_eq (GET_MODE_SIZE (mode), ! frame.reg_offset[regno2] - frame.reg_offset[regno])) { rtx reg2 = gen_rtx_REG (mode, regno2); rtx mem2; *************** offset_12bit_unsigned_scaled_p (machine_ *** 8242,8247 **** --- 8321,8327 ---- static sbitmap aarch64_get_separate_components (void) { + aarch64_frame &frame = cfun->machine->frame; sbitmap components = sbitmap_alloc (LAST_SAVED_REGNUM + 1); bitmap_clear (components); *************** aarch64_get_separate_components (void) *** 8258,8277 **** if (mode == VNx2DImode && BYTES_BIG_ENDIAN) continue; ! poly_int64 offset = cfun->machine->frame.reg_offset[regno]; ! ! /* If the register is saved in the first SVE save slot, we use ! it as a stack probe for -fstack-clash-protection. */ ! if (flag_stack_clash_protection ! && maybe_ne (cfun->machine->frame.below_hard_fp_saved_regs_size, 0) ! && known_eq (offset, 0)) ! continue; /* Get the offset relative to the register we'll use. */ if (frame_pointer_needed) ! offset -= cfun->machine->frame.below_hard_fp_saved_regs_size; ! else ! offset += crtl->outgoing_args_size; /* Check that we can access the stack slot of the register with one direct load with no adjustments needed. */ --- 8338,8348 ---- if (mode == VNx2DImode && BYTES_BIG_ENDIAN) continue; ! poly_int64 offset = frame.reg_offset[regno]; /* Get the offset relative to the register we'll use. */ if (frame_pointer_needed) ! offset -= frame.bytes_below_hard_fp; /* Check that we can access the stack slot of the register with one direct load with no adjustments needed. */ *************** aarch64_get_separate_components (void) *** 8288,8298 **** /* If the spare predicate register used by big-endian SVE code is call-preserved, it must be saved in the main prologue before any saves that use it. */ ! if (cfun->machine->frame.spare_pred_reg != INVALID_REGNUM) ! bitmap_clear_bit (components, cfun->machine->frame.spare_pred_reg); ! unsigned reg1 = cfun->machine->frame.wb_candidate1; ! unsigned reg2 = cfun->machine->frame.wb_candidate2; /* If registers have been chosen to be stored/restored with writeback don't interfere with them to avoid having to output explicit stack adjustment instructions. */ --- 8359,8369 ---- /* If the spare predicate register used by big-endian SVE code is call-preserved, it must be saved in the main prologue before any saves that use it. */ ! if (frame.spare_pred_reg != INVALID_REGNUM) ! bitmap_clear_bit (components, frame.spare_pred_reg); ! unsigned reg1 = frame.wb_candidate1; ! unsigned reg2 = frame.wb_candidate2; /* If registers have been chosen to be stored/restored with writeback don't interfere with them to avoid having to output explicit stack adjustment instructions. */ *************** aarch64_get_separate_components (void) *** 8303,8308 **** --- 8374,8386 ---- bitmap_clear_bit (components, LR_REGNUM); bitmap_clear_bit (components, SP_REGNUM); + if (flag_stack_clash_protection) + { + if (frame.sve_save_and_probe != INVALID_REGNUM) + bitmap_clear_bit (components, frame.sve_save_and_probe); + if (frame.hard_fp_save_and_probe != INVALID_REGNUM) + bitmap_clear_bit (components, frame.hard_fp_save_and_probe); + } return components; } *************** aarch64_get_next_set_bit (sbitmap bmp, u *** 8401,8406 **** --- 8479,8485 ---- static void aarch64_process_components (sbitmap components, bool prologue_p) { + aarch64_frame &frame = cfun->machine->frame; rtx ptr_reg = gen_rtx_REG (Pmode, frame_pointer_needed ? HARD_FRAME_POINTER_REGNUM : STACK_POINTER_REGNUM); *************** aarch64_process_components (sbitmap comp *** 8415,8425 **** machine_mode mode = aarch64_reg_save_mode (regno); rtx reg = gen_rtx_REG (mode, regno); ! poly_int64 offset = cfun->machine->frame.reg_offset[regno]; if (frame_pointer_needed) ! offset -= cfun->machine->frame.below_hard_fp_saved_regs_size; ! else ! offset += crtl->outgoing_args_size; rtx addr = plus_constant (Pmode, ptr_reg, offset); rtx mem = gen_frame_mem (mode, addr); --- 8494,8502 ---- machine_mode mode = aarch64_reg_save_mode (regno); rtx reg = gen_rtx_REG (mode, regno); ! poly_int64 offset = frame.reg_offset[regno]; if (frame_pointer_needed) ! offset -= frame.bytes_below_hard_fp; rtx addr = plus_constant (Pmode, ptr_reg, offset); rtx mem = gen_frame_mem (mode, addr); *************** aarch64_process_components (sbitmap comp *** 8442,8455 **** break; } ! poly_int64 offset2 = cfun->machine->frame.reg_offset[regno2]; /* The next register is not of the same class or its offset is not mergeable with the current one into a pair. */ if (aarch64_sve_mode_p (mode) || !satisfies_constraint_Ump (mem) || GP_REGNUM_P (regno) != GP_REGNUM_P (regno2) || (crtl->abi->id () == ARM_PCS_SIMD && FP_REGNUM_P (regno)) ! || maybe_ne ((offset2 - cfun->machine->frame.reg_offset[regno]), GET_MODE_SIZE (mode))) { insn = emit_insn (set); --- 8519,8532 ---- break; } ! poly_int64 offset2 = frame.reg_offset[regno2]; /* The next register is not of the same class or its offset is not mergeable with the current one into a pair. */ if (aarch64_sve_mode_p (mode) || !satisfies_constraint_Ump (mem) || GP_REGNUM_P (regno) != GP_REGNUM_P (regno2) || (crtl->abi->id () == ARM_PCS_SIMD && FP_REGNUM_P (regno)) ! || maybe_ne ((offset2 - frame.reg_offset[regno]), GET_MODE_SIZE (mode))) { insn = emit_insn (set); *************** aarch64_process_components (sbitmap comp *** 8471,8479 **** /* REGNO2 can be saved/restored in a pair with REGNO. */ rtx reg2 = gen_rtx_REG (mode, regno2); if (frame_pointer_needed) ! offset2 -= cfun->machine->frame.below_hard_fp_saved_regs_size; ! else ! offset2 += crtl->outgoing_args_size; rtx addr2 = plus_constant (Pmode, ptr_reg, offset2); rtx mem2 = gen_frame_mem (mode, addr2); rtx set2 = prologue_p ? gen_rtx_SET (mem2, reg2) --- 8548,8554 ---- /* REGNO2 can be saved/restored in a pair with REGNO. */ rtx reg2 = gen_rtx_REG (mode, regno2); if (frame_pointer_needed) ! offset2 -= frame.bytes_below_hard_fp; rtx addr2 = plus_constant (Pmode, ptr_reg, offset2); rtx mem2 = gen_frame_mem (mode, addr2); rtx set2 = prologue_p ? gen_rtx_SET (mem2, reg2) *************** aarch64_stack_clash_protection_alloca_pr *** 8547,8556 **** registers. If POLY_SIZE is not large enough to require a probe this function will only adjust the stack. When allocating the stack space FRAME_RELATED_P is then used to indicate if the allocation is frame related. ! FINAL_ADJUSTMENT_P indicates whether we are allocating the outgoing ! arguments. If we are then we ensure that any allocation larger than the ABI ! defined buffer needs a probe so that the invariant of having a 1KB buffer is ! maintained. We emit barriers after each stack adjustment to prevent optimizations from breaking the invariant that we never drop the stack more than a page. This --- 8622,8631 ---- registers. If POLY_SIZE is not large enough to require a probe this function will only adjust the stack. When allocating the stack space FRAME_RELATED_P is then used to indicate if the allocation is frame related. ! FINAL_ADJUSTMENT_P indicates whether we are allocating the area below ! the saved registers. If we are then we ensure that any allocation ! larger than the ABI defined buffer needs a probe so that the ! invariant of having a 1KB buffer is maintained. We emit barriers after each stack adjustment to prevent optimizations from breaking the invariant that we never drop the stack more than a page. This *************** aarch64_allocate_and_probe_stack_space ( *** 8566,8610 **** bool frame_related_p, bool final_adjustment_p) { HOST_WIDE_INT guard_size = 1 << param_stack_clash_protection_guard_size; HOST_WIDE_INT guard_used_by_caller = STACK_CLASH_CALLER_GUARD; HOST_WIDE_INT min_probe_threshold = (final_adjustment_p ! ? guard_used_by_caller : guard_size - guard_used_by_caller); ! /* When doing the final adjustment for the outgoing arguments, take into ! account any unprobed space there is above the current SP. There are ! two cases: ! ! - When saving SVE registers below the hard frame pointer, we force ! the lowest save to take place in the prologue before doing the final ! adjustment (i.e. we don't allow the save to be shrink-wrapped). ! This acts as a probe at SP, so there is no unprobed space. ! ! - When there are no SVE register saves, we use the store of the link ! register as a probe. We can't assume that LR was saved at position 0 ! though, so treat any space below it as unprobed. */ ! if (final_adjustment_p ! && known_eq (cfun->machine->frame.below_hard_fp_saved_regs_size, 0)) ! { ! poly_int64 lr_offset = cfun->machine->frame.reg_offset[LR_REGNUM]; ! if (known_ge (lr_offset, 0)) ! min_probe_threshold -= lr_offset.to_constant (); ! else ! gcc_assert (!flag_stack_clash_protection || known_eq (poly_size, 0)); ! } ! ! poly_int64 frame_size = cfun->machine->frame.frame_size; /* We should always have a positive probe threshold. */ gcc_assert (min_probe_threshold > 0); if (flag_stack_clash_protection && !final_adjustment_p) { ! poly_int64 initial_adjust = cfun->machine->frame.initial_adjust; ! poly_int64 sve_callee_adjust = cfun->machine->frame.sve_callee_adjust; ! poly_int64 final_adjust = cfun->machine->frame.final_adjust; if (known_eq (frame_size, 0)) { --- 8641,8666 ---- bool frame_related_p, bool final_adjustment_p) { + aarch64_frame &frame = cfun->machine->frame; HOST_WIDE_INT guard_size = 1 << param_stack_clash_protection_guard_size; HOST_WIDE_INT guard_used_by_caller = STACK_CLASH_CALLER_GUARD; + HOST_WIDE_INT byte_sp_alignment = STACK_BOUNDARY / BITS_PER_UNIT; + gcc_assert (multiple_p (poly_size, byte_sp_alignment)); HOST_WIDE_INT min_probe_threshold = (final_adjustment_p ! ? guard_used_by_caller + byte_sp_alignment : guard_size - guard_used_by_caller); ! poly_int64 frame_size = frame.frame_size; /* We should always have a positive probe threshold. */ gcc_assert (min_probe_threshold > 0); if (flag_stack_clash_protection && !final_adjustment_p) { ! poly_int64 initial_adjust = frame.initial_adjust; ! poly_int64 sve_callee_adjust = frame.sve_callee_adjust; ! poly_int64 final_adjust = frame.final_adjust; if (known_eq (frame_size, 0)) { *************** aarch64_allocate_and_probe_stack_space ( *** 8758,8764 **** /* Handle any residuals. Residuals of at least MIN_PROBE_THRESHOLD have to be probed. This maintains the requirement that each page is probed at least once. For initial probing we probe only if the allocation is ! more than GUARD_SIZE - buffer, and for the outgoing arguments we probe if the amount is larger than buffer. GUARD_SIZE - buffer + buffer == GUARD_SIZE. This works that for any allocation that is large enough to trigger a probe here, we'll have at least one, and if they're not large --- 8814,8820 ---- /* Handle any residuals. Residuals of at least MIN_PROBE_THRESHOLD have to be probed. This maintains the requirement that each page is probed at least once. For initial probing we probe only if the allocation is ! more than GUARD_SIZE - buffer, and below the saved registers we probe if the amount is larger than buffer. GUARD_SIZE - buffer + buffer == GUARD_SIZE. This works that for any allocation that is large enough to trigger a probe here, we'll have at least one, and if they're not large *************** aarch64_allocate_and_probe_stack_space ( *** 8768,8783 **** are still safe. */ if (residual) { ! HOST_WIDE_INT residual_probe_offset = guard_used_by_caller; /* If we're doing final adjustments, and we've done any full page allocations then any residual needs to be probed. */ if (final_adjustment_p && rounded_size != 0) min_probe_threshold = 0; - /* If doing a small final adjustment, we always probe at offset 0. - This is done to avoid issues when LR is not at position 0 or when - the final adjustment is smaller than the probing offset. */ - else if (final_adjustment_p && rounded_size == 0) - residual_probe_offset = 0; aarch64_sub_sp (temp1, temp2, residual, frame_related_p); if (residual >= min_probe_threshold) --- 8824,8835 ---- are still safe. */ if (residual) { ! gcc_assert (guard_used_by_caller + byte_sp_alignment <= size); ! /* If we're doing final adjustments, and we've done any full page allocations then any residual needs to be probed. */ if (final_adjustment_p && rounded_size != 0) min_probe_threshold = 0; aarch64_sub_sp (temp1, temp2, residual, frame_related_p); if (residual >= min_probe_threshold) *************** aarch64_allocate_and_probe_stack_space ( *** 8788,8795 **** HOST_WIDE_INT_PRINT_DEC " bytes, probing will be required." "\n", residual); ! emit_stack_probe (plus_constant (Pmode, stack_pointer_rtx, ! residual_probe_offset)); emit_insn (gen_blockage ()); } } --- 8840,8847 ---- HOST_WIDE_INT_PRINT_DEC " bytes, probing will be required." "\n", residual); ! emit_stack_probe (plus_constant (Pmode, stack_pointer_rtx, ! guard_used_by_caller)); emit_insn (gen_blockage ()); } } *************** aarch64_epilogue_uses (int regno) *** 8827,8846 **** | for register varargs | | | +-------------------------------+ ! | local variables | <-- frame_pointer_rtx | | +-------------------------------+ ! | padding | \ ! +-------------------------------+ | ! | callee-saved registers | | frame.saved_regs_size ! +-------------------------------+ | ! | LR' | | ! +-------------------------------+ | ! | FP' | | ! +-------------------------------+ |<- hard_frame_pointer_rtx (aligned) ! | SVE vector registers | | \ ! +-------------------------------+ | | below_hard_fp_saved_regs_size ! | SVE predicate registers | / / +-------------------------------+ | dynamic allocation | +-------------------------------+ --- 8879,8902 ---- | for register varargs | | | +-------------------------------+ ! | local variables (1) | <-- frame_pointer_rtx | | +-------------------------------+ ! | padding (1) | ! +-------------------------------+ ! | callee-saved registers | ! +-------------------------------+ ! | LR' | ! +-------------------------------+ ! | FP' | ! +-------------------------------+ <-- hard_frame_pointer_rtx (aligned) ! | SVE vector registers | ! +-------------------------------+ ! | SVE predicate registers | ! +-------------------------------+ ! | local variables (2) | ! +-------------------------------+ ! | padding (2) | +-------------------------------+ | dynamic allocation | +-------------------------------+ *************** aarch64_epilogue_uses (int regno) *** 8851,8856 **** --- 8907,8915 ---- +-------------------------------+ | | <-- stack_pointer_rtx (aligned) + The regions marked (1) and (2) are mutually exclusive. (2) is used + when aarch64_save_regs_above_locals_p is true. + Dynamic stack allocations via alloca() decrease stack_pointer_rtx but leave frame_pointer_rtx and hard_frame_pointer_rtx unchanged. *************** aarch64_epilogue_uses (int regno) *** 8865,8872 **** When probing is needed, we emit a probe at the start of the prologue and every PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE bytes thereafter. ! We have to track how much space has been allocated and the only stores ! to the stack we track as implicit probes are the FP/LR stores. For outgoing arguments we probe if the size is larger than 1KB, such that the ABI specified buffer is maintained for the next callee. --- 8924,8931 ---- When probing is needed, we emit a probe at the start of the prologue and every PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE bytes thereafter. ! We can also use register saves as probes. These are stored in ! sve_save_and_probe and hard_fp_save_and_probe. For outgoing arguments we probe if the size is larger than 1KB, such that the ABI specified buffer is maintained for the next callee. *************** aarch64_epilogue_uses (int regno) *** 8893,8909 **** void aarch64_expand_prologue (void) { ! poly_int64 frame_size = cfun->machine->frame.frame_size; ! poly_int64 initial_adjust = cfun->machine->frame.initial_adjust; ! HOST_WIDE_INT callee_adjust = cfun->machine->frame.callee_adjust; ! poly_int64 final_adjust = cfun->machine->frame.final_adjust; ! poly_int64 callee_offset = cfun->machine->frame.callee_offset; ! poly_int64 sve_callee_adjust = cfun->machine->frame.sve_callee_adjust; ! poly_int64 below_hard_fp_saved_regs_size ! = cfun->machine->frame.below_hard_fp_saved_regs_size; ! unsigned reg1 = cfun->machine->frame.wb_candidate1; ! unsigned reg2 = cfun->machine->frame.wb_candidate2; ! bool emit_frame_chain = cfun->machine->frame.emit_frame_chain; rtx_insn *insn; if (flag_stack_clash_protection && known_eq (callee_adjust, 0)) --- 8952,8966 ---- void aarch64_expand_prologue (void) { ! aarch64_frame &frame = cfun->machine->frame; ! poly_int64 frame_size = frame.frame_size; ! poly_int64 initial_adjust = frame.initial_adjust; ! HOST_WIDE_INT callee_adjust = frame.callee_adjust; ! poly_int64 final_adjust = frame.final_adjust; ! poly_int64 sve_callee_adjust = frame.sve_callee_adjust; ! unsigned reg1 = frame.wb_candidate1; ! unsigned reg2 = frame.wb_candidate2; ! bool emit_frame_chain = frame.emit_frame_chain; rtx_insn *insn; if (flag_stack_clash_protection && known_eq (callee_adjust, 0)) *************** aarch64_expand_prologue (void) *** 8967,8987 **** if (callee_adjust != 0) aarch64_push_regs (reg1, reg2, callee_adjust); ! /* The offset of the frame chain record (if any) from the current SP. */ ! poly_int64 chain_offset = (initial_adjust + callee_adjust ! - cfun->machine->frame.hard_fp_offset); ! gcc_assert (known_ge (chain_offset, 0)); ! ! /* The offset of the bottom of the save area from the current SP. */ ! poly_int64 saved_regs_offset = chain_offset - below_hard_fp_saved_regs_size; if (emit_frame_chain) { if (callee_adjust == 0) { reg1 = R29_REGNUM; reg2 = R30_REGNUM; ! aarch64_save_callee_saves (saved_regs_offset, reg1, reg2, false, false); } else --- 9024,9044 ---- if (callee_adjust != 0) aarch64_push_regs (reg1, reg2, callee_adjust); ! /* The offset of the current SP from the bottom of the static frame. */ ! poly_int64 bytes_below_sp = frame_size - initial_adjust - callee_adjust; if (emit_frame_chain) { + /* The offset of the frame chain record (if any) from the current SP. */ + poly_int64 chain_offset = (initial_adjust + callee_adjust + - frame.bytes_above_hard_fp); + gcc_assert (known_ge (chain_offset, 0)); + if (callee_adjust == 0) { reg1 = R29_REGNUM; reg2 = R30_REGNUM; ! aarch64_save_callee_saves (bytes_below_sp, reg1, reg2, false, false); } else *************** aarch64_expand_prologue (void) *** 9006,9013 **** implicit. */ if (!find_reg_note (insn, REG_CFA_ADJUST_CFA, NULL_RTX)) { ! rtx src = plus_constant (Pmode, stack_pointer_rtx, ! callee_offset); add_reg_note (insn, REG_CFA_ADJUST_CFA, gen_rtx_SET (hard_frame_pointer_rtx, src)); } --- 9063,9069 ---- implicit. */ if (!find_reg_note (insn, REG_CFA_ADJUST_CFA, NULL_RTX)) { ! rtx src = plus_constant (Pmode, stack_pointer_rtx, chain_offset); add_reg_note (insn, REG_CFA_ADJUST_CFA, gen_rtx_SET (hard_frame_pointer_rtx, src)); } *************** aarch64_expand_prologue (void) *** 9022,9028 **** emit_insn (gen_stack_tie (stack_pointer_rtx, hard_frame_pointer_rtx)); } ! aarch64_save_callee_saves (saved_regs_offset, R0_REGNUM, R30_REGNUM, callee_adjust != 0 || emit_frame_chain, emit_frame_chain); if (maybe_ne (sve_callee_adjust, 0)) --- 9078,9084 ---- emit_insn (gen_stack_tie (stack_pointer_rtx, hard_frame_pointer_rtx)); } ! aarch64_save_callee_saves (bytes_below_sp, R0_REGNUM, R30_REGNUM, callee_adjust != 0 || emit_frame_chain, emit_frame_chain); if (maybe_ne (sve_callee_adjust, 0)) *************** aarch64_expand_prologue (void) *** 9032,9049 **** aarch64_allocate_and_probe_stack_space (tmp1_rtx, tmp0_rtx, sve_callee_adjust, !frame_pointer_needed, false); ! saved_regs_offset += sve_callee_adjust; } ! aarch64_save_callee_saves (saved_regs_offset, P0_REGNUM, P15_REGNUM, false, emit_frame_chain); ! aarch64_save_callee_saves (saved_regs_offset, V0_REGNUM, V31_REGNUM, callee_adjust != 0 || emit_frame_chain, emit_frame_chain); /* We may need to probe the final adjustment if it is larger than the guard that is assumed by the called. */ aarch64_allocate_and_probe_stack_space (tmp1_rtx, tmp0_rtx, final_adjust, !frame_pointer_needed, true); } /* Return TRUE if we can use a simple_return insn. --- 9088,9108 ---- aarch64_allocate_and_probe_stack_space (tmp1_rtx, tmp0_rtx, sve_callee_adjust, !frame_pointer_needed, false); ! bytes_below_sp -= sve_callee_adjust; } ! aarch64_save_callee_saves (bytes_below_sp, P0_REGNUM, P15_REGNUM, false, emit_frame_chain); ! aarch64_save_callee_saves (bytes_below_sp, V0_REGNUM, V31_REGNUM, callee_adjust != 0 || emit_frame_chain, emit_frame_chain); /* We may need to probe the final adjustment if it is larger than the guard that is assumed by the called. */ + gcc_assert (known_eq (bytes_below_sp, final_adjust)); aarch64_allocate_and_probe_stack_space (tmp1_rtx, tmp0_rtx, final_adjust, !frame_pointer_needed, true); + if (emit_frame_chain && maybe_ne (final_adjust, 0)) + emit_insn (gen_stack_tie (stack_pointer_rtx, hard_frame_pointer_rtx)); } /* Return TRUE if we can use a simple_return insn. *************** aarch64_use_return_insn_p (void) *** 9072,9086 **** void aarch64_expand_epilogue (bool for_sibcall) { ! poly_int64 initial_adjust = cfun->machine->frame.initial_adjust; ! HOST_WIDE_INT callee_adjust = cfun->machine->frame.callee_adjust; ! poly_int64 final_adjust = cfun->machine->frame.final_adjust; ! poly_int64 callee_offset = cfun->machine->frame.callee_offset; ! poly_int64 sve_callee_adjust = cfun->machine->frame.sve_callee_adjust; ! poly_int64 below_hard_fp_saved_regs_size ! = cfun->machine->frame.below_hard_fp_saved_regs_size; ! unsigned reg1 = cfun->machine->frame.wb_candidate1; ! unsigned reg2 = cfun->machine->frame.wb_candidate2; rtx cfi_ops = NULL; rtx_insn *insn; /* A stack clash protection prologue may not have left EP0_REGNUM or --- 9131,9144 ---- void aarch64_expand_epilogue (bool for_sibcall) { ! aarch64_frame &frame = cfun->machine->frame; ! poly_int64 initial_adjust = frame.initial_adjust; ! HOST_WIDE_INT callee_adjust = frame.callee_adjust; ! poly_int64 final_adjust = frame.final_adjust; ! poly_int64 sve_callee_adjust = frame.sve_callee_adjust; ! poly_int64 bytes_below_hard_fp = frame.bytes_below_hard_fp; ! unsigned reg1 = frame.wb_candidate1; ! unsigned reg2 = frame.wb_candidate2; rtx cfi_ops = NULL; rtx_insn *insn; /* A stack clash protection prologue may not have left EP0_REGNUM or *************** aarch64_expand_epilogue (bool for_sibcal *** 9113,9119 **** /* We need to add memory barrier to prevent read from deallocated stack. */ bool need_barrier_p = maybe_ne (get_frame_size () ! + cfun->machine->frame.saved_varargs_size, 0); /* Emit a barrier to prevent loads from a deallocated stack. */ if (maybe_gt (final_adjust, crtl->outgoing_args_size) --- 9171,9177 ---- /* We need to add memory barrier to prevent read from deallocated stack. */ bool need_barrier_p = maybe_ne (get_frame_size () ! + frame.saved_varargs_size, 0); /* Emit a barrier to prevent loads from a deallocated stack. */ if (maybe_gt (final_adjust, crtl->outgoing_args_size) *************** aarch64_expand_epilogue (bool for_sibcal *** 9134,9140 **** is restored on the instruction doing the writeback. */ aarch64_add_offset (Pmode, stack_pointer_rtx, hard_frame_pointer_rtx, ! -callee_offset - below_hard_fp_saved_regs_size, tmp1_rtx, tmp0_rtx, callee_adjust == 0); else /* The case where we need to re-use the register here is very rare, so --- 9192,9198 ---- is restored on the instruction doing the writeback. */ aarch64_add_offset (Pmode, stack_pointer_rtx, hard_frame_pointer_rtx, ! -bytes_below_hard_fp + final_adjust, tmp1_rtx, tmp0_rtx, callee_adjust == 0); else /* The case where we need to re-use the register here is very rare, so *************** aarch64_expand_epilogue (bool for_sibcal *** 9144,9156 **** /* Restore the vector registers before the predicate registers, so that we can use P4 as a temporary for big-endian SVE frames. */ ! aarch64_restore_callee_saves (callee_offset, V0_REGNUM, V31_REGNUM, callee_adjust != 0, &cfi_ops); ! aarch64_restore_callee_saves (callee_offset, P0_REGNUM, P15_REGNUM, false, &cfi_ops); if (maybe_ne (sve_callee_adjust, 0)) aarch64_add_sp (NULL_RTX, NULL_RTX, sve_callee_adjust, true); ! aarch64_restore_callee_saves (callee_offset - sve_callee_adjust, R0_REGNUM, R30_REGNUM, callee_adjust != 0, &cfi_ops); --- 9202,9214 ---- /* Restore the vector registers before the predicate registers, so that we can use P4 as a temporary for big-endian SVE frames. */ ! aarch64_restore_callee_saves (final_adjust, V0_REGNUM, V31_REGNUM, callee_adjust != 0, &cfi_ops); ! aarch64_restore_callee_saves (final_adjust, P0_REGNUM, P15_REGNUM, false, &cfi_ops); if (maybe_ne (sve_callee_adjust, 0)) aarch64_add_sp (NULL_RTX, NULL_RTX, sve_callee_adjust, true); ! aarch64_restore_callee_saves (final_adjust + sve_callee_adjust, R0_REGNUM, R30_REGNUM, callee_adjust != 0, &cfi_ops); *************** aarch64_can_eliminate (const int from AT *** 11744,11767 **** poly_int64 aarch64_initial_elimination_offset (unsigned from, unsigned to) { if (to == HARD_FRAME_POINTER_REGNUM) { if (from == ARG_POINTER_REGNUM) ! return cfun->machine->frame.hard_fp_offset; if (from == FRAME_POINTER_REGNUM) ! return cfun->machine->frame.hard_fp_offset ! - cfun->machine->frame.locals_offset; } if (to == STACK_POINTER_REGNUM) { if (from == FRAME_POINTER_REGNUM) ! return cfun->machine->frame.frame_size ! - cfun->machine->frame.locals_offset; } ! return cfun->machine->frame.frame_size; } --- 11802,11825 ---- poly_int64 aarch64_initial_elimination_offset (unsigned from, unsigned to) { + aarch64_frame &frame = cfun->machine->frame; + if (to == HARD_FRAME_POINTER_REGNUM) { if (from == ARG_POINTER_REGNUM) ! return frame.bytes_above_hard_fp; if (from == FRAME_POINTER_REGNUM) ! return frame.bytes_above_hard_fp - frame.bytes_above_locals; } if (to == STACK_POINTER_REGNUM) { if (from == FRAME_POINTER_REGNUM) ! return frame.frame_size - frame.bytes_above_locals; } ! return frame.frame_size; } *************** aarch64_expand_compare_and_swap (rtx ope *** 21821,21826 **** --- 21879,21886 ---- rval = copy_to_mode_reg (r_mode, oldval); else emit_move_insn (rval, gen_lowpart (r_mode, oldval)); + if (mode == TImode) + newval = force_reg (mode, newval); emit_insn (gen_aarch64_compare_and_swap_lse (mode, rval, mem, newval, mod_s)); *************** aarch64_simd_clone_compute_vecsize_and_s *** 25498,25504 **** tree base_type, int num) { tree t, ret_type; ! unsigned int elt_bits, count; unsigned HOST_WIDE_INT const_simdlen; poly_uint64 vec_bits; --- 25558,25564 ---- tree base_type, int num) { tree t, ret_type; ! unsigned int elt_bits, count = 0; unsigned HOST_WIDE_INT const_simdlen; poly_uint64 vec_bits; *************** aarch64_simd_clone_compute_vecsize_and_s *** 25566,25576 **** elt_bits = GET_MODE_BITSIZE (SCALAR_TYPE_MODE (base_type)); if (known_eq (clonei->simdlen, 0U)) { ! count = 2; ! vec_bits = (num == 0 ? 64 : 128); clonei->simdlen = exact_div (vec_bits, elt_bits); } ! else { count = 1; vec_bits = clonei->simdlen * elt_bits; --- 25626,25645 ---- elt_bits = GET_MODE_BITSIZE (SCALAR_TYPE_MODE (base_type)); if (known_eq (clonei->simdlen, 0U)) { ! /* We don't support simdlen == 1. */ ! if (known_eq (elt_bits, 64)) ! { ! count = 1; ! vec_bits = 128; ! } ! else ! { ! count = 2; ! vec_bits = (num == 0 ? 64 : 128); ! } clonei->simdlen = exact_div (vec_bits, elt_bits); } ! else if (maybe_ne (clonei->simdlen, 1U)) { count = 1; vec_bits = clonei->simdlen * elt_bits; *************** aarch64_simd_clone_compute_vecsize_and_s *** 25585,25590 **** --- 25654,25660 ---- return 0; } } + clonei->vecsize_int = vec_bits; clonei->vecsize_float = vec_bits; return count; diff -Nrcpad gcc-11.4.0/gcc/config/aarch64/aarch64.h gcc-11.5.0/gcc/config/aarch64/aarch64.h *** gcc-11.4.0/gcc/config/aarch64/aarch64.h Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/aarch64/aarch64.h Fri Jul 19 05:52:43 2024 *************** extern enum aarch64_processor aarch64_tu *** 826,831 **** --- 826,834 ---- #ifdef HAVE_POLY_INT_H struct GTY (()) aarch64_frame { + /* The offset from the bottom of the static frame (the bottom of the + outgoing arguments) of each register save slot, or -2 if no save is + needed. */ poly_int64 reg_offset[LAST_SAVED_REGNUM + 1]; /* The number of extra stack bytes taken up by register varargs. *************** struct GTY (()) aarch64_frame *** 834,858 **** STACK_BOUNDARY. */ HOST_WIDE_INT saved_varargs_size; ! /* The size of the callee-save registers with a slot in REG_OFFSET. */ ! poly_int64 saved_regs_size; ! /* The size of the callee-save registers with a slot in REG_OFFSET that ! are saved below the hard frame pointer. */ ! poly_int64 below_hard_fp_saved_regs_size; ! /* Offset from the base of the frame (incomming SP) to the ! top of the locals area. This value is always a multiple of STACK_BOUNDARY. */ ! poly_int64 locals_offset; ! /* Offset from the base of the frame (incomming SP) to the ! hard_frame_pointer. This value is always a multiple of STACK_BOUNDARY. */ ! poly_int64 hard_fp_offset; ! /* The size of the frame. This value is the offset from base of the ! frame (incomming SP) to the stack_pointer. This value is always a multiple of STACK_BOUNDARY. */ poly_int64 frame_size; --- 837,864 ---- STACK_BOUNDARY. */ HOST_WIDE_INT saved_varargs_size; ! /* The number of bytes between the bottom of the static frame (the bottom ! of the outgoing arguments) and the bottom of the register save area. ! This value is always a multiple of STACK_BOUNDARY. */ ! poly_int64 bytes_below_saved_regs; ! /* The number of bytes between the bottom of the static frame (the bottom ! of the outgoing arguments) and the hard frame pointer. This value is ! always a multiple of STACK_BOUNDARY. */ ! poly_int64 bytes_below_hard_fp; ! /* The number of bytes between the top of the locals area and the top ! of the frame (the incomming SP). This value is always a multiple of STACK_BOUNDARY. */ ! poly_int64 bytes_above_locals; ! /* The number of bytes between the hard_frame_pointer and the top of ! the frame (the incomming SP). This value is always a multiple of STACK_BOUNDARY. */ ! poly_int64 bytes_above_hard_fp; ! /* The size of the frame, i.e. the number of bytes between the bottom ! of the outgoing arguments and the incoming SP. This value is always a multiple of STACK_BOUNDARY. */ poly_int64 frame_size; *************** struct GTY (()) aarch64_frame *** 863,872 **** It is zero when no push is used. */ HOST_WIDE_INT callee_adjust; - /* The offset from SP to the callee-save registers after initial_adjust. - It may be non-zero if no push is used (ie. callee_adjust == 0). */ - poly_int64 callee_offset; - /* The size of the stack adjustment before saving or after restoring SVE registers. */ poly_int64 sve_callee_adjust; --- 869,874 ---- *************** struct GTY (()) aarch64_frame *** 902,907 **** --- 904,917 ---- This is the register they should use. */ unsigned spare_pred_reg; + /* An SVE register that is saved below the hard frame pointer and that acts + as a probe for later allocations, or INVALID_REGNUM if none. */ + unsigned sve_save_and_probe; + + /* A register that is saved at the hard frame pointer and that acts + as a probe for later allocations, or INVALID_REGNUM if none. */ + unsigned hard_fp_save_and_probe; + bool laid_out; }; diff -Nrcpad gcc-11.4.0/gcc/config/aarch64/aarch64.md gcc-11.5.0/gcc/config/aarch64/aarch64.md *** gcc-11.4.0/gcc/config/aarch64/aarch64.md Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/aarch64/aarch64.md Fri Jul 19 05:52:43 2024 *************** *** 1737,1753 **** [(set_attr "type" "neon_load1_2reg")] ) ! (define_insn "loadwb_pair_" [(parallel [(set (match_operand:P 0 "register_operand" "=k") ! (plus:P (match_operand:P 1 "register_operand" "0") ! (match_operand:P 4 "aarch64_mem_pair_offset" "n"))) ! (set (match_operand:TX 2 "register_operand" "=w") ! (mem:TX (match_dup 1))) ! (set (match_operand:TX 3 "register_operand" "=w") ! (mem:TX (plus:P (match_dup 1) (match_operand:P 5 "const_int_operand" "n"))))])] ! "TARGET_SIMD && INTVAL (operands[5]) == GET_MODE_SIZE (mode)" "ldp\\t%q2, %q3, [%1], %4" [(set_attr "type" "neon_ldp_q")] ) --- 1737,1754 ---- [(set_attr "type" "neon_load1_2reg")] ) ! (define_insn "loadwb_pair_" [(parallel [(set (match_operand:P 0 "register_operand" "=k") ! (plus:P (match_operand:P 1 "register_operand" "0") ! (match_operand:P 4 "aarch64_mem_pair_offset" "n"))) ! (set (match_operand:TX_V16QI 2 "register_operand" "=w") ! (mem:TX_V16QI (match_dup 1))) ! (set (match_operand:TX_V16QI 3 "register_operand" "=w") ! (mem:TX_V16QI (plus:P (match_dup 1) (match_operand:P 5 "const_int_operand" "n"))))])] ! "TARGET_SIMD ! && known_eq (INTVAL (operands[5]), GET_MODE_SIZE (mode))" "ldp\\t%q2, %q3, [%1], %4" [(set_attr "type" "neon_ldp_q")] ) *************** *** 1786,1805 **** [(set_attr "type" "neon_store1_2reg")] ) ! (define_insn "storewb_pair_" [(parallel [(set (match_operand:P 0 "register_operand" "=&k") ! (plus:P (match_operand:P 1 "register_operand" "0") ! (match_operand:P 4 "aarch64_mem_pair_offset" "n"))) ! (set (mem:TX (plus:P (match_dup 0) (match_dup 4))) ! (match_operand:TX 2 "register_operand" "w")) ! (set (mem:TX (plus:P (match_dup 0) (match_operand:P 5 "const_int_operand" "n"))) ! (match_operand:TX 3 "register_operand" "w"))])] "TARGET_SIMD ! && INTVAL (operands[5]) ! == INTVAL (operands[4]) + GET_MODE_SIZE (mode)" "stp\\t%q2, %q3, [%0, %4]!" [(set_attr "type" "neon_stp_q")] ) --- 1787,1806 ---- [(set_attr "type" "neon_store1_2reg")] ) ! (define_insn "storewb_pair_" [(parallel [(set (match_operand:P 0 "register_operand" "=&k") ! (plus:P (match_operand:P 1 "register_operand" "0") ! (match_operand:P 4 "aarch64_mem_pair_offset" "n"))) ! (set (mem:TX_V16QI (plus:P (match_dup 0) (match_dup 4))) ! (match_operand:TX_V16QI 2 "register_operand" "w")) ! (set (mem:TX_V16QI (plus:P (match_dup 0) (match_operand:P 5 "const_int_operand" "n"))) ! (match_operand:TX_V16QI 3 "register_operand" "w"))])] "TARGET_SIMD ! && known_eq (INTVAL (operands[5]), ! INTVAL (operands[4]) + GET_MODE_SIZE (mode))" "stp\\t%q2, %q3, [%0, %4]!" [(set_attr "type" "neon_stp_q")] ) diff -Nrcpad gcc-11.4.0/gcc/config/aarch64/arm_neon.h gcc-11.5.0/gcc/config/aarch64/arm_neon.h *** gcc-11.4.0/gcc/config/aarch64/arm_neon.h Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/aarch64/arm_neon.h Fri Jul 19 05:52:43 2024 *************** __extension__ extern __inline int8x8x4_t *** 16498,16507 **** __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vld1_s8_x4 (const int8_t *__a) { ! union { int8x8x4_t __i; __builtin_aarch64_simd_xi __o; } __au; ! __au.__o ! = __builtin_aarch64_ld1x4v8qi ((const __builtin_aarch64_simd_qi *) __a); ! return __au.__i; } __extension__ extern __inline int8x16x4_t --- 16498,16511 ---- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vld1_s8_x4 (const int8_t *__a) { ! int8x8x4_t ret; ! __builtin_aarch64_simd_xi __o; ! __o = __builtin_aarch64_ld1x4v8qi ((const __builtin_aarch64_simd_qi *) __a); ! ret.val[0] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0); ! ret.val[1] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1); ! ret.val[2] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2); ! ret.val[3] = (int8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3); ! return ret; } __extension__ extern __inline int8x16x4_t *************** __extension__ extern __inline int16x4x4_ *** 16518,16527 **** __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vld1_s16_x4 (const int16_t *__a) { ! union { int16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __au; ! __au.__o ! = __builtin_aarch64_ld1x4v4hi ((const __builtin_aarch64_simd_hi *) __a); ! return __au.__i; } __extension__ extern __inline int16x8x4_t --- 16522,16535 ---- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vld1_s16_x4 (const int16_t *__a) { ! int16x4x4_t ret; ! __builtin_aarch64_simd_xi __o; ! __o = __builtin_aarch64_ld1x4v4hi ((const __builtin_aarch64_simd_hi *) __a); ! ret.val[0] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0); ! ret.val[1] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1); ! ret.val[2] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2); ! ret.val[3] = (int16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3); ! return ret; } __extension__ extern __inline int16x8x4_t *************** __extension__ extern __inline int32x2x4_ *** 16538,16547 **** __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vld1_s32_x4 (const int32_t *__a) { ! union { int32x2x4_t __i; __builtin_aarch64_simd_xi __o; } __au; ! __au.__o ! = __builtin_aarch64_ld1x4v2si ((const __builtin_aarch64_simd_si *) __a); ! return __au.__i; } __extension__ extern __inline int32x4x4_t --- 16546,16559 ---- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vld1_s32_x4 (const int32_t *__a) { ! int32x2x4_t ret; ! __builtin_aarch64_simd_xi __o; ! __o = __builtin_aarch64_ld1x4v2si ((const __builtin_aarch64_simd_si *) __a); ! ret.val[0] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0); ! ret.val[1] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1); ! ret.val[2] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2); ! ret.val[3] = (int32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3); ! return ret; } __extension__ extern __inline int32x4x4_t *************** __extension__ extern __inline uint8x8x4_ *** 16558,16567 **** __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vld1_u8_x4 (const uint8_t *__a) { ! union { uint8x8x4_t __i; __builtin_aarch64_simd_xi __o; } __au; ! __au.__o ! = __builtin_aarch64_ld1x4v8qi ((const __builtin_aarch64_simd_qi *) __a); ! return __au.__i; } __extension__ extern __inline uint8x16x4_t --- 16570,16583 ---- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vld1_u8_x4 (const uint8_t *__a) { ! uint8x8x4_t ret; ! __builtin_aarch64_simd_xi __o; ! __o = __builtin_aarch64_ld1x4v8qi ((const __builtin_aarch64_simd_qi *) __a); ! ret.val[0] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0); ! ret.val[1] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1); ! ret.val[2] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2); ! ret.val[3] = (uint8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3); ! return ret; } __extension__ extern __inline uint8x16x4_t *************** __extension__ extern __inline uint16x4x4 *** 16578,16587 **** __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vld1_u16_x4 (const uint16_t *__a) { ! union { uint16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __au; ! __au.__o ! = __builtin_aarch64_ld1x4v4hi ((const __builtin_aarch64_simd_hi *) __a); ! return __au.__i; } __extension__ extern __inline uint16x8x4_t --- 16594,16607 ---- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vld1_u16_x4 (const uint16_t *__a) { ! uint16x4x4_t ret; ! __builtin_aarch64_simd_xi __o; ! __o = __builtin_aarch64_ld1x4v4hi ((const __builtin_aarch64_simd_hi *) __a); ! ret.val[0] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0); ! ret.val[1] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1); ! ret.val[2] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2); ! ret.val[3] = (uint16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3); ! return ret; } __extension__ extern __inline uint16x8x4_t *************** __extension__ extern __inline uint32x2x4 *** 16598,16607 **** __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vld1_u32_x4 (const uint32_t *__a) { ! union { uint32x2x4_t __i; __builtin_aarch64_simd_xi __o; } __au; ! __au.__o ! = __builtin_aarch64_ld1x4v2si ((const __builtin_aarch64_simd_si *) __a); ! return __au.__i; } __extension__ extern __inline uint32x4x4_t --- 16618,16631 ---- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vld1_u32_x4 (const uint32_t *__a) { ! uint32x2x4_t ret; ! __builtin_aarch64_simd_xi __o; ! __o = __builtin_aarch64_ld1x4v2si ((const __builtin_aarch64_simd_si *) __a); ! ret.val[0] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 0); ! ret.val[1] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 1); ! ret.val[2] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 2); ! ret.val[3] = (uint32x2_t) __builtin_aarch64_get_dregxiv2si (__o, 3); ! return ret; } __extension__ extern __inline uint32x4x4_t *************** __extension__ extern __inline float16x4x *** 16618,16627 **** __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vld1_f16_x4 (const float16_t *__a) { ! union { float16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __au; ! __au.__o ! = __builtin_aarch64_ld1x4v4hf ((const __builtin_aarch64_simd_hf *) __a); ! return __au.__i; } __extension__ extern __inline float16x8x4_t --- 16642,16655 ---- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vld1_f16_x4 (const float16_t *__a) { ! float16x4x4_t ret; ! __builtin_aarch64_simd_xi __o; ! __o = __builtin_aarch64_ld1x4v4hf (__a); ! ret.val[0] = __builtin_aarch64_get_dregxiv4hf (__o, 0); ! ret.val[1] = __builtin_aarch64_get_dregxiv4hf (__o, 1); ! ret.val[2] = __builtin_aarch64_get_dregxiv4hf (__o, 2); ! ret.val[3] = __builtin_aarch64_get_dregxiv4hf (__o, 3); ! return ret; } __extension__ extern __inline float16x8x4_t *************** __extension__ extern __inline float32x2x *** 16638,16647 **** __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vld1_f32_x4 (const float32_t *__a) { ! union { float32x2x4_t __i; __builtin_aarch64_simd_xi __o; } __au; ! __au.__o ! = __builtin_aarch64_ld1x4v2sf ((const __builtin_aarch64_simd_sf *) __a); ! return __au.__i; } __extension__ extern __inline float32x4x4_t --- 16666,16679 ---- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vld1_f32_x4 (const float32_t *__a) { ! float32x2x4_t ret; ! __builtin_aarch64_simd_xi __o; ! __o = __builtin_aarch64_ld1x4v2sf ((const __builtin_aarch64_simd_sf *) __a); ! ret.val[0] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 0); ! ret.val[1] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 1); ! ret.val[2] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 2); ! ret.val[3] = (float32x2_t) __builtin_aarch64_get_dregxiv2sf (__o, 3); ! return ret; } __extension__ extern __inline float32x4x4_t *************** __extension__ extern __inline poly8x8x4_ *** 16658,16667 **** __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vld1_p8_x4 (const poly8_t *__a) { ! union { poly8x8x4_t __i; __builtin_aarch64_simd_xi __o; } __au; ! __au.__o ! = __builtin_aarch64_ld1x4v8qi ((const __builtin_aarch64_simd_qi *) __a); ! return __au.__i; } __extension__ extern __inline poly8x16x4_t --- 16690,16703 ---- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vld1_p8_x4 (const poly8_t *__a) { ! poly8x8x4_t ret; ! __builtin_aarch64_simd_xi __o; ! __o = __builtin_aarch64_ld1x4v8qi ((const __builtin_aarch64_simd_qi *) __a); ! ret.val[0] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 0); ! ret.val[1] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 1); ! ret.val[2] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 2); ! ret.val[3] = (poly8x8_t) __builtin_aarch64_get_dregxiv8qi (__o, 3); ! return ret; } __extension__ extern __inline poly8x16x4_t *************** __extension__ extern __inline poly16x4x4 *** 16678,16687 **** __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vld1_p16_x4 (const poly16_t *__a) { ! union { poly16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __au; ! __au.__o ! = __builtin_aarch64_ld1x4v4hi ((const __builtin_aarch64_simd_hi *) __a); ! return __au.__i; } __extension__ extern __inline poly16x8x4_t --- 16714,16727 ---- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vld1_p16_x4 (const poly16_t *__a) { ! poly16x4x4_t ret; ! __builtin_aarch64_simd_xi __o; ! __o = __builtin_aarch64_ld1x4v4hi ((const __builtin_aarch64_simd_hi *) __a); ! ret.val[0] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 0); ! ret.val[1] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 1); ! ret.val[2] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 2); ! ret.val[3] = (poly16x4_t) __builtin_aarch64_get_dregxiv4hi (__o, 3); ! return ret; } __extension__ extern __inline poly16x8x4_t *************** __extension__ extern __inline int64x1x4_ *** 16698,16727 **** __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vld1_s64_x4 (const int64_t *__a) { ! union { int64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __au; ! __au.__o ! = __builtin_aarch64_ld1x4di ((const __builtin_aarch64_simd_di *) __a); ! return __au.__i; } __extension__ extern __inline uint64x1x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vld1_u64_x4 (const uint64_t *__a) { ! union { uint64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __au; ! __au.__o ! = __builtin_aarch64_ld1x4di ((const __builtin_aarch64_simd_di *) __a); ! return __au.__i; } __extension__ extern __inline poly64x1x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vld1_p64_x4 (const poly64_t *__a) { ! union { poly64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __au; ! __au.__o ! = __builtin_aarch64_ld1x4di ((const __builtin_aarch64_simd_di *) __a); ! return __au.__i; } __extension__ extern __inline int64x2x4_t --- 16738,16779 ---- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vld1_s64_x4 (const int64_t *__a) { ! int64x1x4_t ret; ! __builtin_aarch64_simd_xi __o; ! __o = __builtin_aarch64_ld1x4di ((const __builtin_aarch64_simd_di *) __a); ! ret.val[0] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 0); ! ret.val[1] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 1); ! ret.val[2] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 2); ! ret.val[3] = (int64x1_t) __builtin_aarch64_get_dregxidi (__o, 3); ! return ret; } __extension__ extern __inline uint64x1x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vld1_u64_x4 (const uint64_t *__a) { ! uint64x1x4_t ret; ! __builtin_aarch64_simd_xi __o; ! __o = __builtin_aarch64_ld1x4di ((const __builtin_aarch64_simd_di *) __a); ! ret.val[0] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 0); ! ret.val[1] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 1); ! ret.val[2] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 2); ! ret.val[3] = (uint64x1_t) __builtin_aarch64_get_dregxidi (__o, 3); ! return ret; } __extension__ extern __inline poly64x1x4_t __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vld1_p64_x4 (const poly64_t *__a) { ! poly64x1x4_t ret; ! __builtin_aarch64_simd_xi __o; ! __o = __builtin_aarch64_ld1x4di ((const __builtin_aarch64_simd_di *) __a); ! ret.val[0] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 0); ! ret.val[1] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 1); ! ret.val[2] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 2); ! ret.val[3] = (poly64x1_t) __builtin_aarch64_get_dregxidi_pss (__o, 3); ! return ret; } __extension__ extern __inline int64x2x4_t *************** __extension__ extern __inline float64x1x *** 16758,16767 **** __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vld1_f64_x4 (const float64_t *__a) { ! union { float64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __au; ! __au.__o ! = __builtin_aarch64_ld1x4df ((const __builtin_aarch64_simd_df *) __a); ! return __au.__i; } __extension__ extern __inline float64x2x4_t --- 16810,16823 ---- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vld1_f64_x4 (const float64_t *__a) { ! float64x1x4_t ret; ! __builtin_aarch64_simd_xi __o; ! __o = __builtin_aarch64_ld1x4df ((const __builtin_aarch64_simd_df *) __a); ! ret.val[0] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 0)}; ! ret.val[1] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 1)}; ! ret.val[2] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 2)}; ! ret.val[3] = (float64x1_t) {__builtin_aarch64_get_dregxidf (__o, 3)}; ! return ret; } __extension__ extern __inline float64x2x4_t *************** vst1q_p64_x3 (poly64_t * __a, poly64x2x3 *** 27427,27651 **** __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1_s8_x4 (int8_t * __a, int8x8x4_t val) { ! union { int8x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val }; ! __builtin_aarch64_st1x4v8qi ((__builtin_aarch64_simd_qi *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1q_s8_x4 (int8_t * __a, int8x16x4_t val) { ! union { int8x16x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val }; __builtin_aarch64_st1x4v16qi ((__builtin_aarch64_simd_qi *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1_s16_x4 (int16_t * __a, int16x4x4_t val) { ! union { int16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val }; ! __builtin_aarch64_st1x4v4hi ((__builtin_aarch64_simd_hi *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1q_s16_x4 (int16_t * __a, int16x8x4_t val) { ! union { int16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val }; __builtin_aarch64_st1x4v8hi ((__builtin_aarch64_simd_hi *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1_s32_x4 (int32_t * __a, int32x2x4_t val) { ! union { int32x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val }; ! __builtin_aarch64_st1x4v2si ((__builtin_aarch64_simd_si *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1q_s32_x4 (int32_t * __a, int32x4x4_t val) { ! union { int32x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val }; __builtin_aarch64_st1x4v4si ((__builtin_aarch64_simd_si *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1_u8_x4 (uint8_t * __a, uint8x8x4_t val) { ! union { uint8x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val }; ! __builtin_aarch64_st1x4v8qi ((__builtin_aarch64_simd_qi *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1q_u8_x4 (uint8_t * __a, uint8x16x4_t val) { ! union { uint8x16x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val }; __builtin_aarch64_st1x4v16qi ((__builtin_aarch64_simd_qi *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1_u16_x4 (uint16_t * __a, uint16x4x4_t val) { ! union { uint16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val }; ! __builtin_aarch64_st1x4v4hi ((__builtin_aarch64_simd_hi *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1q_u16_x4 (uint16_t * __a, uint16x8x4_t val) { ! union { uint16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val }; __builtin_aarch64_st1x4v8hi ((__builtin_aarch64_simd_hi *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1_u32_x4 (uint32_t * __a, uint32x2x4_t val) { ! union { uint32x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val }; ! __builtin_aarch64_st1x4v2si ((__builtin_aarch64_simd_si *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1q_u32_x4 (uint32_t * __a, uint32x4x4_t val) { ! union { uint32x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val }; __builtin_aarch64_st1x4v4si ((__builtin_aarch64_simd_si *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1_f16_x4 (float16_t * __a, float16x4x4_t val) { ! union { float16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val }; ! __builtin_aarch64_st1x4v4hf ((__builtin_aarch64_simd_hf *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1q_f16_x4 (float16_t * __a, float16x8x4_t val) { ! union { float16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val }; __builtin_aarch64_st1x4v8hf ((__builtin_aarch64_simd_hf *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1_f32_x4 (float32_t * __a, float32x2x4_t val) { ! union { float32x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val }; ! __builtin_aarch64_st1x4v2sf ((__builtin_aarch64_simd_sf *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1q_f32_x4 (float32_t * __a, float32x4x4_t val) { ! union { float32x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val }; __builtin_aarch64_st1x4v4sf ((__builtin_aarch64_simd_sf *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1_p8_x4 (poly8_t * __a, poly8x8x4_t val) { ! union { poly8x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val }; ! __builtin_aarch64_st1x4v8qi ((__builtin_aarch64_simd_qi *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1q_p8_x4 (poly8_t * __a, poly8x16x4_t val) { ! union { poly8x16x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val }; __builtin_aarch64_st1x4v16qi ((__builtin_aarch64_simd_qi *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1_p16_x4 (poly16_t * __a, poly16x4x4_t val) { ! union { poly16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val }; ! __builtin_aarch64_st1x4v4hi ((__builtin_aarch64_simd_hi *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1q_p16_x4 (poly16_t * __a, poly16x8x4_t val) { ! union { poly16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val }; __builtin_aarch64_st1x4v8hi ((__builtin_aarch64_simd_hi *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1_s64_x4 (int64_t * __a, int64x1x4_t val) { ! union { int64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val }; ! __builtin_aarch64_st1x4di ((__builtin_aarch64_simd_di *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1_u64_x4 (uint64_t * __a, uint64x1x4_t val) { ! union { uint64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val }; ! __builtin_aarch64_st1x4di ((__builtin_aarch64_simd_di *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1_p64_x4 (poly64_t * __a, poly64x1x4_t val) { ! union { poly64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val }; ! __builtin_aarch64_st1x4di ((__builtin_aarch64_simd_di *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1q_s64_x4 (int64_t * __a, int64x2x4_t val) { ! union { int64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val }; __builtin_aarch64_st1x4v2di ((__builtin_aarch64_simd_di *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1q_u64_x4 (uint64_t * __a, uint64x2x4_t val) { ! union { uint64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val }; __builtin_aarch64_st1x4v2di ((__builtin_aarch64_simd_di *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1q_p64_x4 (poly64_t * __a, poly64x2x4_t val) { ! union { poly64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val }; __builtin_aarch64_st1x4v2di ((__builtin_aarch64_simd_di *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1_f64_x4 (float64_t * __a, float64x1x4_t val) { ! union { float64x1x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val }; ! __builtin_aarch64_st1x4df ((__builtin_aarch64_simd_df *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1q_f64_x4 (float64_t * __a, float64x2x4_t val) { ! union { float64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val }; __builtin_aarch64_st1x4v2df ((__builtin_aarch64_simd_df *) __a, __u.__o); } --- 27483,27837 ---- __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1_s8_x4 (int8_t * __a, int8x8x4_t __val) { ! __builtin_aarch64_simd_xi __o; ! int8x16x4_t __temp; ! __temp.val[0] = vcombine_s8 (__val.val[0], vcreate_s8 (__AARCH64_INT64_C (0))); ! __temp.val[1] = vcombine_s8 (__val.val[1], vcreate_s8 (__AARCH64_INT64_C (0))); ! __temp.val[2] = vcombine_s8 (__val.val[2], vcreate_s8 (__AARCH64_INT64_C (0))); ! __temp.val[3] = vcombine_s8 (__val.val[3], vcreate_s8 (__AARCH64_INT64_C (0))); ! __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[0], 0); ! __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[1], 1); ! __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[2], 2); ! __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[3], 3); ! __builtin_aarch64_st1x4v8qi ((__builtin_aarch64_simd_qi *) __a, __o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1q_s8_x4 (int8_t * __a, int8x16x4_t __val) { ! union { int8x16x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { __val }; __builtin_aarch64_st1x4v16qi ((__builtin_aarch64_simd_qi *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1_s16_x4 (int16_t * __a, int16x4x4_t __val) { ! __builtin_aarch64_simd_xi __o; ! int16x8x4_t __temp; ! __temp.val[0] = vcombine_s16 (__val.val[0], vcreate_s16 (__AARCH64_INT64_C (0))); ! __temp.val[1] = vcombine_s16 (__val.val[1], vcreate_s16 (__AARCH64_INT64_C (0))); ! __temp.val[2] = vcombine_s16 (__val.val[2], vcreate_s16 (__AARCH64_INT64_C (0))); ! __temp.val[3] = vcombine_s16 (__val.val[3], vcreate_s16 (__AARCH64_INT64_C (0))); ! __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[0], 0); ! __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[1], 1); ! __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[2], 2); ! __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[3], 3); ! __builtin_aarch64_st1x4v4hi ((__builtin_aarch64_simd_hi *) __a, __o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1q_s16_x4 (int16_t * __a, int16x8x4_t __val) { ! union { int16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { __val }; __builtin_aarch64_st1x4v8hi ((__builtin_aarch64_simd_hi *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1_s32_x4 (int32_t * __a, int32x2x4_t __val) { ! __builtin_aarch64_simd_xi __o; ! int32x4x4_t __temp; ! __temp.val[0] = vcombine_s32 (__val.val[0], vcreate_s32 (__AARCH64_INT64_C (0))); ! __temp.val[1] = vcombine_s32 (__val.val[1], vcreate_s32 (__AARCH64_INT64_C (0))); ! __temp.val[2] = vcombine_s32 (__val.val[2], vcreate_s32 (__AARCH64_INT64_C (0))); ! __temp.val[3] = vcombine_s32 (__val.val[3], vcreate_s32 (__AARCH64_INT64_C (0))); ! __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __temp.val[0], 0); ! __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __temp.val[1], 1); ! __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __temp.val[2], 2); ! __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __temp.val[3], 3); ! __builtin_aarch64_st1x4v2si ((__builtin_aarch64_simd_si *) __a, __o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1q_s32_x4 (int32_t * __a, int32x4x4_t __val) { ! union { int32x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { __val }; __builtin_aarch64_st1x4v4si ((__builtin_aarch64_simd_si *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1_u8_x4 (uint8_t * __a, uint8x8x4_t __val) { ! __builtin_aarch64_simd_xi __o; ! uint8x16x4_t __temp; ! __temp.val[0] = vcombine_u8 (__val.val[0], vcreate_u8 (__AARCH64_UINT64_C (0))); ! __temp.val[1] = vcombine_u8 (__val.val[1], vcreate_u8 (__AARCH64_UINT64_C (0))); ! __temp.val[2] = vcombine_u8 (__val.val[2], vcreate_u8 (__AARCH64_UINT64_C (0))); ! __temp.val[3] = vcombine_u8 (__val.val[3], vcreate_u8 (__AARCH64_UINT64_C (0))); ! __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[0], 0); ! __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[1], 1); ! __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[2], 2); ! __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[3], 3); ! __builtin_aarch64_st1x4v8qi ((__builtin_aarch64_simd_qi *) __a, __o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1q_u8_x4 (uint8_t * __a, uint8x16x4_t __val) { ! union { uint8x16x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { __val }; __builtin_aarch64_st1x4v16qi ((__builtin_aarch64_simd_qi *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1_u16_x4 (uint16_t * __a, uint16x4x4_t __val) { ! __builtin_aarch64_simd_xi __o; ! uint16x8x4_t __temp; ! __temp.val[0] = vcombine_u16 (__val.val[0], vcreate_u16 (__AARCH64_UINT64_C (0))); ! __temp.val[1] = vcombine_u16 (__val.val[1], vcreate_u16 (__AARCH64_UINT64_C (0))); ! __temp.val[2] = vcombine_u16 (__val.val[2], vcreate_u16 (__AARCH64_UINT64_C (0))); ! __temp.val[3] = vcombine_u16 (__val.val[3], vcreate_u16 (__AARCH64_UINT64_C (0))); ! __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[0], 0); ! __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[1], 1); ! __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[2], 2); ! __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[3], 3); ! __builtin_aarch64_st1x4v4hi ((__builtin_aarch64_simd_hi *) __a, __o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1q_u16_x4 (uint16_t * __a, uint16x8x4_t __val) { ! union { uint16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { __val }; __builtin_aarch64_st1x4v8hi ((__builtin_aarch64_simd_hi *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1_u32_x4 (uint32_t * __a, uint32x2x4_t __val) { ! __builtin_aarch64_simd_xi __o; ! uint32x4x4_t __temp; ! __temp.val[0] = vcombine_u32 (__val.val[0], vcreate_u32 (__AARCH64_UINT64_C (0))); ! __temp.val[1] = vcombine_u32 (__val.val[1], vcreate_u32 (__AARCH64_UINT64_C (0))); ! __temp.val[2] = vcombine_u32 (__val.val[2], vcreate_u32 (__AARCH64_UINT64_C (0))); ! __temp.val[3] = vcombine_u32 (__val.val[3], vcreate_u32 (__AARCH64_UINT64_C (0))); ! __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __temp.val[0], 0); ! __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __temp.val[1], 1); ! __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __temp.val[2], 2); ! __o = __builtin_aarch64_set_qregxiv4si (__o, (int32x4_t) __temp.val[3], 3); ! __builtin_aarch64_st1x4v2si ((__builtin_aarch64_simd_si *) __a, __o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1q_u32_x4 (uint32_t * __a, uint32x4x4_t __val) { ! union { uint32x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { __val }; __builtin_aarch64_st1x4v4si ((__builtin_aarch64_simd_si *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1_f16_x4 (float16_t * __a, float16x4x4_t __val) { ! __builtin_aarch64_simd_xi __o; ! float16x8x4_t __temp; ! __temp.val[0] = vcombine_f16 (__val.val[0], vcreate_f16 (__AARCH64_UINT64_C (0))); ! __temp.val[1] = vcombine_f16 (__val.val[1], vcreate_f16 (__AARCH64_UINT64_C (0))); ! __temp.val[2] = vcombine_f16 (__val.val[2], vcreate_f16 (__AARCH64_UINT64_C (0))); ! __temp.val[3] = vcombine_f16 (__val.val[3], vcreate_f16 (__AARCH64_UINT64_C (0))); ! __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) __temp.val[0], 0); ! __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) __temp.val[1], 1); ! __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) __temp.val[2], 2); ! __o = __builtin_aarch64_set_qregxiv8hf (__o, (float16x8_t) __temp.val[3], 3); ! __builtin_aarch64_st1x4v4hf ((__builtin_aarch64_simd_hf *) __a, __o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1q_f16_x4 (float16_t * __a, float16x8x4_t __val) { ! union { float16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { __val }; __builtin_aarch64_st1x4v8hf ((__builtin_aarch64_simd_hf *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1_f32_x4 (float32_t * __a, float32x2x4_t __val) { ! __builtin_aarch64_simd_xi __o; ! float32x4x4_t __temp; ! __temp.val[0] = vcombine_f32 (__val.val[0], vcreate_f32 (__AARCH64_UINT64_C (0))); ! __temp.val[1] = vcombine_f32 (__val.val[1], vcreate_f32 (__AARCH64_UINT64_C (0))); ! __temp.val[2] = vcombine_f32 (__val.val[2], vcreate_f32 (__AARCH64_UINT64_C (0))); ! __temp.val[3] = vcombine_f32 (__val.val[3], vcreate_f32 (__AARCH64_UINT64_C (0))); ! __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) __temp.val[0], 0); ! __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) __temp.val[1], 1); ! __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) __temp.val[2], 2); ! __o = __builtin_aarch64_set_qregxiv4sf (__o, (float32x4_t) __temp.val[3], 3); ! __builtin_aarch64_st1x4v2sf ((__builtin_aarch64_simd_sf *) __a, __o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1q_f32_x4 (float32_t * __a, float32x4x4_t __val) { ! union { float32x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { __val }; __builtin_aarch64_st1x4v4sf ((__builtin_aarch64_simd_sf *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1_p8_x4 (poly8_t * __a, poly8x8x4_t __val) { ! __builtin_aarch64_simd_xi __o; ! poly8x16x4_t __temp; ! __temp.val[0] = vcombine_p8 (__val.val[0], vcreate_p8 (__AARCH64_UINT64_C (0))); ! __temp.val[1] = vcombine_p8 (__val.val[1], vcreate_p8 (__AARCH64_UINT64_C (0))); ! __temp.val[2] = vcombine_p8 (__val.val[2], vcreate_p8 (__AARCH64_UINT64_C (0))); ! __temp.val[3] = vcombine_p8 (__val.val[3], vcreate_p8 (__AARCH64_UINT64_C (0))); ! __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[0], 0); ! __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[1], 1); ! __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[2], 2); ! __o = __builtin_aarch64_set_qregxiv16qi (__o, (int8x16_t) __temp.val[3], 3); ! __builtin_aarch64_st1x4v8qi ((__builtin_aarch64_simd_qi *) __a, __o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1q_p8_x4 (poly8_t * __a, poly8x16x4_t __val) { ! union { poly8x16x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { __val }; __builtin_aarch64_st1x4v16qi ((__builtin_aarch64_simd_qi *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1_p16_x4 (poly16_t * __a, poly16x4x4_t __val) { ! __builtin_aarch64_simd_xi __o; ! poly16x8x4_t __temp; ! __temp.val[0] = vcombine_p16 (__val.val[0], vcreate_p16 (__AARCH64_UINT64_C (0))); ! __temp.val[1] = vcombine_p16 (__val.val[1], vcreate_p16 (__AARCH64_UINT64_C (0))); ! __temp.val[2] = vcombine_p16 (__val.val[2], vcreate_p16 (__AARCH64_UINT64_C (0))); ! __temp.val[3] = vcombine_p16 (__val.val[3], vcreate_p16 (__AARCH64_UINT64_C (0))); ! __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[0], 0); ! __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[1], 1); ! __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[2], 2); ! __o = __builtin_aarch64_set_qregxiv8hi (__o, (int16x8_t) __temp.val[3], 3); ! __builtin_aarch64_st1x4v4hi ((__builtin_aarch64_simd_hi *) __a, __o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1q_p16_x4 (poly16_t * __a, poly16x8x4_t __val) { ! union { poly16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { __val }; __builtin_aarch64_st1x4v8hi ((__builtin_aarch64_simd_hi *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1_s64_x4 (int64_t * __a, int64x1x4_t __val) { ! __builtin_aarch64_simd_xi __o; ! int64x2x4_t __temp; ! __temp.val[0] = vcombine_s64 (__val.val[0], vcreate_s64 (__AARCH64_INT64_C (0))); ! __temp.val[1] = vcombine_s64 (__val.val[1], vcreate_s64 (__AARCH64_INT64_C (0))); ! __temp.val[2] = vcombine_s64 (__val.val[2], vcreate_s64 (__AARCH64_INT64_C (0))); ! __temp.val[3] = vcombine_s64 (__val.val[3], vcreate_s64 (__AARCH64_INT64_C (0))); ! __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __temp.val[0], 0); ! __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __temp.val[1], 1); ! __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __temp.val[2], 2); ! __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __temp.val[3], 3); ! __builtin_aarch64_st1x4di ((__builtin_aarch64_simd_di *) __a, __o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1_u64_x4 (uint64_t * __a, uint64x1x4_t __val) { ! __builtin_aarch64_simd_xi __o; ! uint64x2x4_t __temp; ! __temp.val[0] = vcombine_u64 (__val.val[0], vcreate_u64 (__AARCH64_UINT64_C (0))); ! __temp.val[1] = vcombine_u64 (__val.val[1], vcreate_u64 (__AARCH64_UINT64_C (0))); ! __temp.val[2] = vcombine_u64 (__val.val[2], vcreate_u64 (__AARCH64_UINT64_C (0))); ! __temp.val[3] = vcombine_u64 (__val.val[3], vcreate_u64 (__AARCH64_UINT64_C (0))); ! __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __temp.val[0], 0); ! __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __temp.val[1], 1); ! __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __temp.val[2], 2); ! __o = __builtin_aarch64_set_qregxiv2di (__o, (int64x2_t) __temp.val[3], 3); ! __builtin_aarch64_st1x4di ((__builtin_aarch64_simd_di *) __a, __o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1_p64_x4 (poly64_t * __a, poly64x1x4_t __val) { ! __builtin_aarch64_simd_xi __o; ! poly64x2x4_t __temp; ! __temp.val[0] = vcombine_p64 (__val.val[0], vcreate_p64 (__AARCH64_UINT64_C (0))); ! __temp.val[1] = vcombine_p64 (__val.val[1], vcreate_p64 (__AARCH64_UINT64_C (0))); ! __temp.val[2] = vcombine_p64 (__val.val[2], vcreate_p64 (__AARCH64_UINT64_C (0))); ! __temp.val[3] = vcombine_p64 (__val.val[3], vcreate_p64 (__AARCH64_UINT64_C (0))); ! __o = __builtin_aarch64_set_qregxiv2di_ssps (__o, ! (poly64x2_t) __temp.val[0], 0); ! __o = __builtin_aarch64_set_qregxiv2di_ssps (__o, ! (poly64x2_t) __temp.val[1], 1); ! __o = __builtin_aarch64_set_qregxiv2di_ssps (__o, ! (poly64x2_t) __temp.val[2], 2); ! __o = __builtin_aarch64_set_qregxiv2di_ssps (__o, ! (poly64x2_t) __temp.val[3], 3); ! __builtin_aarch64_st1x4di ((__builtin_aarch64_simd_di *) __a, __o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1q_s64_x4 (int64_t * __a, int64x2x4_t __val) { ! union { int64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { __val }; __builtin_aarch64_st1x4v2di ((__builtin_aarch64_simd_di *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1q_u64_x4 (uint64_t * __a, uint64x2x4_t __val) { ! union { uint64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { __val }; __builtin_aarch64_st1x4v2di ((__builtin_aarch64_simd_di *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1q_p64_x4 (poly64_t * __a, poly64x2x4_t __val) { ! union { poly64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { __val }; __builtin_aarch64_st1x4v2di ((__builtin_aarch64_simd_di *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1_f64_x4 (float64_t * __a, float64x1x4_t __val) { ! __builtin_aarch64_simd_xi __o; ! float64x2x4_t __temp; ! __temp.val[0] = vcombine_f64 (__val.val[0], vcreate_f64 (__AARCH64_UINT64_C (0))); ! __temp.val[1] = vcombine_f64 (__val.val[1], vcreate_f64 (__AARCH64_UINT64_C (0))); ! __temp.val[2] = vcombine_f64 (__val.val[2], vcreate_f64 (__AARCH64_UINT64_C (0))); ! __temp.val[3] = vcombine_f64 (__val.val[3], vcreate_f64 (__AARCH64_UINT64_C (0))); ! __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) __temp.val[0], 0); ! __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) __temp.val[1], 1); ! __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) __temp.val[2], 2); ! __o = __builtin_aarch64_set_qregxiv2df (__o, (float64x2_t) __temp.val[3], 3); ! __builtin_aarch64_st1x4df ((__builtin_aarch64_simd_df *) __a, __o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1q_f64_x4 (float64_t * __a, float64x2x4_t __val) { ! union { float64x2x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { __val }; __builtin_aarch64_st1x4v2df ((__builtin_aarch64_simd_df *) __a, __u.__o); } *************** __extension__ extern __inline bfloat16x4 *** 33380,33389 **** __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vld1_bf16_x4 (const bfloat16_t *__a) { ! union { bfloat16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __au; ! __au.__o ! = __builtin_aarch64_ld1x4v4bf ((const __builtin_aarch64_simd_bf *) __a); ! return __au.__i; } __extension__ extern __inline bfloat16x8x4_t --- 33566,33579 ---- __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) vld1_bf16_x4 (const bfloat16_t *__a) { ! bfloat16x4x4_t ret; ! __builtin_aarch64_simd_xi __o; ! __o = __builtin_aarch64_ld1x4v4bf ((const __builtin_aarch64_simd_bf *) __a); ! ret.val[0] = (bfloat16x4_t) __builtin_aarch64_get_dregxiv4bf (__o, 0); ! ret.val[1] = (bfloat16x4_t) __builtin_aarch64_get_dregxiv4bf (__o, 1); ! ret.val[2] = (bfloat16x4_t) __builtin_aarch64_get_dregxiv4bf (__o, 2); ! ret.val[3] = (bfloat16x4_t) __builtin_aarch64_get_dregxiv4bf (__o, 3); ! return ret; } __extension__ extern __inline bfloat16x8x4_t *************** vst1q_bf16_x3 (bfloat16_t * __a, bfloat1 *** 33640,33656 **** __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1_bf16_x4 (bfloat16_t * __a, bfloat16x4x4_t val) { ! union { bfloat16x4x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val }; ! __builtin_aarch64_st1x4v4bf ((__builtin_aarch64_simd_bf *) __a, __u.__o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1q_bf16_x4 (bfloat16_t * __a, bfloat16x8x4_t val) { ! union { bfloat16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { val }; __builtin_aarch64_st1x4v8bf ((__builtin_aarch64_simd_bf *) __a, __u.__o); } --- 33830,33855 ---- __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1_bf16_x4 (bfloat16_t * __a, bfloat16x4x4_t __val) { ! __builtin_aarch64_simd_xi __o; ! bfloat16x8x4_t __temp; ! __temp.val[0] = vcombine_bf16 (__val.val[0], vcreate_bf16 (__AARCH64_UINT64_C (0))); ! __temp.val[1] = vcombine_bf16 (__val.val[1], vcreate_bf16 (__AARCH64_UINT64_C (0))); ! __temp.val[2] = vcombine_bf16 (__val.val[2], vcreate_bf16 (__AARCH64_UINT64_C (0))); ! __temp.val[3] = vcombine_bf16 (__val.val[3], vcreate_bf16 (__AARCH64_UINT64_C (0))); ! __o = __builtin_aarch64_set_qregxiv8bf (__o, (bfloat16x8_t) __temp.val[0], 0); ! __o = __builtin_aarch64_set_qregxiv8bf (__o, (bfloat16x8_t) __temp.val[1], 1); ! __o = __builtin_aarch64_set_qregxiv8bf (__o, (bfloat16x8_t) __temp.val[2], 2); ! __o = __builtin_aarch64_set_qregxiv8bf (__o, (bfloat16x8_t) __temp.val[3], 3); ! __builtin_aarch64_st1x4v4bf ((__builtin_aarch64_simd_bf *) __a, __o); } __extension__ extern __inline void __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) ! vst1q_bf16_x4 (bfloat16_t * __a, bfloat16x8x4_t __val) { ! union { bfloat16x8x4_t __i; __builtin_aarch64_simd_xi __o; } __u = { __val }; __builtin_aarch64_st1x4v8bf ((__builtin_aarch64_simd_bf *) __a, __u.__o); } diff -Nrcpad gcc-11.4.0/gcc/config/aarch64/iterators.md gcc-11.5.0/gcc/config/aarch64/iterators.md *** gcc-11.4.0/gcc/config/aarch64/iterators.md Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/aarch64/iterators.md Fri Jul 19 05:52:43 2024 *************** *** 289,294 **** --- 289,297 ---- (define_mode_iterator TX [TI TF]) + ;; TX plus V16QImode. + (define_mode_iterator TX_V16QI [TI TF V16QI]) + ;; Advanced SIMD opaque structure modes. (define_mode_iterator VSTRUCT [OI CI XI]) diff -Nrcpad gcc-11.4.0/gcc/config/alpha/alpha.md gcc-11.5.0/gcc/config/alpha/alpha.md *** gcc-11.4.0/gcc/config/alpha/alpha.md Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/alpha/alpha.md Fri Jul 19 05:52:43 2024 *************** *** 756,762 **** (sign_extend:DI (match_operand:SI 2 "nonimmediate_operand"))) (parallel [(set (match_dup 5) (sign_extend:DI ! (any_divmod:SI (match_dup 3) (match_dup 4)))) (clobber (reg:DI 23)) (clobber (reg:DI 28))]) (set (match_operand:SI 0 "nonimmediate_operand") --- 756,763 ---- (sign_extend:DI (match_operand:SI 2 "nonimmediate_operand"))) (parallel [(set (match_dup 5) (sign_extend:DI ! (any_divmod:SI (truncate:SI (match_dup 3)) ! (truncate:SI (match_dup 4))))) (clobber (reg:DI 23)) (clobber (reg:DI 28))]) (set (match_operand:SI 0 "nonimmediate_operand") *************** *** 782,790 **** (define_insn_and_split "*divmodsi_internal_er" [(set (match_operand:DI 0 "register_operand" "=c") ! (sign_extend:DI (match_operator:SI 3 "divmod_operator" ! [(match_operand:DI 1 "register_operand" "a") ! (match_operand:DI 2 "register_operand" "b")]))) (clobber (reg:DI 23)) (clobber (reg:DI 28))] "TARGET_EXPLICIT_RELOCS && TARGET_ABI_OSF" --- 783,792 ---- (define_insn_and_split "*divmodsi_internal_er" [(set (match_operand:DI 0 "register_operand" "=c") ! (sign_extend:DI ! (match_operator:SI 3 "divmod_operator" ! [(truncate:SI (match_operand:DI 1 "register_operand" "a")) ! (truncate:SI (match_operand:DI 2 "register_operand" "b"))]))) (clobber (reg:DI 23)) (clobber (reg:DI 28))] "TARGET_EXPLICIT_RELOCS && TARGET_ABI_OSF" *************** *** 826,833 **** (define_insn "*divmodsi_internal_er_1" [(set (match_operand:DI 0 "register_operand" "=c") (sign_extend:DI (match_operator:SI 3 "divmod_operator" ! [(match_operand:DI 1 "register_operand" "a") ! (match_operand:DI 2 "register_operand" "b")]))) (use (match_operand:DI 4 "register_operand" "c")) (use (match_operand 5 "const_int_operand")) (clobber (reg:DI 23)) --- 828,835 ---- (define_insn "*divmodsi_internal_er_1" [(set (match_operand:DI 0 "register_operand" "=c") (sign_extend:DI (match_operator:SI 3 "divmod_operator" ! [(truncate:SI (match_operand:DI 1 "register_operand" "a")) ! (truncate:SI (match_operand:DI 2 "register_operand" "b"))]))) (use (match_operand:DI 4 "register_operand" "c")) (use (match_operand 5 "const_int_operand")) (clobber (reg:DI 23)) *************** *** 839,847 **** (define_insn "*divmodsi_internal" [(set (match_operand:DI 0 "register_operand" "=c") ! (sign_extend:DI (match_operator:SI 3 "divmod_operator" ! [(match_operand:DI 1 "register_operand" "a") ! (match_operand:DI 2 "register_operand" "b")]))) (clobber (reg:DI 23)) (clobber (reg:DI 28))] "TARGET_ABI_OSF" --- 841,850 ---- (define_insn "*divmodsi_internal" [(set (match_operand:DI 0 "register_operand" "=c") ! (sign_extend:DI ! (match_operator:SI 3 "divmod_operator" ! [(truncate:SI (match_operand:DI 1 "register_operand" "a")) ! (truncate:SI (match_operand:DI 2 "register_operand" "b"))]))) (clobber (reg:DI 23)) (clobber (reg:DI 28))] "TARGET_ABI_OSF" diff -Nrcpad gcc-11.4.0/gcc/config/alpha/constraints.md gcc-11.5.0/gcc/config/alpha/constraints.md *** gcc-11.4.0/gcc/config/alpha/constraints.md Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/alpha/constraints.md Fri Jul 19 05:52:43 2024 *************** *** 27,33 **** "General register 24, input to division routine") (define_register_constraint "b" "R25_REG" ! "General register 24, input to division routine") (define_register_constraint "c" "R27_REG" "General register 27, function call address") --- 27,33 ---- "General register 24, input to division routine") (define_register_constraint "b" "R25_REG" ! "General register 25, input to division routine") (define_register_constraint "c" "R27_REG" "General register 27, function call address") diff -Nrcpad gcc-11.4.0/gcc/config/arm/arm.c gcc-11.5.0/gcc/config/arm/arm.c *** gcc-11.4.0/gcc/config/arm/arm.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/arm/arm.c Fri Jul 19 05:52:43 2024 *************** cmse_nonsecure_call_inline_register_clea *** 18864,18869 **** --- 18864,18901 ---- end_sequence (); emit_insn_before (seq, insn); + /* The AAPCS requires the callee to widen integral types narrower + than 32 bits to the full width of the register; but when handling + calls to non-secure space, we cannot trust the callee to have + correctly done so. So forcibly re-widen the result here. */ + tree ret_type = TREE_TYPE (fntype); + if ((TREE_CODE (ret_type) == INTEGER_TYPE + || TREE_CODE (ret_type) == ENUMERAL_TYPE + || TREE_CODE (ret_type) == BOOLEAN_TYPE) + && known_lt (GET_MODE_SIZE (TYPE_MODE (ret_type)), 4)) + { + rtx ret_reg = gen_rtx_REG (TYPE_MODE (ret_type), R0_REGNUM); + rtx si_reg = gen_rtx_REG (SImode, R0_REGNUM); + rtx extend; + if (TYPE_UNSIGNED (ret_type)) + extend = gen_rtx_SET (si_reg, gen_rtx_ZERO_EXTEND (SImode, + ret_reg)); + else + { + /* Signed-extension is a special case because of + thumb1_extendhisi2. */ + if (TARGET_THUMB1 + && known_eq (GET_MODE_SIZE (TYPE_MODE (ret_type)), 2)) + extend = gen_thumb1_extendhisi2 (si_reg, ret_reg); + else + extend = gen_rtx_SET (si_reg, + gen_rtx_SIGN_EXTEND (SImode, + ret_reg)); + } + emit_insn_after (extend, insn); + } + + if (TARGET_HAVE_FPCXT_CMSE) { rtx_insn *last, *pop_insn, *after = insn; *************** arm_expand_prologue (void) *** 23272,23277 **** --- 23304,23354 ---- ip_rtx = gen_rtx_REG (SImode, IP_REGNUM); + /* The AAPCS requires the callee to widen integral types narrower + than 32 bits to the full width of the register; but when handling + calls to non-secure space, we cannot trust the callee to have + correctly done so. So forcibly re-widen the result here. */ + if (IS_CMSE_ENTRY (func_type)) + { + function_args_iterator args_iter; + CUMULATIVE_ARGS args_so_far_v; + cumulative_args_t args_so_far; + bool first_param = true; + tree arg_type; + tree fndecl = current_function_decl; + tree fntype = TREE_TYPE (fndecl); + arm_init_cumulative_args (&args_so_far_v, fntype, NULL_RTX, fndecl); + args_so_far = pack_cumulative_args (&args_so_far_v); + FOREACH_FUNCTION_ARGS (fntype, arg_type, args_iter) + { + rtx arg_rtx; + + if (VOID_TYPE_P (arg_type)) + break; + + function_arg_info arg (arg_type, /*named=*/true); + if (!first_param) + /* We should advance after processing the argument and pass + the argument we're advancing past. */ + arm_function_arg_advance (args_so_far, arg); + first_param = false; + arg_rtx = arm_function_arg (args_so_far, arg); + gcc_assert (REG_P (arg_rtx)); + if ((TREE_CODE (arg_type) == INTEGER_TYPE + || TREE_CODE (arg_type) == ENUMERAL_TYPE + || TREE_CODE (arg_type) == BOOLEAN_TYPE) + && known_lt (GET_MODE_SIZE (GET_MODE (arg_rtx)), 4)) + { + if (TYPE_UNSIGNED (arg_type)) + emit_set_insn (gen_rtx_REG (SImode, REGNO (arg_rtx)), + gen_rtx_ZERO_EXTEND (SImode, arg_rtx)); + else + emit_set_insn (gen_rtx_REG (SImode, REGNO (arg_rtx)), + gen_rtx_SIGN_EXTEND (SImode, arg_rtx)); + } + } + } + if (IS_STACKALIGN (func_type)) { rtx r0, r1; *************** thumb1_expand_prologue (void) *** 26746,26751 **** --- 26823,26880 ---- live_regs_mask = offsets->saved_regs_mask; lr_needs_saving = live_regs_mask & (1 << LR_REGNUM); + /* The AAPCS requires the callee to widen integral types narrower + than 32 bits to the full width of the register; but when handling + calls to non-secure space, we cannot trust the callee to have + correctly done so. So forcibly re-widen the result here. */ + if (IS_CMSE_ENTRY (func_type)) + { + function_args_iterator args_iter; + CUMULATIVE_ARGS args_so_far_v; + cumulative_args_t args_so_far; + bool first_param = true; + tree arg_type; + tree fndecl = current_function_decl; + tree fntype = TREE_TYPE (fndecl); + arm_init_cumulative_args (&args_so_far_v, fntype, NULL_RTX, fndecl); + args_so_far = pack_cumulative_args (&args_so_far_v); + FOREACH_FUNCTION_ARGS (fntype, arg_type, args_iter) + { + rtx arg_rtx; + + if (VOID_TYPE_P (arg_type)) + break; + + function_arg_info arg (arg_type, /*named=*/true); + if (!first_param) + /* We should advance after processing the argument and pass + the argument we're advancing past. */ + arm_function_arg_advance (args_so_far, arg); + first_param = false; + arg_rtx = arm_function_arg (args_so_far, arg); + gcc_assert (REG_P (arg_rtx)); + if ((TREE_CODE (arg_type) == INTEGER_TYPE + || TREE_CODE (arg_type) == ENUMERAL_TYPE + || TREE_CODE (arg_type) == BOOLEAN_TYPE) + && known_lt (GET_MODE_SIZE (GET_MODE (arg_rtx)), 4)) + { + rtx res_reg = gen_rtx_REG (SImode, REGNO (arg_rtx)); + if (TYPE_UNSIGNED (arg_type)) + emit_set_insn (res_reg, gen_rtx_ZERO_EXTEND (SImode, arg_rtx)); + else + { + /* Signed-extension is a special case because of + thumb1_extendhisi2. */ + if (known_eq (GET_MODE_SIZE (GET_MODE (arg_rtx)), 2)) + emit_insn (gen_thumb1_extendhisi2 (res_reg, arg_rtx)); + else + emit_set_insn (res_reg, + gen_rtx_SIGN_EXTEND (SImode, arg_rtx)); + } + } + } + } + /* Extract a mask of the ones we can give to the Thumb's push instruction. */ l_mask = live_regs_mask & 0x40ff; /* Then count how many other high registers will need to be pushed. */ diff -Nrcpad gcc-11.4.0/gcc/config/arm/arm.md gcc-11.5.0/gcc/config/arm/arm.md *** gcc-11.4.0/gcc/config/arm/arm.md Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/arm/arm.md Fri Jul 19 05:52:43 2024 *************** *** 7466,7472 **** && !arm_const_double_rtx (operands[1]) && !(TARGET_VFP_DOUBLE && vfp3_const_double_rtx (operands[1]))) { ! rtx clobreg = gen_reg_rtx (DFmode); emit_insn (gen_no_literal_pool_df_immediate (operands[0], operands[1], clobreg)); DONE; --- 7466,7472 ---- && !arm_const_double_rtx (operands[1]) && !(TARGET_VFP_DOUBLE && vfp3_const_double_rtx (operands[1]))) { ! rtx clobreg = gen_reg_rtx (DImode); emit_insn (gen_no_literal_pool_df_immediate (operands[0], operands[1], clobreg)); DONE; diff -Nrcpad gcc-11.4.0/gcc/config/arm/mve.md gcc-11.5.0/gcc/config/arm/mve.md *** gcc-11.4.0/gcc/config/arm/mve.md Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/arm/mve.md Fri Jul 19 05:52:43 2024 *************** *** 10510,10516 **** if (elt == 0) return "vmov\t%e0, %Q1, %R1"; else ! return "vmov\t%f0, %J1, %K1"; } [(set_attr "type" "mve_move")]) --- 10510,10516 ---- if (elt == 0) return "vmov\t%e0, %Q1, %R1"; else ! return "vmov\t%f0, %Q1, %R1"; } [(set_attr "type" "mve_move")]) diff -Nrcpad gcc-11.4.0/gcc/config/arm/neon.md gcc-11.5.0/gcc/config/arm/neon.md *** gcc-11.4.0/gcc/config/arm/neon.md Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/arm/neon.md Fri Jul 19 05:52:43 2024 *************** *** 513,523 **** Enabled with -funsafe-math-optimizations -freciprocal-math and disabled for -Os since it increases code size . */ ! (define_expand "div3" [(set (match_operand:VCVTF 0 "s_register_operand") (div:VCVTF (match_operand:VCVTF 1 "s_register_operand") (match_operand:VCVTF 2 "s_register_operand")))] ! "TARGET_NEON && !optimize_size && flag_reciprocal_math" { rtx rec = gen_reg_rtx (mode); --- 513,523 ---- Enabled with -funsafe-math-optimizations -freciprocal-math and disabled for -Os since it increases code size . */ ! (define_expand "div3" [(set (match_operand:VCVTF 0 "s_register_operand") (div:VCVTF (match_operand:VCVTF 1 "s_register_operand") (match_operand:VCVTF 2 "s_register_operand")))] ! "ARM_HAVE_NEON__ARITH && !optimize_size && flag_reciprocal_math" { rtx rec = gen_reg_rtx (mode); diff -Nrcpad gcc-11.4.0/gcc/config/arm/vfp.md gcc-11.5.0/gcc/config/arm/vfp.md *** gcc-11.4.0/gcc/config/arm/vfp.md Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/arm/vfp.md Fri Jul 19 05:52:43 2024 *************** *** 2128,2134 **** (define_insn_and_split "no_literal_pool_df_immediate" [(set (match_operand:DF 0 "s_register_operand" "=w") (match_operand:DF 1 "const_double_operand" "F")) ! (clobber (match_operand:DF 2 "s_register_operand" "=r"))] "arm_disable_literal_pool && TARGET_VFP_BASE && !arm_const_double_rtx (operands[1]) --- 2128,2134 ---- (define_insn_and_split "no_literal_pool_df_immediate" [(set (match_operand:DF 0 "s_register_operand" "=w") (match_operand:DF 1 "const_double_operand" "F")) ! (clobber (match_operand:DI 2 "s_register_operand" "=r"))] "arm_disable_literal_pool && TARGET_VFP_BASE && !arm_const_double_rtx (operands[1]) *************** *** 2143,2150 **** unsigned HOST_WIDE_INT ival = zext_hwi (buf[order], 32); ival |= (zext_hwi (buf[1 - order], 32) << 32); rtx cst = gen_int_mode (ival, DImode); ! emit_move_insn (simplify_gen_subreg (DImode, operands[2], DFmode, 0), cst); ! emit_move_insn (operands[0], operands[2]); DONE; } ) --- 2143,2151 ---- unsigned HOST_WIDE_INT ival = zext_hwi (buf[order], 32); ival |= (zext_hwi (buf[1 - order], 32) << 32); rtx cst = gen_int_mode (ival, DImode); ! emit_move_insn (operands[2], cst); ! emit_move_insn (operands[0], ! simplify_gen_subreg (DFmode, operands[2], DImode, 0)); DONE; } ) diff -Nrcpad gcc-11.4.0/gcc/config/darwin-protos.h gcc-11.5.0/gcc/config/darwin-protos.h *** gcc-11.4.0/gcc/config/darwin-protos.h Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/darwin-protos.h Fri Jul 19 05:52:43 2024 *************** extern void darwin_patch_builtins (void) *** 129,132 **** --- 129,143 ---- extern void darwin_rename_builtins (void); extern bool darwin_libc_has_function (enum function_class fn_class, tree); + /* For this port, there are several possible sources for external toolchain + components (e.g. as, ld, dsymutil) and we have to alter the allowable + output in response to which version and source is in use. */ + enum darwin_external_toolchain { + DET_UNKNOWN=0, + CCTOOLS, + DWARFUTILS, + LLVM, + CLANG + }; + #endif /* CONFIG_DARWIN_PROTOS_H */ diff -Nrcpad gcc-11.4.0/gcc/config/darwin-sections.def gcc-11.5.0/gcc/config/darwin-sections.def *** gcc-11.4.0/gcc/config/darwin-sections.def Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/darwin-sections.def Fri Jul 19 05:52:43 2024 *************** DEF_SECTION (mod_init_section, 0, ".mod_ *** 98,103 **** --- 98,105 ---- DEF_SECTION (mod_term_section, 0, ".mod_term_func", 0) DEF_SECTION (constructor_section, 0, ".constructor", 0) DEF_SECTION (destructor_section, 0, ".destructor", 0) + DEF_SECTION (static_init_section, SECTION_CODE, + ".section\t__TEXT,__StaticInit,regular,pure_instructions", 0) /* Objective-C ABI=0 (Original version) sections. */ DEF_SECTION (objc_class_section, 0, ".objc_class", 1) *************** DEF_SECTION (machopic_picsymbol_stub3_se *** 157,163 **** /* Exception-related. */ DEF_SECTION (darwin_exception_section, SECTION_NO_ANCHOR, ! ".section __DATA,__gcc_except_tab", 0) DEF_SECTION (darwin_eh_frame_section, SECTION_NO_ANCHOR, ".section " EH_FRAME_SECTION_NAME ",__eh_frame" EH_FRAME_SECTION_ATTR, 0) --- 159,165 ---- /* Exception-related. */ DEF_SECTION (darwin_exception_section, SECTION_NO_ANCHOR, ! ".section __TEXT,__gcc_except_tab", 0) DEF_SECTION (darwin_eh_frame_section, SECTION_NO_ANCHOR, ".section " EH_FRAME_SECTION_NAME ",__eh_frame" EH_FRAME_SECTION_ATTR, 0) diff -Nrcpad gcc-11.4.0/gcc/config/darwin.c gcc-11.5.0/gcc/config/darwin.c *** gcc-11.4.0/gcc/config/darwin.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/darwin.c Fri Jul 19 05:52:43 2024 *************** static bool ld_needs_eh_markers = false; *** 111,116 **** --- 111,129 ---- /* Emit a section-start symbol for mod init and term sections. */ static bool ld_init_term_start_labels = false; + /* The source and version of dsymutil in use. */ + #ifndef DSYMUTIL_VERSION + # warning Darwin toolchain without a defined dsymutil. + # define DSYMUTIL_VERSION DET_UNKNOWN,0,0,0 + #endif + + struct { + darwin_external_toolchain kind; /* cctools, llvm, clang etc. */ + int major; /* version number. */ + int minor; + int tiny; + } dsymutil_version = {DSYMUTIL_VERSION}; + /* Section names. */ section * darwin_sections[NUM_DARWIN_SECTIONS]; *************** darwin_objc1_section (tree decl ATTRIBUT *** 1583,1589 **** else if (!strncmp (p, "V1_CEXT", 7)) return darwin_sections[objc1_class_ext_section]; ! else if (!strncmp (p, "V2_CSTR", 7)) return darwin_sections[objc_constant_string_object_section]; return base; --- 1596,1602 ---- else if (!strncmp (p, "V1_CEXT", 7)) return darwin_sections[objc1_class_ext_section]; ! else if (!strncmp (p, "V1_CSTR", 7)) return darwin_sections[objc_constant_string_object_section]; return base; *************** machopic_select_section (tree decl, *** 1676,1682 **** base_section = darwin_sections[zobj_data_section]; } else if (ro) ! base_section = darwin_sections[const_data_section]; else base_section = data_section; break; --- 1689,1704 ---- base_section = darwin_sections[zobj_data_section]; } else if (ro) ! { ! if (VAR_P (decl) && TREE_TYPE (decl) ! && TREE_CODE (TREE_TYPE (decl)) == RECORD_TYPE ! && DECL_NAME (decl) ! && strncmp (IDENTIFIER_POINTER (DECL_NAME (decl)), ! "__anon_cfstring", 15) == 0) ! base_section = darwin_sections[cfstring_constant_object_section]; ! else ! base_section = darwin_sections[const_data_section]; ! } else base_section = data_section; break; *************** machopic_select_section (tree decl, *** 1718,1724 **** return base_section; /* GNU runtime is happy with it all in one pot. */ } ! /* b) Constant string objects. */ if (TREE_CODE (decl) == CONSTRUCTOR && TREE_TYPE (decl) && TREE_CODE (TREE_TYPE (decl)) == RECORD_TYPE --- 1740,1746 ---- return base_section; /* GNU runtime is happy with it all in one pot. */ } ! /* b) Constructors for constant NSstring [but not CFString] objects. */ if (TREE_CODE (decl) == CONSTRUCTOR && TREE_TYPE (decl) && TREE_CODE (TREE_TYPE (decl)) == RECORD_TYPE *************** machopic_select_section (tree decl, *** 1741,1747 **** return darwin_sections[objc_string_object_section]; } else if (!strcmp (IDENTIFIER_POINTER (name), "__builtin_CFString")) ! return darwin_sections[cfstring_constant_object_section]; else return base_section; } --- 1763,1773 ---- return darwin_sections[objc_string_object_section]; } else if (!strcmp (IDENTIFIER_POINTER (name), "__builtin_CFString")) ! { ! /* We should have handled __anon_cfstrings above. */ ! gcc_checking_assert (0); ! return darwin_sections[cfstring_constant_object_section]; ! } else return base_section; } *************** darwin_label_is_anonymous_local_objc_nam *** 1933,1938 **** --- 1959,1966 ---- } else if (!strncmp ((const char *)p, "ClassMethods", 12)) return false; + else if (!strncmp ((const char *)p, "ClassProtocols", 14)) + return false; else if (!strncmp ((const char *)p, "Instance", 8)) { if (p[8] == 'I' || p[8] == 'M') *************** darwin_emit_except_table_label (FILE *fi *** 2228,2233 **** --- 2256,2262 ---- { char section_start_label[30]; + fputs ("\t.p2align\t2\n", file); ASM_GENERATE_INTERNAL_LABEL (section_start_label, "GCC_except_table", except_table_label_num++); ASM_OUTPUT_LABEL (file, section_start_label); *************** darwin_asm_output_dwarf_offset (FILE *fi *** 3016,3022 **** void darwin_file_start (void) { ! /* Nothing to do. */ } /* Called for the TARGET_ASM_FILE_END hook. --- 3045,3079 ---- void darwin_file_start (void) { ! #ifdef HAVE_AS_MMACOSX_VERSION_MIN_OPTION ! /* This should not happen with a well-formed command line, but the user could ! invoke cc1* directly without it. */ ! if (!darwin_macosx_version_min) ! return; ! /* This assumes that the version passed has been validated in the driver. */ ! unsigned maj, min, tiny; ! int count = sscanf (darwin_macosx_version_min, "%u.%u.%u", &maj, &min, &tiny); ! if (count < 0) ! return; ! if (count < 3) ! tiny = 0; ! if (count < 2) ! min = 0; ! const char *directive; ! #ifdef HAVE_AS_MACOS_BUILD_VERSION ! /* We only handle macos, so far. */ ! if (generating_for_darwin_version >= 18) ! directive = "build_version macos, "; ! else ! #endif ! directive = "macosx_version_min "; ! if (count > 2 && tiny != 0) ! fprintf (asm_out_file, "\t.%s %u, %u, %u\n", directive, maj, min, tiny); ! else if (count > 1) ! fprintf (asm_out_file, "\t.%s %u, %u\n", directive, maj, min); ! else ! fprintf (asm_out_file, "\t.%s %u, 0\n", directive, maj); ! #endif } /* Called for the TARGET_ASM_FILE_END hook. *************** darwin_override_options (void) *** 3238,3244 **** /* Keep track of which (major) version we're generating code for. */ if (darwin_macosx_version_min) { ! if (strverscmp (darwin_macosx_version_min, "10.7") >= 0) generating_for_darwin_version = 11; else if (strverscmp (darwin_macosx_version_min, "10.6") >= 0) generating_for_darwin_version = 10; --- 3295,3305 ---- /* Keep track of which (major) version we're generating code for. */ if (darwin_macosx_version_min) { ! if (strverscmp (darwin_macosx_version_min, "10.14") >= 0) ! generating_for_darwin_version = 18; ! else if (strverscmp (darwin_macosx_version_min, "10.8") >= 0) ! generating_for_darwin_version = 12; ! else if (strverscmp (darwin_macosx_version_min, "10.7") >= 0) generating_for_darwin_version = 11; else if (strverscmp (darwin_macosx_version_min, "10.6") >= 0) generating_for_darwin_version = 10; *************** darwin_override_options (void) *** 3313,3326 **** global_options.x_flag_objc_abi); } - /* Don't emit DWARF3/4 unless specifically selected. This is a - workaround for tool bugs. */ - if (!global_options_set.x_dwarf_strict) - dwarf_strict = 1; if (!global_options_set.x_dwarf_version) ! dwarf_version = 2; ! if (global_options_set.x_dwarf_split_debug_info) { inform (input_location, "%<-gsplit-dwarf%> is not supported on this platform, ignored"); --- 3374,3394 ---- global_options.x_flag_objc_abi); } if (!global_options_set.x_dwarf_version) ! { ! /* External toolchains based on LLVM or clang 7+ have support for ! dwarf-4. */ ! if ((dsymutil_version.kind == LLVM && dsymutil_version.major >= 7) ! || (dsymutil_version.kind == CLANG && dsymutil_version.major >= 700)) ! dwarf_version = 4; ! else if (dsymutil_version.kind == DWARFUTILS ! && dsymutil_version.major >= 121) ! dwarf_version = 3; /* From XC 6.4. */ ! else ! dwarf_version = 2; /* Older cannot safely exceed dwarf-2. */ ! } ! if (global_options_set.x_dwarf_split_debug_info && dwarf_split_debug_info) { inform (input_location, "%<-gsplit-dwarf%> is not supported on this platform, ignored"); *************** darwin_override_options (void) *** 3328,3333 **** --- 3396,3419 ---- global_options_set.x_dwarf_split_debug_info = 0; } + /* Cases where dsymutil will exclude files with .macinfo sections; we are + better off forcing the debug level to 2 than completely excluding the + files. If strict dwarf is set, then emit the macinfo anyway. */ + if (debug_info_level == DINFO_LEVEL_VERBOSE + && (!global_options_set.x_dwarf_strict || dwarf_strict == 0) + && ((dsymutil_version.kind == CLANG && dsymutil_version.major >= 1500) + || (dsymutil_version.kind == LLVM && dsymutil_version.major >= 15))) + { + inform (input_location, + "%<-g3%> is not supported by the debug linker in use (set to 2)"); + debug_info_level = DINFO_LEVEL_NORMAL; + } + + /* Limit DWARF to the chosen version, the linker and debug linker might not + be able to consume newer structures. */ + if (!global_options_set.x_dwarf_strict) + dwarf_strict = 1; + /* Do not allow unwind tables to be generated by default for m32. fnon-call-exceptions will override this, regardless of what we do. */ if (generating_for_darwin_version < 10 *************** darwin_override_options (void) *** 3395,3402 **** && write_symbols == DWARF2_DEBUG) flag_var_tracking_uninit = flag_var_tracking; ! /* Final check on PCI options; for Darwin these are not dependent on the PIE ! ones, although PIE does require PIC to support it. */ if (MACHO_DYNAMIC_NO_PIC_P) { if (flag_pic) --- 3481,3497 ---- && write_symbols == DWARF2_DEBUG) flag_var_tracking_uninit = flag_var_tracking; ! if (global_options_set.x_flag_pie && flag_pie) ! { ! /* This is a little complicated, to match Xcode tools. ! For Darwin, PIE requires PIC codegen, but otherwise is only a link- ! time change. For almost all Darwin, we do not report __PIE__; the ! exception is Darwin12-17 and for 32b only. */ ! flag_pie = generating_for_darwin_version >= 12 && !TARGET_64BIT ? 2 : 0; ! flag_pic = 2; /* We always set this. */ ! } ! ! /* Final check on PIC options. */ if (MACHO_DYNAMIC_NO_PIC_P) { if (flag_pic) *************** darwin_patch_builtins (void) *** 3501,3506 **** --- 3596,3624 ---- } #endif + void + darwin_rename_builtins (void) + { + } + + /* Implementation for the TARGET_LIBC_HAS_FUNCTION hook. */ + + bool + darwin_libc_has_function (enum function_class fn_class, + tree type ATTRIBUTE_UNUSED) + { + if (fn_class == function_sincos && darwin_macosx_version_min) + return (strverscmp (darwin_macosx_version_min, "10.9") >= 0); + #if DARWIN_PPC && SUPPORT_DARWIN_LEGACY + if (fn_class == function_c99_math_complex + || fn_class == function_c99_misc) + return (TARGET_64BIT + || (darwin_macosx_version_min && + strverscmp (darwin_macosx_version_min, "10.3") >= 0)); + #endif + return true; + } + /* CFStrings implementation. */ static GTY(()) tree cfstring_class_reference = NULL_TREE; static GTY(()) tree cfstring_type_node = NULL_TREE; *************** typedef struct GTY ((for_user)) cfstring *** 3518,3524 **** /* The string literal. */ tree literal; /* The resulting constant CFString. */ ! tree constructor; } cfstring_descriptor; struct cfstring_hasher : ggc_ptr_hash --- 3636,3642 ---- /* The string literal. */ tree literal; /* The resulting constant CFString. */ ! tree ccf_str; } cfstring_descriptor; struct cfstring_hasher : ggc_ptr_hash *************** darwin_init_cfstring_builtins (unsigned *** 3593,3599 **** /* Make a lang-specific section - dup_lang_specific_decl makes a new node in place of the existing, which may be NULL. */ DECL_LANG_SPECIFIC (cfsfun) = NULL; ! (*lang_hooks.dup_lang_specific_decl) (cfsfun); set_decl_built_in_function (cfsfun, BUILT_IN_MD, darwin_builtin_cfstring); lang_hooks.builtin_function (cfsfun); --- 3711,3717 ---- /* Make a lang-specific section - dup_lang_specific_decl makes a new node in place of the existing, which may be NULL. */ DECL_LANG_SPECIFIC (cfsfun) = NULL; ! lang_hooks.dup_lang_specific_decl (cfsfun); set_decl_built_in_function (cfsfun, BUILT_IN_MD, darwin_builtin_cfstring); lang_hooks.builtin_function (cfsfun); *************** darwin_init_cfstring_builtins (unsigned *** 3604,3610 **** TREE_PUBLIC (cfstring_class_reference) = 1; DECL_ARTIFICIAL (cfstring_class_reference) = 1; ! (*lang_hooks.decls.pushdecl) (cfstring_class_reference); DECL_EXTERNAL (cfstring_class_reference) = 1; rest_of_decl_compilation (cfstring_class_reference, 0, 0); --- 3722,3728 ---- TREE_PUBLIC (cfstring_class_reference) = 1; DECL_ARTIFICIAL (cfstring_class_reference) = 1; ! lang_hooks.decls.pushdecl (cfstring_class_reference); DECL_EXTERNAL (cfstring_class_reference) = 1; rest_of_decl_compilation (cfstring_class_reference, 0, 0); *************** tree *** 3618,3624 **** darwin_fold_builtin (tree fndecl, int n_args, tree *argp, bool ARG_UNUSED (ignore)) { ! unsigned int fcode = DECL_MD_FUNCTION_CODE (fndecl); if (fcode == darwin_builtin_cfstring) { --- 3736,3742 ---- darwin_fold_builtin (tree fndecl, int n_args, tree *argp, bool ARG_UNUSED (ignore)) { ! int fcode = DECL_MD_FUNCTION_CODE (fndecl); if (fcode == darwin_builtin_cfstring) { *************** darwin_fold_builtin (tree fndecl, int n_ *** 3641,3666 **** return NULL_TREE; } - void - darwin_rename_builtins (void) - { - } - - bool - darwin_libc_has_function (enum function_class fn_class, - tree type ATTRIBUTE_UNUSED) - { - if (fn_class == function_sincos) - return (strverscmp (darwin_macosx_version_min, "10.9") >= 0); - - if (fn_class == function_c99_math_complex - || fn_class == function_c99_misc) - return (TARGET_64BIT - || strverscmp (darwin_macosx_version_min, "10.3") >= 0); - - return true; - } - hashval_t cfstring_hasher::hash (cfstring_descriptor *ptr) { --- 3759,3764 ---- *************** darwin_build_constant_cfstring (tree str *** 3758,3786 **** build_int_cst (TREE_TYPE (field), length)); constructor = build_constructor (ccfstring_type_node, v); ! TREE_READONLY (constructor) = 1; ! TREE_CONSTANT (constructor) = 1; ! TREE_STATIC (constructor) = 1; ! /* Fromage: The C++ flavor of 'build_unary_op' expects constructor nodes ! to have the TREE_HAS_CONSTRUCTOR (...) bit set. However, this file is ! being built without any knowledge of C++ tree accessors; hence, we shall ! use the generic accessor that TREE_HAS_CONSTRUCTOR actually maps to! */ if (darwin_running_cxx) TREE_LANG_FLAG_4 (constructor) = 1; /* TREE_HAS_CONSTRUCTOR */ /* Create an anonymous global variable for this CFString. */ ! var = build_decl (input_location, CONST_DECL, NULL, TREE_TYPE (constructor)); ! DECL_ARTIFICIAL (var) = 1; ! TREE_STATIC (var) = 1; DECL_INITIAL (var) = constructor; ! /* FIXME: This should use a translation_unit_decl to indicate file scope. */ DECL_CONTEXT (var) = NULL_TREE; ! desc->constructor = var; } ! addr = build1 (ADDR_EXPR, pccfstring_type_node, desc->constructor); TREE_CONSTANT (addr) = 1; return addr; --- 3856,3892 ---- build_int_cst (TREE_TYPE (field), length)); constructor = build_constructor (ccfstring_type_node, v); ! TREE_READONLY (constructor) = true; ! TREE_CONSTANT (constructor) = true; ! TREE_STATIC (constructor) = true; ! /* This file is being built without any knowledge of C++ tree accessors; ! hence, we shall use the generic accessor to set TREE_HAS_CONSTRUCTOR. ! ??? Is this actually used any more? */ if (darwin_running_cxx) TREE_LANG_FLAG_4 (constructor) = 1; /* TREE_HAS_CONSTRUCTOR */ /* Create an anonymous global variable for this CFString. */ ! var = build_decl (input_location, VAR_DECL, NULL, TREE_TYPE (constructor)); ! char *name = xasprintf ("__anon_cfstring.%u", DECL_UID (var)); ! DECL_NAME (var) = get_identifier (name); ! free (name); ! DECL_ARTIFICIAL (var) = true; ! TREE_STATIC (var) = true; ! TREE_READONLY (var) = true; ! TREE_CONSTANT (var) = true; DECL_INITIAL (var) = constructor; ! /* global namespace. */ DECL_CONTEXT (var) = NULL_TREE; ! DECL_INITIAL (var) = constructor; ! DECL_USER_ALIGN (var) = 1; ! lang_hooks.decls.pushdecl (var); ! rest_of_decl_compilation (var, 1, 0); ! desc->ccf_str = var; } ! addr = build1 (ADDR_EXPR, pccfstring_type_node, desc->ccf_str); TREE_CONSTANT (addr) = 1; return addr; *************** darwin_function_section (tree decl, enum *** 3845,3855 **** if (decl && DECL_SECTION_NAME (decl) != NULL) return get_named_section (decl, NULL, 0); ! /* We always put unlikely executed stuff in the cold section. */ if (freq == NODE_FREQUENCY_UNLIKELY_EXECUTED) return (use_coal) ? darwin_sections[text_cold_coal_section] : darwin_sections[text_cold_section]; /* If we have LTO *and* feedback information, then let LTO handle the function ordering, it makes a better job (for normal, hot, startup and exit - hence the bailout for cold above). */ --- 3951,3972 ---- if (decl && DECL_SECTION_NAME (decl) != NULL) return get_named_section (decl, NULL, 0); ! /* We always put unlikely executed stuff in the cold section; we have to put ! this ahead of the global init section, since partitioning within a section ! breaks some assumptions made in the DWARF handling. */ if (freq == NODE_FREQUENCY_UNLIKELY_EXECUTED) return (use_coal) ? darwin_sections[text_cold_coal_section] : darwin_sections[text_cold_section]; + /* Intercept functions in global init; these are placed in separate sections. + FIXME: there should be some neater way to do this, FIXME we should be able + to partition within a section. */ + if (DECL_NAME (decl) + && (strncmp (IDENTIFIER_POINTER (DECL_NAME (decl)), "_GLOBAL__sub_I", 14) == 0 + || strncmp (IDENTIFIER_POINTER (DECL_NAME (decl)), + "__static_initialization_and_destruction", 39) == 0)) + return darwin_sections[static_init_section]; + /* If we have LTO *and* feedback information, then let LTO handle the function ordering, it makes a better job (for normal, hot, startup and exit - hence the bailout for cold above). */ diff -Nrcpad gcc-11.4.0/gcc/config/darwin.h gcc-11.5.0/gcc/config/darwin.h *** gcc-11.4.0/gcc/config/darwin.h Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/darwin.h Fri Jul 19 05:52:43 2024 *************** extern GTY(()) int darwin_ms_struct; *** 131,140 **** cases where these driver opts are used multiple times, or to control operations on more than one command (e.g. dynamiclib). These are handled specially and we then add %= 10.7 mmacosx-version-min= -no_pie) }" #define DARWIN_CC1_SPEC \ ! "%= 10.7 mmacosx-version-min= -no_pie) }" #define DARWIN_CC1_SPEC \ ! "%< 10.6 10.7 mmacosx-version-min= -ld10-uwfef) \ %(link_gcc_c_sequence) \ ! %{!nodefaultexport:%{dylib|dynamiclib|bundle: \ ! %:version-compare(>= 10.11 asm_macosx_version_min= -U) \ ! %:version-compare(>= 10.11 asm_macosx_version_min= ___emutls_get_address) \ ! %:version-compare(>= 10.11 asm_macosx_version_min= -exported_symbol) \ ! %:version-compare(>= 10.11 asm_macosx_version_min= ___emutls_get_address) \ ! %:version-compare(>= 10.11 asm_macosx_version_min= -U) \ ! %:version-compare(>= 10.11 asm_macosx_version_min= ___emutls_register_common) \ ! %:version-compare(>= 10.11 asm_macosx_version_min= -exported_symbol) \ ! %:version-compare(>= 10.11 asm_macosx_version_min= ___emutls_register_common) \ }} \ }}}\ %{!r:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} %{F*} "\ --- 367,381 ---- %(link_ssp) \ %:version-compare(>< 10.6 10.7 mmacosx-version-min= -ld10-uwfef) \ %(link_gcc_c_sequence) \ ! %{!nodefaultexport: \ ! %{%:version-compare(>= 10.11 asm_macosx_version_min= -U): \ ! ___emutls_get_address -exported_symbol ___emutls_get_address \ ! -U ___emutls_register_common \ ! -exported_symbol ___emutls_register_common \ ! -U ___gcc_nested_func_ptr_created \ ! -exported_symbol ___gcc_nested_func_ptr_created \ ! -U ___gcc_nested_func_ptr_deleted \ ! -exported_symbol ___gcc_nested_func_ptr_deleted \ }} \ }}}\ %{!r:%{!nostdlib:%{!nostartfiles:%E}}} %{T*} %{F*} "\ *************** extern GTY(()) int darwin_ms_struct; *** 500,522 **** #undef REAL_LIBGCC_SPEC #define REAL_LIBGCC_SPEC \ "%{static-libgcc|static: \ ! %:version-compare(!> 10.6 mmacosx-version-min= -lgcc_eh) \ ! %:version-compare(>= 10.6 mmacosx-version-min= -lemutls_w); \ shared-libgcc|fexceptions|fobjc-exceptions|fgnu-runtime: \ %:version-compare(!> 10.11 mmacosx-version-min= -lgcc_s.1.1) \ - %:version-compare(>= 10.11 mmacosx-version-min= -lemutls_w) \ %:version-compare(!> 10.3.9 mmacosx-version-min= -lgcc_eh) \ %:version-compare(>< 10.3.9 10.5 mmacosx-version-min= -lgcc_s.10.4) \ ! %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5); \ ! : -lemutls_w \ } -lgcc " /* We specify crt0.o as -lcrt0.o so that ld will search the library path. */ #undef STARTFILE_SPEC #define STARTFILE_SPEC \ ! "%{dynamiclib: %(darwin_dylib1) %{fgnu-tm: -lcrttms.o}} \ ! %{!dynamiclib:%{bundle:%(darwin_bundle1)} \ %{!bundle:%{pg:%{static:-lgcrt0.o} \ %{!static:%{object:-lgcrt0.o} \ %{!object:%{preload:-lgcrt0.o} \ --- 502,529 ---- #undef REAL_LIBGCC_SPEC #define REAL_LIBGCC_SPEC \ "%{static-libgcc|static: \ ! %:version-compare(!> 10.6 mmacosx-version-min= -lgcc_eh); \ shared-libgcc|fexceptions|fobjc-exceptions|fgnu-runtime: \ %:version-compare(!> 10.11 mmacosx-version-min= -lgcc_s.1.1) \ %:version-compare(!> 10.3.9 mmacosx-version-min= -lgcc_eh) \ %:version-compare(>< 10.3.9 10.5 mmacosx-version-min= -lgcc_s.10.4) \ ! %:version-compare(>< 10.5 10.6 mmacosx-version-min= -lgcc_s.10.5) \ } -lgcc " + #define DARWIN_WEAK_CRTS \ + "%{static-libgcc|static: \ + %:version-compare(>= 10.6 mmacosx-version-min= -lemutls_w) ; \ + shared-libgcc|fexceptions|fobjc-exceptions|fgnu-runtime: \ + %:version-compare(>= 10.11 mmacosx-version-min= -lemutls_w) ; \ + : -lemutls_w \ + }" + /* We specify crt0.o as -lcrt0.o so that ld will search the library path. */ #undef STARTFILE_SPEC #define STARTFILE_SPEC \ ! "%{dynamiclib|shared: %(darwin_dylib1) %{fgnu-tm: -lcrttms.o}} \ ! %{!dynamiclib:%{!shared:%{bundle:%(darwin_bundle1)} \ %{!bundle:%{pg:%{static:-lgcrt0.o} \ %{!static:%{object:-lgcrt0.o} \ %{!object:%{preload:-lgcrt0.o} \ *************** extern GTY(()) int darwin_ms_struct; *** 527,534 **** %{!static:%{object:-lcrt0.o} \ %{!object:%{preload:-lcrt0.o} \ %{!preload: %(darwin_crt1) \ ! %(darwin_crt2)}}}}}} \ ! %(darwin_crt3) % Add to the end of the system framework include path. diff -Nrcpad gcc-11.4.0/gcc/config/i386/amxtileintrin.h gcc-11.5.0/gcc/config/i386/amxtileintrin.h *** gcc-11.4.0/gcc/config/i386/amxtileintrin.h Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/i386/amxtileintrin.h Fri Jul 19 05:52:43 2024 *************** extern __inline void *** 39,52 **** __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _tile_loadconfig (const void *__config) { ! __asm__ volatile ("ldtilecfg\t%X0" :: "m" (*((const void **)__config))); } extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _tile_storeconfig (void *__config) { ! __asm__ volatile ("sttilecfg\t%X0" : "=m" (*((void **)__config))); } extern __inline void --- 39,52 ---- __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _tile_loadconfig (const void *__config) { ! __builtin_ia32_ldtilecfg (__config); } extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__)) _tile_storeconfig (void *__config) { ! __builtin_ia32_sttilecfg (__config); } extern __inline void diff -Nrcpad gcc-11.4.0/gcc/config/i386/driver-i386.c gcc-11.5.0/gcc/config/i386/driver-i386.c *** gcc-11.4.0/gcc/config/i386/driver-i386.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/i386/driver-i386.c Fri Jul 19 05:52:43 2024 *************** const char *host_detect_local_cpu (int a *** 464,469 **** --- 464,471 ---- processor = PROCESSOR_GEODE; else if (has_feature (FEATURE_MOVBE) && family == 22) processor = PROCESSOR_BTVER2; + else if (has_feature (FEATURE_AVX512F)) + processor = PROCESSOR_ZNVER4; else if (has_feature (FEATURE_VAES)) processor = PROCESSOR_ZNVER3; else if (has_feature (FEATURE_CLWB)) *************** const char *host_detect_local_cpu (int a *** 767,772 **** --- 769,777 ---- case PROCESSOR_ZNVER3: cpu = "znver3"; break; + case PROCESSOR_ZNVER4: + cpu = "znver4"; + break; case PROCESSOR_BTVER1: cpu = "btver1"; break; diff -Nrcpad gcc-11.4.0/gcc/config/i386/i386-builtin.def gcc-11.5.0/gcc/config/i386/i386-builtin.def *** gcc-11.4.0/gcc/config/i386/i386-builtin.def Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/i386/i386-builtin.def Fri Jul 19 05:52:43 2024 *************** BDESC (OPTION_MASK_ISA_XSAVES | OPTION_M *** 126,131 **** --- 126,135 ---- BDESC (OPTION_MASK_ISA_XSAVES | OPTION_MASK_ISA_64BIT, 0, CODE_FOR_nothing, "__builtin_ia32_xrstors64", IX86_BUILTIN_XRSTORS64, UNKNOWN, (int) VOID_FTYPE_PVOID_INT64) BDESC (OPTION_MASK_ISA_XSAVEC | OPTION_MASK_ISA_64BIT, 0, CODE_FOR_nothing, "__builtin_ia32_xsavec64", IX86_BUILTIN_XSAVEC64, UNKNOWN, (int) VOID_FTYPE_PVOID_INT64) + /* LDFILECFG and STFILECFG. */ + BDESC (OPTION_MASK_ISA_64BIT, OPTION_MASK_ISA2_AMX_TILE, CODE_FOR_nothing, "__builtin_ia32_ldtilecfg", IX86_BUILTIN_LDTILECFG, UNKNOWN, (int) VOID_FTYPE_PCVOID) + BDESC (OPTION_MASK_ISA_64BIT, OPTION_MASK_ISA2_AMX_TILE, CODE_FOR_nothing, "__builtin_ia32_sttilecfg", IX86_BUILTIN_STTILECFG, UNKNOWN, (int) VOID_FTYPE_PVOID) + /* SSE */ BDESC (OPTION_MASK_ISA_SSE, 0, CODE_FOR_movv4sf_internal, "__builtin_ia32_storeups", IX86_BUILTIN_STOREUPS, UNKNOWN, (int) VOID_FTYPE_PFLOAT_V4SF) BDESC (OPTION_MASK_ISA_SSE, 0, CODE_FOR_sse_movntv4sf, "__builtin_ia32_movntps", IX86_BUILTIN_MOVNTPS, UNKNOWN, (int) VOID_FTYPE_PFLOAT_V4SF) diff -Nrcpad gcc-11.4.0/gcc/config/i386/i386-c.c gcc-11.5.0/gcc/config/i386/i386-c.c *** gcc-11.4.0/gcc/config/i386/i386-c.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/i386/i386-c.c Fri Jul 19 05:52:43 2024 *************** ix86_target_macros_internal (HOST_WIDE_I *** 132,137 **** --- 132,141 ---- def_or_undef (parse_in, "__znver3"); def_or_undef (parse_in, "__znver3__"); break; + case PROCESSOR_ZNVER4: + def_or_undef (parse_in, "__znver4"); + def_or_undef (parse_in, "__znver4__"); + break; case PROCESSOR_BTVER1: def_or_undef (parse_in, "__btver1"); def_or_undef (parse_in, "__btver1__"); *************** ix86_target_macros_internal (HOST_WIDE_I *** 326,331 **** --- 330,338 ---- case PROCESSOR_ZNVER3: def_or_undef (parse_in, "__tune_znver3__"); break; + case PROCESSOR_ZNVER4: + def_or_undef (parse_in, "__tune_znver4__"); + break; case PROCESSOR_BTVER1: def_or_undef (parse_in, "__tune_btver1__"); break; diff -Nrcpad gcc-11.4.0/gcc/config/i386/i386-expand.c gcc-11.5.0/gcc/config/i386/i386-expand.c *** gcc-11.4.0/gcc/config/i386/i386-expand.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/i386/i386-expand.c Fri Jul 19 05:52:43 2024 *************** ix86_expand_move (machine_mode mode, rtx *** 272,277 **** --- 272,294 ---- default: break; + + case SUBREG: + /* As not all values in XFmode are representable in real_value, + we might be called with unfoldable SUBREGs of constants. */ + if (mode == XFmode + && CONSTANT_P (SUBREG_REG (op1)) + && can_create_pseudo_p ()) + { + machine_mode imode = GET_MODE (SUBREG_REG (op1)); + rtx r = force_const_mem (imode, SUBREG_REG (op1)); + if (r) + r = validize_mem (r); + else + r = force_reg (imode, SUBREG_REG (op1)); + op1 = simplify_gen_subreg (mode, r, imode, SUBREG_BYTE (op1)); + } + break; } if ((flag_pic || MACHOPIC_INDIRECT) *************** ix86_expand_set_or_cpymem (rtx dst, rtx *** 7362,7367 **** --- 7379,7386 ---- if (TARGET_AVX256_SPLIT_REGS && GET_MODE_BITSIZE (move_mode) > 128) move_mode = TImode; + if (TARGET_AVX512_SPLIT_REGS && GET_MODE_BITSIZE (move_mode) > 256) + move_mode = OImode; /* Find the corresponding vector mode with the same size as MOVE_MODE. MOVE_MODE is an integer mode at the moment (SI, DI, TI, etc.). */ *************** ix86_expand_builtin (tree exp, rtx targe *** 12024,12029 **** --- 12043,12067 ---- emit_insn (pat); return 0; + case IX86_BUILTIN_LDTILECFG: + case IX86_BUILTIN_STTILECFG: + arg0 = CALL_EXPR_ARG (exp, 0); + op0 = expand_normal (arg0); + + if (!address_operand (op0, VOIDmode)) + { + op0 = convert_memory_address (Pmode, op0); + op0 = copy_addr_to_reg (op0); + } + op0 = gen_rtx_MEM (XImode, op0); + if (fcode == IX86_BUILTIN_LDTILECFG) + icode = CODE_FOR_ldtilecfg; + else + icode = CODE_FOR_sttilecfg; + pat = GEN_FCN (icode) (op0); + emit_insn (pat); + return 0; + case IX86_BUILTIN_LLWPCB: arg0 = CALL_EXPR_ARG (exp, 0); op0 = expand_normal (arg0); diff -Nrcpad gcc-11.4.0/gcc/config/i386/i386-features.c gcc-11.5.0/gcc/config/i386/i386-features.c *** gcc-11.4.0/gcc/config/i386/i386-features.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/i386/i386-features.c Fri Jul 19 05:52:43 2024 *************** ix86_add_reg_usage_to_vzerouppers (void) *** 1837,1845 **** static unsigned int rest_of_handle_insert_vzeroupper (void) { ! if (TARGET_VZEROUPPER ! && flag_expensive_optimizations ! && !optimize_size) { /* vzeroupper instructions are inserted immediately after reload to account for possible spills from 256bit or 512bit registers. The pass --- 1837,1843 ---- static unsigned int rest_of_handle_insert_vzeroupper (void) { ! if (TARGET_VZEROUPPER) { /* vzeroupper instructions are inserted immediately after reload to account for possible spills from 256bit or 512bit registers. The pass *************** public: *** 1883,1891 **** virtual bool gate (function *) { return TARGET_AVX ! && ((TARGET_VZEROUPPER ! && flag_expensive_optimizations ! && !optimize_size) || cfun->machine->has_explicit_vzeroupper); } --- 1881,1887 ---- virtual bool gate (function *) { return TARGET_AVX ! && (TARGET_VZEROUPPER || cfun->machine->has_explicit_vzeroupper); } diff -Nrcpad gcc-11.4.0/gcc/config/i386/i386-options.c gcc-11.5.0/gcc/config/i386/i386-options.c *** gcc-11.4.0/gcc/config/i386/i386-options.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/i386/i386-options.c Fri Jul 19 05:52:43 2024 *************** along with GCC; see the file COPYING3. *** 137,142 **** --- 137,147 ---- #define m_GOLDMONT_PLUS (HOST_WIDE_INT_1U< isn%'t currently supported with SEH"); if (!(opts_set->x_target_flags & MASK_VZEROUPPER) ! && TARGET_EMIT_VZEROUPPER) opts->x_target_flags |= MASK_VZEROUPPER; if (!(opts_set->x_target_flags & MASK_STV)) opts->x_target_flags |= MASK_STV; --- 2856,2864 ---- sorry ("%<-mcall-ms2sysv-xlogues%> isn%'t currently supported with SEH"); if (!(opts_set->x_target_flags & MASK_VZEROUPPER) ! && TARGET_EMIT_VZEROUPPER ! && flag_expensive_optimizations ! && !optimize_size) opts->x_target_flags |= MASK_VZEROUPPER; if (!(opts_set->x_target_flags & MASK_STV)) opts->x_target_flags |= MASK_STV; *************** ix86_option_override_internal (bool main *** 3057,3063 **** = (cf_protection_level) (opts->x_flag_cf_protection | CF_SET); } ! if (ix86_tune_features [X86_TUNE_AVOID_256FMA_CHAINS]) SET_OPTION_IF_UNSET (opts, opts_set, param_avoid_fma_max_bits, 256); else if (ix86_tune_features [X86_TUNE_AVOID_128FMA_CHAINS]) SET_OPTION_IF_UNSET (opts, opts_set, param_avoid_fma_max_bits, 128); --- 3066,3074 ---- = (cf_protection_level) (opts->x_flag_cf_protection | CF_SET); } ! if (ix86_tune_features [X86_TUNE_AVOID_512FMA_CHAINS]) ! SET_OPTION_IF_UNSET (opts, opts_set, param_avoid_fma_max_bits, 512); ! else if (ix86_tune_features [X86_TUNE_AVOID_256FMA_CHAINS]) SET_OPTION_IF_UNSET (opts, opts_set, param_avoid_fma_max_bits, 256); else if (ix86_tune_features [X86_TUNE_AVOID_128FMA_CHAINS]) SET_OPTION_IF_UNSET (opts, opts_set, param_avoid_fma_max_bits, 128); diff -Nrcpad gcc-11.4.0/gcc/config/i386/i386.c gcc-11.5.0/gcc/config/i386/i386.c *** gcc-11.4.0/gcc/config/i386/i386.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/i386/i386.c Fri Jul 19 05:52:43 2024 *************** ix86_elim_entry_set_got (rtx reg) *** 8058,8067 **** rtx pat = PATTERN (c_insn); if (GET_CODE (pat) == PARALLEL) { ! rtx vec = XVECEXP (pat, 0, 0); ! if (GET_CODE (vec) == SET ! && XINT (XEXP (vec, 1), 1) == UNSPEC_SET_GOT ! && REGNO (XEXP (vec, 0)) == REGNO (reg)) delete_insn (c_insn); } } --- 8058,8068 ---- rtx pat = PATTERN (c_insn); if (GET_CODE (pat) == PARALLEL) { ! rtx set = XVECEXP (pat, 0, 0); ! if (GET_CODE (set) == SET ! && GET_CODE (SET_SRC (set)) == UNSPEC ! && XINT (SET_SRC (set), 1) == UNSPEC_SET_GOT ! && REGNO (SET_DEST (set)) == REGNO (reg)) delete_insn (c_insn); } } *************** output_pic_addr_const (FILE *file, rtx x *** 11978,11985 **** assemble_name (asm_out_file, buf); break; ! case CONST_INT: ! fprintf (file, HOST_WIDE_INT_PRINT_DEC, INTVAL (x)); break; case CONST: --- 11979,11986 ---- assemble_name (asm_out_file, buf); break; ! CASE_CONST_SCALAR_INT: ! output_addr_const (file, x); break; case CONST: *************** ix86_avx_u128_mode_needed (rtx_insn *ins *** 14119,14126 **** modes wider than 256 bits. It's only safe to issue a vzeroupper if all SSE registers are clobbered. */ const function_abi &abi = insn_callee_abi (insn); ! if (!hard_reg_set_subset_p (reg_class_contents[SSE_REGS], ! abi.mode_clobbers (V4DImode))) return AVX_U128_ANY; return AVX_U128_CLEAN; --- 14120,14131 ---- modes wider than 256 bits. It's only safe to issue a vzeroupper if all SSE registers are clobbered. */ const function_abi &abi = insn_callee_abi (insn); ! /* Should be safe to issue an vzeroupper before sibling_call_p. ! Also there not mode_exit for sibling_call, so there could be ! missing vzeroupper for that. */ ! if (!(SIBLING_CALL_P (insn) ! || hard_reg_set_subset_p (reg_class_contents[SSE_REGS], ! abi.mode_clobbers (V4DImode)))) return AVX_U128_ANY; return AVX_U128_CLEAN; *************** ix86_avx_u128_mode_after (int mode, rtx_ *** 14244,14250 **** bool avx_upper_reg_found = false; note_stores (insn, ix86_check_avx_upper_stores, &avx_upper_reg_found); ! return avx_upper_reg_found ? AVX_U128_DIRTY : AVX_U128_CLEAN; } /* Otherwise, return current mode. Remember that if insn --- 14249,14267 ---- bool avx_upper_reg_found = false; note_stores (insn, ix86_check_avx_upper_stores, &avx_upper_reg_found); ! if (avx_upper_reg_found) ! return AVX_U128_DIRTY; ! ! /* If the function desn't clobber any sse registers or only clobber ! 128-bit part, Then vzeroupper isn't issued before the function exit. ! the status not CLEAN but ANY after the function. */ ! const function_abi &abi = insn_callee_abi (insn); ! if (!(SIBLING_CALL_P (insn) ! || hard_reg_set_subset_p (reg_class_contents[SSE_REGS], ! abi.mode_clobbers (V4DImode)))) ! return AVX_U128_ANY; ! ! return AVX_U128_CLEAN; } /* Otherwise, return current mode. Remember that if insn *************** ix86_vec_cost (machine_mode mode, int co *** 19635,19644 **** if (GET_MODE_BITSIZE (mode) == 128 && TARGET_SSE_SPLIT_REGS) ! return cost * 2; ! if (GET_MODE_BITSIZE (mode) > 128 && TARGET_AVX256_SPLIT_REGS) return cost * GET_MODE_BITSIZE (mode) / 128; return cost; } --- 19652,19664 ---- if (GET_MODE_BITSIZE (mode) == 128 && TARGET_SSE_SPLIT_REGS) ! return cost * GET_MODE_BITSIZE (mode) / 64; ! else if (GET_MODE_BITSIZE (mode) > 128 && TARGET_AVX256_SPLIT_REGS) return cost * GET_MODE_BITSIZE (mode) / 128; + else if (GET_MODE_BITSIZE (mode) > 256 + && TARGET_AVX512_SPLIT_REGS) + return cost * GET_MODE_BITSIZE (mode) / 256; return cost; } *************** x86_function_profiler (FILE *file, int l *** 20828,20834 **** if (TARGET_64BIT) { #ifndef NO_PROFILE_COUNTERS ! fprintf (file, "\tleaq\t%sP%d(%%rip),%%r11\n", LPREFIX, labelno); #endif if (!TARGET_PECOFF) --- 20848,20857 ---- if (TARGET_64BIT) { #ifndef NO_PROFILE_COUNTERS ! if (ASSEMBLER_DIALECT == ASM_INTEL) ! fprintf (file, "\tlea\tr11, %sP%d[rip]\n", LPREFIX, labelno); ! else ! fprintf (file, "\tleaq\t%sP%d(%%rip), %%r11\n", LPREFIX, labelno); #endif if (!TARGET_PECOFF) *************** x86_function_profiler (FILE *file, int l *** 20839,20850 **** /* NB: R10 is caller-saved. Although it can be used as a static chain register, it is preserved when calling mcount for nested functions. */ ! fprintf (file, "1:\tmovabsq\t$%s, %%r10\n\tcall\t*%%r10\n", ! mcount_name); break; case CM_LARGE_PIC: #ifdef NO_PROFILE_COUNTERS ! fprintf (file, "1:\tmovabsq\t$_GLOBAL_OFFSET_TABLE_-1b, %%r11\n"); fprintf (file, "\tleaq\t1b(%%rip), %%r10\n"); fprintf (file, "\taddq\t%%r11, %%r10\n"); fprintf (file, "\tmovabsq\t$%s@PLTOFF, %%r11\n", mcount_name); --- 20862,20890 ---- /* NB: R10 is caller-saved. Although it can be used as a static chain register, it is preserved when calling mcount for nested functions. */ ! if (ASSEMBLER_DIALECT == ASM_INTEL) ! fprintf (file, "1:\tmovabs\tr10, OFFSET FLAT:%s\n" ! "\tcall\tr10\n", mcount_name); ! else ! fprintf (file, "1:\tmovabsq\t$%s, %%r10\n\tcall\t*%%r10\n", ! mcount_name); break; case CM_LARGE_PIC: #ifdef NO_PROFILE_COUNTERS ! if (ASSEMBLER_DIALECT == ASM_INTEL) ! { ! fprintf (file, "1:movabs\tr11, " ! "OFFSET FLAT:_GLOBAL_OFFSET_TABLE_-1b\n"); ! fprintf (file, "\tlea\tr10, 1b[rip]\n"); ! fprintf (file, "\tadd\tr10, r11\n"); ! fprintf (file, "\tmovabs\tr11, OFFSET FLAT:%s@PLTOFF\n", ! mcount_name); ! fprintf (file, "\tadd\tr10, r11\n"); ! fprintf (file, "\tcall\tr10\n"); ! break; ! } ! fprintf (file, ! "1:\tmovabsq\t$_GLOBAL_OFFSET_TABLE_-1b, %%r11\n"); fprintf (file, "\tleaq\t1b(%%rip), %%r10\n"); fprintf (file, "\taddq\t%%r11, %%r10\n"); fprintf (file, "\tmovabsq\t$%s@PLTOFF, %%r11\n", mcount_name); *************** x86_function_profiler (FILE *file, int l *** 20856,20862 **** break; case CM_SMALL_PIC: case CM_MEDIUM_PIC: ! fprintf (file, "1:\tcall\t*%s@GOTPCREL(%%rip)\n", mcount_name); break; default: x86_print_call_or_nop (file, mcount_name); --- 20896,20906 ---- break; case CM_SMALL_PIC: case CM_MEDIUM_PIC: ! if (ASSEMBLER_DIALECT == ASM_INTEL) ! fprintf (file, "1:\tcall\t[QWORD PTR %s@GOTPCREL[rip]]\n", ! mcount_name); ! else ! fprintf (file, "1:\tcall\t*%s@GOTPCREL(%%rip)\n", mcount_name); break; default: x86_print_call_or_nop (file, mcount_name); *************** x86_function_profiler (FILE *file, int l *** 20869,20891 **** else if (flag_pic) { #ifndef NO_PROFILE_COUNTERS ! fprintf (file, "\tleal\t%sP%d@GOTOFF(%%ebx),%%" PROFILE_COUNT_REGISTER "\n", ! LPREFIX, labelno); #endif ! fprintf (file, "1:\tcall\t*%s@GOT(%%ebx)\n", mcount_name); } else { #ifndef NO_PROFILE_COUNTERS ! fprintf (file, "\tmovl\t$%sP%d,%%" PROFILE_COUNT_REGISTER "\n", ! LPREFIX, labelno); #endif x86_print_call_or_nop (file, mcount_name); } if (flag_record_mcount ! || lookup_attribute ("fentry_section", ! DECL_ATTRIBUTES (current_function_decl))) { const char *sname = "__mcount_loc"; --- 20913,20949 ---- else if (flag_pic) { #ifndef NO_PROFILE_COUNTERS ! if (ASSEMBLER_DIALECT == ASM_INTEL) ! fprintf (file, ! "\tlea\t" PROFILE_COUNT_REGISTER ", %sP%d@GOTOFF[ebx]\n", ! LPREFIX, labelno); ! else ! fprintf (file, ! "\tleal\t%sP%d@GOTOFF(%%ebx), %%" PROFILE_COUNT_REGISTER "\n", ! LPREFIX, labelno); #endif ! if (ASSEMBLER_DIALECT == ASM_INTEL) ! fprintf (file, "1:\tcall\t[DWORD PTR %s@GOT[ebx]]\n", mcount_name); ! else ! fprintf (file, "1:\tcall\t*%s@GOT(%%ebx)\n", mcount_name); } else { #ifndef NO_PROFILE_COUNTERS ! if (ASSEMBLER_DIALECT == ASM_INTEL) ! fprintf (file, ! "\tmov\t" PROFILE_COUNT_REGISTER ", OFFSET FLAT:%sP%d\n", ! LPREFIX, labelno); ! else ! fprintf (file, "\tmovl\t$%sP%d, %%" PROFILE_COUNT_REGISTER "\n", ! LPREFIX, labelno); #endif x86_print_call_or_nop (file, mcount_name); } if (flag_record_mcount ! || lookup_attribute ("fentry_section", ! DECL_ATTRIBUTES (current_function_decl))) { const char *sname = "__mcount_loc"; *************** ix86_reassociation_width (unsigned int o *** 22049,22060 **** /* Integer vector instructions execute in FP unit and can execute 3 additions and one multiplication per cycle. */ if ((ix86_tune == PROCESSOR_ZNVER1 || ix86_tune == PROCESSOR_ZNVER2 ! || ix86_tune == PROCESSOR_ZNVER3) && INTEGRAL_MODE_P (mode) && op != PLUS && op != MINUS) return 1; /* Account for targets that splits wide vectors into multiple parts. */ ! if (TARGET_AVX256_SPLIT_REGS && GET_MODE_BITSIZE (mode) > 128) div = GET_MODE_BITSIZE (mode) / 128; else if (TARGET_SSE_SPLIT_REGS && GET_MODE_BITSIZE (mode) > 64) div = GET_MODE_BITSIZE (mode) / 64; --- 22107,22120 ---- /* Integer vector instructions execute in FP unit and can execute 3 additions and one multiplication per cycle. */ if ((ix86_tune == PROCESSOR_ZNVER1 || ix86_tune == PROCESSOR_ZNVER2 ! || ix86_tune == PROCESSOR_ZNVER3 || ix86_tune == PROCESSOR_ZNVER4) && INTEGRAL_MODE_P (mode) && op != PLUS && op != MINUS) return 1; /* Account for targets that splits wide vectors into multiple parts. */ ! if (TARGET_AVX512_SPLIT_REGS && GET_MODE_BITSIZE (mode) > 256) ! div = GET_MODE_BITSIZE (mode) / 256; ! else if (TARGET_AVX256_SPLIT_REGS && GET_MODE_BITSIZE (mode) > 128) div = GET_MODE_BITSIZE (mode) / 128; else if (TARGET_SSE_SPLIT_REGS && GET_MODE_BITSIZE (mode) > 64) div = GET_MODE_BITSIZE (mode) / 64; diff -Nrcpad gcc-11.4.0/gcc/config/i386/i386.h gcc-11.5.0/gcc/config/i386/i386.h *** gcc-11.4.0/gcc/config/i386/i386.h Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/i386/i386.h Fri Jul 19 05:52:43 2024 *************** extern unsigned char ix86_tune_features[ *** 625,630 **** --- 625,632 ---- ix86_tune_features[X86_TUNE_SOFTWARE_PREFETCHING_BENEFICIAL] #define TARGET_AVX256_SPLIT_REGS \ ix86_tune_features[X86_TUNE_AVX256_SPLIT_REGS] + #define TARGET_AVX512_SPLIT_REGS \ + ix86_tune_features[X86_TUNE_AVX512_SPLIT_REGS] #define TARGET_GENERAL_REGS_SSE_SPILL \ ix86_tune_features[X86_TUNE_GENERAL_REGS_SSE_SPILL] #define TARGET_AVOID_MEM_OPND_FOR_CMOVE \ *************** enum processor_type *** 2418,2423 **** --- 2420,2426 ---- PROCESSOR_ZNVER1, PROCESSOR_ZNVER2, PROCESSOR_ZNVER3, + PROCESSOR_ZNVER4, PROCESSOR_max }; *************** constexpr wide_int_bitmask PTA_ALDERLAKE *** 2583,2588 **** --- 2586,2606 ---- | PTA_HRESET | PTA_KL | PTA_WIDEKL | PTA_AVXVNNI; constexpr wide_int_bitmask PTA_KNM = PTA_KNL | PTA_AVX5124VNNIW | PTA_AVX5124FMAPS | PTA_AVX512VPOPCNTDQ; + constexpr wide_int_bitmask PTA_ZNVER1 = PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 + | PTA_SSE3 | PTA_SSE4A | PTA_CX16 | PTA_ABM | PTA_SSSE3 | PTA_SSE4_1 + | PTA_SSE4_2 | PTA_AES | PTA_PCLMUL | PTA_AVX | PTA_AVX2 | PTA_BMI | PTA_BMI2 + | PTA_F16C | PTA_FMA | PTA_PRFCHW | PTA_FXSR | PTA_XSAVE | PTA_XSAVEOPT + | PTA_FSGSBASE | PTA_RDRND | PTA_MOVBE | PTA_MWAITX | PTA_ADX | PTA_RDSEED + | PTA_CLZERO | PTA_CLFLUSHOPT | PTA_XSAVEC | PTA_XSAVES | PTA_SHA | PTA_LZCNT + | PTA_POPCNT; + constexpr wide_int_bitmask PTA_ZNVER2 = PTA_ZNVER1 | PTA_CLWB | PTA_RDPID + | PTA_WBNOINVD; + constexpr wide_int_bitmask PTA_ZNVER3 = PTA_ZNVER2 | PTA_VAES | PTA_VPCLMULQDQ + | PTA_PKU; + constexpr wide_int_bitmask PTA_ZNVER4 = PTA_ZNVER3 | PTA_AVX512F | PTA_AVX512DQ + | PTA_AVX512IFMA | PTA_AVX512CD | PTA_AVX512BW | PTA_AVX512VL + | PTA_AVX512BF16 | PTA_AVX512VBMI | PTA_AVX512VBMI2 | PTA_GFNI + | PTA_AVX512VNNI | PTA_AVX512BITALG | PTA_AVX512VPOPCNTDQ; #ifndef GENERATOR_FILE diff -Nrcpad gcc-11.4.0/gcc/config/i386/i386.md gcc-11.5.0/gcc/config/i386/i386.md *** gcc-11.4.0/gcc/config/i386/i386.md Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/i386/i386.md Fri Jul 19 05:52:43 2024 *************** *** 319,324 **** --- 319,328 ---- ;; For HRESET support UNSPECV_HRESET + + ;; For AMX-TILE + UNSPECV_LDTILECFG + UNSPECV_STTILECFG ]) ;; Constants to represent rounding modes in the ROUND instruction *************** *** 458,464 **** ;; Processor type. (define_attr "cpu" "none,pentium,pentiumpro,geode,k6,athlon,k8,core2,nehalem, atom,slm,glm,haswell,generic,amdfam10,bdver1,bdver2,bdver3, ! bdver4,btver2,znver1,znver2,znver3" (const (symbol_ref "ix86_schedule"))) ;; A basic instruction type. Refinements due to arguments to be --- 462,468 ---- ;; Processor type. (define_attr "cpu" "none,pentium,pentiumpro,geode,k6,athlon,k8,core2,nehalem, atom,slm,glm,haswell,generic,amdfam10,bdver1,bdver2,bdver3, ! bdver4,btver2,znver1,znver2,znver3,znver4" (const (symbol_ref "ix86_schedule"))) ;; A basic instruction type. Refinements due to arguments to be *************** *** 1259,1265 **** (include "bdver1.md") (include "bdver3.md") (include "btver2.md") ! (include "znver1.md") (include "geode.md") (include "atom.md") (include "slm.md") --- 1263,1270 ---- (include "bdver1.md") (include "bdver3.md") (include "btver2.md") ! (include "znver.md") ! (include "znver4.md") (include "geode.md") (include "atom.md") (include "slm.md") *************** *** 2300,2306 **** (clobber (reg:CC FLAGS_REG))])] { int shift = ctz_hwi (UINTVAL (operands[1])); ! operands[1] = gen_int_mode (UINTVAL (operands[1]) >> shift, DImode); operands[2] = gen_int_mode (shift, QImode); }) --- 2305,2314 ---- (clobber (reg:CC FLAGS_REG))])] { int shift = ctz_hwi (UINTVAL (operands[1])); ! rtx op1 = gen_int_mode (UINTVAL (operands[1]) >> shift, DImode); ! if (ix86_endbr_immediate_operand (op1, VOIDmode)) ! FAIL; ! operands[1] = op1; operands[2] = gen_int_mode (shift, QImode); }) *************** *** 3361,3369 **** ;; Possible store forwarding (partial memory) stall in alternatives 4, 6 and 7. (define_insn "*movdf_internal" [(set (match_operand:DF 0 "nonimmediate_operand" ! "=Yf*f,m ,Yf*f,?r ,!o,?*r ,!o,!o,?r,?m,?r,?r,v,v,v,m,*x,*x,*x,m ,r ,v,r ,o ,r ,m") (match_operand:DF 1 "general_operand" ! "Yf*fm,Yf*f,G ,roF,r ,*roF,*r,F ,rm,rC,C ,F ,C,v,m,v,C ,*x,m ,*x,v,r ,roF,rF,rmF,rC"))] "!(MEM_P (operands[0]) && MEM_P (operands[1])) && (lra_in_progress || reload_completed || !CONST_DOUBLE_P (operands[1]) --- 3369,3377 ---- ;; Possible store forwarding (partial memory) stall in alternatives 4, 6 and 7. (define_insn "*movdf_internal" [(set (match_operand:DF 0 "nonimmediate_operand" ! "=Yf*f,m ,Yf*f,?r ,!o,?*r ,!o,!o,?r,?m,?r,?r,v,v,v,m,*x,*x,*x,m ,?r,?v,r ,o ,r ,m") (match_operand:DF 1 "general_operand" ! "Yf*fm,Yf*f,G ,roF,r ,*roF,*r,F ,rm,rC,C ,F ,C,v,m,v,C ,*x,m ,*x, v, r,roF,rF,rmF,rC"))] "!(MEM_P (operands[0]) && MEM_P (operands[1])) && (lra_in_progress || reload_completed || !CONST_DOUBLE_P (operands[1]) *************** *** 12734,12740 **** (const_int 1) (and:SI (match_operand:SI 2 "register_operand") ! (match_operand 3 "const_int_operand")))]) (label_ref (match_operand 4)) (pc))) (clobber (reg:CC FLAGS_REG))] --- 12742,12749 ---- (const_int 1) (and:SI (match_operand:SI 2 "register_operand") ! (match_operand 3 "const_int_operand"))) ! (const_int 0)]) (label_ref (match_operand 4)) (pc))) (clobber (reg:CC FLAGS_REG))] *************** *** 15315,15322 **** "! TARGET_POPCNT" { rtx scratch = gen_reg_rtx (QImode); ! emit_insn (gen_parityhi2_cmp (operands[1])); ix86_expand_setcc (scratch, ORDERED, gen_rtx_REG (CCmode, FLAGS_REG), const0_rtx); --- 15324,15333 ---- "! TARGET_POPCNT" { rtx scratch = gen_reg_rtx (QImode); + rtx tmp = gen_reg_rtx (HImode); ! emit_move_insn (tmp, operands[1]); ! emit_insn (gen_parityhi2_cmp (tmp)); ix86_expand_setcc (scratch, ORDERED, gen_rtx_REG (CCmode, FLAGS_REG), const0_rtx); *************** *** 21901,21906 **** --- 21912,21937 ---- [(set_attr "type" "other") (set_attr "length" "4")]) + (define_insn "ldtilecfg" + [(unspec_volatile [(match_operand:XI 0 "memory_operand" "m")] + UNSPECV_LDTILECFG)] + "TARGET_AMX_TILE" + "ldtilecfg\t%0" + [(set_attr "type" "other") + (set_attr "prefix" "maybe_evex") + (set_attr "memory" "load") + (set_attr "mode" "XI")]) + + (define_insn "sttilecfg" + [(set (match_operand:XI 0 "memory_operand" "=m") + (unspec_volatile:XI [(const_int 0)] UNSPECV_STTILECFG))] + "TARGET_AMX_TILE" + "sttilecfg\t%0" + [(set_attr "type" "other") + (set_attr "prefix" "maybe_evex") + (set_attr "memory" "store") + (set_attr "mode" "XI")]) + (include "mmx.md") (include "sse.md") (include "sync.md") diff -Nrcpad gcc-11.4.0/gcc/config/i386/i386.opt gcc-11.5.0/gcc/config/i386/i386.opt *** gcc-11.4.0/gcc/config/i386/i386.opt Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/i386/i386.opt Fri Jul 19 05:52:43 2024 *************** Emit GNU_PROPERTY_X86_ISA_1_NEEDED GNU p *** 1194,1196 **** --- 1194,1200 ---- mmwait Target Mask(ISA2_MWAIT) Var(ix86_isa_flags2) Save Support MWAIT and MONITOR built-in functions and code generation. + + mgather + Target Alias(mtune-ctrl=, use_gather, ^use_gather) + Enable vectorization for gather instruction. diff -Nrcpad gcc-11.4.0/gcc/config/i386/mmx.md gcc-11.5.0/gcc/config/i386/mmx.md *** gcc-11.4.0/gcc/config/i386/mmx.md Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/i386/mmx.md Fri Jul 19 05:52:43 2024 *************** *** 787,793 **** (match_operand:V2SF 1 "register_operand") 0) (match_dup 2)))] "TARGET_MMX_WITH_SSE" ! "operands[2] = GEN_INT (GET_MODE_UNIT_BITSIZE (V2SFmode)-1);") ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; --- 787,796 ---- (match_operand:V2SF 1 "register_operand") 0) (match_dup 2)))] "TARGET_MMX_WITH_SSE" ! { ! operands[1] = force_reg (V2SFmode, operands[1]); ! operands[2] = GEN_INT (GET_MODE_UNIT_BITSIZE (V2SFmode)-1); ! }) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; diff -Nrcpad gcc-11.4.0/gcc/config/i386/sse.md gcc-11.5.0/gcc/config/i386/sse.md *** gcc-11.4.0/gcc/config/i386/sse.md Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/i386/sse.md Fri Jul 19 05:52:43 2024 *************** *** 1293,1299 **** (set_attr "prefix" "evex") (set_attr "mode" "")]) ! (define_insn "_store_mask" [(set (match_operand:V48_AVX512VL 0 "memory_operand" "=m") (vec_merge:V48_AVX512VL (match_operand:V48_AVX512VL 1 "register_operand" "v") --- 1293,1299 ---- (set_attr "prefix" "evex") (set_attr "mode" "")]) ! (define_insn "*_store_mask" [(set (match_operand:V48_AVX512VL 0 "memory_operand" "=m") (vec_merge:V48_AVX512VL (match_operand:V48_AVX512VL 1 "register_operand" "v") *************** *** 1321,1327 **** (set_attr "memory" "store") (set_attr "mode" "")]) ! (define_insn "_store_mask" [(set (match_operand:VI12_AVX512VL 0 "memory_operand" "=m") (vec_merge:VI12_AVX512VL (match_operand:VI12_AVX512VL 1 "register_operand" "v") --- 1321,1327 ---- (set_attr "memory" "store") (set_attr "mode" "")]) ! (define_insn "*_store_mask" [(set (match_operand:VI12_AVX512VL 0 "memory_operand" "=m") (vec_merge:VI12_AVX512VL (match_operand:VI12_AVX512VL 1 "register_operand" "v") *************** *** 3913,3919 **** (match_operand:VF1_AVX2 1 "register_operand") 0) (match_dup 2)))] "TARGET_SSE2" ! "operands[2] = GEN_INT (GET_MODE_UNIT_BITSIZE (mode)-1);") ;; Also define scalar versions. These are used for abs, neg, and ;; conditional move. Using subregs into vector modes causes register --- 3913,3922 ---- (match_operand:VF1_AVX2 1 "register_operand") 0) (match_dup 2)))] "TARGET_SSE2" ! { ! operands[1] = force_reg (mode, operands[1]); ! operands[2] = GEN_INT (GET_MODE_UNIT_BITSIZE (mode)-1); ! }) ;; Also define scalar versions. These are used for abs, neg, and ;; conditional move. Using subregs into vector modes causes register *************** *** 21857,21863 **** (define_expand "maskload" [(set (match_operand:V48_AVX512VL 0 "register_operand") (vec_merge:V48_AVX512VL ! (match_operand:V48_AVX512VL 1 "memory_operand") (match_dup 0) (match_operand: 2 "register_operand")))] "TARGET_AVX512F") --- 21860,21868 ---- (define_expand "maskload" [(set (match_operand:V48_AVX512VL 0 "register_operand") (vec_merge:V48_AVX512VL ! (unspec:V48_AVX512VL ! [(match_operand:V48_AVX512VL 1 "memory_operand")] ! UNSPEC_MASKLOAD) (match_dup 0) (match_operand: 2 "register_operand")))] "TARGET_AVX512F") *************** *** 21865,21871 **** (define_expand "maskload" [(set (match_operand:VI12_AVX512VL 0 "register_operand") (vec_merge:VI12_AVX512VL ! (match_operand:VI12_AVX512VL 1 "memory_operand") (match_dup 0) (match_operand: 2 "register_operand")))] "TARGET_AVX512BW") --- 21870,21878 ---- (define_expand "maskload" [(set (match_operand:VI12_AVX512VL 0 "register_operand") (vec_merge:VI12_AVX512VL ! (unspec:VI12_AVX512VL ! [(match_operand:VI12_AVX512VL 1 "memory_operand")] ! UNSPEC_MASKLOAD) (match_dup 0) (match_operand: 2 "register_operand")))] "TARGET_AVX512BW") *************** *** 21881,21900 **** (define_expand "maskstore" [(set (match_operand:V48_AVX512VL 0 "memory_operand") ! (vec_merge:V48_AVX512VL ! (match_operand:V48_AVX512VL 1 "register_operand") ! (match_dup 0) ! (match_operand: 2 "register_operand")))] "TARGET_AVX512F") (define_expand "maskstore" [(set (match_operand:VI12_AVX512VL 0 "memory_operand") ! (vec_merge:VI12_AVX512VL ! (match_operand:VI12_AVX512VL 1 "register_operand") ! (match_dup 0) ! (match_operand: 2 "register_operand")))] "TARGET_AVX512BW") (define_expand "cbranch4" [(set (reg:CC FLAGS_REG) (compare:CC (match_operand:VI48_AVX 1 "register_operand") --- 21888,21952 ---- (define_expand "maskstore" [(set (match_operand:V48_AVX512VL 0 "memory_operand") ! (unspec:V48_AVX512VL ! [(match_operand:V48_AVX512VL 1 "register_operand") ! (match_dup 0) ! (match_operand: 2 "register_operand")] ! UNSPEC_MASKMOV))] "TARGET_AVX512F") (define_expand "maskstore" [(set (match_operand:VI12_AVX512VL 0 "memory_operand") ! (unspec:VI12_AVX512VL ! [(match_operand:VI12_AVX512VL 1 "register_operand") ! (match_dup 0) ! (match_operand: 2 "register_operand")] ! UNSPEC_MASKMOV))] "TARGET_AVX512BW") + (define_insn "_store_mask" + [(set (match_operand:V48_AVX512VL 0 "memory_operand" "=m") + (unspec:V48_AVX512VL + [(match_operand:V48_AVX512VL 1 "register_operand" "v") + (match_dup 0) + (match_operand: 2 "register_operand" "Yk")] + UNSPEC_MASKMOV))] + "TARGET_AVX512F" + { + if (FLOAT_MODE_P (GET_MODE_INNER (mode))) + { + if (misaligned_operand (operands[0], mode)) + return "vmovu\t{%1, %0%{%2%}|%0%{%2%}, %1}"; + else + return "vmova\t{%1, %0%{%2%}|%0%{%2%}, %1}"; + } + else + { + if (misaligned_operand (operands[0], mode)) + return "vmovdqu\t{%1, %0%{%2%}|%0%{%2%}, %1}"; + else + return "vmovdqa\t{%1, %0%{%2%}|%0%{%2%}, %1}"; + } + } + [(set_attr "type" "ssemov") + (set_attr "prefix" "evex") + (set_attr "memory" "store") + (set_attr "mode" "")]) + + (define_insn "_store_mask" + [(set (match_operand:VI12_AVX512VL 0 "memory_operand" "=m") + (unspec:VI12_AVX512VL + [(match_operand:VI12_AVX512VL 1 "register_operand" "v") + (match_dup 0) + (match_operand: 2 "register_operand" "Yk")] + UNSPEC_MASKMOV))] + "TARGET_AVX512BW" + "vmovdqu\t{%1, %0%{%2%}|%0%{%2%}, %1}" + [(set_attr "type" "ssemov") + (set_attr "prefix" "evex") + (set_attr "memory" "store") + (set_attr "mode" "")]) + (define_expand "cbranch4" [(set (reg:CC FLAGS_REG) (compare:CC (match_operand:VI48_AVX 1 "register_operand") diff -Nrcpad gcc-11.4.0/gcc/config/i386/x86-tune-costs.h gcc-11.5.0/gcc/config/i386/x86-tune-costs.h *** gcc-11.4.0/gcc/config/i386/x86-tune-costs.h Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/i386/x86-tune-costs.h Fri Jul 19 05:52:43 2024 *************** struct processor_costs znver3_cost = { *** 1820,1825 **** --- 1820,1959 ---- "16", /* Func alignment. */ }; + /* This table currently replicates znver3_cost table. */ + struct processor_costs znver4_cost = { + { + /* Start of register allocator costs. integer->integer move cost is 2. */ + + /* reg-reg moves are done by renaming and thus they are even cheaper than + 1 cycle. Because reg-reg move cost is 2 and following tables correspond + to doubles of latencies, we do not model this correctly. It does not + seem to make practical difference to bump prices up even more. */ + 6, /* cost for loading QImode using + movzbl. */ + {6, 6, 6}, /* cost of loading integer registers + in QImode, HImode and SImode. + Relative to reg-reg move (2). */ + {8, 8, 8}, /* cost of storing integer + registers. */ + 2, /* cost of reg,reg fld/fst. */ + {14, 14, 17}, /* cost of loading fp registers + in SFmode, DFmode and XFmode. */ + {12, 12, 16}, /* cost of storing fp registers + in SFmode, DFmode and XFmode. */ + 2, /* cost of moving MMX register. */ + {6, 6}, /* cost of loading MMX registers + in SImode and DImode. */ + {8, 8}, /* cost of storing MMX registers + in SImode and DImode. */ + 2, 2, 3, /* cost of moving XMM,YMM,ZMM + register. */ + {6, 6, 10, 10, 12}, /* cost of loading SSE registers + in 32,64,128,256 and 512-bit. */ + {8, 8, 8, 12, 12}, /* cost of storing SSE registers + in 32,64,128,256 and 512-bit. */ + 6, 8, /* SSE->integer and integer->SSE + moves. */ + 8, 8, /* mask->integer and integer->mask moves */ + {6, 6, 6}, /* cost of loading mask register + in QImode, HImode, SImode. */ + {8, 8, 8}, /* cost if storing mask register + in QImode, HImode, SImode. */ + 2, /* cost of moving mask register. */ + /* End of register allocator costs. */ + }, + + COSTS_N_INSNS (1), /* cost of an add instruction. */ + /* TODO: Lea with 3 components has cost 2. */ + COSTS_N_INSNS (1), /* cost of a lea instruction. */ + COSTS_N_INSNS (1), /* variable shift costs. */ + COSTS_N_INSNS (1), /* constant shift costs. */ + {COSTS_N_INSNS (3), /* cost of starting multiply for QI. */ + COSTS_N_INSNS (3), /* HI. */ + COSTS_N_INSNS (3), /* SI. */ + COSTS_N_INSNS (3), /* DI. */ + COSTS_N_INSNS (3)}, /* other. */ + 0, /* cost of multiply per each bit + set. */ + {COSTS_N_INSNS (12), /* cost of a divide/mod for QI. */ + COSTS_N_INSNS (13), /* HI. */ + COSTS_N_INSNS (13), /* SI. */ + COSTS_N_INSNS (18), /* DI. */ + COSTS_N_INSNS (18)}, /* other. */ + COSTS_N_INSNS (1), /* cost of movsx. */ + COSTS_N_INSNS (1), /* cost of movzx. */ + 8, /* "large" insn. */ + 9, /* MOVE_RATIO. */ + 6, /* CLEAR_RATIO */ + {6, 6, 6}, /* cost of loading integer registers + in QImode, HImode and SImode. + Relative to reg-reg move (2). */ + {8, 8, 8}, /* cost of storing integer + registers. */ + {6, 6, 10, 10, 12}, /* cost of loading SSE registers + in 32bit, 64bit, 128bit, 256bit and 512bit */ + {8, 8, 8, 12, 12}, /* cost of storing SSE register + in 32bit, 64bit, 128bit, 256bit and 512bit */ + {6, 6, 10, 10, 12}, /* cost of unaligned loads. */ + {8, 8, 8, 12, 12}, /* cost of unaligned stores. */ + 2, 2, 2, /* cost of moving XMM,YMM,ZMM + register. */ + 6, /* cost of moving SSE register to integer. */ + /* VGATHERDPD is 17 uops and throughput is 4, VGATHERDPS is 24 uops, + throughput 5. Approx 7 uops do not depend on vector size and every load + is 5 uops. */ + 14, 10, /* Gather load static, per_elt. */ + 14, 20, /* Gather store static, per_elt. */ + 32, /* size of l1 cache. */ + 1024, /* size of l2 cache. */ + 64, /* size of prefetch block. */ + /* New AMD processors never drop prefetches; if they cannot be performed + immediately, they are queued. We set number of simultaneous prefetches + to a large constant to reflect this (it probably is not a good idea not + to limit number of prefetches at all, as their execution also takes some + time). */ + 100, /* number of parallel prefetches. */ + 3, /* Branch cost. */ + COSTS_N_INSNS (7), /* cost of FADD and FSUB insns. */ + COSTS_N_INSNS (7), /* cost of FMUL instruction. */ + /* Latency of fdiv is 8-15. */ + COSTS_N_INSNS (15), /* cost of FDIV instruction. */ + COSTS_N_INSNS (1), /* cost of FABS instruction. */ + COSTS_N_INSNS (1), /* cost of FCHS instruction. */ + /* Latency of fsqrt is 4-10. */ + COSTS_N_INSNS (25), /* cost of FSQRT instruction. */ + + COSTS_N_INSNS (1), /* cost of cheap SSE instruction. */ + COSTS_N_INSNS (3), /* cost of ADDSS/SD SUBSS/SD insns. */ + COSTS_N_INSNS (3), /* cost of MULSS instruction. */ + COSTS_N_INSNS (3), /* cost of MULSD instruction. */ + COSTS_N_INSNS (4), /* cost of FMA SS instruction. */ + COSTS_N_INSNS (4), /* cost of FMA SD instruction. */ + COSTS_N_INSNS (13), /* cost of DIVSS instruction. */ + /* 9-13. */ + COSTS_N_INSNS (13), /* cost of DIVSD instruction. */ + COSTS_N_INSNS (15), /* cost of SQRTSS instruction. */ + COSTS_N_INSNS (21), /* cost of SQRTSD instruction. */ + /* Zen can execute 4 integer operations per cycle. FP operations + take 3 cycles and it can execute 2 integer additions and 2 + multiplications thus reassociation may make sense up to with of 6. + SPEC2k6 bencharks suggests + that 4 works better than 6 probably due to register pressure. + + Integer vector operations are taken by FP unit and execute 3 vector + plus/minus operations per cycle but only one multiply. This is adjusted + in ix86_reassociation_width. */ + 4, 4, 3, 6, /* reassoc int, fp, vec_int, vec_fp. */ + znver2_memcpy, + znver2_memset, + COSTS_N_INSNS (4), /* cond_taken_branch_cost. */ + COSTS_N_INSNS (2), /* cond_not_taken_branch_cost. */ + "16", /* Loop alignment. */ + "16", /* Jump alignment. */ + "0:0:8", /* Label alignment. */ + "16", /* Func alignment. */ + }; + /* skylake_cost should produce code tuned for Skylake familly of CPUs. */ static stringop_algs skylake_memcpy[2] = { {libcall, diff -Nrcpad gcc-11.4.0/gcc/config/i386/x86-tune-sched.c gcc-11.5.0/gcc/config/i386/x86-tune-sched.c *** gcc-11.4.0/gcc/config/i386/x86-tune-sched.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/i386/x86-tune-sched.c Fri Jul 19 05:52:43 2024 *************** ix86_issue_rate (void) *** 67,72 **** --- 67,73 ---- case PROCESSOR_ZNVER1: case PROCESSOR_ZNVER2: case PROCESSOR_ZNVER3: + case PROCESSOR_ZNVER4: case PROCESSOR_CORE2: case PROCESSOR_NEHALEM: case PROCESSOR_SANDYBRIDGE: *************** ix86_adjust_cost (rtx_insn *insn, int de *** 398,403 **** --- 399,405 ---- case PROCESSOR_ZNVER1: case PROCESSOR_ZNVER2: case PROCESSOR_ZNVER3: + case PROCESSOR_ZNVER4: /* Stack engine allows to execute push&pop instructions in parall. */ if ((insn_type == TYPE_PUSH || insn_type == TYPE_POP) && (dep_insn_type == TYPE_PUSH || dep_insn_type == TYPE_POP)) diff -Nrcpad gcc-11.4.0/gcc/config/i386/x86-tune.def gcc-11.5.0/gcc/config/i386/x86-tune.def *** gcc-11.4.0/gcc/config/i386/x86-tune.def Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/i386/x86-tune.def Fri Jul 19 05:52:43 2024 *************** DEF_TUNE (X86_TUNE_AVOID_4BYTE_PREFIXES, *** 442,448 **** /* X86_TUNE_USE_GATHER: Use gather instructions. */ DEF_TUNE (X86_TUNE_USE_GATHER, "use_gather", ! ~(m_ZNVER1 | m_ZNVER2 | m_GENERIC)) /* X86_TUNE_AVOID_128FMA_CHAINS: Avoid creating loops with tight 128bit or smaller FMA chain. */ --- 442,448 ---- /* X86_TUNE_USE_GATHER: Use gather instructions. */ DEF_TUNE (X86_TUNE_USE_GATHER, "use_gather", ! ~(m_ZNVER1 | m_ZNVER2 | m_GENERIC | m_GDS)) /* X86_TUNE_AVOID_128FMA_CHAINS: Avoid creating loops with tight 128bit or smaller FMA chain. */ *************** DEF_TUNE (X86_TUNE_AVOID_128FMA_CHAINS, *** 450,456 **** /* X86_TUNE_AVOID_256FMA_CHAINS: Avoid creating loops with tight 256bit or smaller FMA chain. */ ! DEF_TUNE (X86_TUNE_AVOID_256FMA_CHAINS, "avoid_fma256_chains", m_ZNVER2 | m_ZNVER3) /*****************************************************************************/ /* AVX instruction selection tuning (some of SSE flags affects AVX, too) */ --- 450,461 ---- /* X86_TUNE_AVOID_256FMA_CHAINS: Avoid creating loops with tight 256bit or smaller FMA chain. */ ! DEF_TUNE (X86_TUNE_AVOID_256FMA_CHAINS, "avoid_fma256_chains", m_ZNVER2 | m_ZNVER3 | m_ZNVER4) ! ! /* X86_TUNE_AVOID_512FMA_CHAINS: Avoid creating loops with tight 512bit or ! smaller FMA chain. */ ! DEF_TUNE (X86_TUNE_AVOID_512FMA_CHAINS, "avoid_fma512_chains", m_ZNVER4) ! /*****************************************************************************/ /* AVX instruction selection tuning (some of SSE flags affects AVX, too) */ *************** DEF_TUNE (X86_TUNE_AVX128_OPTIMAL, "avx1 *** 477,483 **** /* X86_TUNE_AVX256_OPTIMAL: Use 256-bit AVX instructions instead of 512-bit AVX instructions in the auto-vectorizer. */ ! DEF_TUNE (X86_TUNE_AVX256_OPTIMAL, "avx256_optimal", m_CORE_AVX512) /*****************************************************************************/ /* Historical relics: tuning flags that helps a specific old CPU designs */ --- 482,491 ---- /* X86_TUNE_AVX256_OPTIMAL: Use 256-bit AVX instructions instead of 512-bit AVX instructions in the auto-vectorizer. */ ! DEF_TUNE (X86_TUNE_AVX256_OPTIMAL, "avx256_optimal", m_CORE_AVX512 | m_ZNVER4) ! ! /* X86_TUNE_AVX256_SPLIT_REGS: if true, AVX512 ops are split into two AVX256 ops. */ ! DEF_TUNE (X86_TUNE_AVX512_SPLIT_REGS, "avx512_split_regs", m_ZNVER4) /*****************************************************************************/ /* Historical relics: tuning flags that helps a specific old CPU designs */ diff -Nrcpad gcc-11.4.0/gcc/config/i386/znver.md gcc-11.5.0/gcc/config/i386/znver.md *** gcc-11.4.0/gcc/config/i386/znver.md Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/config/i386/znver.md Fri Jul 19 05:52:43 2024 *************** *** 0 **** --- 1,1350 ---- + ;; Copyright (C) 2012-2021 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 + ;; . + ;; + + + (define_attr "znver1_decode" "direct,vector,double" + (const_string "direct")) + + ;; AMD znver1, znver2 and znver3 Scheduling + ;; Modeling automatons for zen decoders, integer execution pipes, + ;; AGU pipes and floating point execution units. + (define_automaton "znver1, znver1_ieu, znver1_fp, znver1_agu") + + ;; Decoders unit has 4 decoders and all of them can decode fast path + ;; and vector type instructions. + (define_cpu_unit "znver1-decode0" "znver1") + (define_cpu_unit "znver1-decode1" "znver1") + (define_cpu_unit "znver1-decode2" "znver1") + (define_cpu_unit "znver1-decode3" "znver1") + + ;; Currently blocking all decoders for vector path instructions as + ;; they are dispatched separetely as microcode sequence. + ;; Fix me: Need to revisit this. + (define_reservation "znver1-vector" "znver1-decode0+znver1-decode1+znver1-decode2+znver1-decode3") + + ;; Direct instructions can be issued to any of the four decoders. + (define_reservation "znver1-direct" "znver1-decode0|znver1-decode1|znver1-decode2|znver1-decode3") + + ;; Fix me: Need to revisit this later to simulate fast path double behavior. + (define_reservation "znver1-double" "znver1-direct") + + + ;; Integer unit 4 ALU pipes. + (define_cpu_unit "znver1-ieu0" "znver1_ieu") + (define_cpu_unit "znver1-ieu1" "znver1_ieu") + (define_cpu_unit "znver1-ieu2" "znver1_ieu") + (define_cpu_unit "znver1-ieu3" "znver1_ieu") + (define_reservation "znver1-ieu" "znver1-ieu0|znver1-ieu1|znver1-ieu2|znver1-ieu3") + + ;; 2 AGU pipes in znver1 and 3 AGU pipes in znver2 and znver3 + ;; According to CPU diagram last AGU unit is used only for stores. + (define_cpu_unit "znver1-agu0" "znver1_agu") + (define_cpu_unit "znver1-agu1" "znver1_agu") + (define_cpu_unit "znver2-agu2" "znver1_agu") + (define_reservation "znver1-agu-reserve" "znver1-agu0|znver1-agu1") + (define_reservation "znver2-store-agu-reserve" "znver1-agu0|znver1-agu1|znver2-agu2") + + ;; Load is 4 cycles. We do not model reservation of load unit. + ;;(define_reservation "znver1-load" "znver1-agu-reserve, nothing, nothing, nothing") + (define_reservation "znver1-load" "znver1-agu-reserve") + ;; Store operations differs between znver1, znver2 and znver3 because extra AGU + ;; was added. + (define_reservation "znver1-store" "znver1-agu-reserve") + (define_reservation "znver2-store" "znver2-store-agu-reserve") + + ;; vectorpath (microcoded) instructions are single issue instructions. + ;; So, they occupy all the integer units. + (define_reservation "znver1-ivector" "znver1-ieu0+znver1-ieu1 + +znver1-ieu2+znver1-ieu3 + +znver1-agu0+znver1-agu1") + + (define_reservation "znver2-ivector" "znver1-ieu0+znver1-ieu1 + +znver1-ieu2+znver1-ieu3 + +znver1-agu0+znver1-agu1+znver2-agu2") + + ;; Floating point unit 4 FP pipes. + (define_cpu_unit "znver1-fp0" "znver1_fp") + (define_cpu_unit "znver1-fp1" "znver1_fp") + (define_cpu_unit "znver1-fp2" "znver1_fp") + (define_cpu_unit "znver1-fp3" "znver1_fp") + + (define_reservation "znver1-fpu" "znver1-fp0|znver1-fp1|znver1-fp2|znver1-fp3") + + (define_reservation "znver1-fvector" "znver1-fp0+znver1-fp1 + +znver1-fp2+znver1-fp3 + +znver1-agu0+znver1-agu1") + (define_reservation "znver2-fvector" "znver1-fp0+znver1-fp1 + +znver1-fp2+znver1-fp3 + +znver1-agu0+znver1-agu1+znver2-agu2") + + ;; Call instruction + (define_insn_reservation "znver1_call" 1 + (and (eq_attr "cpu" "znver1") + (eq_attr "type" "call,callv")) + "znver1-double,znver1-store,znver1-ieu0|znver1-ieu3") + + (define_insn_reservation "znver2_call" 1 + (and (eq_attr "cpu" "znver2,znver3") + (eq_attr "type" "call,callv")) + "znver1-double,znver2-store,znver1-ieu0|znver1-ieu3") + + ;; General instructions + (define_insn_reservation "znver1_push" 1 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "type" "push") + (eq_attr "memory" "store"))) + "znver1-direct,znver1-store") + (define_insn_reservation "znver2_push" 1 + (and (eq_attr "cpu" "znver2,znver3") + (and (eq_attr "type" "push") + (eq_attr "memory" "store"))) + "znver1-direct,znver2-store") + + (define_insn_reservation "znver1_push_load" 4 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "type" "push") + (eq_attr "memory" "both"))) + "znver1-direct,znver1-load,znver1-store") + (define_insn_reservation "znver2_push_load" 4 + (and (eq_attr "cpu" "znver2,znver3") + (and (eq_attr "type" "push") + (eq_attr "memory" "both"))) + "znver1-direct,znver1-load,znver2-store") + + (define_insn_reservation "znver1_pop" 4 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "type" "pop") + (eq_attr "memory" "load"))) + "znver1-direct,znver1-load") + + (define_insn_reservation "znver1_pop_mem" 4 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "type" "pop") + (eq_attr "memory" "both"))) + "znver1-direct,znver1-load,znver1-store") + (define_insn_reservation "znver2_pop_mem" 4 + (and (eq_attr "cpu" "znver2,znver3") + (and (eq_attr "type" "pop") + (eq_attr "memory" "both"))) + "znver1-direct,znver1-load,znver2-store") + + ;; Leave + (define_insn_reservation "znver1_leave" 1 + (and (eq_attr "cpu" "znver1") + (eq_attr "type" "leave")) + "znver1-double,znver1-ieu, znver1-store") + (define_insn_reservation "znver2_leave" 1 + (and (eq_attr "cpu" "znver2,znver3") + (eq_attr "type" "leave")) + "znver1-double,znver1-ieu, znver2-store") + + ;; Integer Instructions or General instructions + ;; Multiplications + ;; Reg operands + (define_insn_reservation "znver1_imul" 3 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "type" "imul") + (eq_attr "memory" "none"))) + "znver1-direct,znver1-ieu1") + + (define_insn_reservation "znver1_imul_mem" 7 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "type" "imul") + (eq_attr "memory" "!none"))) + "znver1-direct,znver1-load, znver1-ieu1") + + ;; Divisions + ;; Reg operands + (define_insn_reservation "znver1_idiv_DI" 41 + (and (eq_attr "cpu" "znver1,znver2") + (and (eq_attr "type" "idiv") + (and (eq_attr "mode" "DI") + (eq_attr "memory" "none")))) + "znver1-double,znver1-ieu2*41") + + (define_insn_reservation "znver1_idiv_SI" 25 + (and (eq_attr "cpu" "znver1,znver2") + (and (eq_attr "type" "idiv") + (and (eq_attr "mode" "SI") + (eq_attr "memory" "none")))) + "znver1-double,znver1-ieu2*25") + + (define_insn_reservation "znver1_idiv_HI" 17 + (and (eq_attr "cpu" "znver1,znver2") + (and (eq_attr "type" "idiv") + (and (eq_attr "mode" "HI") + (eq_attr "memory" "none")))) + "znver1-double,znver1-ieu2*17") + + (define_insn_reservation "znver1_idiv_QI" 12 + (and (eq_attr "cpu" "znver1,znver2") + (and (eq_attr "type" "idiv") + (and (eq_attr "mode" "QI") + (eq_attr "memory" "none")))) + "znver1-direct,znver1-ieu2*12") + + ;; Mem operands + (define_insn_reservation "znver1_idiv_mem_DI" 45 + (and (eq_attr "cpu" "znver1,znver2") + (and (eq_attr "type" "idiv") + (and (eq_attr "mode" "DI") + (eq_attr "memory" "none")))) + "znver1-double,znver1-load,znver1-ieu2*41") + + (define_insn_reservation "znver1_idiv_mem_SI" 29 + (and (eq_attr "cpu" "znver1,znver2") + (and (eq_attr "type" "idiv") + (and (eq_attr "mode" "SI") + (eq_attr "memory" "none")))) + "znver1-double,znver1-load,znver1-ieu2*25") + + (define_insn_reservation "znver1_idiv_mem_HI" 21 + (and (eq_attr "cpu" "znver1,znver2") + (and (eq_attr "type" "idiv") + (and (eq_attr "mode" "HI") + (eq_attr "memory" "none")))) + "znver1-double,znver1-load,znver1-ieu2*17") + + (define_insn_reservation "znver1_idiv_mem_QI" 16 + (and (eq_attr "cpu" "znver1,znver2") + (and (eq_attr "type" "idiv") + (and (eq_attr "mode" "QI") + (eq_attr "memory" "none")))) + "znver1-direct,znver1-load,znver1-ieu2*12") + + (define_insn_reservation "znver3_idiv_DI" 18 + (and (eq_attr "cpu" "znver3") + (and (eq_attr "type" "idiv") + (and (eq_attr "mode" "DI") + (eq_attr "memory" "none")))) + "znver1-double,znver1-ieu2*18") + + (define_insn_reservation "znver3_idiv_SI" 12 + (and (eq_attr "cpu" "znver3") + (and (eq_attr "type" "idiv") + (and (eq_attr "mode" "SI") + (eq_attr "memory" "none")))) + "znver1-double,znver1-ieu2*12") + + (define_insn_reservation "znver3_idiv_HI" 10 + (and (eq_attr "cpu" "znver3") + (and (eq_attr "type" "idiv") + (and (eq_attr "mode" "HI") + (eq_attr "memory" "none")))) + "znver1-double,znver1-ieu2*10") + + (define_insn_reservation "znver3_idiv_QI" 9 + (and (eq_attr "cpu" "znver3") + (and (eq_attr "type" "idiv") + (and (eq_attr "mode" "QI") + (eq_attr "memory" "none")))) + "znver1-direct,znver1-ieu2*9") + + (define_insn_reservation "znver3_idiv_mem_DI" 22 + (and (eq_attr "cpu" "znver3") + (and (eq_attr "type" "idiv") + (and (eq_attr "mode" "DI") + (eq_attr "memory" "load")))) + "znver1-double,znver1-load,znver1-ieu2*22") + + (define_insn_reservation "znver3_idiv_mem_SI" 16 + (and (eq_attr "cpu" "znver3") + (and (eq_attr "type" "idiv") + (and (eq_attr "mode" "SI") + (eq_attr "memory" "load")))) + "znver1-double,znver1-load,znver1-ieu2*16") + + (define_insn_reservation "znver3_idiv_mem_HI" 14 + (and (eq_attr "cpu" "znver3") + (and (eq_attr "type" "idiv") + (and (eq_attr "mode" "HI") + (eq_attr "memory" "load")))) + "znver1-double,znver1-load,znver1-ieu2*10") + + (define_insn_reservation "znver3_idiv_mem_QI" 13 + (and (eq_attr "cpu" "znver3") + (and (eq_attr "type" "idiv") + (and (eq_attr "mode" "QI") + (eq_attr "memory" "load")))) + "znver1-direct,znver1-load,znver1-ieu2*9") + + ;; STR ISHIFT which are micro coded. + ;; Fix me: Latency need to be rechecked. + (define_insn_reservation "znver1_str_ishift" 6 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "type" "str,ishift") + (eq_attr "memory" "both,store"))) + "znver1-vector,znver1-ivector") + + (define_insn_reservation "znver2_str_ishift" 3 + (and (eq_attr "cpu" "znver2,znver3") + (and (eq_attr "type" "ishift") + (eq_attr "memory" "both,store"))) + "znver1-vector,znver1-ivector") + (define_insn_reservation "znver2_str_istr" 19 + (and (eq_attr "cpu" "znver2,znver3") + (and (eq_attr "type" "str") + (eq_attr "memory" "both,store"))) + "znver1-vector,znver1-ivector") + + ;; MOV - integer moves + (define_insn_reservation "znver1_load_imov_double" 2 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "znver1_decode" "double") + (and (eq_attr "type" "imovx") + (eq_attr "memory" "none")))) + "znver1-double,znver1-ieu|znver1-ieu") + + (define_insn_reservation "znver2_load_imov_double" 1 + (and (eq_attr "cpu" "znver2,znver3") + (and (eq_attr "znver1_decode" "double") + (and (eq_attr "type" "imovx") + (eq_attr "memory" "none")))) + "znver1-double,znver1-ieu|znver1-ieu") + + (define_insn_reservation "znver1_load_imov_direct" 1 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "type" "imov,imovx") + (eq_attr "memory" "none"))) + "znver1-direct,znver1-ieu") + + (define_insn_reservation "znver1_load_imov_double_store" 2 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "znver1_decode" "double") + (and (eq_attr "type" "imovx") + (eq_attr "memory" "store")))) + "znver1-double,znver1-ieu|znver1-ieu,znver1-store") + + (define_insn_reservation "znver2_load_imov_double_store" 1 + (and (eq_attr "cpu" "znver2,znver3") + (and (eq_attr "znver1_decode" "double") + (and (eq_attr "type" "imovx") + (eq_attr "memory" "store")))) + "znver1-double,znver1-ieu|znver1-ieu,znver2-store") + + (define_insn_reservation "znver1_load_imov_direct_store" 1 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "type" "imov,imovx") + (eq_attr "memory" "store"))) + "znver1-direct,znver1-ieu,znver1-store") + + (define_insn_reservation "znver2_load_imov_direct_store" 1 + (and (eq_attr "cpu" "znver2,znver3") + (and (eq_attr "type" "imov,imovx") + (eq_attr "memory" "store"))) + "znver1-direct,znver1-ieu,znver2-store") + + (define_insn_reservation "znver1_load_imov_double_load" 5 + (and (eq_attr "cpu" "znver1,znver2") + (and (eq_attr "znver1_decode" "double") + (and (eq_attr "type" "imovx") + (eq_attr "memory" "load")))) + "znver1-double,znver1-load,znver1-ieu|znver1-ieu") + + (define_insn_reservation "znver2_load_imov_double_load" 4 + (and (eq_attr "cpu" "znver2,znver3") + (and (eq_attr "znver1_decode" "double") + (and (eq_attr "type" "imovx") + (eq_attr "memory" "load")))) + "znver1-double,znver1-load,znver1-ieu|znver1-ieu") + + (define_insn_reservation "znver1_load_imov_direct_load" 4 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "type" "imov,imovx") + (eq_attr "memory" "load"))) + "znver1-direct,znver1-load") + + ;; INTEGER/GENERAL instructions + ;; register/imm operands only: ALU, ICMP, NEG, NOT, ROTATE, ISHIFT, TEST + (define_insn_reservation "znver1_insn" 1 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "type" "alu,icmp,negnot,rotate,rotate1,ishift,ishift1,test,setcc,incdec,icmov") + (eq_attr "memory" "none,unknown"))) + "znver1-direct,znver1-ieu") + + (define_insn_reservation "znver1_insn_load" 5 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "type" "alu,icmp,negnot,rotate,rotate1,ishift,ishift1,test,setcc,incdec,icmov") + (eq_attr "memory" "load"))) + "znver1-direct,znver1-load,znver1-ieu") + + (define_insn_reservation "znver1_insn_store" 1 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "type" "alu,icmp,negnot,rotate,rotate1,ishift1,test,setcc,incdec") + (eq_attr "memory" "store"))) + "znver1-direct,znver1-ieu,znver1-store") + + (define_insn_reservation "znver2_insn_store" 1 + (and (eq_attr "cpu" "znver2,znver3") + (and (eq_attr "type" "alu,icmp,negnot,rotate,rotate1,ishift1,test,setcc,incdec") + (eq_attr "memory" "store"))) + "znver1-direct,znver1-ieu,znver2-store") + + (define_insn_reservation "znver1_insn_both" 5 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "type" "alu,icmp,negnot,rotate,rotate1,ishift1,test,setcc,incdec") + (eq_attr "memory" "both"))) + "znver1-direct,znver1-load,znver1-ieu,znver1-store") + + (define_insn_reservation "znver2_insn_both" 5 + (and (eq_attr "cpu" "znver2,znver3") + (and (eq_attr "type" "alu,icmp,negnot,rotate,rotate1,ishift1,test,setcc,incdec") + (eq_attr "memory" "both"))) + "znver1-direct,znver1-load,znver1-ieu,znver2-store") + + ;; Fix me: Other vector type insns keeping latency 6 as of now. + (define_insn_reservation "znver1_ieu_vector" 6 + (and (eq_attr "cpu" "znver1") + (eq_attr "type" "other,str,multi")) + "znver1-vector,znver1-ivector") + + (define_insn_reservation "znver2_ieu_vector" 5 + (and (eq_attr "cpu" "znver2,znver3") + (eq_attr "type" "other,str,multi")) + "znver1-vector,znver2-ivector") + + ;; ALU1 register operands. + (define_insn_reservation "znver1_alu1_vector" 3 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "znver1_decode" "vector") + (and (eq_attr "type" "alu1") + (eq_attr "memory" "none,unknown")))) + "znver1-vector,znver1-ivector") + + (define_insn_reservation "znver2_alu1_vector" 3 + (and (eq_attr "cpu" "znver2,znver3") + (and (eq_attr "znver1_decode" "vector") + (and (eq_attr "type" "alu1") + (eq_attr "memory" "none,unknown")))) + "znver1-vector,znver2-ivector") + + (define_insn_reservation "znver1_alu1_double" 2 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "znver1_decode" "double") + (and (eq_attr "type" "alu1") + (eq_attr "memory" "none,unknown")))) + "znver1-double,znver1-ieu") + + (define_insn_reservation "znver1_alu1_direct" 1 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "znver1_decode" "direct") + (and (eq_attr "type" "alu1") + (eq_attr "memory" "none,unknown")))) + "znver1-direct,znver1-ieu") + + ;; Branches : Fix me need to model conditional branches. + (define_insn_reservation "znver1_branch" 1 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "type" "ibr") + (eq_attr "memory" "none"))) + "znver1-direct") + + ;; Indirect branches check latencies. + (define_insn_reservation "znver1_indirect_branch_mem" 6 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "type" "ibr") + (eq_attr "memory" "load"))) + "znver1-vector,znver1-ivector") + + (define_insn_reservation "znver2_indirect_branch_mem" 6 + (and (eq_attr "cpu" "znver2,znver3") + (and (eq_attr "type" "ibr") + (eq_attr "memory" "load"))) + "znver1-vector,znver2-ivector") + + ;; LEA executes in ALU units with 1 cycle latency. + (define_insn_reservation "znver1_lea" 1 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (eq_attr "type" "lea")) + "znver1-direct,znver1-ieu") + + ;; Other integer instrucions + (define_insn_reservation "znver1_idirect" 1 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "unit" "integer,unknown") + (eq_attr "memory" "none,unknown"))) + "znver1-direct,znver1-ieu") + + ;; Floating point + (define_insn_reservation "znver1_fp_cmov" 6 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (eq_attr "type" "fcmov")) + "znver1-vector,znver1-fvector") + + (define_insn_reservation "znver1_fp_mov_direct_load" 8 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "znver1_decode" "direct") + (and (eq_attr "type" "fmov") + (eq_attr "memory" "load")))) + "znver1-direct,znver1-load,znver1-fp3|znver1-fp1") + + (define_insn_reservation "znver1_fp_mov_direct_store" 5 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "znver1_decode" "direct") + (and (eq_attr "type" "fmov") + (eq_attr "memory" "store")))) + "znver1-direct,znver1-fp2|znver1-fp3,znver1-store") + (define_insn_reservation "znver2_fp_mov_direct_store" 5 + (and (eq_attr "cpu" "znver2,znver3") + (and (eq_attr "znver1_decode" "direct") + (and (eq_attr "type" "fmov") + (eq_attr "memory" "store")))) + "znver1-direct,znver1-fp2|znver1-fp3,znver2-store") + + (define_insn_reservation "znver1_fp_mov_double" 4 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "znver1_decode" "double") + (and (eq_attr "type" "fmov") + (eq_attr "memory" "none")))) + "znver1-double,znver1-fp3") + + (define_insn_reservation "znver1_fp_mov_double_load" 12 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "znver1_decode" "double") + (and (eq_attr "type" "fmov") + (eq_attr "memory" "load")))) + "znver1-double,znver1-load,znver1-fp3") + + (define_insn_reservation "znver1_fp_mov_direct" 1 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (eq_attr "type" "fmov")) + "znver1-direct,znver1-fp3") + + ;; TODO: AGU? + (define_insn_reservation "znver1_fp_spc_direct" 5 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "type" "fpspc") + (eq_attr "memory" "store"))) + "znver1-direct,znver1-fp3,znver1-fp2") + + (define_insn_reservation "znver1_fp_insn_vector" 6 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "znver1_decode" "vector") + (eq_attr "type" "fpspc,mmxcvt,sselog1,ssemul,ssemov"))) + "znver1-vector,znver1-fvector") + (define_insn_reservation "znver2_fp_insn_vector" 6 + (and (eq_attr "cpu" "znver2,znver3") + (and (eq_attr "znver1_decode" "vector") + (eq_attr "type" "fpspc,mmxcvt,sselog1,ssemul,ssemov"))) + "znver1-vector,znver2-fvector") + + ;; FABS + (define_insn_reservation "znver1_fp_fsgn" 1 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (eq_attr "type" "fsgn")) + "znver1-direct,znver1-fp3") + + (define_insn_reservation "znver1_fp_fcmp" 2 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "memory" "none") + (and (eq_attr "znver1_decode" "double") + (eq_attr "type" "fcmp")))) + "znver1-double,znver1-fp0,znver1-fp2") + + (define_insn_reservation "znver1_fp_fcmp_load" 9 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "memory" "none") + (and (eq_attr "znver1_decode" "double") + (eq_attr "type" "fcmp")))) + "znver1-double,znver1-load, znver1-fp0,znver1-fp2") + + ;;FADD FSUB FMUL + (define_insn_reservation "znver1_fp_op_mul" 5 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "type" "fop,fmul") + (eq_attr "memory" "none"))) + "znver1-direct,znver1-fp0*5") + + (define_insn_reservation "znver1_fp_op_mul_load" 12 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "type" "fop,fmul") + (eq_attr "memory" "load"))) + "znver1-direct,znver1-load,znver1-fp0*5") + + (define_insn_reservation "znver1_fp_op_imul_load" 16 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "type" "fop,fmul") + (and (eq_attr "fp_int_src" "true") + (eq_attr "memory" "load")))) + "znver1-double,znver1-load,znver1-fp3,znver1-fp0") + + (define_insn_reservation "znver1_fp_op_div" 15 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "type" "fdiv") + (eq_attr "memory" "none"))) + "znver1-direct,znver1-fp3*15") + + (define_insn_reservation "znver1_fp_op_div_load" 22 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "type" "fdiv") + (eq_attr "memory" "load"))) + "znver1-direct,znver1-load,znver1-fp3*15") + + (define_insn_reservation "znver1_fp_op_idiv_load" 27 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "type" "fdiv") + (and (eq_attr "fp_int_src" "true") + (eq_attr "memory" "load")))) + "znver1-double,znver1-load,znver1-fp3*19") + + (define_insn_reservation "znver2_fp_op_idiv_load" 26 + (and (eq_attr "cpu" "znver2,znver3") + (and (eq_attr "type" "fdiv") + (and (eq_attr "fp_int_src" "true") + (eq_attr "memory" "load")))) + "znver1-double,znver1-load,znver1-fp3*19") + + + ;; MMX, SSE, SSEn.n, AVX, AVX2 instructions + (define_insn_reservation "znver1_fp_insn" 1 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (eq_attr "type" "mmx")) + "znver1-direct,znver1-fpu") + + (define_insn_reservation "znver1_mmx_add" 1 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "type" "mmxadd") + (eq_attr "memory" "none"))) + "znver1-direct,znver1-fp0|znver1-fp1|znver1-fp3") + + (define_insn_reservation "znver1_mmx_add_load" 8 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "type" "mmxadd") + (eq_attr "memory" "load"))) + "znver1-direct,znver1-load,znver1-fp0|znver1-fp1|znver1-fp3") + + (define_insn_reservation "znver1_mmx_cmp" 1 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "type" "mmxcmp") + (eq_attr "memory" "none"))) + "znver1-direct,znver1-fp0|znver1-fp3") + + (define_insn_reservation "znver1_mmx_cmp_load" 8 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "type" "mmxcmp") + (eq_attr "memory" "load"))) + "znver1-direct,znver1-load,znver1-fp0|znver1-fp3") + + (define_insn_reservation "znver1_mmx_cvt_pck_shuf" 1 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "type" "mmxcvt,sseshuf,sseshuf1") + (eq_attr "memory" "none"))) + "znver1-direct,znver1-fp1|znver1-fp2") + + (define_insn_reservation "znver1_mmx_cvt_pck_shuf_load" 8 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "type" "mmxcvt,sseshuf,sseshuf1") + (eq_attr "memory" "load"))) + "znver1-direct,znver1-load,znver1-fp1|znver1-fp2") + + (define_insn_reservation "znver1_mmx_shift_move" 1 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "type" "mmxshft,mmxmov") + (eq_attr "memory" "none"))) + "znver1-direct,znver1-fp2") + + (define_insn_reservation "znver1_mmx_shift_move_load" 8 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "type" "mmxshft,mmxmov") + (eq_attr "memory" "load"))) + "znver1-direct,znver1-load,znver1-fp2") + + (define_insn_reservation "znver1_mmx_move_store" 1 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "type" "mmxshft,mmxmov") + (eq_attr "memory" "store,both"))) + "znver1-direct,znver1-fp2,znver1-store") + (define_insn_reservation "znver2_mmx_move_store" 1 + (and (eq_attr "cpu" "znver2,znver3") + (and (eq_attr "type" "mmxshft,mmxmov") + (eq_attr "memory" "store,both"))) + "znver1-direct,znver1-fp2,znver2-store") + + (define_insn_reservation "znver1_mmx_mul" 3 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "type" "mmxmul") + (eq_attr "memory" "none"))) + "znver1-direct,znver1-fp0*3") + + (define_insn_reservation "znver1_mmx_load" 10 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "type" "mmxmul") + (eq_attr "memory" "load"))) + "znver1-direct,znver1-load,znver1-fp0*3") + + ;; TODO + (define_insn_reservation "znver1_avx256_log" 1 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "V8SF,V4DF,OI") + (and (eq_attr "type" "sselog") + (eq_attr "memory" "none")))) + "znver1-double,znver1-fpu") + + (define_insn_reservation "znver1_avx256_log_load" 8 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "V8SF,V4DF,OI") + (and (eq_attr "type" "sselog") + (eq_attr "memory" "load")))) + "znver1-double,znver1-load,znver1-fpu") + + (define_insn_reservation "znver1_sse_log" 1 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "type" "sselog") + (eq_attr "memory" "none"))) + "znver1-direct,znver1-fpu") + + (define_insn_reservation "znver1_sse_log_load" 8 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "type" "sselog") + (eq_attr "memory" "load"))) + "znver1-direct,znver1-load,znver1-fpu") + + (define_insn_reservation "znver1_avx256_log1" 1 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "V8SF,V4DF,OI") + (and (eq_attr "type" "sselog1") + (eq_attr "memory" "none")))) + "znver1-double,znver1-fp1|znver1-fp2") + + (define_insn_reservation "znver1_avx256_log1_load" 8 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "V8SF,V4DF,OI") + (and (eq_attr "type" "sselog1") + (eq_attr "memory" "!none")))) + "znver1-double,znver1-load,znver1-fp1|znver1-fp2") + + (define_insn_reservation "znver1_sse_log1" 1 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "type" "sselog1") + (eq_attr "memory" "none"))) + "znver1-direct,znver1-fp1|znver1-fp2") + + (define_insn_reservation "znver1_sse_log1_load" 8 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "type" "sselog1") + (eq_attr "memory" "!none"))) + "znver1-direct,znver1-load,znver1-fp1|znver1-fp2") + + (define_insn_reservation "znver1_sse_comi" 1 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "SF,DF,V4SF,V2DF") + (and (eq_attr "prefix" "!vex") + (and (eq_attr "prefix_extra" "0") + (and (eq_attr "type" "ssecomi") + (eq_attr "memory" "none")))))) + "znver1-direct,znver1-fp0|znver1-fp1") + + (define_insn_reservation "znver1_sse_comi_load" 8 + (and (ior (and (eq_attr "cpu" "znver1") + (eq_attr "mode" "SF,DF,V4SF,V2DF")) + (ior (eq_attr "cpu" "znver2") + (eq_attr "cpu" "znver3"))) + (and (eq_attr "prefix_extra" "0") + (and (eq_attr "type" "ssecomi") + (eq_attr "memory" "load")))) + "znver1-direct,znver1-load,znver1-fp0|znver1-fp1") + + (define_insn_reservation "znver1_sse_comi_double" 2 + (and (ior (and (eq_attr "cpu" "znver1") + (eq_attr "mode" "V4SF,V2DF,TI")) + (ior (eq_attr "cpu" "znver2") + (eq_attr "cpu" "znver3"))) + (and (eq_attr "prefix" "vex") + (and (eq_attr "prefix_extra" "0") + (and (eq_attr "type" "ssecomi") + (eq_attr "memory" "none"))))) + "znver1-double,znver1-fp0|znver1-fp1") + + (define_insn_reservation "znver1_sse_comi_double_load" 10 + (and (ior (and (eq_attr "cpu" "znver1") + (eq_attr "mode" "V4SF,V2DF,TI")) + (ior (eq_attr "cpu" "znver2") + (eq_attr "cpu" "znver3"))) + (and (eq_attr "prefix" "vex") + (and (eq_attr "prefix_extra" "0") + (and (eq_attr "type" "ssecomi") + (eq_attr "memory" "load"))))) + "znver1-double,znver1-load,znver1-fp0|znver1-fp1") + + (define_insn_reservation "znver1_sse_test" 1 + (and (ior (and (eq_attr "cpu" "znver1") + (eq_attr "mode" "SF,DF,V4SF,V2DF,TI")) + (ior (eq_attr "cpu" "znver2") + (eq_attr "cpu" "znver3"))) + (and (eq_attr "prefix_extra" "1") + (and (eq_attr "type" "ssecomi") + (eq_attr "memory" "none")))) + "znver1-direct,znver1-fp1|znver1-fp2") + + (define_insn_reservation "znver1_sse_test_load" 8 + (and (ior (and (eq_attr "cpu" "znver1") + (eq_attr "mode" "SF,DF,V4SF,V2DF,TI")) + (ior (eq_attr "cpu" "znver2") + (eq_attr "cpu" "znver3"))) + (and (eq_attr "prefix_extra" "1") + (and (eq_attr "type" "ssecomi") + (eq_attr "memory" "load")))) + "znver1-direct,znver1-load,znver1-fp1|znver1-fp2") + + ;; SSE moves + ;; Fix me: Need to revist this again some of the moves may be restricted + ;; to some fpu pipes. + (define_insn_reservation "znver1_sse_mov" 2 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "SI") + (and (eq_attr "isa" "avx") + (and (eq_attr "type" "ssemov") + (eq_attr "memory" "none"))))) + "znver1-direct,znver1-ieu0") + + (define_insn_reservation "znver2_sse_mov" 1 + (and (eq_attr "cpu" "znver2,znver3") + (and (eq_attr "mode" "SI") + (and (eq_attr "isa" "avx") + (and (eq_attr "type" "ssemov") + (eq_attr "memory" "none"))))) + "znver1-direct,znver1-ieu0") + + (define_insn_reservation "znver1_avx_mov" 2 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "TI") + (and (eq_attr "isa" "avx") + (and (eq_attr "type" "ssemov") + (and (match_operand:SI 1 "register_operand") + (eq_attr "memory" "none")))))) + "znver1-direct,znver1-ieu2") + + (define_insn_reservation "znver2_avx_mov" 1 + (and (eq_attr "cpu" "znver2,znver3") + (and (eq_attr "mode" "TI") + (and (eq_attr "isa" "avx") + (and (eq_attr "type" "ssemov") + (and (match_operand:SI 1 "register_operand") + (eq_attr "memory" "none")))))) + "znver1-direct,znver1-ieu2") + + (define_insn_reservation "znver1_sseavx_mov" 1 + (and (ior (and (eq_attr "cpu" "znver1") + (eq_attr "mode" "SF,DF,V4SF,V2DF,TI")) + (ior (eq_attr "cpu" "znver2") + (eq_attr "cpu" "znver3"))) + (and (eq_attr "type" "ssemov") + (eq_attr "memory" "none"))) + "znver1-direct,znver1-fpu") + + (define_insn_reservation "znver1_sseavx_mov_store" 1 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "SF,DF,V4SF,V2DF,TI") + (and (eq_attr "type" "ssemov") + (eq_attr "memory" "store")))) + "znver1-direct,znver1-fpu,znver1-store") + (define_insn_reservation "znver2_sseavx_mov_store" 1 + (and (eq_attr "cpu" "znver2,znver3") + (and (eq_attr "type" "ssemov") + (eq_attr "memory" "store"))) + "znver1-direct,znver1-fpu,znver2-store") + + (define_insn_reservation "znver1_sseavx_mov_load" 8 + (and (ior (and (eq_attr "cpu" "znver1") + (eq_attr "mode" "SF,DF,V4SF,V2DF,TI")) + (ior (eq_attr "cpu" "znver2") + (eq_attr "cpu" "znver3"))) + (and (eq_attr "type" "ssemov") + (eq_attr "memory" "load"))) + "znver1-direct,znver1-load,znver1-fpu") + + (define_insn_reservation "znver1_avx256_mov" 1 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "V8SF,V4DF,OI") + (and (eq_attr "type" "ssemov") + (eq_attr "memory" "none")))) + "znver1-double,znver1-fpu") + + (define_insn_reservation "znver1_avx256_mov_store" 1 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "V8SF,V4DF,OI") + (and (eq_attr "type" "ssemov") + (eq_attr "memory" "store")))) + "znver1-double,znver1-fpu,znver1-store") + + (define_insn_reservation "znver1_avx256_mov_load" 8 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "V8SF,V4DF,OI") + (and (eq_attr "type" "ssemov") + (eq_attr "memory" "load")))) + "znver1-double,znver1-load,znver1-fpu") + + ;; SSE add + (define_insn_reservation "znver1_sseavx_add" 3 + (and (ior (and (eq_attr "cpu" "znver1") + (eq_attr "mode" "SF,DF,V4SF,V2DF,TI")) + (ior (eq_attr "cpu" "znver2") + (eq_attr "cpu" "znver3"))) + (and (eq_attr "type" "sseadd") + (eq_attr "memory" "none"))) + "znver1-direct,znver1-fp2|znver1-fp3") + + (define_insn_reservation "znver1_sseavx_add_load" 10 + (and (ior (and (eq_attr "cpu" "znver1") + (eq_attr "mode" "SF,DF,V4SF,V2DF,TI")) + (ior (eq_attr "cpu" "znver2") + (eq_attr "cpu" "znver3"))) + (and (eq_attr "type" "sseadd") + (eq_attr "memory" "load"))) + "znver1-direct,znver1-load,znver1-fp2|znver1-fp3") + + (define_insn_reservation "znver1_avx256_add" 3 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "V8SF,V4DF,OI") + (and (eq_attr "type" "sseadd") + (eq_attr "memory" "none")))) + "znver1-double,znver1-fp2|znver1-fp3") + + (define_insn_reservation "znver1_avx256_add_load" 10 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "V8SF,V4DF,OI") + (and (eq_attr "type" "sseadd") + (eq_attr "memory" "load")))) + "znver1-double,znver1-load,znver1-fp2|znver1-fp3") + + (define_insn_reservation "znver1_sseavx_fma" 5 + (and (ior (and (eq_attr "cpu" "znver1") + (eq_attr "mode" "SF,DF,V4SF,V2DF")) + (eq_attr "cpu" "znver2")) + (and (eq_attr "type" "ssemuladd") + (eq_attr "memory" "none"))) + "znver1-direct,znver1-fp0|znver1-fp1") + + (define_insn_reservation "znver1_sseavx_fma_load" 12 + (and (ior (and (eq_attr "cpu" "znver1") + (eq_attr "mode" "SF,DF,V4SF,V2DF")) + (eq_attr "cpu" "znver2")) + (and (eq_attr "type" "ssemuladd") + (eq_attr "memory" "load"))) + "znver1-direct,znver1-load,znver1-fp0|znver1-fp1") + + (define_insn_reservation "znver1_avx256_fma" 5 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "V8SF,V4DF") + (and (eq_attr "type" "ssemuladd") + (eq_attr "memory" "none")))) + "znver1-double,znver1-fp0|znver1-fp1") + + (define_insn_reservation "znver1_avx256_fma_load" 12 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "V8SF,V4DF") + (and (eq_attr "type" "ssemuladd") + (eq_attr "memory" "load")))) + "znver1-double,znver1-load,znver1-fp0|znver1-fp1") + + (define_insn_reservation "znver3_sseavx_fma" 4 + (and (and (eq_attr "cpu" "znver3") + (eq_attr "mode" "SF,DF,V4SF,V2DF")) + (and (eq_attr "type" "ssemuladd") + (eq_attr "memory" "none"))) + "znver1-direct,znver1-fp0|znver1-fp1") + + (define_insn_reservation "znver3_sseavx_fma_load" 11 + (and (and (eq_attr "cpu" "znver3") + (eq_attr "mode" "SF,DF,V4SF,V2DF")) + (and (eq_attr "type" "ssemuladd") + (eq_attr "memory" "load"))) + "znver1-direct,znver1-load,znver1-fp0|znver1-fp1") + + (define_insn_reservation "znver3_avx256_fma" 4 + (and (eq_attr "cpu" "znver3") + (and (eq_attr "mode" "V8SF,V4DF") + (and (eq_attr "type" "ssemuladd") + (eq_attr "memory" "none")))) + "znver1-double,znver1-fp0|znver1-fp1") + + (define_insn_reservation "znver3_avx256_fma_load" 11 + (and (eq_attr "cpu" "znver3") + (and (eq_attr "mode" "V8SF,V4DF") + (and (eq_attr "type" "ssemuladd") + (eq_attr "memory" "load")))) + "znver1-double,znver1-load,znver1-fp0|znver1-fp1") + + (define_insn_reservation "znver1_sseavx_iadd" 1 + (and (ior (and (eq_attr "cpu" "znver1") + (eq_attr "mode" "DI,TI")) + (ior (eq_attr "cpu" "znver2") + (eq_attr "cpu" "znver3"))) + (and (eq_attr "type" "sseiadd") + (eq_attr "memory" "none"))) + "znver1-direct,znver1-fp0|znver1-fp1|znver1-fp3") + + (define_insn_reservation "znver1_sseavx_iadd_load" 8 + (and (ior (and (eq_attr "cpu" "znver1") + (eq_attr "mode" "DI,TI")) + (ior (eq_attr "cpu" "znver2") + (eq_attr "cpu" "znver3"))) + (and (eq_attr "type" "sseiadd") + (eq_attr "memory" "load"))) + "znver1-direct,znver1-load,znver1-fp0|znver1-fp1|znver1-fp3") + + (define_insn_reservation "znver1_avx256_iadd" 1 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "OI") + (and (eq_attr "type" "sseiadd") + (eq_attr "memory" "none")))) + "znver1-double,znver1-fp0|znver1-fp1|znver1-fp3") + + (define_insn_reservation "znver1_avx256_iadd_load" 8 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "OI") + (and (eq_attr "type" "sseiadd") + (eq_attr "memory" "load")))) + "znver1-double,znver1-load,znver1-fp0|znver1-fp1|znver1-fp3") + + ;; SSE conversions. + (define_insn_reservation "znver1_ssecvtsf_si_load" 12 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "mode" "SI") + (and (eq_attr "type" "sseicvt") + (and (match_operand:SF 1 "memory_operand") + (eq_attr "memory" "load"))))) + "znver1-double,znver1-load,znver1-fp3,znver1-ieu0") + + (define_insn_reservation "znver1_ssecvtdf_si" 5 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "SI") + (and (match_operand:DF 1 "register_operand") + (and (eq_attr "type" "sseicvt") + (eq_attr "memory" "none"))))) + "znver1-double,znver1-fp3,znver1-ieu0") + (define_insn_reservation "znver2_ssecvtdf_si" 4 + (and (eq_attr "cpu" "znver2,znver3") + (and (eq_attr "mode" "SI") + (and (match_operand:DF 1 "register_operand") + (and (eq_attr "type" "sseicvt") + (eq_attr "memory" "none"))))) + "znver1-double,znver1-fp3,znver1-ieu0") + + (define_insn_reservation "znver1_ssecvtdf_si_load" 12 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "SI") + (and (eq_attr "type" "sseicvt") + (and (match_operand:DF 1 "memory_operand") + (eq_attr "memory" "load"))))) + "znver1-double,znver1-load,znver1-fp3,znver1-ieu0") + + (define_insn_reservation "znver2_ssecvtdf_si_load" 11 + (and (eq_attr "cpu" "znver2,znver3") + (and (eq_attr "mode" "SI") + (and (eq_attr "type" "sseicvt") + (and (match_operand:DF 1 "memory_operand") + (eq_attr "memory" "load"))))) + "znver1-double,znver1-load,znver1-fp3,znver1-ieu0") + + + ;; All other used ssecvt fp3 pipes + ;; Check: Need to revisit this again. + ;; Some SSE converts may use different pipe combinations. + (define_insn_reservation "znver1_ssecvt" 4 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "type" "ssecvt") + (eq_attr "memory" "none"))) + "znver1-direct,znver1-fp3") + + (define_insn_reservation "znver2_ssecvt" 3 + (and (eq_attr "cpu" "znver2,znver3") + (and (eq_attr "type" "ssecvt") + (eq_attr "memory" "none"))) + "znver1-direct,znver1-fp3") + + (define_insn_reservation "znver1_ssecvt_load" 11 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "type" "ssecvt") + (eq_attr "memory" "load"))) + "znver1-direct,znver1-load,znver1-fp3") + + ;; SSE div + (define_insn_reservation "znver1_ssediv_ss_ps" 10 + (and (ior (and (eq_attr "cpu" "znver1") + (eq_attr "mode" "V4SF,SF")) + (and (eq_attr "cpu" "znver2") + (eq_attr "mode" "V8SF,V4SF,SF")) + (and (eq_attr "cpu" "znver3") + (eq_attr "mode" "V8SF,V4SF,SF"))) + (and (eq_attr "type" "ssediv") + (eq_attr "memory" "none"))) + "znver1-direct,znver1-fp3*10") + + (define_insn_reservation "znver1_ssediv_ss_ps_load" 17 + (and (ior (and (eq_attr "cpu" "znver1") + (eq_attr "mode" "V4SF,SF")) + (and (eq_attr "cpu" "znver2") + (eq_attr "mode" "V8SF,V4SF,SF")) + (and (eq_attr "cpu" "znver3") + (eq_attr "mode" "V8SF,V4SF,SF"))) + (and (eq_attr "type" "ssediv") + (eq_attr "memory" "load"))) + "znver1-direct,znver1-load,znver1-fp3*10") + + (define_insn_reservation "znver1_ssediv_sd_pd" 13 + (and (ior (and (eq_attr "cpu" "znver1") + (eq_attr "mode" "V2DF,DF")) + (and (eq_attr "cpu" "znver2") + (eq_attr "mode" "V4DF,V2DF,DF")) + (and (eq_attr "cpu" "znver3") + (eq_attr "mode" "V4DF,V2DF,DF"))) + (and (eq_attr "type" "ssediv") + (eq_attr "memory" "none"))) + "znver1-direct,znver1-fp3*13") + + (define_insn_reservation "znver1_ssediv_sd_pd_load" 20 + (and (ior (and (eq_attr "cpu" "znver1") + (eq_attr "mode" "V2DF,DF")) + (and (eq_attr "cpu" "znver2") + (eq_attr "mode" "V4DF,V2DF,DF")) + (and (eq_attr "cpu" "znver3") + (eq_attr "mode" "V4DF,V2DF,DF"))) + (and (eq_attr "type" "ssediv") + (eq_attr "memory" "load"))) + "znver1-direct,znver1-load,znver1-fp3*13") + + (define_insn_reservation "znver1_ssediv_avx256_ps" 12 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "V8SF") + (and (eq_attr "memory" "none") + (eq_attr "type" "ssediv")))) + "znver1-double,znver1-fp3*12") + + (define_insn_reservation "znver1_ssediv_avx256_ps_load" 19 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "V8SF") + (and (eq_attr "type" "ssediv") + (eq_attr "memory" "load")))) + "znver1-double,znver1-load,znver1-fp3*12") + + (define_insn_reservation "znver1_ssediv_avx256_pd" 15 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "V4DF") + (and (eq_attr "type" "ssediv") + (eq_attr "memory" "none")))) + "znver1-double,znver1-fp3*15") + + (define_insn_reservation "znver1_ssediv_avx256_pd_load" 22 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "V4DF") + (and (eq_attr "type" "ssediv") + (eq_attr "memory" "load")))) + "znver1-double,znver1-load,znver1-fp3*15") + ;; SSE MUL + (define_insn_reservation "znver1_ssemul_ss_ps" 3 + (and (ior (and (eq_attr "cpu" "znver1") + (eq_attr "mode" "V4SF,SF")) + (and (eq_attr "cpu" "znver2") + (eq_attr "mode" "V8SF,V4SF,SF,V4DF,V2DF,DF")) + (and (eq_attr "cpu" "znver3") + (eq_attr "mode" "V8SF,V4SF,SF,V4DF,V2DF,DF"))) + (and (eq_attr "type" "ssemul") + (eq_attr "memory" "none"))) + "znver1-direct,(znver1-fp0|znver1-fp1)*3") + + (define_insn_reservation "znver1_ssemul_ss_ps_load" 10 + (and (ior (and (eq_attr "cpu" "znver1") + (eq_attr "mode" "V4SF,SF")) + (and (eq_attr "cpu" "znver2") + (eq_attr "mode" "V8SF,V4SF,SF")) + (and (eq_attr "cpu" "znver3") + (eq_attr "mode" "V8SF,V4SF,SF"))) + (and (eq_attr "type" "ssemul") + (eq_attr "memory" "load"))) + "znver1-direct,znver1-load,(znver1-fp0|znver1-fp1)*3") + + (define_insn_reservation "znver1_ssemul_avx256_ps" 3 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "V8SF") + (and (eq_attr "type" "ssemul") + (eq_attr "memory" "none")))) + "znver1-double,(znver1-fp0|znver1-fp1)*3") + + (define_insn_reservation "znver1_ssemul_avx256_ps_load" 10 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "V8SF") + (and (eq_attr "type" "ssemul") + (eq_attr "memory" "load")))) + "znver1-double,znver1-load,(znver1-fp0|znver1-fp1)*3") + + (define_insn_reservation "znver1_ssemul_sd_pd" 4 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "V2DF,DF") + (and (eq_attr "type" "ssemul") + (eq_attr "memory" "none")))) + "znver1-direct,(znver1-fp0|znver1-fp1)*4") + + (define_insn_reservation "znver1_ssemul_sd_pd_load" 11 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "V2DF,DF") + (and (eq_attr "type" "ssemul") + (eq_attr "memory" "load")))) + "znver1-direct,znver1-load,(znver1-fp0|znver1-fp1)*4") + + (define_insn_reservation "znver2_ssemul_sd_pd" 3 + (and (eq_attr "cpu" "znver2,znver3") + (and (eq_attr "type" "ssemul") + (eq_attr "memory" "none"))) + "znver1-direct,(znver1-fp0|znver1-fp1)*3") + + (define_insn_reservation "znver2_ssemul_sd_pd_load" 10 + (and (eq_attr "cpu" "znver2,znver3") + (and (eq_attr "type" "ssemul") + (eq_attr "memory" "load"))) + "znver1-direct,znver1-load,(znver1-fp0|znver1-fp1)*3") + + + (define_insn_reservation "znver1_ssemul_avx256_pd" 5 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "V4DF") + (and (eq_attr "type" "ssemul") + (eq_attr "memory" "none")))) + "znver1-double,(znver1-fp0|znver1-fp1)*4") + + (define_insn_reservation "znver1_ssemul_avx256_pd_load" 12 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "V4DF") + (and (eq_attr "type" "ssemul") + (eq_attr "memory" "load")))) + "znver1-double,znver1-load,(znver1-fp0|znver1-fp1)*4") + + ;;SSE imul + (define_insn_reservation "znver1_sseimul" 3 + (and (ior (and (eq_attr "cpu" "znver1") + (eq_attr "mode" "TI")) + (and (eq_attr "cpu" "znver2") + (eq_attr "mode" "TI,OI")) + (and (eq_attr "cpu" "znver3") + (eq_attr "mode" "TI,OI"))) + (and (eq_attr "type" "sseimul") + (eq_attr "memory" "none"))) + "znver1-direct,znver1-fp0*3") + + (define_insn_reservation "znver1_sseimul_avx256" 4 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "mode" "OI") + (and (eq_attr "type" "sseimul") + (eq_attr "memory" "none")))) + "znver1-double,znver1-fp0*4") + + (define_insn_reservation "znver1_sseimul_load" 10 + (and (ior (and (eq_attr "cpu" "znver1") + (eq_attr "mode" "TI")) + (and (eq_attr "cpu" "znver2") + (eq_attr "mode" "TI,OI")) + (and (eq_attr "cpu" "znver3") + (eq_attr "mode" "TI,OI"))) + (and (eq_attr "type" "sseimul") + (eq_attr "memory" "load"))) + "znver1-direct,znver1-load,znver1-fp0*3") + + (define_insn_reservation "znver1_sseimul_avx256_load" 11 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "mode" "OI") + (and (eq_attr "type" "sseimul") + (eq_attr "memory" "load")))) + "znver1-double,znver1-load,znver1-fp0*4") + + (define_insn_reservation "znver1_sseimul_di" 3 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "mode" "DI") + (and (eq_attr "memory" "none") + (eq_attr "type" "sseimul")))) + "znver1-direct,znver1-fp0*3") + + (define_insn_reservation "znver1_sseimul_load_di" 10 + (and (eq_attr "cpu" "znver1,znver2,znver3") + (and (eq_attr "mode" "DI") + (and (eq_attr "type" "sseimul") + (eq_attr "memory" "load")))) + "znver1-direct,znver1-load,znver1-fp0*3") + + ;; SSE compares + (define_insn_reservation "znver1_sse_cmp" 1 + (and (ior (and (eq_attr "cpu" "znver1") + (eq_attr "mode" "SF,DF,V4SF,V2DF")) + (and (eq_attr "cpu" "znver2") + (eq_attr "mode" "SF,DF,V4SF,V2DF,V8SF,V4DF")) + (and (eq_attr "cpu" "znver3") + (eq_attr "mode" "SF,DF,V4SF,V2DF,V8SF,V4DF"))) + (and (eq_attr "type" "ssecmp") + (eq_attr "memory" "none"))) + "znver1-direct,znver1-fp0|znver1-fp1") + + (define_insn_reservation "znver1_sse_cmp_load" 8 + (and (ior (and (eq_attr "cpu" "znver1") + (eq_attr "mode" "SF,DF,V4SF,V2DF")) + (and (eq_attr "cpu" "znver2") + (eq_attr "mode" "SF,DF,V4SF,V2DF,V8SF,V4DF")) + (and (eq_attr "cpu" "znver3") + (eq_attr "mode" "SF,DF,V4SF,V2DF,V8SF,V4DF"))) + (and (eq_attr "type" "ssecmp") + (eq_attr "memory" "load"))) + "znver1-direct,znver1-load,znver1-fp0|znver1-fp1") + + (define_insn_reservation "znver1_sse_cmp_avx256" 1 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "V8SF,V4DF") + (and (eq_attr "type" "ssecmp") + (eq_attr "memory" "none")))) + "znver1-double,znver1-fp0|znver1-fp1") + + (define_insn_reservation "znver1_sse_cmp_avx256_load" 8 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "V8SF,V4DF") + (and (eq_attr "type" "ssecmp") + (eq_attr "memory" "load")))) + "znver1-double,znver1-load,znver1-fp0|znver1-fp1") + + (define_insn_reservation "znver1_sse_icmp" 1 + (and (ior (and (eq_attr "cpu" "znver1") + (eq_attr "mode" "QI,HI,SI,DI,TI")) + (and (eq_attr "cpu" "znver2") + (eq_attr "mode" "QI,HI,SI,DI,TI,OI")) + (and (eq_attr "cpu" "znver3") + (eq_attr "mode" "QI,HI,SI,DI,TI,OI"))) + (and (eq_attr "type" "ssecmp") + (eq_attr "memory" "none"))) + "znver1-direct,znver1-fp0|znver1-fp3") + + (define_insn_reservation "znver1_sse_icmp_load" 8 + (and (ior (and (eq_attr "cpu" "znver1") + (eq_attr "mode" "QI,HI,SI,DI,TI")) + (and (eq_attr "cpu" "znver2") + (eq_attr "mode" "QI,HI,SI,DI,TI,OI")) + (and (eq_attr "cpu" "znver3") + (eq_attr "mode" "QI,HI,SI,DI,TI,OI"))) + (and (eq_attr "type" "ssecmp") + (eq_attr "memory" "load"))) + "znver1-direct,znver1-load,znver1-fp0|znver1-fp3") + + (define_insn_reservation "znver1_sse_icmp_avx256" 1 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "OI") + (and (eq_attr "type" "ssecmp") + (eq_attr "memory" "none")))) + "znver1-double,znver1-fp0|znver1-fp3") + + (define_insn_reservation "znver1_sse_icmp_avx256_load" 8 + (and (eq_attr "cpu" "znver1") + (and (eq_attr "mode" "OI") + (and (eq_attr "type" "ssecmp") + (eq_attr "memory" "load")))) + "znver1-double,znver1-load,znver1-fp0|znver1-fp3") diff -Nrcpad gcc-11.4.0/gcc/config/i386/znver1.md gcc-11.5.0/gcc/config/i386/znver1.md *** gcc-11.4.0/gcc/config/i386/znver1.md Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/i386/znver1.md Thu Jan 1 00:00:00 1970 *************** *** 1,1350 **** - ;; Copyright (C) 2012-2021 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 - ;; . - ;; - - - (define_attr "znver1_decode" "direct,vector,double" - (const_string "direct")) - - ;; AMD znver1, znver2 and znver3 Scheduling - ;; Modeling automatons for zen decoders, integer execution pipes, - ;; AGU pipes and floating point execution units. - (define_automaton "znver1, znver1_ieu, znver1_fp, znver1_agu") - - ;; Decoders unit has 4 decoders and all of them can decode fast path - ;; and vector type instructions. - (define_cpu_unit "znver1-decode0" "znver1") - (define_cpu_unit "znver1-decode1" "znver1") - (define_cpu_unit "znver1-decode2" "znver1") - (define_cpu_unit "znver1-decode3" "znver1") - - ;; Currently blocking all decoders for vector path instructions as - ;; they are dispatched separetely as microcode sequence. - ;; Fix me: Need to revisit this. - (define_reservation "znver1-vector" "znver1-decode0+znver1-decode1+znver1-decode2+znver1-decode3") - - ;; Direct instructions can be issued to any of the four decoders. - (define_reservation "znver1-direct" "znver1-decode0|znver1-decode1|znver1-decode2|znver1-decode3") - - ;; Fix me: Need to revisit this later to simulate fast path double behavior. - (define_reservation "znver1-double" "znver1-direct") - - - ;; Integer unit 4 ALU pipes. - (define_cpu_unit "znver1-ieu0" "znver1_ieu") - (define_cpu_unit "znver1-ieu1" "znver1_ieu") - (define_cpu_unit "znver1-ieu2" "znver1_ieu") - (define_cpu_unit "znver1-ieu3" "znver1_ieu") - (define_reservation "znver1-ieu" "znver1-ieu0|znver1-ieu1|znver1-ieu2|znver1-ieu3") - - ;; 2 AGU pipes in znver1 and 3 AGU pipes in znver2 and znver3 - ;; According to CPU diagram last AGU unit is used only for stores. - (define_cpu_unit "znver1-agu0" "znver1_agu") - (define_cpu_unit "znver1-agu1" "znver1_agu") - (define_cpu_unit "znver2-agu2" "znver1_agu") - (define_reservation "znver1-agu-reserve" "znver1-agu0|znver1-agu1") - (define_reservation "znver2-store-agu-reserve" "znver1-agu0|znver1-agu1|znver2-agu2") - - ;; Load is 4 cycles. We do not model reservation of load unit. - ;;(define_reservation "znver1-load" "znver1-agu-reserve, nothing, nothing, nothing") - (define_reservation "znver1-load" "znver1-agu-reserve") - ;; Store operations differs between znver1, znver2 and znver3 because extra AGU - ;; was added. - (define_reservation "znver1-store" "znver1-agu-reserve") - (define_reservation "znver2-store" "znver2-store-agu-reserve") - - ;; vectorpath (microcoded) instructions are single issue instructions. - ;; So, they occupy all the integer units. - (define_reservation "znver1-ivector" "znver1-ieu0+znver1-ieu1 - +znver1-ieu2+znver1-ieu3 - +znver1-agu0+znver1-agu1") - - (define_reservation "znver2-ivector" "znver1-ieu0+znver1-ieu1 - +znver1-ieu2+znver1-ieu3 - +znver1-agu0+znver1-agu1+znver2-agu2") - - ;; Floating point unit 4 FP pipes. - (define_cpu_unit "znver1-fp0" "znver1_fp") - (define_cpu_unit "znver1-fp1" "znver1_fp") - (define_cpu_unit "znver1-fp2" "znver1_fp") - (define_cpu_unit "znver1-fp3" "znver1_fp") - - (define_reservation "znver1-fpu" "znver1-fp0|znver1-fp1|znver1-fp2|znver1-fp3") - - (define_reservation "znver1-fvector" "znver1-fp0+znver1-fp1 - +znver1-fp2+znver1-fp3 - +znver1-agu0+znver1-agu1") - (define_reservation "znver2-fvector" "znver1-fp0+znver1-fp1 - +znver1-fp2+znver1-fp3 - +znver1-agu0+znver1-agu1+znver2-agu2") - - ;; Call instruction - (define_insn_reservation "znver1_call" 1 - (and (eq_attr "cpu" "znver1") - (eq_attr "type" "call,callv")) - "znver1-double,znver1-store,znver1-ieu0|znver1-ieu3") - - (define_insn_reservation "znver2_call" 1 - (and (eq_attr "cpu" "znver2,znver3") - (eq_attr "type" "call,callv")) - "znver1-double,znver2-store,znver1-ieu0|znver1-ieu3") - - ;; General instructions - (define_insn_reservation "znver1_push" 1 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "type" "push") - (eq_attr "memory" "store"))) - "znver1-direct,znver1-store") - (define_insn_reservation "znver2_push" 1 - (and (eq_attr "cpu" "znver2,znver3") - (and (eq_attr "type" "push") - (eq_attr "memory" "store"))) - "znver1-direct,znver2-store") - - (define_insn_reservation "znver1_push_load" 4 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "type" "push") - (eq_attr "memory" "both"))) - "znver1-direct,znver1-load,znver1-store") - (define_insn_reservation "znver2_push_load" 4 - (and (eq_attr "cpu" "znver2,znver3") - (and (eq_attr "type" "push") - (eq_attr "memory" "both"))) - "znver1-direct,znver1-load,znver2-store") - - (define_insn_reservation "znver1_pop" 4 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "type" "pop") - (eq_attr "memory" "load"))) - "znver1-direct,znver1-load") - - (define_insn_reservation "znver1_pop_mem" 4 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "type" "pop") - (eq_attr "memory" "both"))) - "znver1-direct,znver1-load,znver1-store") - (define_insn_reservation "znver2_pop_mem" 4 - (and (eq_attr "cpu" "znver2,znver3") - (and (eq_attr "type" "pop") - (eq_attr "memory" "both"))) - "znver1-direct,znver1-load,znver2-store") - - ;; Leave - (define_insn_reservation "znver1_leave" 1 - (and (eq_attr "cpu" "znver1") - (eq_attr "type" "leave")) - "znver1-double,znver1-ieu, znver1-store") - (define_insn_reservation "znver2_leave" 1 - (and (eq_attr "cpu" "znver2,znver3") - (eq_attr "type" "leave")) - "znver1-double,znver1-ieu, znver2-store") - - ;; Integer Instructions or General instructions - ;; Multiplications - ;; Reg operands - (define_insn_reservation "znver1_imul" 3 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "type" "imul") - (eq_attr "memory" "none"))) - "znver1-direct,znver1-ieu1") - - (define_insn_reservation "znver1_imul_mem" 7 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "type" "imul") - (eq_attr "memory" "!none"))) - "znver1-direct,znver1-load, znver1-ieu1") - - ;; Divisions - ;; Reg operands - (define_insn_reservation "znver1_idiv_DI" 41 - (and (eq_attr "cpu" "znver1,znver2") - (and (eq_attr "type" "idiv") - (and (eq_attr "mode" "DI") - (eq_attr "memory" "none")))) - "znver1-double,znver1-ieu2*41") - - (define_insn_reservation "znver1_idiv_SI" 25 - (and (eq_attr "cpu" "znver1,znver2") - (and (eq_attr "type" "idiv") - (and (eq_attr "mode" "SI") - (eq_attr "memory" "none")))) - "znver1-double,znver1-ieu2*25") - - (define_insn_reservation "znver1_idiv_HI" 17 - (and (eq_attr "cpu" "znver1,znver2") - (and (eq_attr "type" "idiv") - (and (eq_attr "mode" "HI") - (eq_attr "memory" "none")))) - "znver1-double,znver1-ieu2*17") - - (define_insn_reservation "znver1_idiv_QI" 12 - (and (eq_attr "cpu" "znver1,znver2") - (and (eq_attr "type" "idiv") - (and (eq_attr "mode" "QI") - (eq_attr "memory" "none")))) - "znver1-direct,znver1-ieu2*12") - - ;; Mem operands - (define_insn_reservation "znver1_idiv_mem_DI" 45 - (and (eq_attr "cpu" "znver1,znver2") - (and (eq_attr "type" "idiv") - (and (eq_attr "mode" "DI") - (eq_attr "memory" "none")))) - "znver1-double,znver1-load,znver1-ieu2*41") - - (define_insn_reservation "znver1_idiv_mem_SI" 29 - (and (eq_attr "cpu" "znver1,znver2") - (and (eq_attr "type" "idiv") - (and (eq_attr "mode" "SI") - (eq_attr "memory" "none")))) - "znver1-double,znver1-load,znver1-ieu2*25") - - (define_insn_reservation "znver1_idiv_mem_HI" 21 - (and (eq_attr "cpu" "znver1,znver2") - (and (eq_attr "type" "idiv") - (and (eq_attr "mode" "HI") - (eq_attr "memory" "none")))) - "znver1-double,znver1-load,znver1-ieu2*17") - - (define_insn_reservation "znver1_idiv_mem_QI" 16 - (and (eq_attr "cpu" "znver1,znver2") - (and (eq_attr "type" "idiv") - (and (eq_attr "mode" "QI") - (eq_attr "memory" "none")))) - "znver1-direct,znver1-load,znver1-ieu2*12") - - (define_insn_reservation "znver3_idiv_DI" 18 - (and (eq_attr "cpu" "znver3") - (and (eq_attr "type" "idiv") - (and (eq_attr "mode" "DI") - (eq_attr "memory" "none")))) - "znver1-double,znver1-ieu2*18") - - (define_insn_reservation "znver3_idiv_SI" 12 - (and (eq_attr "cpu" "znver3") - (and (eq_attr "type" "idiv") - (and (eq_attr "mode" "SI") - (eq_attr "memory" "none")))) - "znver1-double,znver1-ieu2*12") - - (define_insn_reservation "znver3_idiv_HI" 10 - (and (eq_attr "cpu" "znver3") - (and (eq_attr "type" "idiv") - (and (eq_attr "mode" "HI") - (eq_attr "memory" "none")))) - "znver1-double,znver1-ieu2*10") - - (define_insn_reservation "znver3_idiv_QI" 9 - (and (eq_attr "cpu" "znver3") - (and (eq_attr "type" "idiv") - (and (eq_attr "mode" "QI") - (eq_attr "memory" "none")))) - "znver1-direct,znver1-ieu2*9") - - (define_insn_reservation "znver3_idiv_mem_DI" 22 - (and (eq_attr "cpu" "znver3") - (and (eq_attr "type" "idiv") - (and (eq_attr "mode" "DI") - (eq_attr "memory" "load")))) - "znver1-double,znver1-load,znver1-ieu2*22") - - (define_insn_reservation "znver3_idiv_mem_SI" 16 - (and (eq_attr "cpu" "znver3") - (and (eq_attr "type" "idiv") - (and (eq_attr "mode" "SI") - (eq_attr "memory" "load")))) - "znver1-double,znver1-load,znver1-ieu2*16") - - (define_insn_reservation "znver3_idiv_mem_HI" 14 - (and (eq_attr "cpu" "znver3") - (and (eq_attr "type" "idiv") - (and (eq_attr "mode" "HI") - (eq_attr "memory" "load")))) - "znver1-double,znver1-load,znver1-ieu2*10") - - (define_insn_reservation "znver3_idiv_mem_QI" 13 - (and (eq_attr "cpu" "znver3") - (and (eq_attr "type" "idiv") - (and (eq_attr "mode" "QI") - (eq_attr "memory" "load")))) - "znver1-direct,znver1-load,znver1-ieu2*9") - - ;; STR ISHIFT which are micro coded. - ;; Fix me: Latency need to be rechecked. - (define_insn_reservation "znver1_str_ishift" 6 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "type" "str,ishift") - (eq_attr "memory" "both,store"))) - "znver1-vector,znver1-ivector") - - (define_insn_reservation "znver2_str_ishift" 3 - (and (eq_attr "cpu" "znver2,znver3") - (and (eq_attr "type" "ishift") - (eq_attr "memory" "both,store"))) - "znver1-vector,znver1-ivector") - (define_insn_reservation "znver2_str_istr" 19 - (and (eq_attr "cpu" "znver2,znver3") - (and (eq_attr "type" "str") - (eq_attr "memory" "both,store"))) - "znver1-vector,znver1-ivector") - - ;; MOV - integer moves - (define_insn_reservation "znver1_load_imov_double" 2 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "znver1_decode" "double") - (and (eq_attr "type" "imovx") - (eq_attr "memory" "none")))) - "znver1-double,znver1-ieu|znver1-ieu") - - (define_insn_reservation "znver2_load_imov_double" 1 - (and (eq_attr "cpu" "znver2,znver3") - (and (eq_attr "znver1_decode" "double") - (and (eq_attr "type" "imovx") - (eq_attr "memory" "none")))) - "znver1-double,znver1-ieu|znver1-ieu") - - (define_insn_reservation "znver1_load_imov_direct" 1 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "type" "imov,imovx") - (eq_attr "memory" "none"))) - "znver1-direct,znver1-ieu") - - (define_insn_reservation "znver1_load_imov_double_store" 2 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "znver1_decode" "double") - (and (eq_attr "type" "imovx") - (eq_attr "memory" "store")))) - "znver1-double,znver1-ieu|znver1-ieu,znver1-store") - - (define_insn_reservation "znver2_load_imov_double_store" 1 - (and (eq_attr "cpu" "znver2,znver3") - (and (eq_attr "znver1_decode" "double") - (and (eq_attr "type" "imovx") - (eq_attr "memory" "store")))) - "znver1-double,znver1-ieu|znver1-ieu,znver2-store") - - (define_insn_reservation "znver1_load_imov_direct_store" 1 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "type" "imov,imovx") - (eq_attr "memory" "store"))) - "znver1-direct,znver1-ieu,znver1-store") - - (define_insn_reservation "znver2_load_imov_direct_store" 1 - (and (eq_attr "cpu" "znver2,znver3") - (and (eq_attr "type" "imov,imovx") - (eq_attr "memory" "store"))) - "znver1-direct,znver1-ieu,znver2-store") - - (define_insn_reservation "znver1_load_imov_double_load" 5 - (and (eq_attr "cpu" "znver1,znver2") - (and (eq_attr "znver1_decode" "double") - (and (eq_attr "type" "imovx") - (eq_attr "memory" "load")))) - "znver1-double,znver1-load,znver1-ieu|znver1-ieu") - - (define_insn_reservation "znver2_load_imov_double_load" 4 - (and (eq_attr "cpu" "znver2,znver3") - (and (eq_attr "znver1_decode" "double") - (and (eq_attr "type" "imovx") - (eq_attr "memory" "load")))) - "znver1-double,znver1-load,znver1-ieu|znver1-ieu") - - (define_insn_reservation "znver1_load_imov_direct_load" 4 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "type" "imov,imovx") - (eq_attr "memory" "load"))) - "znver1-direct,znver1-load") - - ;; INTEGER/GENERAL instructions - ;; register/imm operands only: ALU, ICMP, NEG, NOT, ROTATE, ISHIFT, TEST - (define_insn_reservation "znver1_insn" 1 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "type" "alu,icmp,negnot,rotate,rotate1,ishift,ishift1,test,setcc,incdec,icmov") - (eq_attr "memory" "none,unknown"))) - "znver1-direct,znver1-ieu") - - (define_insn_reservation "znver1_insn_load" 5 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "type" "alu,icmp,negnot,rotate,rotate1,ishift,ishift1,test,setcc,incdec,icmov") - (eq_attr "memory" "load"))) - "znver1-direct,znver1-load,znver1-ieu") - - (define_insn_reservation "znver1_insn_store" 1 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "type" "alu,icmp,negnot,rotate,rotate1,ishift1,test,setcc,incdec") - (eq_attr "memory" "store"))) - "znver1-direct,znver1-ieu,znver1-store") - - (define_insn_reservation "znver2_insn_store" 1 - (and (eq_attr "cpu" "znver2,znver3") - (and (eq_attr "type" "alu,icmp,negnot,rotate,rotate1,ishift1,test,setcc,incdec") - (eq_attr "memory" "store"))) - "znver1-direct,znver1-ieu,znver2-store") - - (define_insn_reservation "znver1_insn_both" 5 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "type" "alu,icmp,negnot,rotate,rotate1,ishift1,test,setcc,incdec") - (eq_attr "memory" "both"))) - "znver1-direct,znver1-load,znver1-ieu,znver1-store") - - (define_insn_reservation "znver2_insn_both" 5 - (and (eq_attr "cpu" "znver2,znver3") - (and (eq_attr "type" "alu,icmp,negnot,rotate,rotate1,ishift1,test,setcc,incdec") - (eq_attr "memory" "both"))) - "znver1-direct,znver1-load,znver1-ieu,znver2-store") - - ;; Fix me: Other vector type insns keeping latency 6 as of now. - (define_insn_reservation "znver1_ieu_vector" 6 - (and (eq_attr "cpu" "znver1") - (eq_attr "type" "other,str,multi")) - "znver1-vector,znver1-ivector") - - (define_insn_reservation "znver2_ieu_vector" 5 - (and (eq_attr "cpu" "znver2,znver3") - (eq_attr "type" "other,str,multi")) - "znver1-vector,znver2-ivector") - - ;; ALU1 register operands. - (define_insn_reservation "znver1_alu1_vector" 3 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "znver1_decode" "vector") - (and (eq_attr "type" "alu1") - (eq_attr "memory" "none,unknown")))) - "znver1-vector,znver1-ivector") - - (define_insn_reservation "znver2_alu1_vector" 3 - (and (eq_attr "cpu" "znver2,znver3") - (and (eq_attr "znver1_decode" "vector") - (and (eq_attr "type" "alu1") - (eq_attr "memory" "none,unknown")))) - "znver1-vector,znver2-ivector") - - (define_insn_reservation "znver1_alu1_double" 2 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "znver1_decode" "double") - (and (eq_attr "type" "alu1") - (eq_attr "memory" "none,unknown")))) - "znver1-double,znver1-ieu") - - (define_insn_reservation "znver1_alu1_direct" 1 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "znver1_decode" "direct") - (and (eq_attr "type" "alu1") - (eq_attr "memory" "none,unknown")))) - "znver1-direct,znver1-ieu") - - ;; Branches : Fix me need to model conditional branches. - (define_insn_reservation "znver1_branch" 1 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "type" "ibr") - (eq_attr "memory" "none"))) - "znver1-direct") - - ;; Indirect branches check latencies. - (define_insn_reservation "znver1_indirect_branch_mem" 6 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "type" "ibr") - (eq_attr "memory" "load"))) - "znver1-vector,znver1-ivector") - - (define_insn_reservation "znver2_indirect_branch_mem" 6 - (and (eq_attr "cpu" "znver2,znver3") - (and (eq_attr "type" "ibr") - (eq_attr "memory" "load"))) - "znver1-vector,znver2-ivector") - - ;; LEA executes in ALU units with 1 cycle latency. - (define_insn_reservation "znver1_lea" 1 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (eq_attr "type" "lea")) - "znver1-direct,znver1-ieu") - - ;; Other integer instrucions - (define_insn_reservation "znver1_idirect" 1 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "unit" "integer,unknown") - (eq_attr "memory" "none,unknown"))) - "znver1-direct,znver1-ieu") - - ;; Floating point - (define_insn_reservation "znver1_fp_cmov" 6 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (eq_attr "type" "fcmov")) - "znver1-vector,znver1-fvector") - - (define_insn_reservation "znver1_fp_mov_direct_load" 8 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "znver1_decode" "direct") - (and (eq_attr "type" "fmov") - (eq_attr "memory" "load")))) - "znver1-direct,znver1-load,znver1-fp3|znver1-fp1") - - (define_insn_reservation "znver1_fp_mov_direct_store" 5 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "znver1_decode" "direct") - (and (eq_attr "type" "fmov") - (eq_attr "memory" "store")))) - "znver1-direct,znver1-fp2|znver1-fp3,znver1-store") - (define_insn_reservation "znver2_fp_mov_direct_store" 5 - (and (eq_attr "cpu" "znver2,znver3") - (and (eq_attr "znver1_decode" "direct") - (and (eq_attr "type" "fmov") - (eq_attr "memory" "store")))) - "znver1-direct,znver1-fp2|znver1-fp3,znver2-store") - - (define_insn_reservation "znver1_fp_mov_double" 4 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "znver1_decode" "double") - (and (eq_attr "type" "fmov") - (eq_attr "memory" "none")))) - "znver1-double,znver1-fp3") - - (define_insn_reservation "znver1_fp_mov_double_load" 12 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "znver1_decode" "double") - (and (eq_attr "type" "fmov") - (eq_attr "memory" "load")))) - "znver1-double,znver1-load,znver1-fp3") - - (define_insn_reservation "znver1_fp_mov_direct" 1 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (eq_attr "type" "fmov")) - "znver1-direct,znver1-fp3") - - ;; TODO: AGU? - (define_insn_reservation "znver1_fp_spc_direct" 5 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "type" "fpspc") - (eq_attr "memory" "store"))) - "znver1-direct,znver1-fp3,znver1-fp2") - - (define_insn_reservation "znver1_fp_insn_vector" 6 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "znver1_decode" "vector") - (eq_attr "type" "fpspc,mmxcvt,sselog1,ssemul,ssemov"))) - "znver1-vector,znver1-fvector") - (define_insn_reservation "znver2_fp_insn_vector" 6 - (and (eq_attr "cpu" "znver2,znver3") - (and (eq_attr "znver1_decode" "vector") - (eq_attr "type" "fpspc,mmxcvt,sselog1,ssemul,ssemov"))) - "znver1-vector,znver2-fvector") - - ;; FABS - (define_insn_reservation "znver1_fp_fsgn" 1 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (eq_attr "type" "fsgn")) - "znver1-direct,znver1-fp3") - - (define_insn_reservation "znver1_fp_fcmp" 2 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "memory" "none") - (and (eq_attr "znver1_decode" "double") - (eq_attr "type" "fcmp")))) - "znver1-double,znver1-fp0,znver1-fp2") - - (define_insn_reservation "znver1_fp_fcmp_load" 9 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "memory" "none") - (and (eq_attr "znver1_decode" "double") - (eq_attr "type" "fcmp")))) - "znver1-double,znver1-load, znver1-fp0,znver1-fp2") - - ;;FADD FSUB FMUL - (define_insn_reservation "znver1_fp_op_mul" 5 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "type" "fop,fmul") - (eq_attr "memory" "none"))) - "znver1-direct,znver1-fp0*5") - - (define_insn_reservation "znver1_fp_op_mul_load" 12 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "type" "fop,fmul") - (eq_attr "memory" "load"))) - "znver1-direct,znver1-load,znver1-fp0*5") - - (define_insn_reservation "znver1_fp_op_imul_load" 16 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "type" "fop,fmul") - (and (eq_attr "fp_int_src" "true") - (eq_attr "memory" "load")))) - "znver1-double,znver1-load,znver1-fp3,znver1-fp0") - - (define_insn_reservation "znver1_fp_op_div" 15 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "type" "fdiv") - (eq_attr "memory" "none"))) - "znver1-direct,znver1-fp3*15") - - (define_insn_reservation "znver1_fp_op_div_load" 22 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "type" "fdiv") - (eq_attr "memory" "load"))) - "znver1-direct,znver1-load,znver1-fp3*15") - - (define_insn_reservation "znver1_fp_op_idiv_load" 27 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "type" "fdiv") - (and (eq_attr "fp_int_src" "true") - (eq_attr "memory" "load")))) - "znver1-double,znver1-load,znver1-fp3*19") - - (define_insn_reservation "znver2_fp_op_idiv_load" 26 - (and (eq_attr "cpu" "znver2,znver3") - (and (eq_attr "type" "fdiv") - (and (eq_attr "fp_int_src" "true") - (eq_attr "memory" "load")))) - "znver1-double,znver1-load,znver1-fp3*19") - - - ;; MMX, SSE, SSEn.n, AVX, AVX2 instructions - (define_insn_reservation "znver1_fp_insn" 1 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (eq_attr "type" "mmx")) - "znver1-direct,znver1-fpu") - - (define_insn_reservation "znver1_mmx_add" 1 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "type" "mmxadd") - (eq_attr "memory" "none"))) - "znver1-direct,znver1-fp0|znver1-fp1|znver1-fp3") - - (define_insn_reservation "znver1_mmx_add_load" 8 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "type" "mmxadd") - (eq_attr "memory" "load"))) - "znver1-direct,znver1-load,znver1-fp0|znver1-fp1|znver1-fp3") - - (define_insn_reservation "znver1_mmx_cmp" 1 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "type" "mmxcmp") - (eq_attr "memory" "none"))) - "znver1-direct,znver1-fp0|znver1-fp3") - - (define_insn_reservation "znver1_mmx_cmp_load" 8 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "type" "mmxcmp") - (eq_attr "memory" "load"))) - "znver1-direct,znver1-load,znver1-fp0|znver1-fp3") - - (define_insn_reservation "znver1_mmx_cvt_pck_shuf" 1 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "type" "mmxcvt,sseshuf,sseshuf1") - (eq_attr "memory" "none"))) - "znver1-direct,znver1-fp1|znver1-fp2") - - (define_insn_reservation "znver1_mmx_cvt_pck_shuf_load" 8 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "type" "mmxcvt,sseshuf,sseshuf1") - (eq_attr "memory" "load"))) - "znver1-direct,znver1-load,znver1-fp1|znver1-fp2") - - (define_insn_reservation "znver1_mmx_shift_move" 1 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "type" "mmxshft,mmxmov") - (eq_attr "memory" "none"))) - "znver1-direct,znver1-fp2") - - (define_insn_reservation "znver1_mmx_shift_move_load" 8 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "type" "mmxshft,mmxmov") - (eq_attr "memory" "load"))) - "znver1-direct,znver1-load,znver1-fp2") - - (define_insn_reservation "znver1_mmx_move_store" 1 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "type" "mmxshft,mmxmov") - (eq_attr "memory" "store,both"))) - "znver1-direct,znver1-fp2,znver1-store") - (define_insn_reservation "znver2_mmx_move_store" 1 - (and (eq_attr "cpu" "znver2,znver3") - (and (eq_attr "type" "mmxshft,mmxmov") - (eq_attr "memory" "store,both"))) - "znver1-direct,znver1-fp2,znver2-store") - - (define_insn_reservation "znver1_mmx_mul" 3 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "type" "mmxmul") - (eq_attr "memory" "none"))) - "znver1-direct,znver1-fp0*3") - - (define_insn_reservation "znver1_mmx_load" 10 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "type" "mmxmul") - (eq_attr "memory" "load"))) - "znver1-direct,znver1-load,znver1-fp0*3") - - ;; TODO - (define_insn_reservation "znver1_avx256_log" 1 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "V8SF,V4DF,OI") - (and (eq_attr "type" "sselog") - (eq_attr "memory" "none")))) - "znver1-double,znver1-fpu") - - (define_insn_reservation "znver1_avx256_log_load" 8 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "V8SF,V4DF,OI") - (and (eq_attr "type" "sselog") - (eq_attr "memory" "load")))) - "znver1-double,znver1-load,znver1-fpu") - - (define_insn_reservation "znver1_sse_log" 1 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "type" "sselog") - (eq_attr "memory" "none"))) - "znver1-direct,znver1-fpu") - - (define_insn_reservation "znver1_sse_log_load" 8 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "type" "sselog") - (eq_attr "memory" "load"))) - "znver1-direct,znver1-load,znver1-fpu") - - (define_insn_reservation "znver1_avx256_log1" 1 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "V8SF,V4DF,OI") - (and (eq_attr "type" "sselog1") - (eq_attr "memory" "none")))) - "znver1-double,znver1-fp1|znver1-fp2") - - (define_insn_reservation "znver1_avx256_log1_load" 8 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "V8SF,V4DF,OI") - (and (eq_attr "type" "sselog1") - (eq_attr "memory" "!none")))) - "znver1-double,znver1-load,znver1-fp1|znver1-fp2") - - (define_insn_reservation "znver1_sse_log1" 1 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "type" "sselog1") - (eq_attr "memory" "none"))) - "znver1-direct,znver1-fp1|znver1-fp2") - - (define_insn_reservation "znver1_sse_log1_load" 8 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "type" "sselog1") - (eq_attr "memory" "!none"))) - "znver1-direct,znver1-load,znver1-fp1|znver1-fp2") - - (define_insn_reservation "znver1_sse_comi" 1 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "SF,DF,V4SF,V2DF") - (and (eq_attr "prefix" "!vex") - (and (eq_attr "prefix_extra" "0") - (and (eq_attr "type" "ssecomi") - (eq_attr "memory" "none")))))) - "znver1-direct,znver1-fp0|znver1-fp1") - - (define_insn_reservation "znver1_sse_comi_load" 8 - (and (ior (and (eq_attr "cpu" "znver1") - (eq_attr "mode" "SF,DF,V4SF,V2DF")) - (ior (eq_attr "cpu" "znver2") - (eq_attr "cpu" "znver3"))) - (and (eq_attr "prefix_extra" "0") - (and (eq_attr "type" "ssecomi") - (eq_attr "memory" "load")))) - "znver1-direct,znver1-load,znver1-fp0|znver1-fp1") - - (define_insn_reservation "znver1_sse_comi_double" 2 - (and (ior (and (eq_attr "cpu" "znver1") - (eq_attr "mode" "V4SF,V2DF,TI")) - (ior (eq_attr "cpu" "znver2") - (eq_attr "cpu" "znver3"))) - (and (eq_attr "prefix" "vex") - (and (eq_attr "prefix_extra" "0") - (and (eq_attr "type" "ssecomi") - (eq_attr "memory" "none"))))) - "znver1-double,znver1-fp0|znver1-fp1") - - (define_insn_reservation "znver1_sse_comi_double_load" 10 - (and (ior (and (eq_attr "cpu" "znver1") - (eq_attr "mode" "V4SF,V2DF,TI")) - (ior (eq_attr "cpu" "znver2") - (eq_attr "cpu" "znver3"))) - (and (eq_attr "prefix" "vex") - (and (eq_attr "prefix_extra" "0") - (and (eq_attr "type" "ssecomi") - (eq_attr "memory" "load"))))) - "znver1-double,znver1-load,znver1-fp0|znver1-fp1") - - (define_insn_reservation "znver1_sse_test" 1 - (and (ior (and (eq_attr "cpu" "znver1") - (eq_attr "mode" "SF,DF,V4SF,V2DF,TI")) - (ior (eq_attr "cpu" "znver2") - (eq_attr "cpu" "znver3"))) - (and (eq_attr "prefix_extra" "1") - (and (eq_attr "type" "ssecomi") - (eq_attr "memory" "none")))) - "znver1-direct,znver1-fp1|znver1-fp2") - - (define_insn_reservation "znver1_sse_test_load" 8 - (and (ior (and (eq_attr "cpu" "znver1") - (eq_attr "mode" "SF,DF,V4SF,V2DF,TI")) - (ior (eq_attr "cpu" "znver2") - (eq_attr "cpu" "znver3"))) - (and (eq_attr "prefix_extra" "1") - (and (eq_attr "type" "ssecomi") - (eq_attr "memory" "load")))) - "znver1-direct,znver1-load,znver1-fp1|znver1-fp2") - - ;; SSE moves - ;; Fix me: Need to revist this again some of the moves may be restricted - ;; to some fpu pipes. - (define_insn_reservation "znver1_sse_mov" 2 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "SI") - (and (eq_attr "isa" "avx") - (and (eq_attr "type" "ssemov") - (eq_attr "memory" "none"))))) - "znver1-direct,znver1-ieu0") - - (define_insn_reservation "znver2_sse_mov" 1 - (and (eq_attr "cpu" "znver2,znver3") - (and (eq_attr "mode" "SI") - (and (eq_attr "isa" "avx") - (and (eq_attr "type" "ssemov") - (eq_attr "memory" "none"))))) - "znver1-direct,znver1-ieu0") - - (define_insn_reservation "znver1_avx_mov" 2 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "TI") - (and (eq_attr "isa" "avx") - (and (eq_attr "type" "ssemov") - (and (match_operand:SI 1 "register_operand") - (eq_attr "memory" "none")))))) - "znver1-direct,znver1-ieu2") - - (define_insn_reservation "znver2_avx_mov" 1 - (and (eq_attr "cpu" "znver2,znver3") - (and (eq_attr "mode" "TI") - (and (eq_attr "isa" "avx") - (and (eq_attr "type" "ssemov") - (and (match_operand:SI 1 "register_operand") - (eq_attr "memory" "none")))))) - "znver1-direct,znver1-ieu2") - - (define_insn_reservation "znver1_sseavx_mov" 1 - (and (ior (and (eq_attr "cpu" "znver1") - (eq_attr "mode" "SF,DF,V4SF,V2DF,TI")) - (ior (eq_attr "cpu" "znver2") - (eq_attr "cpu" "znver3"))) - (and (eq_attr "type" "ssemov") - (eq_attr "memory" "none"))) - "znver1-direct,znver1-fpu") - - (define_insn_reservation "znver1_sseavx_mov_store" 1 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "SF,DF,V4SF,V2DF,TI") - (and (eq_attr "type" "ssemov") - (eq_attr "memory" "store")))) - "znver1-direct,znver1-fpu,znver1-store") - (define_insn_reservation "znver2_sseavx_mov_store" 1 - (and (eq_attr "cpu" "znver2,znver3") - (and (eq_attr "type" "ssemov") - (eq_attr "memory" "store"))) - "znver1-direct,znver1-fpu,znver2-store") - - (define_insn_reservation "znver1_sseavx_mov_load" 8 - (and (ior (and (eq_attr "cpu" "znver1") - (eq_attr "mode" "SF,DF,V4SF,V2DF,TI")) - (ior (eq_attr "cpu" "znver2") - (eq_attr "cpu" "znver3"))) - (and (eq_attr "type" "ssemov") - (eq_attr "memory" "load"))) - "znver1-direct,znver1-load,znver1-fpu") - - (define_insn_reservation "znver1_avx256_mov" 1 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "V8SF,V4DF,OI") - (and (eq_attr "type" "ssemov") - (eq_attr "memory" "none")))) - "znver1-double,znver1-fpu") - - (define_insn_reservation "znver1_avx256_mov_store" 1 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "V8SF,V4DF,OI") - (and (eq_attr "type" "ssemov") - (eq_attr "memory" "store")))) - "znver1-double,znver1-fpu,znver1-store") - - (define_insn_reservation "znver1_avx256_mov_load" 8 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "V8SF,V4DF,OI") - (and (eq_attr "type" "ssemov") - (eq_attr "memory" "load")))) - "znver1-double,znver1-load,znver1-fpu") - - ;; SSE add - (define_insn_reservation "znver1_sseavx_add" 3 - (and (ior (and (eq_attr "cpu" "znver1") - (eq_attr "mode" "SF,DF,V4SF,V2DF,TI")) - (ior (eq_attr "cpu" "znver2") - (eq_attr "cpu" "znver3"))) - (and (eq_attr "type" "sseadd") - (eq_attr "memory" "none"))) - "znver1-direct,znver1-fp2|znver1-fp3") - - (define_insn_reservation "znver1_sseavx_add_load" 10 - (and (ior (and (eq_attr "cpu" "znver1") - (eq_attr "mode" "SF,DF,V4SF,V2DF,TI")) - (ior (eq_attr "cpu" "znver2") - (eq_attr "cpu" "znver3"))) - (and (eq_attr "type" "sseadd") - (eq_attr "memory" "load"))) - "znver1-direct,znver1-load,znver1-fp2|znver1-fp3") - - (define_insn_reservation "znver1_avx256_add" 3 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "V8SF,V4DF,OI") - (and (eq_attr "type" "sseadd") - (eq_attr "memory" "none")))) - "znver1-double,znver1-fp2|znver1-fp3") - - (define_insn_reservation "znver1_avx256_add_load" 10 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "V8SF,V4DF,OI") - (and (eq_attr "type" "sseadd") - (eq_attr "memory" "load")))) - "znver1-double,znver1-load,znver1-fp2|znver1-fp3") - - (define_insn_reservation "znver1_sseavx_fma" 5 - (and (ior (and (eq_attr "cpu" "znver1") - (eq_attr "mode" "SF,DF,V4SF,V2DF")) - (eq_attr "cpu" "znver2")) - (and (eq_attr "type" "ssemuladd") - (eq_attr "memory" "none"))) - "znver1-direct,znver1-fp0|znver1-fp1") - - (define_insn_reservation "znver1_sseavx_fma_load" 12 - (and (ior (and (eq_attr "cpu" "znver1") - (eq_attr "mode" "SF,DF,V4SF,V2DF")) - (eq_attr "cpu" "znver2")) - (and (eq_attr "type" "ssemuladd") - (eq_attr "memory" "load"))) - "znver1-direct,znver1-load,znver1-fp0|znver1-fp1") - - (define_insn_reservation "znver1_avx256_fma" 5 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "V8SF,V4DF") - (and (eq_attr "type" "ssemuladd") - (eq_attr "memory" "none")))) - "znver1-double,znver1-fp0|znver1-fp1") - - (define_insn_reservation "znver1_avx256_fma_load" 12 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "V8SF,V4DF") - (and (eq_attr "type" "ssemuladd") - (eq_attr "memory" "load")))) - "znver1-double,znver1-load,znver1-fp0|znver1-fp1") - - (define_insn_reservation "znver3_sseavx_fma" 4 - (and (and (eq_attr "cpu" "znver3") - (eq_attr "mode" "SF,DF,V4SF,V2DF")) - (and (eq_attr "type" "ssemuladd") - (eq_attr "memory" "none"))) - "znver1-direct,znver1-fp0|znver1-fp1") - - (define_insn_reservation "znver3_sseavx_fma_load" 11 - (and (and (eq_attr "cpu" "znver3") - (eq_attr "mode" "SF,DF,V4SF,V2DF")) - (and (eq_attr "type" "ssemuladd") - (eq_attr "memory" "load"))) - "znver1-direct,znver1-load,znver1-fp0|znver1-fp1") - - (define_insn_reservation "znver3_avx256_fma" 4 - (and (eq_attr "cpu" "znver3") - (and (eq_attr "mode" "V8SF,V4DF") - (and (eq_attr "type" "ssemuladd") - (eq_attr "memory" "none")))) - "znver1-double,znver1-fp0|znver1-fp1") - - (define_insn_reservation "znver3_avx256_fma_load" 11 - (and (eq_attr "cpu" "znver3") - (and (eq_attr "mode" "V8SF,V4DF") - (and (eq_attr "type" "ssemuladd") - (eq_attr "memory" "load")))) - "znver1-double,znver1-load,znver1-fp0|znver1-fp1") - - (define_insn_reservation "znver1_sseavx_iadd" 1 - (and (ior (and (eq_attr "cpu" "znver1") - (eq_attr "mode" "DI,TI")) - (ior (eq_attr "cpu" "znver2") - (eq_attr "cpu" "znver3"))) - (and (eq_attr "type" "sseiadd") - (eq_attr "memory" "none"))) - "znver1-direct,znver1-fp0|znver1-fp1|znver1-fp3") - - (define_insn_reservation "znver1_sseavx_iadd_load" 8 - (and (ior (and (eq_attr "cpu" "znver1") - (eq_attr "mode" "DI,TI")) - (ior (eq_attr "cpu" "znver2") - (eq_attr "cpu" "znver3"))) - (and (eq_attr "type" "sseiadd") - (eq_attr "memory" "load"))) - "znver1-direct,znver1-load,znver1-fp0|znver1-fp1|znver1-fp3") - - (define_insn_reservation "znver1_avx256_iadd" 1 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "OI") - (and (eq_attr "type" "sseiadd") - (eq_attr "memory" "none")))) - "znver1-double,znver1-fp0|znver1-fp1|znver1-fp3") - - (define_insn_reservation "znver1_avx256_iadd_load" 8 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "OI") - (and (eq_attr "type" "sseiadd") - (eq_attr "memory" "load")))) - "znver1-double,znver1-load,znver1-fp0|znver1-fp1|znver1-fp3") - - ;; SSE conversions. - (define_insn_reservation "znver1_ssecvtsf_si_load" 12 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "mode" "SI") - (and (eq_attr "type" "sseicvt") - (and (match_operand:SF 1 "memory_operand") - (eq_attr "memory" "load"))))) - "znver1-double,znver1-load,znver1-fp3,znver1-ieu0") - - (define_insn_reservation "znver1_ssecvtdf_si" 5 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "SI") - (and (match_operand:DF 1 "register_operand") - (and (eq_attr "type" "sseicvt") - (eq_attr "memory" "none"))))) - "znver1-double,znver1-fp3,znver1-ieu0") - (define_insn_reservation "znver2_ssecvtdf_si" 4 - (and (eq_attr "cpu" "znver2,znver3") - (and (eq_attr "mode" "SI") - (and (match_operand:DF 1 "register_operand") - (and (eq_attr "type" "sseicvt") - (eq_attr "memory" "none"))))) - "znver1-double,znver1-fp3,znver1-ieu0") - - (define_insn_reservation "znver1_ssecvtdf_si_load" 12 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "SI") - (and (eq_attr "type" "sseicvt") - (and (match_operand:DF 1 "memory_operand") - (eq_attr "memory" "load"))))) - "znver1-double,znver1-load,znver1-fp3,znver1-ieu0") - - (define_insn_reservation "znver2_ssecvtdf_si_load" 11 - (and (eq_attr "cpu" "znver2,znver3") - (and (eq_attr "mode" "SI") - (and (eq_attr "type" "sseicvt") - (and (match_operand:DF 1 "memory_operand") - (eq_attr "memory" "load"))))) - "znver1-double,znver1-load,znver1-fp3,znver1-ieu0") - - - ;; All other used ssecvt fp3 pipes - ;; Check: Need to revisit this again. - ;; Some SSE converts may use different pipe combinations. - (define_insn_reservation "znver1_ssecvt" 4 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "type" "ssecvt") - (eq_attr "memory" "none"))) - "znver1-direct,znver1-fp3") - - (define_insn_reservation "znver2_ssecvt" 3 - (and (eq_attr "cpu" "znver2,znver3") - (and (eq_attr "type" "ssecvt") - (eq_attr "memory" "none"))) - "znver1-direct,znver1-fp3") - - (define_insn_reservation "znver1_ssecvt_load" 11 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "type" "ssecvt") - (eq_attr "memory" "load"))) - "znver1-direct,znver1-load,znver1-fp3") - - ;; SSE div - (define_insn_reservation "znver1_ssediv_ss_ps" 10 - (and (ior (and (eq_attr "cpu" "znver1") - (eq_attr "mode" "V4SF,SF")) - (and (eq_attr "cpu" "znver2") - (eq_attr "mode" "V8SF,V4SF,SF")) - (and (eq_attr "cpu" "znver3") - (eq_attr "mode" "V8SF,V4SF,SF"))) - (and (eq_attr "type" "ssediv") - (eq_attr "memory" "none"))) - "znver1-direct,znver1-fp3*10") - - (define_insn_reservation "znver1_ssediv_ss_ps_load" 17 - (and (ior (and (eq_attr "cpu" "znver1") - (eq_attr "mode" "V4SF,SF")) - (and (eq_attr "cpu" "znver2") - (eq_attr "mode" "V8SF,V4SF,SF")) - (and (eq_attr "cpu" "znver3") - (eq_attr "mode" "V8SF,V4SF,SF"))) - (and (eq_attr "type" "ssediv") - (eq_attr "memory" "load"))) - "znver1-direct,znver1-load,znver1-fp3*10") - - (define_insn_reservation "znver1_ssediv_sd_pd" 13 - (and (ior (and (eq_attr "cpu" "znver1") - (eq_attr "mode" "V2DF,DF")) - (and (eq_attr "cpu" "znver2") - (eq_attr "mode" "V4DF,V2DF,DF")) - (and (eq_attr "cpu" "znver3") - (eq_attr "mode" "V4DF,V2DF,DF"))) - (and (eq_attr "type" "ssediv") - (eq_attr "memory" "none"))) - "znver1-direct,znver1-fp3*13") - - (define_insn_reservation "znver1_ssediv_sd_pd_load" 20 - (and (ior (and (eq_attr "cpu" "znver1") - (eq_attr "mode" "V2DF,DF")) - (and (eq_attr "cpu" "znver2") - (eq_attr "mode" "V4DF,V2DF,DF")) - (and (eq_attr "cpu" "znver3") - (eq_attr "mode" "V4DF,V2DF,DF"))) - (and (eq_attr "type" "ssediv") - (eq_attr "memory" "load"))) - "znver1-direct,znver1-load,znver1-fp3*13") - - (define_insn_reservation "znver1_ssediv_avx256_ps" 12 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "V8SF") - (and (eq_attr "memory" "none") - (eq_attr "type" "ssediv")))) - "znver1-double,znver1-fp3*12") - - (define_insn_reservation "znver1_ssediv_avx256_ps_load" 19 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "V8SF") - (and (eq_attr "type" "ssediv") - (eq_attr "memory" "load")))) - "znver1-double,znver1-load,znver1-fp3*12") - - (define_insn_reservation "znver1_ssediv_avx256_pd" 15 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "V4DF") - (and (eq_attr "type" "ssediv") - (eq_attr "memory" "none")))) - "znver1-double,znver1-fp3*15") - - (define_insn_reservation "znver1_ssediv_avx256_pd_load" 22 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "V4DF") - (and (eq_attr "type" "ssediv") - (eq_attr "memory" "load")))) - "znver1-double,znver1-load,znver1-fp3*15") - ;; SSE MUL - (define_insn_reservation "znver1_ssemul_ss_ps" 3 - (and (ior (and (eq_attr "cpu" "znver1") - (eq_attr "mode" "V4SF,SF")) - (and (eq_attr "cpu" "znver2") - (eq_attr "mode" "V8SF,V4SF,SF,V4DF,V2DF,DF")) - (and (eq_attr "cpu" "znver3") - (eq_attr "mode" "V8SF,V4SF,SF,V4DF,V2DF,DF"))) - (and (eq_attr "type" "ssemul") - (eq_attr "memory" "none"))) - "znver1-direct,(znver1-fp0|znver1-fp1)*3") - - (define_insn_reservation "znver1_ssemul_ss_ps_load" 10 - (and (ior (and (eq_attr "cpu" "znver1") - (eq_attr "mode" "V4SF,SF")) - (and (eq_attr "cpu" "znver2") - (eq_attr "mode" "V8SF,V4SF,SF")) - (and (eq_attr "cpu" "znver3") - (eq_attr "mode" "V8SF,V4SF,SF"))) - (and (eq_attr "type" "ssemul") - (eq_attr "memory" "load"))) - "znver1-direct,znver1-load,(znver1-fp0|znver1-fp1)*3") - - (define_insn_reservation "znver1_ssemul_avx256_ps" 3 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "V8SF") - (and (eq_attr "type" "ssemul") - (eq_attr "memory" "none")))) - "znver1-double,(znver1-fp0|znver1-fp1)*3") - - (define_insn_reservation "znver1_ssemul_avx256_ps_load" 10 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "V8SF") - (and (eq_attr "type" "ssemul") - (eq_attr "memory" "load")))) - "znver1-double,znver1-load,(znver1-fp0|znver1-fp1)*3") - - (define_insn_reservation "znver1_ssemul_sd_pd" 4 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "V2DF,DF") - (and (eq_attr "type" "ssemul") - (eq_attr "memory" "none")))) - "znver1-direct,(znver1-fp0|znver1-fp1)*4") - - (define_insn_reservation "znver1_ssemul_sd_pd_load" 11 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "V2DF,DF") - (and (eq_attr "type" "ssemul") - (eq_attr "memory" "load")))) - "znver1-direct,znver1-load,(znver1-fp0|znver1-fp1)*4") - - (define_insn_reservation "znver2_ssemul_sd_pd" 3 - (and (eq_attr "cpu" "znver2,znver3") - (and (eq_attr "type" "ssemul") - (eq_attr "memory" "none"))) - "znver1-direct,(znver1-fp0|znver1-fp1)*3") - - (define_insn_reservation "znver2_ssemul_sd_pd_load" 10 - (and (eq_attr "cpu" "znver2,znver3") - (and (eq_attr "type" "ssemul") - (eq_attr "memory" "load"))) - "znver1-direct,znver1-load,(znver1-fp0|znver1-fp1)*3") - - - (define_insn_reservation "znver1_ssemul_avx256_pd" 5 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "V4DF") - (and (eq_attr "type" "ssemul") - (eq_attr "memory" "none")))) - "znver1-double,(znver1-fp0|znver1-fp1)*4") - - (define_insn_reservation "znver1_ssemul_avx256_pd_load" 12 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "V4DF") - (and (eq_attr "type" "ssemul") - (eq_attr "memory" "load")))) - "znver1-double,znver1-load,(znver1-fp0|znver1-fp1)*4") - - ;;SSE imul - (define_insn_reservation "znver1_sseimul" 3 - (and (ior (and (eq_attr "cpu" "znver1") - (eq_attr "mode" "TI")) - (and (eq_attr "cpu" "znver2") - (eq_attr "mode" "TI,OI")) - (and (eq_attr "cpu" "znver3") - (eq_attr "mode" "TI,OI"))) - (and (eq_attr "type" "sseimul") - (eq_attr "memory" "none"))) - "znver1-direct,znver1-fp0*3") - - (define_insn_reservation "znver1_sseimul_avx256" 4 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "mode" "OI") - (and (eq_attr "type" "sseimul") - (eq_attr "memory" "none")))) - "znver1-double,znver1-fp0*4") - - (define_insn_reservation "znver1_sseimul_load" 10 - (and (ior (and (eq_attr "cpu" "znver1") - (eq_attr "mode" "TI")) - (and (eq_attr "cpu" "znver2") - (eq_attr "mode" "TI,OI")) - (and (eq_attr "cpu" "znver3") - (eq_attr "mode" "TI,OI"))) - (and (eq_attr "type" "sseimul") - (eq_attr "memory" "load"))) - "znver1-direct,znver1-load,znver1-fp0*3") - - (define_insn_reservation "znver1_sseimul_avx256_load" 11 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "mode" "OI") - (and (eq_attr "type" "sseimul") - (eq_attr "memory" "load")))) - "znver1-double,znver1-load,znver1-fp0*4") - - (define_insn_reservation "znver1_sseimul_di" 3 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "mode" "DI") - (and (eq_attr "memory" "none") - (eq_attr "type" "sseimul")))) - "znver1-direct,znver1-fp0*3") - - (define_insn_reservation "znver1_sseimul_load_di" 10 - (and (eq_attr "cpu" "znver1,znver2,znver3") - (and (eq_attr "mode" "DI") - (and (eq_attr "type" "sseimul") - (eq_attr "memory" "load")))) - "znver1-direct,znver1-load,znver1-fp0*3") - - ;; SSE compares - (define_insn_reservation "znver1_sse_cmp" 1 - (and (ior (and (eq_attr "cpu" "znver1") - (eq_attr "mode" "SF,DF,V4SF,V2DF")) - (and (eq_attr "cpu" "znver2") - (eq_attr "mode" "SF,DF,V4SF,V2DF,V8SF,V4DF")) - (and (eq_attr "cpu" "znver3") - (eq_attr "mode" "SF,DF,V4SF,V2DF,V8SF,V4DF"))) - (and (eq_attr "type" "ssecmp") - (eq_attr "memory" "none"))) - "znver1-direct,znver1-fp0|znver1-fp1") - - (define_insn_reservation "znver1_sse_cmp_load" 8 - (and (ior (and (eq_attr "cpu" "znver1") - (eq_attr "mode" "SF,DF,V4SF,V2DF")) - (and (eq_attr "cpu" "znver2") - (eq_attr "mode" "SF,DF,V4SF,V2DF,V8SF,V4DF")) - (and (eq_attr "cpu" "znver3") - (eq_attr "mode" "SF,DF,V4SF,V2DF,V8SF,V4DF"))) - (and (eq_attr "type" "ssecmp") - (eq_attr "memory" "load"))) - "znver1-direct,znver1-load,znver1-fp0|znver1-fp1") - - (define_insn_reservation "znver1_sse_cmp_avx256" 1 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "V8SF,V4DF") - (and (eq_attr "type" "ssecmp") - (eq_attr "memory" "none")))) - "znver1-double,znver1-fp0|znver1-fp1") - - (define_insn_reservation "znver1_sse_cmp_avx256_load" 8 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "V8SF,V4DF") - (and (eq_attr "type" "ssecmp") - (eq_attr "memory" "load")))) - "znver1-double,znver1-load,znver1-fp0|znver1-fp1") - - (define_insn_reservation "znver1_sse_icmp" 1 - (and (ior (and (eq_attr "cpu" "znver1") - (eq_attr "mode" "QI,HI,SI,DI,TI")) - (and (eq_attr "cpu" "znver2") - (eq_attr "mode" "QI,HI,SI,DI,TI,OI")) - (and (eq_attr "cpu" "znver3") - (eq_attr "mode" "QI,HI,SI,DI,TI,OI"))) - (and (eq_attr "type" "ssecmp") - (eq_attr "memory" "none"))) - "znver1-direct,znver1-fp0|znver1-fp3") - - (define_insn_reservation "znver1_sse_icmp_load" 8 - (and (ior (and (eq_attr "cpu" "znver1") - (eq_attr "mode" "QI,HI,SI,DI,TI")) - (and (eq_attr "cpu" "znver2") - (eq_attr "mode" "QI,HI,SI,DI,TI,OI")) - (and (eq_attr "cpu" "znver3") - (eq_attr "mode" "QI,HI,SI,DI,TI,OI"))) - (and (eq_attr "type" "ssecmp") - (eq_attr "memory" "load"))) - "znver1-direct,znver1-load,znver1-fp0|znver1-fp3") - - (define_insn_reservation "znver1_sse_icmp_avx256" 1 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "OI") - (and (eq_attr "type" "ssecmp") - (eq_attr "memory" "none")))) - "znver1-double,znver1-fp0|znver1-fp3") - - (define_insn_reservation "znver1_sse_icmp_avx256_load" 8 - (and (eq_attr "cpu" "znver1") - (and (eq_attr "mode" "OI") - (and (eq_attr "type" "ssecmp") - (eq_attr "memory" "load")))) - "znver1-double,znver1-load,znver1-fp0|znver1-fp3") --- 0 ---- diff -Nrcpad gcc-11.4.0/gcc/config/i386/znver4.md gcc-11.5.0/gcc/config/i386/znver4.md *** gcc-11.4.0/gcc/config/i386/znver4.md Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/config/i386/znver4.md Fri Jul 19 05:52:43 2024 *************** *** 0 **** --- 1,1068 ---- + ;; Copyright (C) 2012-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 + ;; . + ;; + + + (define_attr "znver4_decode" "direct,vector,double" + (const_string "direct")) + + ;; AMD znver4 Scheduling + ;; Modeling automatons for zen decoders, integer execution pipes, + ;; AGU pipes, branch, floating point execution and fp store units. + (define_automaton "znver4, znver4_ieu, znver4_idiv, znver4_fdiv, znver4_agu, znver4_fpu, znver4_fp_store") + + ;; Decoders unit has 4 decoders and all of them can decode fast path + ;; and vector type instructions. + (define_cpu_unit "znver4-decode0" "znver4") + (define_cpu_unit "znver4-decode1" "znver4") + (define_cpu_unit "znver4-decode2" "znver4") + (define_cpu_unit "znver4-decode3" "znver4") + + ;; Currently blocking all decoders for vector path instructions as + ;; they are dispatched separetely as microcode sequence. + (define_reservation "znver4-vector" "znver4-decode0+znver4-decode1+znver4-decode2+znver4-decode3") + + ;; Direct instructions can be issued to any of the four decoders. + (define_reservation "znver4-direct" "znver4-decode0|znver4-decode1|znver4-decode2|znver4-decode3") + + ;; Fix me: Need to revisit this later to simulate fast path double behavior. + (define_reservation "znver4-double" "znver4-direct") + + + ;; Integer unit 4 ALU pipes. + (define_cpu_unit "znver4-ieu0" "znver4_ieu") + (define_cpu_unit "znver4-ieu1" "znver4_ieu") + (define_cpu_unit "znver4-ieu2" "znver4_ieu") + (define_cpu_unit "znver4-ieu3" "znver4_ieu") + ;; Znver4 has an additional branch unit. + (define_cpu_unit "znver4-bru0" "znver4_ieu") + (define_reservation "znver4-ieu" "znver4-ieu0|znver4-ieu1|znver4-ieu2|znver4-ieu3") + + ;; 3 AGU pipes in znver4 + (define_cpu_unit "znver4-agu0" "znver4_agu") + (define_cpu_unit "znver4-agu1" "znver4_agu") + (define_cpu_unit "znver4-agu2" "znver4_agu") + (define_reservation "znver4-agu-reserve" "znver4-agu0|znver4-agu1|znver4-agu2") + + ;; Load is 4 cycles. We do not model reservation of load unit. + (define_reservation "znver4-load" "znver4-agu-reserve") + (define_reservation "znver4-store" "znver4-agu-reserve") + + ;; vectorpath (microcoded) instructions are single issue instructions. + ;; So, they occupy all the integer units. + (define_reservation "znver4-ivector" "znver4-ieu0+znver4-ieu1 + +znver4-ieu2+znver4-ieu3+znver4-bru0 + +znver4-agu0+znver4-agu1+znver4-agu2") + + ;; Floating point unit 4 FP pipes. + (define_cpu_unit "znver4-fpu0" "znver4_fpu") + (define_cpu_unit "znver4-fpu1" "znver4_fpu") + (define_cpu_unit "znver4-fpu2" "znver4_fpu") + (define_cpu_unit "znver4-fpu3" "znver4_fpu") + + (define_reservation "znver4-fpu" "znver4-fpu0|znver4-fpu1|znver4-fpu2|znver4-fpu3") + + (define_reservation "znver4-fvector" "znver4-fpu0+znver4-fpu1 + +znver4-fpu2+znver4-fpu3 + +znver4-agu0+znver4-agu1+znver4-agu2") + + ;; DIV units + (define_cpu_unit "znver4-idiv" "znver4_idiv") + (define_cpu_unit "znver4-fdiv" "znver4_fdiv") + + ;; Separate fp store and fp-to-int store. Although there are 2 store pipes, the + ;; throughput is limited to only one per cycle. + (define_cpu_unit "znver4-fp-store" "znver4_fp_store") + + + ;; Integer Instructions + ;; Move instructions + ;; XCHG + (define_insn_reservation "znver4_imov_double" 1 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "znver1_decode" "double") + (and (eq_attr "type" "imov") + (eq_attr "memory" "none")))) + "znver4-double,znver4-ieu") + + (define_insn_reservation "znver4_imov_double_load" 5 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "znver1_decode" "double") + (and (eq_attr "type" "imov") + (eq_attr "memory" "load")))) + "znver4-double,znver4-load,znver4-ieu") + + ;; imov, imovx + (define_insn_reservation "znver4_imov" 1 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "imov,imovx") + (eq_attr "memory" "none"))) + "znver4-direct,znver4-ieu") + + (define_insn_reservation "znver4_imov_load" 5 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "imov,imovx") + (eq_attr "memory" "load"))) + "znver4-direct,znver4-load,znver4-ieu") + + ;; Push Instruction + (define_insn_reservation "znver4_push" 1 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "push") + (eq_attr "memory" "store"))) + "znver4-direct,znver4-store") + + (define_insn_reservation "znver4_push_mem" 5 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "push") + (eq_attr "memory" "both"))) + "znver4-direct,znver4-load,znver4-store") + + ;; Pop instruction + (define_insn_reservation "znver4_pop" 4 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "pop") + (eq_attr "memory" "load"))) + "znver4-direct,znver4-load") + + (define_insn_reservation "znver4_pop_mem" 5 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "pop") + (eq_attr "memory" "both"))) + "znver4-direct,znver4-load,znver4-store") + + ;; Integer Instructions or General instructions + ;; Multiplications + (define_insn_reservation "znver4_imul" 3 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "imul") + (eq_attr "memory" "none"))) + "znver4-direct,znver4-ieu1") + + (define_insn_reservation "znver4_imul_load" 7 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "imul") + (eq_attr "memory" "load"))) + "znver4-direct,znver4-load,znver4-ieu1") + + ;; Divisions + (define_insn_reservation "znver4_idiv_DI" 18 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "idiv") + (and (eq_attr "mode" "DI") + (eq_attr "memory" "none")))) + "znver4-double,znver4-idiv*10") + + (define_insn_reservation "znver4_idiv_SI" 12 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "idiv") + (and (eq_attr "mode" "SI") + (eq_attr "memory" "none")))) + "znver4-double,znver4-idiv*6") + + (define_insn_reservation "znver4_idiv_HI" 10 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "idiv") + (and (eq_attr "mode" "HI") + (eq_attr "memory" "none")))) + "znver4-double,znver4-idiv*4") + + (define_insn_reservation "znver4_idiv_QI" 9 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "idiv") + (and (eq_attr "mode" "QI") + (eq_attr "memory" "none")))) + "znver4-double,znver4-idiv*4") + + (define_insn_reservation "znver4_idiv_DI_load" 22 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "idiv") + (and (eq_attr "mode" "DI") + (eq_attr "memory" "load")))) + "znver4-double,znver4-load,znver4-idiv*10") + + (define_insn_reservation "znver4_idiv_SI_load" 16 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "idiv") + (and (eq_attr "mode" "SI") + (eq_attr "memory" "load")))) + "znver4-double,znver4-load,znver4-idiv*6") + + (define_insn_reservation "znver4_idiv_HI_load" 14 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "idiv") + (and (eq_attr "mode" "HI") + (eq_attr "memory" "load")))) + "znver4-double,znver4-load,znver4-idiv*4") + + (define_insn_reservation "znver4_idiv_QI_load" 13 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "idiv") + (and (eq_attr "mode" "QI") + (eq_attr "memory" "load")))) + "znver4-double,znver4-load,znver4-idiv*4") + + ;; INTEGER/GENERAL Instructions + (define_insn_reservation "znver4_insn" 1 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "alu,alu1,negnot,rotate1,ishift1,test,incdec,icmp") + (eq_attr "memory" "none,unknown"))) + "znver4-direct,znver4-ieu") + + (define_insn_reservation "znver4_insn_load" 5 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "alu,alu1,negnot,rotate1,ishift1,test,incdec,icmp") + (eq_attr "memory" "load"))) + "znver4-direct,znver4-load,znver4-ieu") + + (define_insn_reservation "znver4_insn2" 1 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "icmov,setcc") + (eq_attr "memory" "none,unknown"))) + "znver4-direct,znver4-ieu0|znver4-ieu3") + + (define_insn_reservation "znver4_insn2_load" 5 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "icmov,setcc") + (eq_attr "memory" "load"))) + "znver4-direct,znver4-load,znver4-ieu0|znver4-ieu3") + + (define_insn_reservation "znver4_rotate" 1 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "rotate") + (eq_attr "memory" "none,unknown"))) + "znver4-direct,znver4-ieu1|znver4-ieu2") + + (define_insn_reservation "znver4_rotate_load" 5 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "rotate") + (eq_attr "memory" "load"))) + "znver4-direct,znver4-load,znver4-ieu1|znver4-ieu2") + + (define_insn_reservation "znver4_insn_store" 1 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "alu,alu1,negnot,rotate1,ishift1,test,incdec,icmp") + (eq_attr "memory" "store"))) + "znver4-direct,znver4-ieu,znver4-store") + + (define_insn_reservation "znver4_insn2_store" 1 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "icmov,setcc") + (eq_attr "memory" "store"))) + "znver4-direct,znver4-ieu0|znver4-ieu3,znver4-store") + + (define_insn_reservation "znver4_rotate_store" 1 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "rotate") + (eq_attr "memory" "store"))) + "znver4-direct,znver4-ieu1|znver4-ieu2,znver4-store") + + ;; alu1 instructions + (define_insn_reservation "znver4_alu1_vector" 3 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "znver1_decode" "vector") + (and (eq_attr "type" "alu1") + (eq_attr "memory" "none,unknown")))) + "znver4-vector,znver4-ivector*3") + + (define_insn_reservation "znver4_alu1_vector_load" 7 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "znver1_decode" "vector") + (and (eq_attr "type" "alu1") + (eq_attr "memory" "load")))) + "znver4-vector,znver4-load,znver4-ivector*3") + + ;; Call Instruction + (define_insn_reservation "znver4_call" 1 + (and (eq_attr "cpu" "znver4") + (eq_attr "type" "call,callv")) + "znver4-double,znver4-ieu0|znver4-bru0,znver4-store") + + ;; Branches + (define_insn_reservation "znver4_branch" 1 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ibr") + (eq_attr "memory" "none"))) + "znver4-direct,znver4-ieu0|znver4-bru0") + + (define_insn_reservation "znver4_branch_load" 5 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ibr") + (eq_attr "memory" "load"))) + "znver4-direct,znver4-load,znver4-ieu0|znver4-bru0") + + (define_insn_reservation "znver4_branch_vector" 2 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ibr") + (eq_attr "memory" "none,unknown"))) + "znver4-vector,znver4-ivector*2") + + (define_insn_reservation "znver4_branch_vector_load" 6 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ibr") + (eq_attr "memory" "load"))) + "znver4-vector,znver4-load,znver4-ivector*2") + + ;; LEA instruction with simple addressing + (define_insn_reservation "znver4_lea" 1 + (and (eq_attr "cpu" "znver4") + (eq_attr "type" "lea")) + "znver4-direct,znver4-ieu") + + ;; Leave + (define_insn_reservation "znver4_leave" 1 + (and (eq_attr "cpu" "znver4") + (eq_attr "type" "leave")) + "znver4-double,znver4-ieu,znver4-store") + + ;; STR and ISHIFT are microcoded. + (define_insn_reservation "znver4_str" 3 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "str") + (eq_attr "memory" "none"))) + "znver4-vector,znver4-ivector*3") + + (define_insn_reservation "znver4_str_load" 7 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "str") + (eq_attr "memory" "load"))) + "znver4-vector,znver4-load,znver4-ivector*3") + + (define_insn_reservation "znver4_ishift" 2 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ishift") + (eq_attr "memory" "none"))) + "znver4-vector,znver4-ivector*2") + + (define_insn_reservation "znver4_ishift_load" 6 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ishift") + (eq_attr "memory" "load"))) + "znver4-vector,znver4-load,znver4-ivector*2") + + ;; Other vector type + (define_insn_reservation "znver4_ieu_vector" 5 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "other,multi") + (eq_attr "memory" "none,unknown"))) + "znver4-vector,znver4-ivector*5") + + (define_insn_reservation "znver4_ieu_vector_load" 9 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "other,multi") + (eq_attr "memory" "load"))) + "znver4-vector,znver4-load,znver4-ivector*5") + + ;; Floating Point + ;; FP movs + (define_insn_reservation "znver4_fp_cmov" 4 + (and (eq_attr "cpu" "znver4") + (eq_attr "type" "fcmov")) + "znver4-vector,znver4-fvector*3") + + (define_insn_reservation "znver4_fp_mov_direct" 1 + (and (eq_attr "cpu" "znver4") + (eq_attr "type" "fmov")) + "znver4-direct,znver4-fpu0|znver4-fpu1") + + ;;FLD + (define_insn_reservation "znver4_fp_mov_direct_load" 6 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "znver1_decode" "direct") + (and (eq_attr "type" "fmov") + (eq_attr "memory" "load")))) + "znver4-direct,znver4-load,znver4-fpu0|znver4-fpu1") + + ;;FST + (define_insn_reservation "znver4_fp_mov_direct_store" 6 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "znver1_decode" "direct") + (and (eq_attr "type" "fmov") + (eq_attr "memory" "store")))) + "znver4-direct,znver4-fpu0|znver4-fpu1,znver4-fp-store") + + ;;FILD + (define_insn_reservation "znver4_fp_mov_double_load" 13 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "znver1_decode" "double") + (and (eq_attr "type" "fmov") + (eq_attr "memory" "load")))) + "znver4-direct,znver4-load,znver4-fpu1") + + ;;FIST + (define_insn_reservation "znver4_fp_mov_double_store" 7 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "znver1_decode" "double") + (and (eq_attr "type" "fmov") + (eq_attr "memory" "store")))) + "znver4-double,znver4-fpu1,znver4-fp-store") + + ;; FSQRT + (define_insn_reservation "znver4_fsqrt" 22 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "fpspc") + (and (eq_attr "mode" "XF") + (eq_attr "memory" "none")))) + "znver4-direct,znver4-fdiv*10") + + ;; FPSPC instructions + (define_insn_reservation "znver4_fp_spc" 6 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "fpspc") + (eq_attr "memory" "none"))) + "znver4-vector,znver4-fvector*6") + + (define_insn_reservation "znver4_fp_insn_vector" 6 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "znver1_decode" "vector") + (eq_attr "type" "mmxcvt,sselog1,ssemov"))) + "znver4-vector,znver4-fvector*6") + + ;; FADD, FSUB, FMUL + (define_insn_reservation "znver4_fp_op_mul" 7 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "fop,fmul") + (eq_attr "memory" "none"))) + "znver4-direct,znver4-fpu0") + + (define_insn_reservation "znver4_fp_op_mul_load" 12 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "fop,fmul") + (eq_attr "memory" "load"))) + "znver4-direct,znver4-load,znver4-fpu0") + + ;; FDIV + (define_insn_reservation "znver4_fp_div" 15 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "fdiv") + (eq_attr "memory" "none"))) + "znver4-direct,znver4-fdiv*6") + + (define_insn_reservation "znver4_fp_div_load" 20 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "fdiv") + (eq_attr "memory" "load"))) + "znver4-direct,znver4-load,znver4-fdiv*6") + + (define_insn_reservation "znver4_fp_idiv_load" 24 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "fdiv") + (and (eq_attr "fp_int_src" "true") + (eq_attr "memory" "load")))) + "znver4-double,znver4-load,znver4-fdiv*6") + + ;; FABS, FCHS + (define_insn_reservation "znver4_fp_fsgn" 1 + (and (eq_attr "cpu" "znver4") + (eq_attr "type" "fsgn")) + "znver4-direct,znver4-fpu0|znver4-fpu1") + + ;; FCMP + (define_insn_reservation "znver4_fp_fcmp" 3 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "fcmp") + (eq_attr "memory" "none"))) + "znver4-direct,znver4-fpu1") + + (define_insn_reservation "znver4_fp_fcmp_double" 4 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "fcmp") + (and (eq_attr "znver1_decode" "double") + (eq_attr "memory" "none")))) + "znver4-double,znver4-fpu1,znver4-fpu2") + + ;; MMX, SSE, SSEn.n instructions + (define_insn_reservation "znver4_fp_mmx " 1 + (and (eq_attr "cpu" "znver4") + (eq_attr "type" "mmx")) + "znver4-direct,znver4-fpu1|znver4-fpu2") + + (define_insn_reservation "znver4_mmx_add_cmp" 1 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "mmxadd,mmxcmp") + (eq_attr "memory" "none"))) + "znver4-direct,znver4-fpu") + + (define_insn_reservation "znver4_mmx_add_cmp_load" 6 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "mmxadd,mmxcmp") + (eq_attr "memory" "load"))) + "znver4-direct,znver4-load,znver4-fpu") + + (define_insn_reservation "znver4_mmx_insn" 1 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "mmxcvt,sseshuf,sseshuf1,mmxshft") + (eq_attr "memory" "none"))) + "znver4-direct,znver4-fpu1|znver4-fpu2") + + (define_insn_reservation "znver4_mmx_insn_load" 6 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "mmxcvt,sseshuf,sseshuf1,mmxshft") + (eq_attr "memory" "load"))) + "znver4-direct,znver4-load,znver4-fpu1|znver4-fpu2") + + (define_insn_reservation "znver4_mmx_mov" 1 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "mmxmov") + (eq_attr "memory" "store"))) + "znver4-direct,znver4-fp-store") + + (define_insn_reservation "znver4_mmx_mov_load" 6 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "mmxmov") + (eq_attr "memory" "both"))) + "znver4-direct,znver4-load,znver4-fp-store") + + (define_insn_reservation "znver4_mmx_mul" 3 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "mmxmul") + (eq_attr "memory" "none"))) + "znver4-direct,znver4-fpu0|znver4-fpu3") + + (define_insn_reservation "znver4_mmx_mul_load" 8 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "mmxmul") + (eq_attr "memory" "load"))) + "znver4-direct,znver4-load,znver4-fpu0|znver4-fpu3") + + ;; AVX instructions + (define_insn_reservation "znver4_sse_log" 1 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "sselog") + (and (eq_attr "mode" "V4SF,V8SF,V2DF,V4DF,QI,HI,SI,DI,TI,OI") + (eq_attr "memory" "none")))) + "znver4-direct,znver4-fpu") + + (define_insn_reservation "znver4_sse_log_load" 6 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "sselog") + (and (eq_attr "mode" "V4SF,V8SF,V2DF,V4DF,QI,HI,SI,DI,TI,OI") + (eq_attr "memory" "load")))) + "znver4-direct,znver4-load,znver4-fpu") + + (define_insn_reservation "znver4_sse_log1" 1 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "sselog1") + (and (eq_attr "mode" "V4SF,V8SF,V2DF,V4DF,QI,HI,SI,DI,TI,OI") + (eq_attr "memory" "store")))) + "znver4-direct,znver4-fpu1|znver4-fpu2,znver4-fp-store") + + (define_insn_reservation "znver4_sse_log1_load" 6 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "sselog1") + (and (eq_attr "mode" "V4SF,V8SF,V2DF,V4DF,QI,HI,SI,DI,TI,OI") + (eq_attr "memory" "both")))) + "znver4-direct,znver4-load,znver4-fpu1|znver4-fpu2,znver4-fp-store") + + (define_insn_reservation "znver4_sse_comi" 1 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssecomi") + (eq_attr "memory" "store"))) + "znver4-double,znver4-fpu2|znver4-fpu3,znver4-fp-store") + + (define_insn_reservation "znver4_sse_comi_load" 6 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssecomi") + (eq_attr "memory" "both"))) + "znver4-double,znver4-load,znver4-fpu2|znver4-fpu3,znver4-fp-store") + + (define_insn_reservation "znver4_sse_test" 1 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "prefix_extra" "1") + (and (eq_attr "type" "ssecomi") + (eq_attr "memory" "none")))) + "znver4-direct,znver4-fpu1|znver4-fpu2") + + (define_insn_reservation "znver4_sse_test_load" 6 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "prefix_extra" "1") + (and (eq_attr "type" "ssecomi") + (eq_attr "memory" "load")))) + "znver4-direct,znver4-load,znver4-fpu1|znver4-fpu2") + + (define_insn_reservation "znver4_sse_imul" 3 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "sseimul") + (and (eq_attr "mode" "QI,HI,SI,DI,TI,OI") + (eq_attr "memory" "none")))) + "znver4-direct,znver4-fpu0|znver4-fpu3") + + (define_insn_reservation "znver4_sse_imul_load" 8 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "sseimul") + (and (eq_attr "mode" "QI,HI,SI,DI,TI,OI") + (eq_attr "memory" "load")))) + "znver4-direct,znver4-load,znver4-fpu0|znver4-fpu1") + + (define_insn_reservation "znver4_sse_mov" 1 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssemov") + (and (eq_attr "mode" "QI,HI,SI,DI,TI,OI") + (eq_attr "memory" "none")))) + "znver4-direct,znver4-fpu1|znver4-fpu2") + + (define_insn_reservation "znver4_sse_mov_load" 6 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssemov") + (and (eq_attr "mode" "QI,HI,SI,DI,TI,OI") + (eq_attr "memory" "load")))) + "znver4-direct,znver4-load,znver4-fpu1|znver4-fpu2") + + (define_insn_reservation "znver4_sse_mov_store" 1 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssemov") + (and (eq_attr "mode" "QI,HI,SI,DI,TI,OI") + (eq_attr "memory" "store")))) + "znver4-direct,znver4-fpu1|znver4-fpu2,znver4-fp-store") + + (define_insn_reservation "znver4_sse_mov_fp" 1 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssemov") + (and (eq_attr "mode" "V16SF,V8DF,V8SF,V4DF,V4SF,V2DF,V2SF,V1DF,SF") + (eq_attr "memory" "none")))) + "znver4-direct,znver4-fpu") + + (define_insn_reservation "znver4_sse_mov_fp_load" 6 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssemov") + (and (eq_attr "mode" "V16SF,V8DF,V8SF,V4DF,V4SF,V2DF,V2SF,V1DF,SF") + (eq_attr "memory" "load")))) + "znver4-direct,znver4-load,znver4-fpu") + + (define_insn_reservation "znver4_sse_mov_fp_store" 1 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssemov") + (and (eq_attr "mode" "V16SF,V8DF,V8SF,V4DF,V4SF,V2DF,V2SF,V1DF,SF") + (eq_attr "memory" "store")))) + "znver4-direct,znver4-fp-store") + + (define_insn_reservation "znver4_sse_add" 3 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "sseadd") + (and (eq_attr "mode" "V8SF,V4DF,V4SF,V2DF,V2SF,V1DF,SF") + (eq_attr "memory" "none")))) + "znver4-direct,znver4-fpu2|znver4-fpu3") + + (define_insn_reservation "znver4_sse_add_load" 8 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "sseadd") + (and (eq_attr "mode" "V8SF,V4DF,V4SF,V2DF,V2SF,V1DF,SF") + (eq_attr "memory" "load")))) + "znver4-direct,znver4-load,znver4-fpu2|znver4-fpu3") + + (define_insn_reservation "znver4_sse_add1" 4 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "sseadd1") + (and (eq_attr "mode" "V8SF,V4DF,V4SF,V2DF,V2SF,V1DF,SF") + (eq_attr "memory" "none")))) + "znver4-vector,znver4-fvector*2") + + (define_insn_reservation "znver4_sse_add1_load" 9 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "sseadd1") + (and (eq_attr "mode" "V8SF,V4DF,V4SF,V2DF,V2SF,V1DF,SF") + (eq_attr "memory" "load")))) + "znver4-vector,znver4-load,znver4-fvector*2") + + (define_insn_reservation "znver4_sse_iadd" 1 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "sseiadd") + (and (eq_attr "mode" "QI,HI,SI,DI,TI,OI") + (eq_attr "memory" "none")))) + "znver4-direct,znver4-fpu") + + (define_insn_reservation "znver4_sse_iadd_load" 6 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "sseiadd") + (and (eq_attr "mode" "QI,HI,SI,DI,TI,OI") + (eq_attr "memory" "load")))) + "znver4-direct,znver4-load,znver4-fpu") + + (define_insn_reservation "znver4_sse_mul" 3 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssemul") + (and (eq_attr "mode" "V8SF,V4DF,V4SF,V2DF,V2SF,V1DF,SF") + (eq_attr "memory" "none")))) + "znver4-direct,znver4-fpu0|znver4-fpu1") + + (define_insn_reservation "znver4_sse_mul_load" 8 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssemul") + (and (eq_attr "mode" "V8SF,V4DF,V4SF,V2DF,V2SF,V1DF,SF") + (eq_attr "memory" "load")))) + "znver4-direct,znver4-load,znver4-fpu0|znver4-fpu1") + + (define_insn_reservation "znver4_sse_div_pd" 13 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssediv") + (and (eq_attr "mode" "V4DF,V2DF,V1DF") + (eq_attr "memory" "none")))) + "znver4-direct,znver4-fdiv*5") + + (define_insn_reservation "znver4_sse_div_ps" 10 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssediv") + (and (eq_attr "mode" "V8SF,V4SF,V2SF,SF") + (eq_attr "memory" "none")))) + "znver4-direct,znver4-fdiv*3") + + (define_insn_reservation "znver4_sse_div_pd_load" 18 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssediv") + (and (eq_attr "mode" "V4DF,V2DF,V1DF") + (eq_attr "memory" "load")))) + "znver4-direct,znver4-load,znver4-fdiv*5") + + (define_insn_reservation "znver4_sse_div_ps_load" 15 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssediv") + (and (eq_attr "mode" "V8SF,V4SF,V2SF,SF") + (eq_attr "memory" "load")))) + "znver4-direct,znver4-load,znver4-fdiv*3") + + (define_insn_reservation "znver4_sse_cmp_avx" 1 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssecmp") + (and (eq_attr "prefix" "vex") + (eq_attr "memory" "none")))) + "znver4-direct,znver4-fpu0|znver4-fpu1") + + (define_insn_reservation "znver4_sse_cmp_avx_load" 6 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssecmp") + (and (eq_attr "prefix" "vex") + (eq_attr "memory" "load")))) + "znver4-direct,znver4-load,znver4-fpu0|znver4-fpu1") + + (define_insn_reservation "znver4_sse_comi_avx" 1 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssecomi") + (eq_attr "memory" "store"))) + "znver4-direct,znver4-fpu2+znver4-fpu3,znver4-fp-store") + + (define_insn_reservation "znver4_sse_comi_avx_load" 6 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssecomi") + (eq_attr "memory" "both"))) + "znver4-direct,znver4-load,znver4-fpu2+znver4-fpu3,znver4-fp-store") + + (define_insn_reservation "znver4_sse_cvt" 3 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssecvt") + (and (eq_attr "mode" "V8SF,V4DF,V4SF,V2DF,V2SF,V1DF,SF") + (eq_attr "memory" "none")))) + "znver4-direct,znver4-fpu2|znver4-fpu3") + + (define_insn_reservation "znver4_sse_cvt_load" 8 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssecvt") + (and (eq_attr "mode" "V8SF,V4DF,V4SF,V2DF,V2SF,V1DF,SF") + (eq_attr "memory" "load")))) + "znver4-direct,znver4-load,znver4-fpu2|znver4-fpu3") + + (define_insn_reservation "znver4_sse_icvt" 3 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssecvt") + (and (eq_attr "mode" "SI") + (eq_attr "memory" "none")))) + "znver4-direct,znver4-fpu2|znver4-fpu3") + + (define_insn_reservation "znver4_sse_icvt_store" 4 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssecvt") + (and (eq_attr "mode" "SI") + (eq_attr "memory" "store")))) + "znver4-double,znver4-fpu2|znver4-fpu3,znver4-fp-store") + + (define_insn_reservation "znver4_sse_shuf" 1 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "sseshuf") + (and (eq_attr "mode" "V8SF,V4DF,V4SF,V2DF,V2SF,V1DF,SF") + (eq_attr "memory" "none")))) + "znver4-direct,znver4-fpu1|znver4-fpu2") + + (define_insn_reservation "znver4_sse_shuf_load" 6 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "sseshuf") + (and (eq_attr "mode" "V8SF,V4DF,V4SF,V2DF,V2SF,V1DF,SF") + (eq_attr "memory" "load")))) + "znver4-direct,znver4-load,znver4-fpu") + + (define_insn_reservation "znver4_sse_ishuf" 3 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "sseshuf") + (and (eq_attr "mode" "OI") + (eq_attr "memory" "none")))) + "znver4-direct,znver4-fpu1|znver4-fpu2") + + (define_insn_reservation "znver4_sse_ishuf_load" 8 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "sseshuf") + (and (eq_attr "mode" "OI") + (eq_attr "memory" "load")))) + "znver4-direct,znver4-load,znver4-fpu1|znver4-fpu2") + + ;; AVX512 instructions + (define_insn_reservation "znver4_sse_log_evex" 1 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "sselog") + (and (eq_attr "mode" "V16SF,V8DF,XI") + (eq_attr "memory" "none")))) + "znver4-direct,znver4-fpu0*2|znver4-fpu1*2|znver4-fpu2*2|znver4-fpu3*2") + + (define_insn_reservation "znver4_sse_log_evex_load" 7 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "sselog") + (and (eq_attr "mode" "V16SF,V8DF,XI") + (eq_attr "memory" "load")))) + "znver4-direct,znver4-load,znver4-fpu0*2|znver4-fpu1*2|znver4-fpu2*2|znver4-fpu3*2") + + (define_insn_reservation "znver4_sse_log1_evex" 1 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "sselog1") + (and (eq_attr "mode" "V16SF,V8DF,XI") + (eq_attr "memory" "none")))) + "znver4-direct,znver4-fpu1*2|znver4-fpu2*2,znver4-fp-store") + + (define_insn_reservation "znver4_sse_log1_evex_load" 7 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "sselog1") + (and (eq_attr "mode" "V16SF,V8DF,XI") + (eq_attr "memory" "load")))) + "znver4-direct,znver4-load,znver4-fpu1*2|znver4-fpu2*2,znver4-fp-store") + + (define_insn_reservation "znver4_sse_mul_evex" 3 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssemul") + (and (eq_attr "mode" "V16SF,V8DF") + (eq_attr "memory" "none")))) + "znver4-direct,znver4-fpu0*2|znver4-fpu1*2") + + (define_insn_reservation "znver4_sse_mul_evex_load" 9 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssemul") + (and (eq_attr "mode" "V16SF,V8DF") + (eq_attr "memory" "load")))) + "znver4-direct,znver4-load,znver4-fpu0*2|znver4-fpu1*2") + + (define_insn_reservation "znver4_sse_imul_evex" 3 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "sseimul") + (and (eq_attr "mode" "XI") + (eq_attr "memory" "none")))) + "znver4-direct,znver4-fpu0*2|znver4-fpu3*2") + + (define_insn_reservation "znver4_sse_imul_evex_load" 9 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "sseimul") + (and (eq_attr "mode" "XI") + (eq_attr "memory" "load")))) + "znver4-direct,znver4-load,znver4-fpu0*2|znver4-fpu1*2") + + (define_insn_reservation "znver4_sse_mov_evex" 4 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssemov") + (and (eq_attr "mode" "XI") + (eq_attr "memory" "none")))) + "znver4-direct,znver4-fpu1*2|znver4-fpu2*2") + + (define_insn_reservation "znver4_sse_mov_evex_load" 10 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssemov") + (and (eq_attr "mode" "XI") + (eq_attr "memory" "load")))) + "znver4-direct,znver4-load,znver4-fpu1*2|znver4-fpu2*2") + + (define_insn_reservation "znver4_sse_mov_evex_store" 5 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssemov") + (and (eq_attr "mode" "XI") + (eq_attr "memory" "store")))) + "znver4-direct,znver4-fpu1*2|znver4-fpu2*2,znver4-fp-store") + + (define_insn_reservation "znver4_sse_add_evex" 3 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "sseadd") + (and (eq_attr "mode" "V16SF,V8DF") + (eq_attr "memory" "none")))) + "znver4-direct,znver4-fpu2*2|znver4-fpu3*2") + + (define_insn_reservation "znver4_sse_add_evex_load" 9 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "sseadd") + (and (eq_attr "mode" "V16SF,V8DF") + (eq_attr "memory" "load")))) + "znver4-direct,znver4-load,znver4-fpu2*2|znver4-fpu3*2") + + (define_insn_reservation "znver4_sse_iadd_evex" 1 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "sseiadd") + (and (eq_attr "mode" "XI") + (eq_attr "memory" "none")))) + "znver4-direct,znver4-fpu0*2|znver4-fpu1*2|znver4-fpu2*2|znver4-fpu3*2") + + (define_insn_reservation "znver4_sse_iadd_evex_load" 7 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "sseiadd") + (and (eq_attr "mode" "XI") + (eq_attr "memory" "load")))) + "znver4-direct,znver4-load,znver4-fpu0*2|znver4-fpu1*2|znver4-fpu2*2|znver4-fpu3*2") + + (define_insn_reservation "znver4_sse_div_pd_evex" 13 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssediv") + (and (eq_attr "mode" "V8DF") + (eq_attr "memory" "none")))) + "znver4-direct,znver4-fdiv*9") + + (define_insn_reservation "znver4_sse_div_ps_evex" 10 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssediv") + (and (eq_attr "mode" "V16SF") + (eq_attr "memory" "none")))) + "znver4-direct,znver4-fdiv*6") + + (define_insn_reservation "znver4_sse_div_pd_evex_load" 19 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssediv") + (and (eq_attr "mode" "V8DF") + (eq_attr "memory" "load")))) + "znver4-direct,znver4-load,znver4-fdiv*9") + + (define_insn_reservation "znver4_sse_div_ps_evex_load" 16 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssediv") + (and (eq_attr "mode" "V16SF") + (eq_attr "memory" "load")))) + "znver4-direct,znver4-load,znver4-fdiv*6") + + (define_insn_reservation "znver4_sse_cmp_avx128" 3 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssecmp") + (and (eq_attr "mode" "V4SF,V2DF,V2SF,V1DF,SF") + (and (eq_attr "prefix" "evex") + (eq_attr "memory" "none"))))) + "znver4-direct,znver4-fpu0*2|znver4-fpu1*2") + + (define_insn_reservation "znver4_sse_cmp_avx128_load" 9 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssecmp") + (and (eq_attr "mode" "V4SF,V2DF,V2SF,V1DF,SF") + (and (eq_attr "prefix" "evex") + (eq_attr "memory" "load"))))) + "znver4-direct,znver4-load,znver4-fpu0*2|znver4-fpu1*2") + + (define_insn_reservation "znver4_sse_cmp_avx256" 4 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssecmp") + (and (eq_attr "mode" "V8SF,V4DF") + (and (eq_attr "prefix" "evex") + (eq_attr "memory" "none"))))) + "znver4-direct,znver4-fpu0*2|znver4-fpu1*2") + + (define_insn_reservation "znver4_sse_cmp_avx256_load" 10 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssecmp") + (and (eq_attr "mode" "V8SF,V4DF") + (and (eq_attr "prefix" "evex") + (eq_attr "memory" "load"))))) + "znver4-direct,znver4-load,znver4-fpu0*2|znver4-fpu1*2") + + (define_insn_reservation "znver4_sse_cmp_avx512" 5 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssecmp") + (and (eq_attr "mode" "V16SF,V8DF") + (and (eq_attr "prefix" "evex") + (eq_attr "memory" "none"))))) + "znver4-direct,znver4-fpu0*2|znver4-fpu1*2") + + (define_insn_reservation "znver4_sse_cmp_avx512_load" 11 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssecmp") + (and (eq_attr "mode" "V16SF,V8DF") + (and (eq_attr "prefix" "evex") + (eq_attr "memory" "load"))))) + "znver4-direct,znver4-load,znver4-fpu0*2|znver4-fpu1*2") + + (define_insn_reservation "znver4_sse_cvt_evex" 6 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssecvt") + (and (eq_attr "mode" "V16SF,V8DF") + (eq_attr "memory" "none")))) + "znver4-direct,znver4-fpu1*2|znver4-fpu2*2,znver4-fpu2*2|znver4-fpu3*2") + + (define_insn_reservation "znver4_sse_cvt_evex_load" 12 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssecvt") + (and (eq_attr "mode" "V16SF,V8DF") + (eq_attr "memory" "load")))) + "znver4-direct,znver4-load,znver4-fpu1*2|znver4-fpu2*2,znver4-fpu2*2|znver4-fpu3*2") + + (define_insn_reservation "znver4_sse_shuf_evex" 1 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "sseshuf") + (and (eq_attr "mode" "V16SF,V8DF") + (eq_attr "memory" "none")))) + "znver4-direct,znver4-fpu0*2|znver4-fpu1*2|znver4-fpu2*2|znver4-fpu3*2") + + (define_insn_reservation "znver4_sse_shuf_evex_load" 7 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "sseshuf") + (and (eq_attr "mode" "V16SF,V8DF") + (eq_attr "memory" "load")))) + "znver4-direct,znver4-load,znver4-fpu0*2|znver4-fpu1*2|znver4-fpu2*2|znver4-fpu3*2") + + (define_insn_reservation "znver4_sse_ishuf_evex" 4 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "sseshuf") + (and (eq_attr "mode" "XI") + (eq_attr "memory" "none")))) + "znver4-direct,znver4-fpu1*2|znver4-fpu2*2") + + (define_insn_reservation "znver4_sse_ishuf_evex_load" 10 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "sseshuf") + (and (eq_attr "mode" "XI") + (eq_attr "memory" "load")))) + "znver4-direct,znver4-load,znver4-fpu1*2|znver4-fpu2*2") + + (define_insn_reservation "znver4_sse_muladd" 4 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "ssemuladd") + (eq_attr "memory" "none"))) + "znver4-direct,znver4-fpu0*2|znver4-fpu1*2") + + (define_insn_reservation "znver4_sse_muladd_load" 10 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "sseshuf") + (eq_attr "memory" "load"))) + "znver4-direct,znver4-load,znver4-fpu0*2|znver4-fpu1*2") + + ;; AVX512 mask instructions + + (define_insn_reservation "znver4_sse_mskmov" 2 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "mskmov") + (eq_attr "memory" "none"))) + "znver4-direct,znver4-fpu0*2|znver4-fpu1*2") + + (define_insn_reservation "znver4_sse_msklog" 1 + (and (eq_attr "cpu" "znver4") + (and (eq_attr "type" "msklog") + (eq_attr "memory" "none"))) + "znver4-direct,znver4-fpu2*2|znver4-fpu3*2") diff -Nrcpad gcc-11.4.0/gcc/config/mips/mips-msa.md gcc-11.5.0/gcc/config/mips/mips-msa.md *** gcc-11.4.0/gcc/config/mips/mips-msa.md Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/mips/mips-msa.md Fri Jul 19 05:52:43 2024 *************** *** 231,236 **** --- 231,240 ---- (V4SI "uimm5") (V2DI "uimm6")]) + ;; The index of sign bit in FP vector elements. + (define_mode_attr elmsgnbit [(V2DF "63") (V4DF "63") + (V4SF "31") (V8SF "31")]) + (define_expand "vec_init" [(match_operand:MSA 0 "register_operand") (match_operand:MSA 1 "")] *************** *** 597,605 **** }) (define_expand "neg2" ! [(set (match_operand:MSA 0 "register_operand") ! (minus:MSA (match_dup 2) ! (match_operand:MSA 1 "register_operand")))] "ISA_HAS_MSA" { rtx reg = gen_reg_rtx (mode); --- 601,609 ---- }) (define_expand "neg2" ! [(set (match_operand:IMSA 0 "register_operand") ! (minus:IMSA (match_dup 2) ! (match_operand:IMSA 1 "register_operand")))] "ISA_HAS_MSA" { rtx reg = gen_reg_rtx (mode); *************** *** 607,612 **** --- 611,624 ---- operands[2] = reg; }) + (define_insn "neg2" + [(set (match_operand:FMSA 0 "register_operand" "=f") + (neg:FMSA (match_operand:FMSA 1 "register_operand" "f")))] + "ISA_HAS_MSA" + "bnegi.\t%w0,%w1," + [(set_attr "type" "simd_bit") + (set_attr "mode" "")]) + (define_expand "msa_ldi" [(match_operand:IMSA 0 "register_operand") (match_operand 1 "const_imm10_operand")] diff -Nrcpad gcc-11.4.0/gcc/config/mips/mips.c gcc-11.5.0/gcc/config/mips/mips.c *** gcc-11.4.0/gcc/config/mips/mips.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/mips/mips.c Fri Jul 19 05:52:43 2024 *************** mips_emit_call_insn (rtx pattern, rtx or *** 3138,3143 **** --- 3138,3146 ---- { rtx post_call_tmp_reg = gen_rtx_REG (word_mode, POST_CALL_TMP_REG); clobber_reg (&CALL_INSN_FUNCTION_USAGE (insn), post_call_tmp_reg); + clobber_reg (&CALL_INSN_FUNCTION_USAGE (insn), MIPS16_PIC_TEMP); + clobber_reg (&CALL_INSN_FUNCTION_USAGE (insn), + MIPS_PROLOGUE_TEMP (word_mode)); } return insn; *************** mips16_gp_pseudo_reg (void) *** 3234,3240 **** rtx set = gen_load_const_gp (cfun->machine->mips16_gp_pseudo_rtx); rtx_insn *insn = emit_insn_after (set, scan); INSN_LOCATION (insn) = 0; ! pop_topmost_sequence (); } --- 3237,3249 ---- rtx set = gen_load_const_gp (cfun->machine->mips16_gp_pseudo_rtx); rtx_insn *insn = emit_insn_after (set, scan); INSN_LOCATION (insn) = 0; ! /* NewABI support hasn't been implement. NewABI should generate RTL ! sequence instead of ASM sequence directly. */ ! if (mips_current_loadgp_style () == LOADGP_OLDABI) ! { ! emit_clobber (MIPS16_PIC_TEMP); ! emit_clobber (MIPS_PROLOGUE_TEMP (Pmode)); ! } pop_topmost_sequence (); } diff -Nrcpad gcc-11.4.0/gcc/config/pa/pa.c gcc-11.5.0/gcc/config/pa/pa.c *** gcc-11.4.0/gcc/config/pa/pa.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/pa/pa.c Fri Jul 19 05:52:43 2024 *************** pa_asm_trampoline_template (FILE *f) *** 10396,10402 **** fputs ("\tldw 0(%r22),%r21\n", f); fputs ("\tldw 4(%r22),%r19\n", f); fputs ("\tbve (%r21)\n", f); ! fputs ("\tldw 52(%r1),%r29\n", f); fputs ("\t.word 0\n", f); fputs ("\t.word 0\n", f); fputs ("\t.word 0\n", f); --- 10396,10402 ---- fputs ("\tldw 0(%r22),%r21\n", f); fputs ("\tldw 4(%r22),%r19\n", f); fputs ("\tbve (%r21)\n", f); ! fputs ("\tldw 52(%r20),%r29\n", f); fputs ("\t.word 0\n", f); fputs ("\t.word 0\n", f); fputs ("\t.word 0\n", f); diff -Nrcpad gcc-11.4.0/gcc/config/pa/pa.md gcc-11.5.0/gcc/config/pa/pa.md *** gcc-11.4.0/gcc/config/pa/pa.md Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/pa/pa.md Fri Jul 19 05:52:43 2024 *************** *** 5494,5517 **** (set_attr "length" "4")]) (define_insn "" - [(set (match_operand:DI 0 "register_operand" "=f") - (mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" "f")) - (match_operand:DI 2 "uint32_operand" "f")))] - "TARGET_PA_11 && ! TARGET_SOFT_FLOAT && ! TARGET_SOFT_MULT && !TARGET_64BIT" - "xmpyu %1,%R2,%0" - [(set_attr "type" "fpmuldbl") - (set_attr "length" "4")]) - - (define_insn "" - [(set (match_operand:DI 0 "register_operand" "=f") - (mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" "f")) - (match_operand:DI 2 "uint32_operand" "f")))] - "TARGET_PA_11 && ! TARGET_SOFT_FLOAT && ! TARGET_SOFT_MULT && TARGET_64BIT" - "xmpyu %1,%2R,%0" - [(set_attr "type" "fpmuldbl") - (set_attr "length" "4")]) - - (define_insn "" [(set (reg:SI 29) (mult:SI (reg:SI 26) (reg:SI 25))) (clobber (match_operand:SI 0 "register_operand" "=a")) (clobber (reg:SI 26)) --- 5494,5499 ---- *************** add,l %2,%3,%3\;bv,n %%r0(%3)" *** 10488,10500 **** (define_insn "atomic_storedi_1" [(set (mem:DI (match_operand:SI 0 "register_operand" "r,r")) (match_operand:DI 1 "reg_or_0_operand" "M,r")) ! (clobber (match_scratch:DI 2 "=X,f"))] "!TARGET_64BIT && !TARGET_SOFT_FLOAT" "@ ! {fstds|fstd} %%fr0,0(%0) {stws|stw} %1,-16(%%sp)\n\t{stws|stw} %R1,-12(%%sp)\n\t{fldds|fldd} -16(%%sp),%2\n\t{fstds|fstd} %2,0(%0)" [(set_attr "type" "move,move") ! (set_attr "length" "4,16")]) ;; PA 2.0 hardware supports out-of-order execution of loads and stores, so ;; we need memory barriers to enforce program order for memory references --- 10470,10482 ---- (define_insn "atomic_storedi_1" [(set (mem:DI (match_operand:SI 0 "register_operand" "r,r")) (match_operand:DI 1 "reg_or_0_operand" "M,r")) ! (clobber (match_scratch:DI 2 "=f,f"))] "!TARGET_64BIT && !TARGET_SOFT_FLOAT" "@ ! fcpy,dbl %%fr0,%2\n\t{fstds|fstd} %2,0(%0) {stws|stw} %1,-16(%%sp)\n\t{stws|stw} %R1,-12(%%sp)\n\t{fldds|fldd} -16(%%sp),%2\n\t{fstds|fstd} %2,0(%0)" [(set_attr "type" "move,move") ! (set_attr "length" "8,16")]) ;; PA 2.0 hardware supports out-of-order execution of loads and stores, so ;; we need memory barriers to enforce program order for memory references diff -Nrcpad gcc-11.4.0/gcc/config/riscv/sync.md gcc-11.5.0/gcc/config/riscv/sync.md *** gcc-11.4.0/gcc/config/riscv/sync.md Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/riscv/sync.md Fri Jul 19 05:52:43 2024 *************** *** 129,134 **** --- 129,143 ---- (match_operand:SI 7 "const_int_operand" "")] ;; mod_f "TARGET_ATOMIC" { + if (word_mode != mode && operands[3] != const0_rtx) + { + /* We don't have SI mode compare on RV64, so we need to make sure expected + value is sign-extended. */ + rtx tmp0 = gen_reg_rtx (word_mode); + emit_insn (gen_extend_insn (tmp0, operands[3], word_mode, mode, 0)); + operands[3] = simplify_gen_subreg (mode, tmp0, word_mode, 0); + } + emit_insn (gen_atomic_cas_value_strong (operands[1], operands[2], operands[3], operands[4], operands[6], operands[7])); diff -Nrcpad gcc-11.4.0/gcc/config/rs6000/altivec.md gcc-11.5.0/gcc/config/rs6000/altivec.md *** gcc-11.4.0/gcc/config/rs6000/altivec.md Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/rs6000/altivec.md Fri Jul 19 05:52:43 2024 *************** *** 3870,3876 **** (match_operand:QI 4 "u8bit_cint_operand" "n")] UNSPEC_XXEVAL))] "TARGET_POWER10" ! "xxeval %0,%1,%2,%3,%4" [(set_attr "type" "vecperm") (set_attr "prefixed" "yes")]) --- 3870,3876 ---- (match_operand:QI 4 "u8bit_cint_operand" "n")] UNSPEC_XXEVAL))] "TARGET_POWER10" ! "xxeval %x0,%x1,%x2,%x3,%4" [(set_attr "type" "vecperm") (set_attr "prefixed" "yes")]) diff -Nrcpad gcc-11.4.0/gcc/config/rs6000/darwin.h gcc-11.5.0/gcc/config/rs6000/darwin.h *** gcc-11.4.0/gcc/config/rs6000/darwin.h Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/rs6000/darwin.h Fri Jul 19 05:52:43 2024 *************** *** 98,104 **** Include libmx when targeting Darwin 7.0 and above, but before libSystem, since the functions are actually in libSystem but for 7.x compatibility we want them to be looked for in libmx first. ! Include libSystemStubs when compiling against 10.3 - 10.5 SDKs (we assume this is the case when targetting these) - but not for 64-bit long double. Don't do either for m64, the library is either a dummy or non-existent. */ --- 98,104 ---- Include libmx when targeting Darwin 7.0 and above, but before libSystem, since the functions are actually in libSystem but for 7.x compatibility we want them to be looked for in libmx first. ! Include libSystemStubs when compiling against 10.3 - 10.6 SDKs (we assume this is the case when targetting these) - but not for 64-bit long double. Don't do either for m64, the library is either a dummy or non-existent. */ *************** *** 107,114 **** #define LIB_SPEC \ "%{!static: \ %{!m64:%{!mlong-double-64: \ ! %{pg:%:version-compare(>< 10.3 10.5 mmacosx-version-min= -lSystemStubs_profile)} \ ! %{!pg:%:version-compare(>< 10.3 10.5 mmacosx-version-min= -lSystemStubs)} \ %:version-compare(>< 10.3 10.4 mmacosx-version-min= -lmx)}} \ -lSystem \ }" --- 107,114 ---- #define LIB_SPEC \ "%{!static: \ %{!m64:%{!mlong-double-64: \ ! %{pg:%:version-compare(>< 10.3 10.7 mmacosx-version-min= -lSystemStubs_profile)} \ ! %{!pg:%:version-compare(>< 10.3 10.7 mmacosx-version-min= -lSystemStubs)} \ %:version-compare(>< 10.3 10.4 mmacosx-version-min= -lmx)}} \ -lSystem \ }" diff -Nrcpad gcc-11.4.0/gcc/config/rs6000/fusion.md gcc-11.5.0/gcc/config/rs6000/fusion.md *** gcc-11.4.0/gcc/config/rs6000/fusion.md Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/rs6000/fusion.md Fri Jul 19 05:52:43 2024 *************** *** 22,28 **** ;; load mode is DI result mode is clobber compare mode is CC extend is none (define_insn_and_split "*ld_cmpdi_cr0_DI_clobber_CC_none" [(set (match_operand:CC 2 "cc_reg_operand" "=x") ! (compare:CC (match_operand:DI 1 "ds_form_mem_operand" "m") (match_operand:DI 3 "const_m1_to_1_operand" "n"))) (clobber (match_scratch:DI 0 "=r"))] "(TARGET_P10_FUSION)" --- 22,28 ---- ;; load mode is DI result mode is clobber compare mode is CC extend is none (define_insn_and_split "*ld_cmpdi_cr0_DI_clobber_CC_none" [(set (match_operand:CC 2 "cc_reg_operand" "=x") ! (compare:CC (match_operand:DI 1 "non_update_memory_operand" "YZ") (match_operand:DI 3 "const_m1_to_1_operand" "n"))) (clobber (match_scratch:DI 0 "=r"))] "(TARGET_P10_FUSION)" *************** *** 43,49 **** ;; load mode is DI result mode is clobber compare mode is CCUNS extend is none (define_insn_and_split "*ld_cmpldi_cr0_DI_clobber_CCUNS_none" [(set (match_operand:CCUNS 2 "cc_reg_operand" "=x") ! (compare:CCUNS (match_operand:DI 1 "ds_form_mem_operand" "m") (match_operand:DI 3 "const_0_to_1_operand" "n"))) (clobber (match_scratch:DI 0 "=r"))] "(TARGET_P10_FUSION)" --- 43,49 ---- ;; load mode is DI result mode is clobber compare mode is CCUNS extend is none (define_insn_and_split "*ld_cmpldi_cr0_DI_clobber_CCUNS_none" [(set (match_operand:CCUNS 2 "cc_reg_operand" "=x") ! (compare:CCUNS (match_operand:DI 1 "non_update_memory_operand" "YZ") (match_operand:DI 3 "const_0_to_1_operand" "n"))) (clobber (match_scratch:DI 0 "=r"))] "(TARGET_P10_FUSION)" *************** *** 64,70 **** ;; load mode is DI result mode is DI compare mode is CC extend is none (define_insn_and_split "*ld_cmpdi_cr0_DI_DI_CC_none" [(set (match_operand:CC 2 "cc_reg_operand" "=x") ! (compare:CC (match_operand:DI 1 "ds_form_mem_operand" "m") (match_operand:DI 3 "const_m1_to_1_operand" "n"))) (set (match_operand:DI 0 "gpc_reg_operand" "=r") (match_dup 1))] "(TARGET_P10_FUSION)" --- 64,70 ---- ;; load mode is DI result mode is DI compare mode is CC extend is none (define_insn_and_split "*ld_cmpdi_cr0_DI_DI_CC_none" [(set (match_operand:CC 2 "cc_reg_operand" "=x") ! (compare:CC (match_operand:DI 1 "non_update_memory_operand" "YZ") (match_operand:DI 3 "const_m1_to_1_operand" "n"))) (set (match_operand:DI 0 "gpc_reg_operand" "=r") (match_dup 1))] "(TARGET_P10_FUSION)" *************** *** 85,91 **** ;; load mode is DI result mode is DI compare mode is CCUNS extend is none (define_insn_and_split "*ld_cmpldi_cr0_DI_DI_CCUNS_none" [(set (match_operand:CCUNS 2 "cc_reg_operand" "=x") ! (compare:CCUNS (match_operand:DI 1 "ds_form_mem_operand" "m") (match_operand:DI 3 "const_0_to_1_operand" "n"))) (set (match_operand:DI 0 "gpc_reg_operand" "=r") (match_dup 1))] "(TARGET_P10_FUSION)" --- 85,91 ---- ;; load mode is DI result mode is DI compare mode is CCUNS extend is none (define_insn_and_split "*ld_cmpldi_cr0_DI_DI_CCUNS_none" [(set (match_operand:CCUNS 2 "cc_reg_operand" "=x") ! (compare:CCUNS (match_operand:DI 1 "non_update_memory_operand" "YZ") (match_operand:DI 3 "const_0_to_1_operand" "n"))) (set (match_operand:DI 0 "gpc_reg_operand" "=r") (match_dup 1))] "(TARGET_P10_FUSION)" *************** *** 104,120 **** ;; load-cmpi fusion pattern generated by gen_ld_cmpi_p10 ;; load mode is SI result mode is clobber compare mode is CC extend is none ! (define_insn_and_split "*lwa_cmpdi_cr0_SI_clobber_CC_none" [(set (match_operand:CC 2 "cc_reg_operand" "=x") ! (compare:CC (match_operand:SI 1 "ds_form_mem_operand" "m") (match_operand:SI 3 "const_m1_to_1_operand" "n"))) (clobber (match_scratch:SI 0 "=r"))] "(TARGET_P10_FUSION)" ! "lwa%X1 %0,%1\;cmpdi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) || !address_is_non_pfx_d_or_x (XEXP (operands[1], 0), ! SImode, NON_PREFIXED_DS))" [(set (match_dup 0) (match_dup 1)) (set (match_dup 2) (compare:CC (match_dup 0) (match_dup 3)))] --- 104,120 ---- ;; load-cmpi fusion pattern generated by gen_ld_cmpi_p10 ;; load mode is SI result mode is clobber compare mode is CC extend is none ! (define_insn_and_split "*lwz_cmpwi_cr0_SI_clobber_CC_none" [(set (match_operand:CC 2 "cc_reg_operand" "=x") ! (compare:CC (match_operand:SI 1 "non_update_memory_operand" "m") (match_operand:SI 3 "const_m1_to_1_operand" "n"))) (clobber (match_scratch:SI 0 "=r"))] "(TARGET_P10_FUSION)" ! "lwz%X1 %0,%1\;cmpwi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) || !address_is_non_pfx_d_or_x (XEXP (operands[1], 0), ! SImode, NON_PREFIXED_D))" [(set (match_dup 0) (match_dup 1)) (set (match_dup 2) (compare:CC (match_dup 0) (match_dup 3)))] *************** *** 146,162 **** ;; load-cmpi fusion pattern generated by gen_ld_cmpi_p10 ;; load mode is SI result mode is SI compare mode is CC extend is none ! (define_insn_and_split "*lwa_cmpdi_cr0_SI_SI_CC_none" [(set (match_operand:CC 2 "cc_reg_operand" "=x") ! (compare:CC (match_operand:SI 1 "ds_form_mem_operand" "m") (match_operand:SI 3 "const_m1_to_1_operand" "n"))) (set (match_operand:SI 0 "gpc_reg_operand" "=r") (match_dup 1))] "(TARGET_P10_FUSION)" ! "lwa%X1 %0,%1\;cmpdi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) || !address_is_non_pfx_d_or_x (XEXP (operands[1], 0), ! SImode, NON_PREFIXED_DS))" [(set (match_dup 0) (match_dup 1)) (set (match_dup 2) (compare:CC (match_dup 0) (match_dup 3)))] --- 146,162 ---- ;; load-cmpi fusion pattern generated by gen_ld_cmpi_p10 ;; load mode is SI result mode is SI compare mode is CC extend is none ! (define_insn_and_split "*lwz_cmpwi_cr0_SI_SI_CC_none" [(set (match_operand:CC 2 "cc_reg_operand" "=x") ! (compare:CC (match_operand:SI 1 "non_update_memory_operand" "m") (match_operand:SI 3 "const_m1_to_1_operand" "n"))) (set (match_operand:SI 0 "gpc_reg_operand" "=r") (match_dup 1))] "(TARGET_P10_FUSION)" ! "lwz%X1 %0,%1\;cmpwi %2,%0,%3" "&& reload_completed && (cc_reg_not_cr0_operand (operands[2], CCmode) || !address_is_non_pfx_d_or_x (XEXP (operands[1], 0), ! SImode, NON_PREFIXED_D))" [(set (match_dup 0) (match_dup 1)) (set (match_dup 2) (compare:CC (match_dup 0) (match_dup 3)))] *************** *** 190,196 **** ;; load mode is SI result mode is EXTSI compare mode is CC extend is sign (define_insn_and_split "*lwa_cmpdi_cr0_SI_EXTSI_CC_sign" [(set (match_operand:CC 2 "cc_reg_operand" "=x") ! (compare:CC (match_operand:SI 1 "ds_form_mem_operand" "m") (match_operand:SI 3 "const_m1_to_1_operand" "n"))) (set (match_operand:EXTSI 0 "gpc_reg_operand" "=r") (sign_extend:EXTSI (match_dup 1)))] "(TARGET_P10_FUSION)" --- 190,196 ---- ;; load mode is SI result mode is EXTSI compare mode is CC extend is sign (define_insn_and_split "*lwa_cmpdi_cr0_SI_EXTSI_CC_sign" [(set (match_operand:CC 2 "cc_reg_operand" "=x") ! (compare:CC (match_operand:SI 1 "non_update_memory_operand" "YZ") (match_operand:SI 3 "const_m1_to_1_operand" "n"))) (set (match_operand:EXTSI 0 "gpc_reg_operand" "=r") (sign_extend:EXTSI (match_dup 1)))] "(TARGET_P10_FUSION)" *************** *** 205,210 **** --- 205,211 ---- "" [(set_attr "type" "fused_load_cmpi") (set_attr "cost" "8") + (set_attr "sign_extend" "yes") (set_attr "length" "8")]) ;; load-cmpi fusion pattern generated by gen_ld_cmpi_p10 diff -Nrcpad gcc-11.4.0/gcc/config/rs6000/genfusion.pl gcc-11.5.0/gcc/config/rs6000/genfusion.pl *** gcc-11.4.0/gcc/config/rs6000/genfusion.pl Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/rs6000/genfusion.pl Fri Jul 19 05:52:43 2024 *************** sub mode_to_ldst_char *** 53,144 **** return '?'; } sub gen_ld_cmpi_p10 { ! my ($lmode, $ldst, $clobbermode, $result, $cmpl, $echr, $constpred, ! $mempred, $ccmode, $np, $extend, $resultmode); ! LMODE: foreach $lmode ('DI','SI','HI','QI') { ! $ldst = mode_to_ldst_char($lmode); ! $clobbermode = $lmode; ! # For clobber, we need a SI/DI reg in case we ! # split because we have to sign/zero extend. ! if ($lmode eq 'HI' || $lmode eq 'QI') { $clobbermode = "GPR"; } ! RESULT: foreach $result ('clobber', $lmode, "EXT".$lmode) { ! # EXTDI does not exist, and we cannot directly produce HI/QI results. ! next RESULT if $result eq "EXTDI" || $result eq "HI" || $result eq "QI"; ! # Don't allow EXTQI because that would allow HI result which we can't do. ! $result = "GPR" if $result eq "EXTQI"; ! CCMODE: foreach $ccmode ('CC','CCUNS') { ! $np = "NON_PREFIXED_D"; ! $mempred = "non_update_memory_operand"; ! if ( $ccmode eq 'CC' ) { ! next CCMODE if $lmode eq 'QI'; ! if ( $lmode eq 'DI' || $lmode eq 'SI' ) { ! # ld and lwa are both DS-FORM. ! $np = "NON_PREFIXED_DS"; ! $mempred = "ds_form_mem_operand"; ! } ! $cmpl = ""; ! $echr = "a"; ! $constpred = "const_m1_to_1_operand"; ! } else { ! if ( $lmode eq 'DI' ) { ! # ld is DS-form, but lwz is not. ! $np = "NON_PREFIXED_DS"; ! $mempred = "ds_form_mem_operand"; ! } ! $cmpl = "l"; ! $echr = "z"; ! $constpred = "const_0_to_1_operand"; ! } ! if ($lmode eq 'DI') { $echr = ""; } ! if ($result =~ m/^EXT/ || $result eq 'GPR' || $clobbermode eq 'GPR') { ! # We always need extension if result > lmode. ! if ( $ccmode eq 'CC' ) { ! $extend = "sign"; ! } else { ! $extend = "zero"; ! } ! } else { ! # Result of SI/DI does not need sign extension. ! $extend = "none"; ! } ! print ";; load-cmpi fusion pattern generated by gen_ld_cmpi_p10\n"; ! print ";; load mode is $lmode result mode is $result compare mode is $ccmode extend is $extend\n"; ! print "(define_insn_and_split \"*l${ldst}${echr}_cmp${cmpl}di_cr0_${lmode}_${result}_${ccmode}_${extend}\"\n"; ! print " [(set (match_operand:${ccmode} 2 \"cc_reg_operand\" \"=x\")\n"; ! print " (compare:${ccmode} (match_operand:${lmode} 1 \"${mempred}\" \"m\")\n"; ! if ($ccmode eq 'CCUNS') { print " "; } ! print " (match_operand:${lmode} 3 \"${constpred}\" \"n\")))\n"; ! if ($result eq 'clobber') { ! print " (clobber (match_scratch:${clobbermode} 0 \"=r\"))]\n"; ! } elsif ($result eq $lmode) { ! print " (set (match_operand:${result} 0 \"gpc_reg_operand\" \"=r\") (match_dup 1))]\n"; ! } else { ! print " (set (match_operand:${result} 0 \"gpc_reg_operand\" \"=r\") (${extend}_extend:${result} (match_dup 1)))]\n"; ! } ! print " \"(TARGET_P10_FUSION)\"\n"; ! print " \"l${ldst}${echr}%X1 %0,%1\\;cmp${cmpl}di %2,%0,%3\"\n"; ! print " \"&& reload_completed\n"; ! print " && (cc_reg_not_cr0_operand (operands[2], CCmode)\n"; ! print " || !address_is_non_pfx_d_or_x (XEXP (operands[1], 0),\n"; ! print " ${lmode}mode, ${np}))\"\n"; ! if ($extend eq "none") { ! print " [(set (match_dup 0) (match_dup 1))\n"; ! } else { ! $resultmode = $result; ! if ( $result eq 'clobber' ) { $resultmode = $clobbermode } ! print " [(set (match_dup 0) (${extend}_extend:${resultmode} (match_dup 1)))\n"; ! } ! print " (set (match_dup 2)\n"; ! print " (compare:${ccmode} (match_dup 0) (match_dup 3)))]\n"; ! print " \"\"\n"; ! print " [(set_attr \"type\" \"fused_load_cmpi\")\n"; ! print " (set_attr \"cost\" \"8\")\n"; ! print " (set_attr \"length\" \"8\")])\n"; ! print "\n"; } } } --- 53,188 ---- return '?'; } + sub gen_ld_cmpi_p10_one + { + my ($lmode, $result, $ccmode) = @_; + + my $np = "NON_PREFIXED_D"; + my $mempred = "non_update_memory_operand"; + my $extend; + + # We need to special case lwa. The prefixed_load_p function in rs6000.cc + # (which determines if a load instruction is prefixed) uses the fact that the + # register mode is different from the memory mode, and that the sign_extend + # attribute is set to use DS-form rules for the address instead of D-form. + # If the register size is the same, prefixed_load_p assumes we are doing a + # lwz. We change to use an lwz and word compare if we don't need to sign + # extend the SImode value. Otherwise if we need the value, we need to + # make sure the insn is marked as ds-form. + my $cmp_size_char = ($lmode eq "SI" + && $ccmode eq "CC" + && $result !~ /^EXT|^DI$/) ? "w" : "d"; + + if ($ccmode eq "CC") { + # ld and lwa are both DS-FORM. + ($lmode eq "DI") and $np = "NON_PREFIXED_DS"; + ($lmode eq "SI" && $cmp_size_char eq "d") and $np = "NON_PREFIXED_DS"; + } else { + if ($lmode eq "DI") { + # ld is DS-form, but lwz is not. + $np = "NON_PREFIXED_DS"; + } + } + + my $cmpl = ($ccmode eq "CC") ? "" : "l"; + my $echr = ($ccmode eq "CC" && $cmp_size_char eq "d") ? "a" : "z"; + if ($lmode eq "DI") { $echr = ""; } + my $constpred = ($ccmode eq "CC") ? "const_m1_to_1_operand" + : "const_0_to_1_operand"; + + # For clobber, we need a SI/DI reg in case we + # split because we have to sign/zero extend. + my $clobbermode = ($lmode =~ /^[QH]I$/) ? "GPR" : $lmode; + if ($result =~ /^EXT/ || $result eq "GPR" || $clobbermode eq "GPR") { + # We always need extension if result > lmode. + $extend = ($ccmode eq "CC") ? "sign" : "zero"; + } else { + # Result of SI/DI does not need sign extension. + $extend = "none"; + } + + my $ldst = mode_to_ldst_char($lmode); + + # DS-form addresses need YZ, and not m. + my $constraint = ($np eq "NON_PREFIXED_DS") ? "YZ" : "m"; + print <calls_eh_return) - epilogue_type = EPILOGUE_TYPE_EH_RETURN; - int strategy = info->savres_strategy; bool using_load_multiple = !!(strategy & REST_MULTIPLE); bool restoring_GPRs_inline = !!(strategy & REST_INLINE_GPRS); --- 4283,4288 ---- *************** rs6000_emit_epilogue (enum epilogue_type *** 4763,4769 **** /* In the ELFv2 ABI we need to restore all call-saved CR fields from *separate* slots if the routine calls __builtin_eh_return, so ! that they can be independently restored by the unwinder. */ if (DEFAULT_ABI == ABI_ELFv2 && crtl->calls_eh_return) { int i, cr_off = info->ehcr_offset; --- 4760,4768 ---- /* In the ELFv2 ABI we need to restore all call-saved CR fields from *separate* slots if the routine calls __builtin_eh_return, so ! that they can be independently restored by the unwinder. Since ! it is for CR fields restoring, it should be done for any epilogue ! types (not EPILOGUE_TYPE_EH_RETURN specific). */ if (DEFAULT_ABI == ABI_ELFv2 && crtl->calls_eh_return) { int i, cr_off = info->ehcr_offset; diff -Nrcpad gcc-11.4.0/gcc/config/rs6000/rs6000-string.c gcc-11.5.0/gcc/config/rs6000/rs6000-string.c *** gcc-11.4.0/gcc/config/rs6000/rs6000-string.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/rs6000/rs6000-string.c Fri Jul 19 05:52:43 2024 *************** expand_block_move (rtx operands[], bool *** 2811,2821 **** gen_func.mov = gen_vsx_movv2di_64bit; } else if (TARGET_BLOCK_OPS_UNALIGNED_VSX ! && TARGET_POWER10 && bytes < 16 && orig_bytes > 16 ! && !(bytes == 1 || bytes == 2 ! || bytes == 4 || bytes == 8) ! && (align >= 128 || !STRICT_ALIGNMENT)) { /* Only use lxvl/stxvl if it could replace multiple ordinary loads+stores. Also don't use it unless we likely already --- 2811,2827 ---- gen_func.mov = gen_vsx_movv2di_64bit; } else if (TARGET_BLOCK_OPS_UNALIGNED_VSX ! /* Only use lxvl/stxvl on 64bit POWER10. */ ! && TARGET_POWER10 ! && TARGET_64BIT ! && bytes < 16 && orig_bytes > 16 ! && !(bytes == 1 ! || bytes == 2 ! || bytes == 4 ! || bytes == 8) ! && (align >= 128 ! || !STRICT_ALIGNMENT)) { /* Only use lxvl/stxvl if it could replace multiple ordinary loads+stores. Also don't use it unless we likely already diff -Nrcpad gcc-11.4.0/gcc/config/rs6000/rs6000.c gcc-11.5.0/gcc/config/rs6000/rs6000.c *** gcc-11.4.0/gcc/config/rs6000/rs6000.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/rs6000/rs6000.c Fri Jul 19 05:52:43 2024 *************** rs6000_option_override_internal (bool gl *** 3820,3830 **** "-mmultiple"); } ! /* If little-endian, default to -mstrict-align on older processors. ! Testing for direct_move matches power8 and later. */ if (!BYTES_BIG_ENDIAN && !(processor_target_table[tune_index].target_enable ! & OPTION_MASK_DIRECT_MOVE)) rs6000_isa_flags |= ~rs6000_isa_flags_explicit & OPTION_MASK_STRICT_ALIGN; if (!rs6000_fold_gimple) --- 3820,3829 ---- "-mmultiple"); } ! /* If little-endian, default to -mstrict-align on older processors. */ if (!BYTES_BIG_ENDIAN && !(processor_target_table[tune_index].target_enable ! & OPTION_MASK_POWER8)) rs6000_isa_flags |= ~rs6000_isa_flags_explicit & OPTION_MASK_STRICT_ALIGN; if (!rs6000_fold_gimple) *************** rs6000_option_override_internal (bool gl *** 3870,3877 **** && (rs6000_isa_flags_explicit & (OPTION_MASK_SOFT_FLOAT | OPTION_MASK_ALTIVEC | OPTION_MASK_VSX)) != 0) ! rs6000_isa_flags &= ~((OPTION_MASK_P8_VECTOR | OPTION_MASK_CRYPTO ! | OPTION_MASK_DIRECT_MOVE) & ~rs6000_isa_flags_explicit); if (TARGET_DEBUG_REG || TARGET_DEBUG_TARGET) --- 3869,3875 ---- && (rs6000_isa_flags_explicit & (OPTION_MASK_SOFT_FLOAT | OPTION_MASK_ALTIVEC | OPTION_MASK_VSX)) != 0) ! rs6000_isa_flags &= ~((OPTION_MASK_P8_VECTOR | OPTION_MASK_CRYPTO) & ~rs6000_isa_flags_explicit); if (TARGET_DEBUG_REG || TARGET_DEBUG_TARGET) *************** rs6000_option_override_internal (bool gl *** 3915,3921 **** else rs6000_isa_flags |= ISA_3_0_MASKS_SERVER; } ! else if (TARGET_P8_VECTOR || TARGET_DIRECT_MOVE || TARGET_CRYPTO) rs6000_isa_flags |= (ISA_2_7_MASKS_SERVER & ~ignore_masks); else if (TARGET_VSX) rs6000_isa_flags |= (ISA_2_6_MASKS_SERVER & ~ignore_masks); --- 3913,3919 ---- else rs6000_isa_flags |= ISA_3_0_MASKS_SERVER; } ! else if (TARGET_P8_VECTOR || TARGET_POWER8 || TARGET_CRYPTO) rs6000_isa_flags |= (ISA_2_7_MASKS_SERVER & ~ignore_masks); else if (TARGET_VSX) rs6000_isa_flags |= (ISA_2_6_MASKS_SERVER & ~ignore_masks); *************** rs6000_option_override_internal (bool gl *** 3956,3968 **** rs6000_isa_flags &= ~OPTION_MASK_FPRND; } - if (TARGET_DIRECT_MOVE && !TARGET_VSX) - { - if (rs6000_isa_flags_explicit & OPTION_MASK_DIRECT_MOVE) - error ("%qs requires %qs", "-mdirect-move", "-mvsx"); - rs6000_isa_flags &= ~OPTION_MASK_DIRECT_MOVE; - } - if (TARGET_P8_VECTOR && !TARGET_ALTIVEC) { if (rs6000_isa_flags_explicit & OPTION_MASK_P8_VECTOR) --- 3954,3959 ---- *************** darwin_rs6000_special_round_type_align ( *** 8077,8083 **** type = TREE_TYPE (type); } while (AGGREGATE_TYPE_P (type)); ! if (! AGGREGATE_TYPE_P (type) && type != error_mark_node) align = MAX (align, TYPE_ALIGN (type)); return align; --- 8068,8075 ---- type = TREE_TYPE (type); } while (AGGREGATE_TYPE_P (type)); ! if (type != error_mark_node && ! AGGREGATE_TYPE_P (type) ! && ! TYPE_PACKED (type) && maximum_field_alignment == 0) align = MAX (align, TYPE_ALIGN (type)); return align; *************** output_toc (FILE *file, rtx x, int label *** 17041,17047 **** if (DECIMAL_FLOAT_MODE_P (GET_MODE (x))) REAL_VALUE_TO_TARGET_DECIMAL128 (*CONST_DOUBLE_REAL_VALUE (x), k); else ! REAL_VALUE_TO_TARGET_LONG_DOUBLE (*CONST_DOUBLE_REAL_VALUE (x), k); if (TARGET_64BIT) { --- 17033,17039 ---- if (DECIMAL_FLOAT_MODE_P (GET_MODE (x))) REAL_VALUE_TO_TARGET_DECIMAL128 (*CONST_DOUBLE_REAL_VALUE (x), k); else ! real_to_target (k, CONST_DOUBLE_REAL_VALUE (x), GET_MODE (x)); if (TARGET_64BIT) { *************** rs6000_rtx_costs (rtx x, machine_mode mo *** 21759,21765 **** *total = rs6000_cost->divsi; } /* Add in shift and subtract for MOD unless we have a mod instruction. */ ! if (!TARGET_MODULO && (code == MOD || code == UMOD)) *total += COSTS_N_INSNS (2); return false; --- 21751,21759 ---- *total = rs6000_cost->divsi; } /* Add in shift and subtract for MOD unless we have a mod instruction. */ ! if ((!TARGET_MODULO ! || (RS6000_DISABLE_SCALAR_MODULO && SCALAR_INT_MODE_P (mode))) ! && (code == MOD || code == UMOD)) *total += COSTS_N_INSNS (2); return false; *************** static struct rs6000_opt_mask const rs60 *** 23770,23776 **** false, true }, { "cmpb", OPTION_MASK_CMPB, false, true }, { "crypto", OPTION_MASK_CRYPTO, false, true }, ! { "direct-move", OPTION_MASK_DIRECT_MOVE, false, true }, { "dlmzb", OPTION_MASK_DLMZB, false, true }, { "efficient-unaligned-vsx", OPTION_MASK_EFFICIENT_UNALIGNED_VSX, false, true }, --- 23764,23770 ---- false, true }, { "cmpb", OPTION_MASK_CMPB, false, true }, { "crypto", OPTION_MASK_CRYPTO, false, true }, ! { "direct-move", 0, false, true }, { "dlmzb", OPTION_MASK_DLMZB, false, true }, { "efficient-unaligned-vsx", OPTION_MASK_EFFICIENT_UNALIGNED_VSX, false, true }, diff -Nrcpad gcc-11.4.0/gcc/config/rs6000/rs6000.h gcc-11.5.0/gcc/config/rs6000/rs6000.h *** gcc-11.4.0/gcc/config/rs6000/rs6000.h Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/rs6000/rs6000.h Fri Jul 19 05:52:43 2024 *************** extern int rs6000_vector_align[]; *** 471,476 **** --- 471,478 ---- #define TARGET_EXTSWSLI (TARGET_MODULO && TARGET_POWERPC64) #define TARGET_MADDLD TARGET_MODULO + /* TARGET_DIRECT_MOVE is redundant to TARGET_P8_VECTOR, so alias it to that. */ + #define TARGET_DIRECT_MOVE TARGET_P8_VECTOR #define TARGET_XSCVDPSPN (TARGET_DIRECT_MOVE || TARGET_P8_VECTOR) #define TARGET_XSCVSPDPN (TARGET_DIRECT_MOVE || TARGET_P8_VECTOR) #define TARGET_VADDUQM (TARGET_P8_VECTOR && TARGET_POWERPC64) *************** extern int rs6000_vector_align[]; *** 492,498 **** memory support. */ #define TARGET_SYNC_HI_QI (TARGET_QUAD_MEMORY \ || TARGET_QUAD_MEMORY_ATOMIC \ ! || TARGET_DIRECT_MOVE) #define TARGET_SYNC_TI TARGET_QUAD_MEMORY_ATOMIC --- 494,500 ---- memory support. */ #define TARGET_SYNC_HI_QI (TARGET_QUAD_MEMORY \ || TARGET_QUAD_MEMORY_ATOMIC \ ! || TARGET_POWER8) #define TARGET_SYNC_TI TARGET_QUAD_MEMORY_ATOMIC *************** while (0) *** 2610,2612 **** --- 2612,2620 ---- rs6000_asm_output_opcode (STREAM); \ } \ while (0) + + /* Disable generation of scalar modulo instructions due to performance issues + with certain input values. This can be removed in the future when the + issues have been resolved. */ + #define RS6000_DISABLE_SCALAR_MODULO 1 + diff -Nrcpad gcc-11.4.0/gcc/config/rs6000/rs6000.md gcc-11.5.0/gcc/config/rs6000/rs6000.md *** gcc-11.4.0/gcc/config/rs6000/rs6000.md Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/rs6000/rs6000.md Fri Jul 19 05:52:43 2024 *************** *** 287,293 **** ;; Whether this insn has a prefixed form and a non-prefixed form. (define_attr "maybe_prefixed" "no,yes" (if_then_else (eq_attr "type" "load,fpload,vecload,store,fpstore,vecstore, ! integer,add") (const_string "yes") (const_string "no"))) --- 287,293 ---- ;; Whether this insn has a prefixed form and a non-prefixed form. (define_attr "maybe_prefixed" "no,yes" (if_then_else (eq_attr "type" "load,fpload,vecload,store,fpstore,vecstore, ! integer,add,fused_load_cmpi") (const_string "yes") (const_string "no"))) *************** *** 302,308 **** (eq_attr "maybe_prefixed" "no")) (const_string "no") ! (eq_attr "type" "load,fpload,vecload") (if_then_else (match_test "prefixed_load_p (insn)") (const_string "yes") (const_string "no")) --- 302,308 ---- (eq_attr "maybe_prefixed" "no")) (const_string "no") ! (eq_attr "type" "load,fpload,vecload,fused_load_cmpi") (if_then_else (match_test "prefixed_load_p (insn)") (const_string "yes") (const_string "no")) *************** *** 354,360 **** (const (symbol_ref "(enum attr_cpu) rs6000_tune"))) ;; The ISA we implement. ! (define_attr "isa" "any,p5,p6,p7,p7v,p8v,p9,p9v,p9kf,p9tf,p10" (const_string "any")) ;; Is this alternative enabled for the current CPU/ISA/etc.? --- 354,360 ---- (const (symbol_ref "(enum attr_cpu) rs6000_tune"))) ;; The ISA we implement. ! (define_attr "isa" "any,p5,p6,p7,p7v,p8,p8v,p9,p9v,p9kf,p9tf,p10" (const_string "any")) ;; Is this alternative enabled for the current CPU/ISA/etc.? *************** *** 379,384 **** --- 379,388 ---- (match_test "TARGET_VSX")) (const_int 1) + (and (eq_attr "isa" "p8") + (match_test "TARGET_POWER8")) + (const_int 1) + (and (eq_attr "isa" "p8v") (match_test "TARGET_P8_VECTOR")) (const_int 1) *************** *** 3359,3364 **** --- 3363,3379 ---- FAIL; operands[2] = force_reg (mode, operands[2]); + + if (RS6000_DISABLE_SCALAR_MODULO) + { + temp1 = gen_reg_rtx (mode); + temp2 = gen_reg_rtx (mode); + + emit_insn (gen_div3 (temp1, operands[1], operands[2])); + emit_insn (gen_mul3 (temp2, temp1, operands[2])); + emit_insn (gen_sub3 (operands[0], operands[1], temp2)); + DONE; + } } else { *************** *** 3378,3394 **** [(set (match_operand:GPR 0 "gpc_reg_operand" "=&r") (mod:GPR (match_operand:GPR 1 "gpc_reg_operand" "r") (match_operand:GPR 2 "gpc_reg_operand" "r")))] ! "TARGET_MODULO" "mods %0,%1,%2" [(set_attr "type" "div") (set_attr "size" "")]) ! (define_insn "umod3" [(set (match_operand:GPR 0 "gpc_reg_operand" "=&r") (umod:GPR (match_operand:GPR 1 "gpc_reg_operand" "r") (match_operand:GPR 2 "gpc_reg_operand" "r")))] ! "TARGET_MODULO" "modu %0,%1,%2" [(set_attr "type" "div") (set_attr "size" "")]) --- 3393,3428 ---- [(set (match_operand:GPR 0 "gpc_reg_operand" "=&r") (mod:GPR (match_operand:GPR 1 "gpc_reg_operand" "r") (match_operand:GPR 2 "gpc_reg_operand" "r")))] ! "TARGET_MODULO && !RS6000_DISABLE_SCALAR_MODULO" "mods %0,%1,%2" [(set_attr "type" "div") (set_attr "size" "")]) + ;; This define_expand can be removed when RS6000_DISABLE_SCALAR_MODULO is + ;; removed. + (define_expand "umod3" + [(set (match_operand:GPR 0 "gpc_reg_operand") + (umod:GPR (match_operand:GPR 1 "gpc_reg_operand") + (match_operand:GPR 2 "gpc_reg_operand")))] + "TARGET_MODULO" + { + if (RS6000_DISABLE_SCALAR_MODULO) + { + rtx temp1 = gen_reg_rtx (mode); + rtx temp2 = gen_reg_rtx (mode); + + emit_insn (gen_udiv3 (temp1, operands[1], operands[2])); + emit_insn (gen_mul3 (temp2, temp1, operands[2])); + emit_insn (gen_sub3 (operands[0], operands[1], temp2)); + DONE; + } + }) ! (define_insn "*umod3" [(set (match_operand:GPR 0 "gpc_reg_operand" "=&r") (umod:GPR (match_operand:GPR 1 "gpc_reg_operand" "r") (match_operand:GPR 2 "gpc_reg_operand" "r")))] ! "TARGET_MODULO && !RS6000_DISABLE_SCALAR_MODULO" "modu %0,%1,%2" [(set_attr "type" "div") (set_attr "size" "")]) *************** *** 3445,3451 **** [(set (match_operand:TI 0 "altivec_register_operand" "=v") (umod:TI (match_operand:TI 1 "altivec_register_operand" "v") (match_operand:TI 2 "altivec_register_operand" "v")))] ! "TARGET_POWER10 && TARGET_POWERPC64" "vmoduq %0,%1,%2" [(set_attr "type" "vecdiv") (set_attr "size" "128")]) --- 3479,3485 ---- [(set (match_operand:TI 0 "altivec_register_operand" "=v") (umod:TI (match_operand:TI 1 "altivec_register_operand" "v") (match_operand:TI 2 "altivec_register_operand" "v")))] ! "TARGET_POWER10 && TARGET_POWERPC64 && !RS6000_DISABLE_SCALAR_MODULO" "vmoduq %0,%1,%2" [(set_attr "type" "vecdiv") (set_attr "size" "128")]) *************** *** 3454,3460 **** [(set (match_operand:TI 0 "altivec_register_operand" "=v") (mod:TI (match_operand:TI 1 "altivec_register_operand" "v") (match_operand:TI 2 "altivec_register_operand" "v")))] ! "TARGET_POWER10 && TARGET_POWERPC64" "vmodsq %0,%1,%2" [(set_attr "type" "vecdiv") (set_attr "size" "128")]) --- 3488,3494 ---- [(set (match_operand:TI 0 "altivec_register_operand" "=v") (mod:TI (match_operand:TI 1 "altivec_register_operand" "v") (match_operand:TI 2 "altivec_register_operand" "v")))] ! "TARGET_POWER10 && TARGET_POWERPC64 && !RS6000_DISABLE_SCALAR_MODULO" "vmodsq %0,%1,%2" [(set_attr "type" "vecdiv") (set_attr "size" "128")]) *************** *** 11940,11972 **** DONE; }) - (define_insn "stack_protect_setsi" - [(set (match_operand:SI 0 "memory_operand" "=m") - (unspec:SI [(match_operand:SI 1 "memory_operand" "m")] UNSPEC_SP_SET)) - (set (match_scratch:SI 2 "=&r") (const_int 0))] - "TARGET_32BIT" - "lwz%U1%X1 %2,%1\;stw%U0%X0 %2,%0\;li %2,0" - [(set_attr "type" "three") - (set_attr "length" "12")]) - ;; We can't use the prefixed attribute here because there are two memory ;; instructions. We can't split the insn due to the fact that this operation ;; needs to be done in one piece. ! (define_insn "stack_protect_setdi" ! [(set (match_operand:DI 0 "memory_operand" "=Y") ! (unspec:DI [(match_operand:DI 1 "memory_operand" "Y")] UNSPEC_SP_SET)) ! (set (match_scratch:DI 2 "=&r") (const_int 0))] ! "TARGET_64BIT" { ! if (prefixed_memory (operands[1], DImode)) ! output_asm_insn ("pld %2,%1", operands); else ! output_asm_insn ("ld%U1%X1 %2,%1", operands); ! if (prefixed_memory (operands[0], DImode)) ! output_asm_insn ("pstd %2,%0", operands); else ! output_asm_insn ("std%U0%X0 %2,%0", operands); return "li %2,0"; } --- 11974,11999 ---- DONE; }) ;; We can't use the prefixed attribute here because there are two memory ;; instructions. We can't split the insn due to the fact that this operation ;; needs to be done in one piece. ! (define_insn "stack_protect_set" ! [(set (match_operand:P 0 "memory_operand" "=YZ") ! (unspec:P [(match_operand:P 1 "memory_operand" "YZ")] UNSPEC_SP_SET)) ! (set (match_scratch:P 2 "=&r") (const_int 0))] ! "" { ! if (prefixed_memory (operands[1], mode)) ! /* Prefixed load only supports D-form but no update and X-form. */ ! output_asm_insn ("p %2,%1", operands); else ! output_asm_insn ("%U1%X1 %2,%1", operands); ! if (prefixed_memory (operands[0], mode)) ! /* Prefixed store only supports D-form but no update and X-form. */ ! output_asm_insn ("pst %2,%0", operands); else ! output_asm_insn ("st%U0%X0 %2,%0", operands); return "li %2,0"; } *************** *** 12012,12056 **** DONE; }) - (define_insn "stack_protect_testsi" - [(set (match_operand:CCEQ 0 "cc_reg_operand" "=x,?y") - (unspec:CCEQ [(match_operand:SI 1 "memory_operand" "m,m") - (match_operand:SI 2 "memory_operand" "m,m")] - UNSPEC_SP_TEST)) - (set (match_scratch:SI 4 "=r,r") (const_int 0)) - (clobber (match_scratch:SI 3 "=&r,&r"))] - "TARGET_32BIT" - "@ - lwz%U1%X1 %3,%1\;lwz%U2%X2 %4,%2\;xor. %3,%3,%4\;li %4,0 - lwz%U1%X1 %3,%1\;lwz%U2%X2 %4,%2\;cmplw %0,%3,%4\;li %3,0\;li %4,0" - [(set_attr "length" "16,20")]) - ;; We can't use the prefixed attribute here because there are two memory ;; instructions. We can't split the insn due to the fact that this operation ;; needs to be done in one piece. ! (define_insn "stack_protect_testdi" [(set (match_operand:CCEQ 0 "cc_reg_operand" "=x,?y") ! (unspec:CCEQ [(match_operand:DI 1 "memory_operand" "Y,Y") ! (match_operand:DI 2 "memory_operand" "Y,Y")] UNSPEC_SP_TEST)) ! (set (match_scratch:DI 4 "=r,r") (const_int 0)) ! (clobber (match_scratch:DI 3 "=&r,&r"))] ! "TARGET_64BIT" { ! if (prefixed_memory (operands[1], DImode)) ! output_asm_insn ("pld %3,%1", operands); else ! output_asm_insn ("ld%U1%X1 %3,%1", operands); ! if (prefixed_memory (operands[2], DImode)) ! output_asm_insn ("pld %4,%2", operands); else ! output_asm_insn ("ld%U2%X2 %4,%2", operands); if (which_alternative == 0) output_asm_insn ("xor. %3,%3,%4", operands); else ! output_asm_insn ("cmpld %0,%3,%4\;li %3,0", operands); return "li %4,0"; } --- 12039,12071 ---- DONE; }) ;; We can't use the prefixed attribute here because there are two memory ;; instructions. We can't split the insn due to the fact that this operation ;; needs to be done in one piece. ! (define_insn "stack_protect_test" [(set (match_operand:CCEQ 0 "cc_reg_operand" "=x,?y") ! (unspec:CCEQ [(match_operand:P 1 "memory_operand" "YZ,YZ") ! (match_operand:P 2 "memory_operand" "YZ,YZ")] UNSPEC_SP_TEST)) ! (set (match_scratch:P 4 "=r,r") (const_int 0)) ! (clobber (match_scratch:P 3 "=&r,&r"))] ! "" { ! if (prefixed_memory (operands[1], mode)) ! /* Prefixed load only supports D-form but no update and X-form. */ ! output_asm_insn ("p %3,%1", operands); else ! output_asm_insn ("%U1%X1 %3,%1", operands); ! if (prefixed_memory (operands[2], mode)) ! output_asm_insn ("p %4,%2", operands); else ! output_asm_insn ("%U2%X2 %4,%2", operands); if (which_alternative == 0) output_asm_insn ("xor. %3,%3,%4", operands); else ! output_asm_insn ("cmpl %0,%3,%4\;li %3,0", operands); return "li %4,0"; } *************** *** 13749,13754 **** --- 13764,13771 ---- "" { emit_insn (gen_eh_set_lr (Pmode, operands[0])); + emit_jump_insn (gen_eh_return_internal ()); + emit_barrier (); DONE; }) *************** *** 13765,13770 **** --- 13782,13800 ---- DONE; }) + (define_insn_and_split "eh_return_internal" + [(eh_return)] + "" + "#" + "epilogue_completed" + [(const_int 0)] + { + if (!TARGET_SCHED_PROLOG) + emit_insn (gen_blockage ()); + rs6000_emit_epilogue (EPILOGUE_TYPE_EH_RETURN); + DONE; + }) + (define_insn "prefetch" [(prefetch (match_operand 0 "indexed_or_indirect_address" "a") (match_operand:SI 1 "const_int_operand" "n") *************** *** 13777,13783 **** AIX does not support the dcbtstt and dcbtt extended mnemonics. The AIX assembler does not support the three operand form of dcbt and dcbtst on Power 7 (-mpwr7). */ ! int inst_select = INTVAL (operands[2]) || !TARGET_DIRECT_MOVE; if (REG_P (operands[0])) { --- 13807,13813 ---- AIX does not support the dcbtstt and dcbtt extended mnemonics. The AIX assembler does not support the three operand form of dcbt and dcbtst on Power 7 (-mpwr7). */ ! int inst_select = INTVAL (operands[2]) || !TARGET_POWER8; if (REG_P (operands[0])) { diff -Nrcpad gcc-11.4.0/gcc/config/rs6000/rs6000.opt gcc-11.5.0/gcc/config/rs6000/rs6000.opt *** gcc-11.4.0/gcc/config/rs6000/rs6000.opt Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/rs6000/rs6000.opt Fri Jul 19 05:52:43 2024 *************** Save the TOC in the prologue for indirec *** 478,483 **** --- 478,487 ---- mvsx-timode Target RejectNegative Undocumented Ignore + ;; This option exists only to create its MASK. It is not intended for users. + mpower8-internal + Target Undocumented Mask(POWER8) Var(rs6000_isa_flags) Warn(Do not use %<-mpower8-internal%>; use %<-mcpu=power8%> instead) + mpower8-fusion Target Mask(P8_FUSION) Var(rs6000_isa_flags) Fuse certain integer operations together for better performance on power8. *************** Target Mask(CRYPTO) Var(rs6000_isa_flags *** 499,505 **** Use ISA 2.07 Category:Vector.AES and Category:Vector.SHA2 instructions. mdirect-move ! Target Undocumented Mask(DIRECT_MOVE) Var(rs6000_isa_flags) WarnRemoved mhtm Target Mask(HTM) Var(rs6000_isa_flags) --- 503,509 ---- Use ISA 2.07 Category:Vector.AES and Category:Vector.SHA2 instructions. mdirect-move ! Target Undocumented WarnRemoved mhtm Target Mask(HTM) Var(rs6000_isa_flags) diff -Nrcpad gcc-11.4.0/gcc/config/sh/sh.c gcc-11.5.0/gcc/config/sh/sh.c *** gcc-11.4.0/gcc/config/sh/sh.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/sh/sh.c Fri Jul 19 05:52:43 2024 *************** sh_insn_operands_modified_between_p (rtx *** 11760,11766 **** bool sh_is_nott_insn (const rtx_insn* i) { ! return i != NULL && GET_CODE (PATTERN (i)) == SET && t_reg_operand (XEXP (PATTERN (i), 0), VOIDmode) && negt_reg_operand (XEXP (PATTERN (i), 1), VOIDmode); } --- 11760,11767 ---- bool sh_is_nott_insn (const rtx_insn* i) { ! return i != NULL_RTX && PATTERN (i) != NULL_RTX ! && GET_CODE (PATTERN (i)) == SET && t_reg_operand (XEXP (PATTERN (i), 0), VOIDmode) && negt_reg_operand (XEXP (PATTERN (i), 1), VOIDmode); } diff -Nrcpad gcc-11.4.0/gcc/config/sh/sh.md gcc-11.5.0/gcc/config/sh/sh.md *** gcc-11.4.0/gcc/config/sh/sh.md Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/sh/sh.md Fri Jul 19 05:52:43 2024 *************** *** 842,848 **** if (SUBREG_P (reg)) reg = SUBREG_REG (reg); gcc_assert (REG_P (reg)); ! if (find_regno_note (curr_insn, REG_DEAD, REGNO (reg)) != NULL_RTX) FAIL; /* FIXME: Maybe also search the predecessor basic blocks to catch --- 842,848 ---- if (SUBREG_P (reg)) reg = SUBREG_REG (reg); gcc_assert (REG_P (reg)); ! if (find_regno_note (curr_insn, REG_DEAD, REGNO (reg)) == NULL_RTX) FAIL; /* FIXME: Maybe also search the predecessor basic blocks to catch *************** *** 10680,10685 **** --- 10680,10724 ---- && peep2_reg_dead_p (2, operands[1]) && peep2_reg_dead_p (3, operands[0])" [(const_int 0)] { + if (MEM_P (operands[3]) && reg_overlap_mentioned_p (operands[0], operands[3])) + { + // Take care when the eliminated operand[0] register is part of + // the destination memory address. + rtx addr = XEXP (operands[3], 0); + + if (REG_P (addr)) + operands[3] = replace_equiv_address (operands[3], operands[1]); + + else if (GET_CODE (addr) == PLUS && REG_P (XEXP (addr, 0)) + && CONST_INT_P (XEXP (addr, 1)) + && REGNO (operands[0]) == REGNO (XEXP (addr, 0))) + operands[3] = replace_equiv_address (operands[3], + gen_rtx_PLUS (SImode, operands[1], XEXP (addr, 1))); + + else if (GET_CODE (addr) == PLUS && REG_P (XEXP (addr, 0)) + && REG_P (XEXP (addr, 1))) + { + // register + register address @(R0, Rn) + // can change only the Rn in the address, not R0. + if (REGNO (operands[0]) == REGNO (XEXP (addr, 0)) + && REGNO (XEXP (addr, 0)) != 0) + { + operands[3] = replace_equiv_address (operands[3], + gen_rtx_PLUS (SImode, operands[1], XEXP (addr, 1))); + } + else if (REGNO (operands[0]) == REGNO (XEXP (addr, 1)) + && REGNO (XEXP (addr, 1)) != 0) + { + operands[3] = replace_equiv_address (operands[3], + gen_rtx_PLUS (SImode, XEXP (addr, 0), operands[1])); + } + else + FAIL; + } + else + FAIL; + } + emit_insn (gen_addsi3 (operands[1], operands[1], operands[2])); sh_peephole_emit_move_insn (operands[3], operands[1]); }) diff -Nrcpad gcc-11.4.0/gcc/config/sh/sh_treg_combine.cc gcc-11.5.0/gcc/config/sh/sh_treg_combine.cc *** gcc-11.4.0/gcc/config/sh/sh_treg_combine.cc Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/sh/sh_treg_combine.cc Fri Jul 19 05:52:43 2024 *************** sh_treg_combine::record_set_of_reg (rtx *** 732,738 **** } else if (REG_P (new_entry.cstore.set_src ())) { ! // If it's a reg-reg copy follow the copied reg. new_entry.cstore_reg_reg_copies.push_back (new_entry.cstore); reg = new_entry.cstore.set_src (); i = new_entry.cstore.insn; --- 732,745 ---- } else if (REG_P (new_entry.cstore.set_src ())) { ! // If it's a reg-reg copy follow the copied reg, but ignore ! // nop copies of the reg onto itself. ! if (REGNO (new_entry.cstore.set_src ()) == REGNO (reg)) ! { ! i = prev_nonnote_nondebug_insn_bb (i); ! continue; ! } ! new_entry.cstore_reg_reg_copies.push_back (new_entry.cstore); reg = new_entry.cstore.set_src (); i = new_entry.cstore.insn; diff -Nrcpad gcc-11.4.0/gcc/config/vax/vax.c gcc-11.5.0/gcc/config/vax/vax.c *** gcc-11.4.0/gcc/config/vax/vax.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config/vax/vax.c Fri Jul 19 05:52:43 2024 *************** nonindexed_address_p (rtx x, bool strict *** 1823,1829 **** } /* True if PROD is either a reg times size of mode MODE and MODE is less ! than or equal 8 bytes, or just a reg if MODE is one byte. */ static bool index_term_p (rtx prod, machine_mode mode, bool strict) --- 1823,1831 ---- } /* True if PROD is either a reg times size of mode MODE and MODE is less ! than or equal 8 bytes, or just a reg if MODE is one byte. For a MULT ! RTX we accept its operands in either order, however ASHIFT is not ! commutative, so in that case reg has to be the left operand. */ static bool index_term_p (rtx prod, machine_mode mode, bool strict) *************** index_term_p (rtx prod, machine_mode mod *** 1842,1849 **** xfoo0 = XEXP (prod, 0); xfoo1 = XEXP (prod, 1); ! if (CONST_INT_P (xfoo0) ! && GET_MODE_SIZE (mode) == (log_p ? 1 << INTVAL (xfoo0) : INTVAL (xfoo0)) && INDEX_REGISTER_P (xfoo1, strict)) return true; --- 1844,1852 ---- xfoo0 = XEXP (prod, 0); xfoo1 = XEXP (prod, 1); ! if (!log_p ! && CONST_INT_P (xfoo0) ! && GET_MODE_SIZE (mode) == INTVAL (xfoo0) && INDEX_REGISTER_P (xfoo1, strict)) return true; diff -Nrcpad gcc-11.4.0/gcc/config.gcc gcc-11.5.0/gcc/config.gcc *** gcc-11.4.0/gcc/config.gcc Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/config.gcc Fri Jul 19 05:52:43 2024 *************** c7 esther" *** 674,680 **** # 64-bit x86 processors supported by --with-arch=. Each processor # MUST be separated by exactly one space. x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \ ! bdver3 bdver4 znver1 znver2 znver3 btver1 btver2 k8 k8-sse3 opteron \ opteron-sse3 nocona core2 corei7 corei7-avx core-avx-i core-avx2 atom \ slm nehalem westmere sandybridge ivybridge haswell broadwell bonnell \ silvermont knl knm skylake-avx512 cannonlake icelake-client icelake-server \ --- 674,680 ---- # 64-bit x86 processors supported by --with-arch=. Each processor # MUST be separated by exactly one space. x86_64_archs="amdfam10 athlon64 athlon64-sse3 barcelona bdver1 bdver2 \ ! bdver3 bdver4 znver1 znver2 znver3 znver4 btver1 btver2 k8 k8-sse3 opteron \ opteron-sse3 nocona core2 corei7 corei7-avx core-avx-i core-avx2 atom \ slm nehalem westmere sandybridge ivybridge haswell broadwell bonnell \ silvermont knl knm skylake-avx512 cannonlake icelake-client icelake-server \ *************** case ${target} in *** 3760,3765 **** --- 3760,3769 ---- arch=znver3 cpu=znver3 ;; + znver4-*) + arch=znver4 + cpu=znver4 + ;; bdver4-*) arch=bdver4 cpu=bdver4 *************** case ${target} in *** 3885,3890 **** --- 3889,3898 ---- arch=znver3 cpu=znver3 ;; + znver4-*) + arch=znver4 + cpu=znver4 + ;; bdver4-*) arch=bdver4 cpu=bdver4 diff -Nrcpad gcc-11.4.0/gcc/config.in gcc-11.5.0/gcc/config.in *** gcc-11.4.0/gcc/config.in Mon May 29 08:49:47 2023 --- gcc-11.5.0/gcc/config.in Fri Jul 19 05:53:51 2024 *************** *** 598,603 **** --- 598,609 ---- #endif + /* Define if your macOS assembler supports .build_version directives */ + #ifndef USED_FOR_TARGET + #undef HAVE_AS_MACOS_BUILD_VERSION + #endif + + /* Define if the assembler understands -march=rv*_zifencei. */ #ifndef USED_FOR_TARGET #undef HAVE_AS_MARCH_ZIFENCEI *************** *** 2207,2212 **** --- 2213,2224 ---- #endif + /* Define to 1 if ld64 supports '-platform_version'. */ + #ifndef USED_FOR_TARGET + #undef LD64_HAS_PLATFORM_VERSION + #endif + + /* Define to ld64 version. */ #ifndef USED_FOR_TARGET #undef LD64_VERSION diff -Nrcpad gcc-11.4.0/gcc/configure gcc-11.5.0/gcc/configure *** gcc-11.4.0/gcc/configure Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/configure Fri Jul 19 05:52:43 2024 *************** gcc_gxx_libcxx_include_dir= *** 3746,3776 **** if test "${with_gxx_libcxx_include_dir+set}" = set; then : withval=$with_gxx_libcxx_include_dir; case "${withval}" in yes) as_fn_error $? "bad value ${withval} given for libc++ include directory" "$LINENO" 5 ;; - no) ;; *) gcc_gxx_libcxx_include_dir=$with_gxx_libcxx_include_dir ;; esac fi # If both --with-sysroot and --with-gxx-libcxx-include-dir are passed, we # check to see if the latter starts with the former and, upon success, compute # gcc_gxx_libcxx_include_dir as relative to the sysroot. gcc_gxx_libcxx_include_dir_add_sysroot=0 ! if test x${gcc_gxx_libcxx_include_dir} != x; then ! $as_echo "#define ENABLE_STDLIB_OPTION 1" >>confdefs.h - else - $as_echo "#define ENABLE_STDLIB_OPTION 0" >>confdefs.h ! fi ! # ??? This logic must match libstdc++-v3/acinclude.m4:GLIBCXX_EXPORT_INSTALL_INFO. if test x${gcc_gxx_libcxx_include_dir} = x; then if test x${enable_version_specific_runtime_libs} = xyes; then ! gcc_gxx_libcxx_include_dir='${libsubdir}/libc++_include/c++/v1' else - libcxx_incdir='libc++_include/c++/$(version)/v1' if test x$host != x$target; then libcxx_incdir="$target_alias/$libcxx_incdir" fi --- 3746,3799 ---- if test "${with_gxx_libcxx_include_dir+set}" = set; then : withval=$with_gxx_libcxx_include_dir; case "${withval}" in yes) as_fn_error $? "bad value ${withval} given for libc++ include directory" "$LINENO" 5 ;; *) gcc_gxx_libcxx_include_dir=$with_gxx_libcxx_include_dir ;; esac fi + # --with-gxx-libcxx-include-dir controls the enabling of the -stdlib option. + # if --with-gxx-libcxx-include-dir is 'no' we disable the stdlib option. + # if --with-gxx-libcxx-include-dir is unset we enable the stdlib option + # based on the platform (to be available on platform versions where it is the + # default for the system tools). We also use a default path within the compiler + # install tree. + # Otherwise, we use the path provided and enable the stdlib option. # If both --with-sysroot and --with-gxx-libcxx-include-dir are passed, we # check to see if the latter starts with the former and, upon success, compute # gcc_gxx_libcxx_include_dir as relative to the sysroot. gcc_gxx_libcxx_include_dir_add_sysroot=0 ! gcc_enable_stdlib_opt=0 if test x${gcc_gxx_libcxx_include_dir} != x; then + if test x${gcc_gxx_libcxx_include_dir} = xno; then + # set defaults for the dir, but the option is disabled anyway. + gcc_gxx_libcxx_include_dir= + else + gcc_enable_stdlib_opt=1 + fi + else + case $target in + *-darwin1[1-9]* | *-darwin2*) + # Default this on for Darwin versions which default to libcxx, + # and embed the path in the compiler install so that we get a + # self-contained toolchain. + gcc_enable_stdlib_opt=1 + ;; + *) ;; + esac + fi ! cat >>confdefs.h <<_ACEOF ! #define ENABLE_STDLIB_OPTION $gcc_enable_stdlib_opt ! _ACEOF ! # Sysroot behaviour as for gxx-include-dir if test x${gcc_gxx_libcxx_include_dir} = x; then + # default path,embedded in the compiler tree. + libcxx_incdir='include/c++/v1' if test x${enable_version_specific_runtime_libs} = xyes; then ! gcc_gxx_libcxx_include_dir='${libsubdir}/$libcxx_incdir' else if test x$host != x$target; then libcxx_incdir="$target_alias/$libcxx_incdir" fi *************** else *** 19423,19429 **** lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 19426 "configure" #include "confdefs.h" #if HAVE_DLFCN_H --- 19446,19452 ---- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 19449 "configure" #include "confdefs.h" #if HAVE_DLFCN_H *************** else *** 19529,19535 **** lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 19532 "configure" #include "confdefs.h" #if HAVE_DLFCN_H --- 19552,19558 ---- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 19555 "configure" #include "confdefs.h" #if HAVE_DLFCN_H *************** if ${gcc_cv_as_mmacosx_version_min+:} fa *** 25984,25999 **** $as_echo_n "(cached) " >&6 else gcc_cv_as_mmacosx_version_min=no ! if test x$gcc_cv_as != x; then ! $as_echo '.text' > conftest.s ! if { ac_try='$gcc_cv_as $gcc_cv_as_flags -mmacosx-version-min=10.1 -o conftest.o conftest.s >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 (eval $ac_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; } then ! gcc_cv_as_mmacosx_version_min=yes else echo "configure: failed program was" >&5 cat conftest.s >&5 --- 26007,26028 ---- $as_echo_n "(cached) " >&6 else gcc_cv_as_mmacosx_version_min=no ! if test $in_tree_gas = yes; then ! if test $gcc_cv_gas_vers -ge `expr \( \( -mmacosx-version-min=10.1 \* 1000 \) + gcc_cv_as_mmacosx_version_min=yes \) \* 1000 + ` ! then : ! fi ! elif test x$gcc_cv_as != x; then ! $as_echo '' > conftest.s ! if { ac_try='$gcc_cv_as $gcc_cv_as_flags .text -o conftest.o conftest.s >&5' { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 (eval $ac_try) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; } then ! ! $as_echo "#define HAVE_AS_MMACOSX_VERSION_MIN_OPTION 1" >>confdefs.h ! else echo "configure: failed program was" >&5 cat conftest.s >&5 *************** else *** 26003,26014 **** fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_mmacosx_version_min" >&5 $as_echo "$gcc_cv_as_mmacosx_version_min" >&6; } - if test $gcc_cv_as_mmacosx_version_min = yes; then - $as_echo "#define HAVE_AS_MMACOSX_VERSION_MIN_OPTION 1" >>confdefs.h fi ;; esac --- 26032,26074 ---- fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_mmacosx_version_min" >&5 $as_echo "$gcc_cv_as_mmacosx_version_min" >&6; } + if test x$gcc_cv_as_mmacosx_version_min = "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler for .build_version" >&5 + $as_echo_n "checking assembler for .build_version... " >&6; } + if ${gcc_cv_as_darwin_build_version+:} false; then : + $as_echo_n "(cached) " >&6 + else + gcc_cv_as_darwin_build_version=no + if test $in_tree_gas = yes; then + if test $gcc_cv_gas_vers -ge `expr \( \( -mmacosx-version-min=10.14 \* 1000 \) + gcc_cv_as_darwin_build_version=yes \) \* 1000 + ` + then : + fi + elif test x$gcc_cv_as != x; then + $as_echo '' > conftest.s + if { ac_try='$gcc_cv_as $gcc_cv_as_flags .build_version macos, 10, 14 sdk_version 10, 14 -o conftest.o conftest.s >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } + then + + $as_echo "#define HAVE_AS_MACOS_BUILD_VERSION 1" >>confdefs.h + + else + echo "configure: failed program was" >&5 + cat conftest.s >&5 + fi + rm -f conftest.o conftest.s + fi fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_darwin_build_version" >&5 + $as_echo "$gcc_cv_as_darwin_build_version" >&6; } + + fi ;; esac *************** if test x"$ld64_flag" = x"yes"; then *** 30675,30680 **** --- 30735,30741 ---- # Set defaults for possibly untestable items. gcc_cv_ld64_export_dynamic=0 + gcc_cv_ld64_platform_version=0 if test "$build" = "$host"; then darwin_try_test=1 *************** $as_echo_n "checking ld64 specified vers *** 30698,30712 **** gcc_cv_ld64_major=`echo "$gcc_cv_ld64_version" | sed -e 's/\..*//'` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld64_major" >&5 $as_echo "$gcc_cv_ld64_major" >&6; } ! if test "$gcc_cv_ld64_major" -ge 236; then gcc_cv_ld64_export_dynamic=1 fi elif test -x "$gcc_cv_ld" -a "$darwin_try_test" -eq 1; then # If the version was not specified, try to find it. { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker version" >&5 $as_echo_n "checking linker version... " >&6; } if test x"${gcc_cv_ld64_version}" = x; then ! gcc_cv_ld64_version=`$gcc_cv_ld -v 2>&1 | grep ld64 | sed s/.*ld64-// | awk '{print $1}'` fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld64_version" >&5 $as_echo "$gcc_cv_ld64_version" >&6; } --- 30759,30777 ---- gcc_cv_ld64_major=`echo "$gcc_cv_ld64_version" | sed -e 's/\..*//'` { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld64_major" >&5 $as_echo "$gcc_cv_ld64_major" >&6; } ! if test "$gcc_cv_ld64_major" -ge 236; then gcc_cv_ld64_export_dynamic=1 fi + if test "$gcc_cv_ld64_major" -ge 512; then + gcc_cv_ld64_platform_version=1 + fi elif test -x "$gcc_cv_ld" -a "$darwin_try_test" -eq 1; then # If the version was not specified, try to find it. { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker version" >&5 $as_echo_n "checking linker version... " >&6; } if test x"${gcc_cv_ld64_version}" = x; then ! gcc_cv_ld64_version=`$gcc_cv_ld -v 2>&1 | $EGREP 'ld64|dyld' \ ! | sed -e 's/.*ld64-//' -e 's/.*dyld-//'| awk '{print $1}'` fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld64_version" >&5 $as_echo "$gcc_cv_ld64_version" >&6; } *************** $as_echo_n "checking linker for -export_ *** 30719,30724 **** --- 30784,30798 ---- fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld64_export_dynamic" >&5 $as_echo "$gcc_cv_ld64_export_dynamic" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker for -platform_version support" >&5 + $as_echo_n "checking linker for -platform_version support... " >&6; } + gcc_cv_ld64_platform_version=1 + if $gcc_cv_ld -platform_version macos 10.5 0.0 < /dev/null 2>&1 | grep 'unknown option' > /dev/null; then + gcc_cv_ld64_platform_version=0 + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_ld64_platform_version" >&5 + $as_echo "$gcc_cv_ld64_platform_version" >&6; } fi if test x"${gcc_cv_ld64_version}" != x; then *************** cat >>confdefs.h <<_ACEOF *** 30734,30739 **** --- 30808,30819 ---- #define LD64_HAS_EXPORT_DYNAMIC $gcc_cv_ld64_export_dynamic _ACEOF + + + cat >>confdefs.h <<_ACEOF + #define LD64_HAS_PLATFORM_VERSION $gcc_cv_ld64_platform_version + _ACEOF + fi if test x"$dsymutil_flag" = x"yes"; then *************** $as_echo_n "checking dsymutil version \" *** 30761,30767 **** dsymutil_kind=LLVM dsymutil_vers=`echo $dsymutil_temp | sed 's/.*LLVM\ version\ \([0-9\.]*\).*/\1/'` else ! dsymutil_kind=UNKNOWN dsymutil_vers="0.0" fi dsymutil_major=`expr "$dsymutil_vers" : '\([0-9]*\)'` --- 30841,30847 ---- dsymutil_kind=LLVM dsymutil_vers=`echo $dsymutil_temp | sed 's/.*LLVM\ version\ \([0-9\.]*\).*/\1/'` else ! dsymutil_kind=DET_UNKNOWN dsymutil_vers="0.0" fi dsymutil_major=`expr "$dsymutil_vers" : '\([0-9]*\)'` diff -Nrcpad gcc-11.4.0/gcc/configure.ac gcc-11.5.0/gcc/configure.ac *** gcc-11.4.0/gcc/configure.ac Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/configure.ac Fri Jul 19 05:52:43 2024 *************** AC_ARG_WITH(gxx-libcxx-include-dir, *** 236,262 **** [specifies directory to find libc++ header files])], [case "${withval}" in yes) AC_MSG_ERROR(bad value ${withval} given for libc++ include directory) ;; - no) ;; *) gcc_gxx_libcxx_include_dir=$with_gxx_libcxx_include_dir ;; esac]) # If both --with-sysroot and --with-gxx-libcxx-include-dir are passed, we # check to see if the latter starts with the former and, upon success, compute # gcc_gxx_libcxx_include_dir as relative to the sysroot. gcc_gxx_libcxx_include_dir_add_sysroot=0 ! if test x${gcc_gxx_libcxx_include_dir} != x; then ! AC_DEFINE(ENABLE_STDLIB_OPTION, 1, ! [Define if the -stdlib= option should be enabled.]) else ! AC_DEFINE(ENABLE_STDLIB_OPTION, 0) fi ! # ??? This logic must match libstdc++-v3/acinclude.m4:GLIBCXX_EXPORT_INSTALL_INFO. if test x${gcc_gxx_libcxx_include_dir} = x; then if test x${enable_version_specific_runtime_libs} = xyes; then ! gcc_gxx_libcxx_include_dir='${libsubdir}/libc++_include/c++/v1' else - libcxx_incdir='libc++_include/c++/$(version)/v1' if test x$host != x$target; then libcxx_incdir="$target_alias/$libcxx_incdir" fi --- 236,284 ---- [specifies directory to find libc++ header files])], [case "${withval}" in yes) AC_MSG_ERROR(bad value ${withval} given for libc++ include directory) ;; *) gcc_gxx_libcxx_include_dir=$with_gxx_libcxx_include_dir ;; esac]) + # --with-gxx-libcxx-include-dir controls the enabling of the -stdlib option. + # if --with-gxx-libcxx-include-dir is 'no' we disable the stdlib option. + # if --with-gxx-libcxx-include-dir is unset we enable the stdlib option + # based on the platform (to be available on platform versions where it is the + # default for the system tools). We also use a default path within the compiler + # install tree. + # Otherwise, we use the path provided and enable the stdlib option. # If both --with-sysroot and --with-gxx-libcxx-include-dir are passed, we # check to see if the latter starts with the former and, upon success, compute # gcc_gxx_libcxx_include_dir as relative to the sysroot. gcc_gxx_libcxx_include_dir_add_sysroot=0 ! gcc_enable_stdlib_opt=0 if test x${gcc_gxx_libcxx_include_dir} != x; then ! if test x${gcc_gxx_libcxx_include_dir} = xno; then ! # set defaults for the dir, but the option is disabled anyway. ! gcc_gxx_libcxx_include_dir= ! else ! gcc_enable_stdlib_opt=1 ! fi else ! case $target in ! *-darwin1[[1-9]]* | *-darwin2*) ! # Default this on for Darwin versions which default to libcxx, ! # and embed the path in the compiler install so that we get a ! # self-contained toolchain. ! gcc_enable_stdlib_opt=1 ! ;; ! *) ;; ! esac fi ! AC_DEFINE_UNQUOTED(ENABLE_STDLIB_OPTION, $gcc_enable_stdlib_opt, ! [Define if the -stdlib= option should be enabled.]) ! ! # Sysroot behaviour as for gxx-include-dir if test x${gcc_gxx_libcxx_include_dir} = x; then + # default path,embedded in the compiler tree. + libcxx_incdir='include/c++/v1' if test x${enable_version_specific_runtime_libs} = xyes; then ! gcc_gxx_libcxx_include_dir='${libsubdir}/$libcxx_incdir' else if test x$host != x$target; then libcxx_incdir="$target_alias/$libcxx_incdir" fi *************** AC_MSG_RESULT($gcc_cv_lto_plugin) *** 4336,4345 **** case "$target_os" in darwin*) gcc_GAS_CHECK_FEATURE([-mmacosx-version-min option], ! gcc_cv_as_mmacosx_version_min,, [-mmacosx-version-min=10.1], [.text],, [AC_DEFINE(HAVE_AS_MMACOSX_VERSION_MIN_OPTION, 1, ! [Define if your Mac OS X assembler supports the -mmacos-version-min option.])]) ;; esac --- 4358,4375 ---- case "$target_os" in darwin*) gcc_GAS_CHECK_FEATURE([-mmacosx-version-min option], ! gcc_cv_as_mmacosx_version_min, [-mmacosx-version-min=10.1], [.text],, [AC_DEFINE(HAVE_AS_MMACOSX_VERSION_MIN_OPTION, 1, ! [Define if your macOS assembler supports the -mmacos-version-min option.])]) ! if test x$gcc_cv_as_mmacosx_version_min = "xyes"; then ! gcc_GAS_CHECK_FEATURE([.build_version], ! gcc_cv_as_darwin_build_version, ! [-mmacosx-version-min=10.14], ! [ .build_version macos, 10, 14 sdk_version 10, 14],, ! [AC_DEFINE(HAVE_AS_MACOS_BUILD_VERSION, 1, ! [Define if your macOS assembler supports .build_version directives])]) ! fi ;; esac *************** if test x"$ld64_flag" = x"yes"; then *** 6329,6334 **** --- 6359,6365 ---- # Set defaults for possibly untestable items. gcc_cv_ld64_export_dynamic=0 + gcc_cv_ld64_platform_version=0 if test "$build" = "$host"; then darwin_try_test=1 *************** if test x"$ld64_flag" = x"yes"; then *** 6350,6363 **** AC_MSG_CHECKING(ld64 specified version) gcc_cv_ld64_major=`echo "$gcc_cv_ld64_version" | sed -e 's/\..*//'` AC_MSG_RESULT($gcc_cv_ld64_major) ! if test "$gcc_cv_ld64_major" -ge 236; then gcc_cv_ld64_export_dynamic=1 fi elif test -x "$gcc_cv_ld" -a "$darwin_try_test" -eq 1; then # If the version was not specified, try to find it. AC_MSG_CHECKING(linker version) if test x"${gcc_cv_ld64_version}" = x; then ! gcc_cv_ld64_version=`$gcc_cv_ld -v 2>&1 | grep ld64 | sed s/.*ld64-// | awk '{print $1}'` fi AC_MSG_RESULT($gcc_cv_ld64_version) --- 6381,6398 ---- AC_MSG_CHECKING(ld64 specified version) gcc_cv_ld64_major=`echo "$gcc_cv_ld64_version" | sed -e 's/\..*//'` AC_MSG_RESULT($gcc_cv_ld64_major) ! if test "$gcc_cv_ld64_major" -ge 236; then gcc_cv_ld64_export_dynamic=1 fi + if test "$gcc_cv_ld64_major" -ge 512; then + gcc_cv_ld64_platform_version=1 + fi elif test -x "$gcc_cv_ld" -a "$darwin_try_test" -eq 1; then # If the version was not specified, try to find it. AC_MSG_CHECKING(linker version) if test x"${gcc_cv_ld64_version}" = x; then ! gcc_cv_ld64_version=`$gcc_cv_ld -v 2>&1 | $EGREP 'ld64|dyld' \ ! | sed -e 's/.*ld64-//' -e 's/.*dyld-//'| awk '{print $1}'` fi AC_MSG_RESULT($gcc_cv_ld64_version) *************** if test x"$ld64_flag" = x"yes"; then *** 6367,6372 **** --- 6402,6414 ---- gcc_cv_ld64_export_dynamic=0 fi AC_MSG_RESULT($gcc_cv_ld64_export_dynamic) + + AC_MSG_CHECKING(linker for -platform_version support) + gcc_cv_ld64_platform_version=1 + if $gcc_cv_ld -platform_version macos 10.5 0.0 < /dev/null 2>&1 | grep 'unknown option' > /dev/null; then + gcc_cv_ld64_platform_version=0 + fi + AC_MSG_RESULT($gcc_cv_ld64_platform_version) fi if test x"${gcc_cv_ld64_version}" != x; then *************** if test x"$ld64_flag" = x"yes"; then *** 6376,6381 **** --- 6418,6426 ---- AC_DEFINE_UNQUOTED(LD64_HAS_EXPORT_DYNAMIC, $gcc_cv_ld64_export_dynamic, [Define to 1 if ld64 supports '-export_dynamic'.]) + + AC_DEFINE_UNQUOTED(LD64_HAS_PLATFORM_VERSION, $gcc_cv_ld64_platform_version, + [Define to 1 if ld64 supports '-platform_version'.]) fi if test x"$dsymutil_flag" = x"yes"; then *************** if test x"$dsymutil_flag" = x"yes"; then *** 6401,6407 **** dsymutil_kind=LLVM dsymutil_vers=`echo $dsymutil_temp | sed 's/.*LLVM\ version\ \([[0-9\.]]*\).*/\1/'` else ! dsymutil_kind=UNKNOWN dsymutil_vers="0.0" fi dsymutil_major=`expr "$dsymutil_vers" : '\([[0-9]]*\)'` --- 6446,6452 ---- dsymutil_kind=LLVM dsymutil_vers=`echo $dsymutil_temp | sed 's/.*LLVM\ version\ \([[0-9\.]]*\).*/\1/'` else ! dsymutil_kind=DET_UNKNOWN dsymutil_vers="0.0" fi dsymutil_major=`expr "$dsymutil_vers" : '\([[0-9]]*\)'` diff -Nrcpad gcc-11.4.0/gcc/cp/ChangeLog gcc-11.5.0/gcc/cp/ChangeLog *** gcc-11.4.0/gcc/cp/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/gcc/cp/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,213 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + + 2024-06-27 Iain Sandoe + + Backported from master: + 2022-04-28 Iain Sandoe + + PR c++/104051 + * coroutines.cc (coro_diagnose_throwing_final_aw_expr): Handle + non-target expression inputs. + + 2024-06-27 Iain Sandoe + + Backported from master: + 2021-10-03 Iain Sandoe + + PR c++/101765 + * coroutines.cc (register_local_var_uses): Emit a sorry if + we encounter a VLA in the coroutine local variables. + + 2024-06-27 Iain Sandoe + + Backported from master: + 2021-12-17 Iain Sandoe + + PR c++/100772 + * coroutines.cc (morph_fn_to_coro): Convert function parms + from reference before constructing any operator-new args + list. + + 2024-06-27 Iain Sandoe + + Backported from master: + 2021-10-03 Iain Sandoe + + PR c++/99710 + * coroutines.cc (await_statement_walker): Report an error if + an await expression is found in a handler body. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-04-12 Jakub Jelinek + + PR c++/114691 + * semantics.c (simplify_loop_decl_cond): Use cp_build_unary_op with + TRUTH_NOT_EXPR on ANNOTATE_EXPR argument (if any) rather than + ANNOTATE_EXPR itself. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-04-05 Jakub Jelinek + + PR c++/114572 + * cp-gimplify.c (cxx_omp_clause_apply_fn): Call build_cplus_new + on build_call_a result if it has class type. + + 2024-05-24 Jason Merrill + + Backported from master: + 2024-01-25 Jason Merrill + + PR c++/113598 + * init.c (build_vec_init): Don't use {} for PMF. + + 2024-05-24 Jason Merrill + + Backported from master: + 2023-09-22 Jason Merrill + + PR c++/111529 + * parser.c (cp_parser_lambda_declarator_opt): Don't suggest + -std=c++14 for lambda templates. + * pt.c (tsubst_expr): Move ANNOTATE_EXPR handling... + (tsubst_copy_and_build): ...here. + + 2024-05-24 Jason Merrill + + Backported from master: + 2024-03-28 Jason Merrill + + PR c++/100667 + * semantics.c (same_type_ref_bind_p): New. + (finish_trait_expr): Use it. + + 2024-05-24 Jason Merrill + + Backported from master: + 2024-04-02 Jason Merrill + + PR c++/114561 + PR c++/114562 + * call.c (convert_like_internal): Avoid adding qualification + conversion in direct reference binding. + + 2024-05-08 Andrew Pinski + + Backported from master: + 2024-05-07 Andrew Pinski + + PR c++/89224 + * constexpr.c (cxx_eval_array_reference): Compare main variants + for the vector/array types instead of the types directly. + + 2024-04-22 Iain Sandoe + + Backported from master: + 2022-12-23 Iain Sandoe + + * g++spec.c (lang_specific_driver): Preserve -static-libstdc++ in + the driver command line for targets without -Bstatic/dynamic support + in their static linker. + + 2024-01-24 Jason Merrill + + Backported from master: + 2023-12-20 Jason Merrill + + PR c++/103185 + * typeck.c (cp_build_array_ref): Handle swapped operands. + + 2023-12-24 Patrick Palka + + Backported from master: + 2023-09-22 Patrick Palka + + PR c++/111485 + * pt.c (is_compatible_template_arg): New parameter 'args'. + Add the outer template arguments 'args' to 'new_args'. + (convert_template_argument): Pass 'args' to + is_compatible_template_arg. + + 2023-12-20 Jason Merrill + + Backported from master: + 2021-04-27 Jason Merrill + + PR c++/92145 + * class.c (classtype_has_depr_implicit_copy): Check DECL_CONTEXT + of operator=. + + 2023-12-20 Jason Merrill + + Backported from master: + 2023-08-31 Jason Merrill + + PR c++/92407 + * cp-tree.h (struct language_function): Add backward_goto. + * decl.c (check_goto): Set it. + * typeck.c (check_return_expr): Prevent NRV if set. + + 2023-12-20 Patrick Palka + + Backported from master: + 2023-04-25 Patrick Palka + + PR c++/108975 + * pt.c (value_dependent_expression_p) : + Suppress conservative early exit for reference variables + when DECL_HAS_VALUE_EXPR_P. + + 2023-12-17 Jakub Jelinek + + Backported from master: + 2023-12-08 Jakub Jelinek + + PR sanitizer/112727 + * cp-gimplify.c (cp_fold): If SAVE_EXPR has been previously + folded, unshare_expr what is returned. + + 2023-12-17 Jakub Jelinek + + Backported from master: + 2023-12-04 Jakub Jelinek + + PR c++/112795 + * parser.c (cp_parser_pragma_unroll): Use fold_non_dependent_expr + instead of maybe_constant_value. + + 2023-09-11 Jason Merrill + + PR c++/106310 + * parser.c (cp_parser_template_name): Skip non-member + lookup after the template keyword. + (cp_parser_lookup_name): Pass down template_keyword_p. + + 2023-09-11 Jason Merrill + + PR c++/106890 + PR c++/109666 + * name-lookup.c (maybe_push_to_top_level) + (maybe_pop_from_top_level): Split out... + * pt.c (instantiate_body): ...from here. + * init.c (maybe_instantiate_nsdmi_init): Use them. + * name-lookup.h: Declare them.. + + 2023-08-09 Patrick Palka + + Backported from master: + 2023-05-09 Patrick Palka + + PR c++/109761 + * parser.c (cp_parser_class_specifier): Don't pass a class + context to noexcept_override_late_checks. + (noexcept_override_late_checks): Remove 'type' parameter + and use DECL_CONTEXT of 'fndecl' instead. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/gcc/cp/call.c gcc-11.5.0/gcc/cp/call.c *** gcc-11.4.0/gcc/cp/call.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/cp/call.c Fri Jul 19 05:52:43 2024 *************** convert_like_internal (conversion *convs *** 7816,7822 **** 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); --- 7816,7830 ---- break; }; ! conversion *nc = next_conversion (convs); ! if (convs->kind == ck_ref_bind && nc->kind == ck_qual ! && !convs->need_temporary_p) ! /* direct_reference_binding might have inserted a ck_qual under ! this ck_ref_bind for the benefit of conversion sequence ranking. ! Don't actually perform that conversion. */ ! nc = next_conversion (nc); ! ! expr = convert_like (nc, expr, fn, argnum, convs->kind == ck_ref_bind ? issue_conversion_warnings : false, c_cast_p, complain & ~tf_no_cleanup); *************** convert_like_internal (conversion *convs *** 7897,7915 **** { tree ref_type = totype; - /* direct_reference_binding might have inserted a ck_qual under - this ck_ref_bind for the benefit of conversion sequence ranking. - Ignore the conversion; we'll create our own below. */ - if (next_conversion (convs)->kind == ck_qual - && !convs->need_temporary_p) - { - gcc_assert (same_type_p (TREE_TYPE (expr), - next_conversion (convs)->type)); - /* Strip the cast created by the ck_qual; cp_build_addr_expr - below expects an lvalue. */ - STRIP_NOPS (expr); - } - if (convs->bad_p && !next_conversion (convs)->bad_p) { tree extype = TREE_TYPE (expr); --- 7905,7910 ---- diff -Nrcpad gcc-11.4.0/gcc/cp/class.c gcc-11.5.0/gcc/cp/class.c *** gcc-11.4.0/gcc/cp/class.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/cp/class.c Fri Jul 19 05:52:43 2024 *************** classtype_has_depr_implicit_copy (tree t *** 5685,5691 **** iter; ++iter) { tree fn = *iter; ! if (user_provided_p (fn) && copy_fn_p (fn)) return fn; } --- 5685,5692 ---- iter; ++iter) { tree fn = *iter; ! if (DECL_CONTEXT (fn) == t ! && user_provided_p (fn) && copy_fn_p (fn)) return fn; } diff -Nrcpad gcc-11.4.0/gcc/cp/constexpr.c gcc-11.5.0/gcc/cp/constexpr.c *** gcc-11.4.0/gcc/cp/constexpr.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/cp/constexpr.c Fri Jul 19 05:52:43 2024 *************** cxx_eval_array_reference (const constexp *** 3767,3773 **** if (!lval && TREE_CODE (ary) == VIEW_CONVERT_EXPR && VECTOR_TYPE_P (TREE_TYPE (TREE_OPERAND (ary, 0))) ! && TREE_TYPE (t) == TREE_TYPE (TREE_TYPE (TREE_OPERAND (ary, 0)))) ary = TREE_OPERAND (ary, 0); tree oldidx = TREE_OPERAND (t, 1); --- 3767,3774 ---- if (!lval && TREE_CODE (ary) == VIEW_CONVERT_EXPR && VECTOR_TYPE_P (TREE_TYPE (TREE_OPERAND (ary, 0))) ! && (TYPE_MAIN_VARIANT (TREE_TYPE (t)) ! == TYPE_MAIN_VARIANT (TREE_TYPE (TREE_TYPE (TREE_OPERAND (ary, 0)))))) ary = TREE_OPERAND (ary, 0); tree oldidx = TREE_OPERAND (t, 1); diff -Nrcpad gcc-11.4.0/gcc/cp/coroutines.cc gcc-11.5.0/gcc/cp/coroutines.cc *** gcc-11.4.0/gcc/cp/coroutines.cc Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/cp/coroutines.cc Fri Jul 19 05:52:43 2024 *************** coro_diagnose_throwing_fn (tree fndecl) *** 877,889 **** static bool coro_diagnose_throwing_final_aw_expr (tree expr) { ! tree t = TARGET_EXPR_INITIAL (expr); tree fn = NULL_TREE; ! if (TREE_CODE (t) == CALL_EXPR) ! fn = CALL_EXPR_FN(t); ! else if (TREE_CODE (t) == AGGR_INIT_EXPR) ! fn = AGGR_INIT_EXPR_FN (t); ! else if (TREE_CODE (t) == CONSTRUCTOR) return false; else { --- 877,890 ---- static bool coro_diagnose_throwing_final_aw_expr (tree expr) { ! if (TREE_CODE (expr) == TARGET_EXPR) ! expr = TARGET_EXPR_INITIAL (expr); tree fn = NULL_TREE; ! if (TREE_CODE (expr) == CALL_EXPR) ! fn = CALL_EXPR_FN (expr); ! else if (TREE_CODE (expr) == AGGR_INIT_EXPR) ! fn = AGGR_INIT_EXPR_FN (expr); ! else if (TREE_CODE (expr) == CONSTRUCTOR) return false; else { *************** await_statement_walker (tree *stmt, int *** 3713,3719 **** } return NULL_TREE; /* Done. */ } ! break; } else if (EXPR_P (expr)) { --- 3714,3735 ---- } return NULL_TREE; /* Done. */ } ! break; ! case HANDLER: ! { ! /* [expr.await] An await-expression shall appear only in a ! potentially-evaluated expression within the compound-statement ! of a function-body outside of a handler. */ ! tree *await_ptr; ! hash_set visited; ! if (!(cp_walk_tree (&HANDLER_BODY (expr), find_any_await, ! &await_ptr, &visited))) ! return NULL_TREE; /* All OK. */ ! location_t loc = EXPR_LOCATION (*await_ptr); ! error_at (loc, "await expressions are not permitted in handlers"); ! return NULL_TREE; /* This is going to fail later anyway. */ ! } ! break; } else if (EXPR_P (expr)) { *************** register_local_var_uses (tree *stmt, int *** 3926,3931 **** --- 3942,3957 ---- if (local_var.is_static) continue; + poly_uint64 size; + if (TREE_CODE (lvtype) == ARRAY_TYPE + && !poly_int_tree_p (DECL_SIZE_UNIT (lvar), &size)) + { + sorry_at (local_var.def_loc, "variable length arrays are not" + " yet supported in coroutines"); + /* Ignore it, this is broken anyway. */ + continue; + } + lvd->local_var_seen = true; /* If this var is a lambda capture proxy, we want to leave it alone, and later rewrite the DECL_VALUE_EXPR to indirect through the *************** morph_fn_to_coro (tree orig, tree *resum *** 4598,4605 **** If the lookup finds an allocation function in the scope of the promise type, overload resolution is performed on a function call created by assembling an argument list. The first argument is the amount of space ! requested, and has type std::size_t. The succeeding arguments are ! those of the original function. */ vec *args = make_tree_vector (); vec_safe_push (args, resizeable); /* Space needed. */ --- 4624,4631 ---- If the lookup finds an allocation function in the scope of the promise type, overload resolution is performed on a function call created by assembling an argument list. The first argument is the amount of space ! requested, and has type std::size_t. The lvalues p1...pn are the ! succeeding arguments.. */ vec *args = make_tree_vector (); vec_safe_push (args, resizeable); /* Space needed. */ *************** morph_fn_to_coro (tree orig, tree *resum *** 4617,4626 **** this_ref = convert_to_reference (tt, this_ref, CONV_STATIC, LOOKUP_NORMAL , NULL_TREE, tf_warning_or_error); ! vec_safe_push (args, this_ref); } else ! vec_safe_push (args, arg); } /* Note the function selected; we test to see if it's NOTHROW. */ --- 4643,4652 ---- this_ref = convert_to_reference (tt, this_ref, CONV_STATIC, LOOKUP_NORMAL , NULL_TREE, tf_warning_or_error); ! vec_safe_push (args, convert_from_reference (this_ref)); } else ! vec_safe_push (args, convert_from_reference (arg)); } /* Note the function selected; we test to see if it's NOTHROW. */ diff -Nrcpad gcc-11.4.0/gcc/cp/cp-gimplify.c gcc-11.5.0/gcc/cp/cp-gimplify.c *** gcc-11.4.0/gcc/cp/cp-gimplify.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/cp/cp-gimplify.c Fri Jul 19 05:52:43 2024 *************** cxx_omp_clause_apply_fn (tree fn, tree a *** 1893,1898 **** --- 1893,1900 ---- TREE_PURPOSE (parm), fn, i - is_method, tf_warning_or_error); t = build_call_a (fn, i, argarray); + if (MAYBE_CLASS_TYPE_P (TREE_TYPE (t))) + t = build_cplus_new (TREE_TYPE (t), t, tf_warning_or_error); t = fold_convert (void_type_node, t); t = fold_build_cleanup_point_expr (TREE_TYPE (t), t); append_to_statement_list (t, &ret); *************** cxx_omp_clause_apply_fn (tree fn, tree a *** 1926,1931 **** --- 1928,1935 ---- TREE_PURPOSE (parm), fn, i - is_method, tf_warning_or_error); t = build_call_a (fn, i, argarray); + if (MAYBE_CLASS_TYPE_P (TREE_TYPE (t))) + t = build_cplus_new (TREE_TYPE (t), t, tf_warning_or_error); t = fold_convert (void_type_node, t); return fold_build_cleanup_point_expr (TREE_TYPE (t), t); } *************** cp_fold (tree x) *** 2306,2312 **** fold_cache = hash_map::create_ggc (101); if (tree *cached = fold_cache->get (x)) ! return *cached; uid_sensitive_constexpr_evaluation_checker c; --- 2310,2323 ---- fold_cache = hash_map::create_ggc (101); if (tree *cached = fold_cache->get (x)) ! { ! /* unshare_expr doesn't recurse into SAVE_EXPRs. If SAVE_EXPR's ! argument has been folded into a tree invariant, make sure it is ! unshared. See PR112727. */ ! if (TREE_CODE (x) == SAVE_EXPR && *cached != x) ! return unshare_expr (*cached); ! return *cached; ! } uid_sensitive_constexpr_evaluation_checker c; diff -Nrcpad gcc-11.4.0/gcc/cp/cp-tree.h gcc-11.5.0/gcc/cp/cp-tree.h *** gcc-11.4.0/gcc/cp/cp-tree.h Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/cp/cp-tree.h Fri Jul 19 05:52:43 2024 *************** struct GTY(()) language_function { *** 2024,2029 **** --- 2024,2030 ---- BOOL_BITFIELD invalid_constexpr : 1; BOOL_BITFIELD throwing_cleanup : 1; + BOOL_BITFIELD backward_goto : 1; hash_table *x_named_labels; diff -Nrcpad gcc-11.4.0/gcc/cp/decl.c gcc-11.5.0/gcc/cp/decl.c *** gcc-11.4.0/gcc/cp/decl.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/cp/decl.c Fri Jul 19 05:52:43 2024 *************** check_goto (tree decl) *** 3563,3568 **** --- 3563,3570 ---- return; } + cp_function_chain->backward_goto = true; + bool saw_catch = false, complained = false; int identified = 0; tree bad; diff -Nrcpad gcc-11.4.0/gcc/cp/g++spec.c gcc-11.5.0/gcc/cp/g++spec.c *** gcc-11.4.0/gcc/cp/g++spec.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/cp/g++spec.c Fri Jul 19 05:52:43 2024 *************** lang_specific_driver (struct cl_decoded_ *** 222,228 **** --- 222,233 ---- case OPT_static_libstdc__: library = library >= 0 ? 2 : library; + #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_stdlib_: diff -Nrcpad gcc-11.4.0/gcc/cp/init.c gcc-11.5.0/gcc/cp/init.c *** gcc-11.4.0/gcc/cp/init.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/cp/init.c Fri Jul 19 05:52:43 2024 *************** get_nsdmi (tree member, bool in_ctor, ts *** 597,611 **** bool pushed = false; tree ctx = DECL_CONTEXT (member); ! processing_template_decl_sentinel ptds (/*reset*/false); if (!currently_open_class (ctx)) { - if (!LOCAL_CLASS_P (ctx)) - push_to_top_level (); - else - /* push_to_top_level would lose the necessary function context, - just reset processing_template_decl. */ - processing_template_decl = 0; push_nested_class (ctx); push_deferring_access_checks (dk_no_deferred); pushed = true; --- 597,605 ---- bool pushed = false; tree ctx = DECL_CONTEXT (member); ! bool push_to_top = maybe_push_to_top_level (member); if (!currently_open_class (ctx)) { push_nested_class (ctx); push_deferring_access_checks (dk_no_deferred); pushed = true; *************** get_nsdmi (tree member, bool in_ctor, ts *** 633,641 **** { pop_deferring_access_checks (); pop_nested_class (); - if (!LOCAL_CLASS_P (ctx)) - pop_from_top_level (); } input_location = sloc; } --- 627,634 ---- { pop_deferring_access_checks (); pop_nested_class (); } + maybe_pop_from_top_level (push_to_top); input_location = sloc; } *************** build_vec_init (tree base, tree maxindex *** 4486,4492 **** But for non-classes, that's the same as value-initialization. */ if (empty_list) { ! if (cxx_dialect >= cxx11 && AGGREGATE_TYPE_P (type)) { init = build_constructor (init_list_type_node, NULL); } --- 4479,4487 ---- But for non-classes, that's the same as value-initialization. */ if (empty_list) { ! if (cxx_dialect >= cxx11 ! && (CLASS_TYPE_P (type) ! || TREE_CODE (type) == ARRAY_TYPE)) { init = build_constructor (init_list_type_node, NULL); } diff -Nrcpad gcc-11.4.0/gcc/cp/name-lookup.c gcc-11.5.0/gcc/cp/name-lookup.c *** gcc-11.4.0/gcc/cp/name-lookup.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/cp/name-lookup.c Fri Jul 19 05:52:43 2024 *************** do_pop_from_top_level (void) *** 8520,8525 **** --- 8520,8562 ---- free_saved_scope = s; } + /* Like push_to_top_level, but not if D is function-local. Returns whether we + did push to top. */ + + bool + maybe_push_to_top_level (tree d) + { + /* Push if D isn't function-local, or is a lambda function, for which name + resolution is already done. */ + bool push_to_top + = !(current_function_decl + && !LAMBDA_FUNCTION_P (d) + && decl_function_context (d) == current_function_decl); + + if (push_to_top) + push_to_top_level (); + else + { + gcc_assert (!processing_template_decl); + push_function_context (); + cp_unevaluated_operand = 0; + c_inhibit_evaluation_warnings = 0; + } + + return push_to_top; + } + + /* Return from whatever maybe_push_to_top_level did. */ + + void + maybe_pop_from_top_level (bool push_to_top) + { + if (push_to_top) + pop_from_top_level (); + else + pop_function_context (); + } + /* Push into the scope of the namespace NS, even if it is deeply nested within another namespace. */ diff -Nrcpad gcc-11.4.0/gcc/cp/name-lookup.h gcc-11.5.0/gcc/cp/name-lookup.h *** gcc-11.4.0/gcc/cp/name-lookup.h Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/cp/name-lookup.h Fri Jul 19 05:52:43 2024 *************** extern void push_to_top_level (void); *** 470,475 **** --- 470,477 ---- extern void pop_from_top_level (void); extern void maybe_save_operator_binding (tree); extern void push_operator_bindings (void); + extern bool maybe_push_to_top_level (tree); + extern void maybe_pop_from_top_level (bool); extern void push_using_decl_bindings (tree, tree); extern void discard_operator_bindings (tree); diff -Nrcpad gcc-11.4.0/gcc/cp/parser.c gcc-11.5.0/gcc/cp/parser.c *** gcc-11.4.0/gcc/cp/parser.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/cp/parser.c Fri Jul 19 05:52:43 2024 *************** static cp_token_cache *cp_token_cache_ne *** 249,255 **** static tree cp_parser_late_noexcept_specifier (cp_parser *, tree); static void noexcept_override_late_checks ! (tree, tree); static void cp_parser_initial_pragma (cp_token *); --- 249,255 ---- static tree cp_parser_late_noexcept_specifier (cp_parser *, tree); static void noexcept_override_late_checks ! (tree); static void cp_parser_initial_pragma (cp_token *); *************** static tree cp_parser_objc_struct_declar *** 2610,2616 **** /* Utility Routines */ static cp_expr cp_parser_lookup_name ! (cp_parser *, tree, enum tag_types, bool, bool, bool, tree *, location_t); static tree cp_parser_lookup_name_simple (cp_parser *, tree, location_t); static tree cp_parser_maybe_treat_template_as_class --- 2610,2616 ---- /* Utility Routines */ static cp_expr cp_parser_lookup_name ! (cp_parser *, tree, enum tag_types, int, bool, bool, tree *, location_t); static tree cp_parser_lookup_name_simple (cp_parser *, tree, location_t); static tree cp_parser_maybe_treat_template_as_class *************** cp_parser_lambda_declarator_opt (cp_pars *** 11310,11316 **** if (cxx_dialect < cxx14) pedwarn (parser->lexer->next_token->location, 0, "lambda templates are only available with " ! "%<-std=c++14%> or %<-std=gnu++14%>"); else if (cxx_dialect < cxx20) pedwarn (parser->lexer->next_token->location, OPT_Wpedantic, "lambda templates are only available with " --- 11310,11316 ---- if (cxx_dialect < cxx14) pedwarn (parser->lexer->next_token->location, 0, "lambda templates are only available with " ! "%<-std=c++20%> or %<-std=gnu++20%>"); else if (cxx_dialect < cxx20) pedwarn (parser->lexer->next_token->location, OPT_Wpedantic, "lambda templates are only available with " *************** cp_parser_template_name (cp_parser* pars *** 17748,17754 **** /* Look up the name. */ decl = cp_parser_lookup_name (parser, identifier, tag_type, ! /*is_template=*/true, /*is_namespace=*/false, check_dependency_p, /*ambiguous_decls=*/NULL, --- 17748,17754 ---- /* Look up the name. */ decl = cp_parser_lookup_name (parser, identifier, tag_type, ! /*is_template=*/1 + template_keyword_p, /*is_namespace=*/false, check_dependency_p, /*ambiguous_decls=*/NULL, *************** cp_parser_class_specifier_1 (cp_parser* *** 25193,25199 **** /* The finish_struct call above performed various override checking, but it skipped unparsed noexcept-specifier operands. Now that we have resolved them, check again. */ ! noexcept_override_late_checks (type, decl); /* Remove any member-function parameters from the symbol table. */ pop_injected_parms (); --- 25193,25199 ---- /* The finish_struct call above performed various override checking, but it skipped unparsed noexcept-specifier operands. Now that we have resolved them, check again. */ ! noexcept_override_late_checks (decl); /* Remove any member-function parameters from the symbol table. */ pop_injected_parms (); *************** cp_parser_late_noexcept_specifier (cp_pa *** 26877,26890 **** } /* Perform late checking of overriding function with respect to their ! noexcept-specifiers. TYPE is the class and FNDECL is the function ! that potentially overrides some virtual function with the same ! signature. */ static void ! noexcept_override_late_checks (tree type, tree fndecl) { ! tree binfo = TYPE_BINFO (type); tree base_binfo; if (DECL_STATIC_FUNCTION_P (fndecl)) --- 26877,26889 ---- } /* Perform late checking of overriding function with respect to their ! noexcept-specifiers. FNDECL is the member function that potentially ! overrides some virtual function with the same signature. */ static void ! noexcept_override_late_checks (tree fndecl) { ! tree binfo = TYPE_BINFO (DECL_CONTEXT (fndecl)); tree base_binfo; if (DECL_STATIC_FUNCTION_P (fndecl)) *************** prefer_type_arg (tag_types tag_type) *** 29255,29261 **** refer to types are ignored. If IS_TEMPLATE is TRUE, bindings that do not refer to templates are ! ignored. If IS_NAMESPACE is TRUE, bindings that do not refer to namespaces are ignored. --- 29254,29260 ---- refer to types are ignored. If IS_TEMPLATE is TRUE, bindings that do not refer to templates are ! ignored. If IS_TEMPLATE IS 2, the 'template' keyword was specified. If IS_NAMESPACE is TRUE, bindings that do not refer to namespaces are ignored. *************** prefer_type_arg (tag_types tag_type) *** 29270,29276 **** static cp_expr cp_parser_lookup_name (cp_parser *parser, tree name, enum tag_types tag_type, ! bool is_template, bool is_namespace, bool check_dependency, tree *ambiguous_decls, --- 29269,29275 ---- static cp_expr cp_parser_lookup_name (cp_parser *parser, tree name, enum tag_types tag_type, ! int is_template, bool is_namespace, bool check_dependency, tree *ambiguous_decls, *************** cp_parser_lookup_name (cp_parser *parser *** 29455,29461 **** else decl = NULL_TREE; ! if (!decl) /* Look it up in the enclosing context. DR 141: When looking for a template-name after -> or ., only consider class templates. */ decl = lookup_name (name, is_namespace ? LOOK_want::NAMESPACE --- 29454,29467 ---- else decl = NULL_TREE; ! /* If we didn't find a member and have dependent bases, the member lookup ! is now dependent. */ ! if (!dep && !decl && any_dependent_bases_p (object_type)) ! dep = true; ! ! if (dep && is_template == 2) ! /* The template keyword specifies a dependent template. */; ! else if (!decl) /* Look it up in the enclosing context. DR 141: When looking for a template-name after -> or ., only consider class templates. */ decl = lookup_name (name, is_namespace ? LOOK_want::NAMESPACE *************** cp_parser_pragma_unroll (cp_parser *pars *** 44962,44968 **** location_t location = cp_lexer_peek_token (parser->lexer)->location; tree expr = cp_parser_constant_expression (parser); unsigned short unroll; ! expr = maybe_constant_value (expr); HOST_WIDE_INT lunroll = 0; if (!INTEGRAL_TYPE_P (TREE_TYPE (expr)) || TREE_CODE (expr) != INTEGER_CST --- 44968,44974 ---- location_t location = cp_lexer_peek_token (parser->lexer)->location; tree expr = cp_parser_constant_expression (parser); unsigned short unroll; ! expr = fold_non_dependent_expr (expr); HOST_WIDE_INT lunroll = 0; if (!INTEGRAL_TYPE_P (TREE_TYPE (expr)) || TREE_CODE (expr) != INTEGER_CST diff -Nrcpad gcc-11.4.0/gcc/cp/pt.c gcc-11.5.0/gcc/cp/pt.c *** gcc-11.4.0/gcc/cp/pt.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/cp/pt.c Fri Jul 19 05:52:43 2024 *************** canonicalize_expr_argument (tree arg, ts *** 8284,8290 **** constrained than the parameter. */ static bool ! is_compatible_template_arg (tree parm, tree arg) { tree parm_cons = get_constraints (parm); --- 8284,8290 ---- constrained than the parameter. */ static bool ! is_compatible_template_arg (tree parm, tree arg, tree args) { tree parm_cons = get_constraints (parm); *************** is_compatible_template_arg (tree parm, t *** 8305,8310 **** --- 8305,8311 ---- { tree aparms = DECL_INNERMOST_TEMPLATE_PARMS (arg); new_args = template_parms_level_to_args (aparms); + new_args = add_to_template_args (args, new_args); ++processing_template_decl; parm_cons = tsubst_constraint_info (parm_cons, new_args, tf_none, NULL_TREE); *************** convert_template_argument (tree parm, *** 8563,8569 **** // Check that the constraints are compatible before allowing the // substitution. if (val != error_mark_node) ! if (!is_compatible_template_arg (parm, arg)) { if (in_decl && (complain & tf_error)) { --- 8564,8570 ---- // Check that the constraints are compatible before allowing the // substitution. if (val != error_mark_node) ! if (!is_compatible_template_arg (parm, arg, args)) { if (in_decl && (complain & tf_error)) { *************** tsubst_expr (tree t, tree args, tsubst_f *** 19366,19378 **** RECUR (TREE_OPERAND (t, 1)), complain)); - case ANNOTATE_EXPR: - tmp = RECUR (TREE_OPERAND (t, 0)); - RETURN (build3_loc (EXPR_LOCATION (t), ANNOTATE_EXPR, - TREE_TYPE (tmp), tmp, - RECUR (TREE_OPERAND (t, 1)), - RECUR (TREE_OPERAND (t, 2)))); - case PREDICT_EXPR: RETURN (add_stmt (copy_node (t))); --- 19367,19372 ---- *************** tsubst_copy_and_build (tree t, *** 21122,21127 **** --- 21116,21128 ---- with constant operands. */ RETURN (t); + case ANNOTATE_EXPR: + op1 = RECUR (TREE_OPERAND (t, 0)); + RETURN (build3_loc (EXPR_LOCATION (t), ANNOTATE_EXPR, + TREE_TYPE (op1), op1, + RECUR (TREE_OPERAND (t, 1)), + RECUR (TREE_OPERAND (t, 2)))); + case NON_LVALUE_EXPR: case VIEW_CONVERT_EXPR: if (location_wrapper_p (t)) *************** instantiate_body (tree pattern, tree arg *** 26006,26025 **** if (current_function_decl) save_omp_privatization_clauses (omp_privatization_save); ! bool push_to_top ! = !(current_function_decl ! && !LAMBDA_FUNCTION_P (d) ! && decl_function_context (d) == current_function_decl); ! ! if (push_to_top) ! push_to_top_level (); ! else ! { ! gcc_assert (!processing_template_decl); ! push_function_context (); ! cp_unevaluated_operand = 0; ! c_inhibit_evaluation_warnings = 0; ! } if (VAR_P (d)) { --- 26007,26013 ---- if (current_function_decl) save_omp_privatization_clauses (omp_privatization_save); ! bool push_to_top = maybe_push_to_top_level (d); if (VAR_P (d)) { *************** instantiate_body (tree pattern, tree arg *** 26132,26141 **** if (!nested_p) TI_PENDING_TEMPLATE_FLAG (DECL_TEMPLATE_INFO (d)) = 0; ! if (push_to_top) ! pop_from_top_level (); ! else ! pop_function_context (); if (current_function_decl) restore_omp_privatization_clauses (omp_privatization_save); --- 26120,26126 ---- if (!nested_p) TI_PENDING_TEMPLATE_FLAG (DECL_TEMPLATE_INFO (d)) = 0; ! maybe_pop_from_top_level (push_to_top); if (current_function_decl) restore_omp_privatization_clauses (omp_privatization_save); *************** value_dependent_expression_p (tree expre *** 27130,27138 **** case VAR_DECL: /* A constant with literal type and is initialized with an expression that is value-dependent. */ ! if (DECL_DEPENDENT_INIT_P (expression) ! /* FIXME cp_finish_decl doesn't fold reference initializers. */ ! || TYPE_REF_P (TREE_TYPE (expression))) return true; if (DECL_HAS_VALUE_EXPR_P (expression)) { --- 27115,27121 ---- case VAR_DECL: /* A constant with literal type and is initialized with an expression that is value-dependent. */ ! if (DECL_DEPENDENT_INIT_P (expression)) return true; if (DECL_HAS_VALUE_EXPR_P (expression)) { *************** value_dependent_expression_p (tree expre *** 27147,27152 **** --- 27130,27138 ---- && value_expr == error_mark_node)) return true; } + else if (TYPE_REF_P (TREE_TYPE (expression))) + /* FIXME cp_finish_decl doesn't fold reference initializers. */ + return true; return false; case DYNAMIC_CAST_EXPR: diff -Nrcpad gcc-11.4.0/gcc/cp/semantics.c gcc-11.5.0/gcc/cp/semantics.c *** gcc-11.4.0/gcc/cp/semantics.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/cp/semantics.c Fri Jul 19 05:52:43 2024 *************** simplify_loop_decl_cond (tree *cond_p, t *** 775,781 **** *cond_p = boolean_true_node; if_stmt = begin_if_stmt (); ! cond = cp_build_unary_op (TRUTH_NOT_EXPR, cond, false, tf_warning_or_error); finish_if_stmt_cond (cond, if_stmt); finish_break_stmt (); finish_then_clause (if_stmt); --- 775,785 ---- *cond_p = boolean_true_node; if_stmt = begin_if_stmt (); ! cond_p = &cond; ! while (TREE_CODE (*cond_p) == ANNOTATE_EXPR) ! cond_p = &TREE_OPERAND (*cond_p, 0); ! *cond_p = cp_build_unary_op (TRUTH_NOT_EXPR, *cond_p, false, ! tf_warning_or_error); finish_if_stmt_cond (cond, if_stmt); finish_break_stmt (); finish_then_clause (if_stmt); *************** check_trait_type (tree type) *** 10570,10575 **** --- 10574,10611 ---- return !!complete_type_or_else (strip_array_types (type), NULL_TREE); } + /* True iff the conversion (if any) would be a direct reference + binding, not requiring complete types. This is LWG2939. */ + + static bool + same_type_ref_bind_p (cp_trait_kind kind, tree type1, tree type2) + { + tree from, to; + switch (kind) + { + /* These put the target type first. */ + case CPTK_IS_CONSTRUCTIBLE: + case CPTK_IS_NOTHROW_CONSTRUCTIBLE: + case CPTK_IS_TRIVIALLY_CONSTRUCTIBLE: + to = type1; + from = type2; + break; + + default: + gcc_unreachable (); + } + + if (TREE_CODE (to) != REFERENCE_TYPE || !from) + return false; + if (TREE_CODE (from) == TREE_VEC && TREE_VEC_LENGTH (from) == 1) + from = TREE_VEC_ELT (from, 0); + else if (TREE_CODE (from) == TREE_LIST && !TREE_CHAIN (from)) + from = TREE_VALUE (from); + return (TYPE_P (from) + && (same_type_ignoring_top_level_qualifiers_p + (non_reference (to), non_reference (from)))); + } + /* Process a trait expression. */ tree *************** finish_trait_expr (location_t loc, cp_tr *** 10619,10628 **** case CPTK_IS_CONSTRUCTIBLE: break; - case CPTK_IS_TRIVIALLY_ASSIGNABLE: case CPTK_IS_TRIVIALLY_CONSTRUCTIBLE: - case CPTK_IS_NOTHROW_ASSIGNABLE: case CPTK_IS_NOTHROW_CONSTRUCTIBLE: if (!check_trait_type (type1) || !check_trait_type (type2)) return error_mark_node; --- 10655,10669 ---- case CPTK_IS_CONSTRUCTIBLE: break; case CPTK_IS_TRIVIALLY_CONSTRUCTIBLE: case CPTK_IS_NOTHROW_CONSTRUCTIBLE: + /* Don't check completeness for direct reference binding. */; + if (same_type_ref_bind_p (kind, type1, type2)) + break; + gcc_fallthrough (); + + case CPTK_IS_NOTHROW_ASSIGNABLE: + case CPTK_IS_TRIVIALLY_ASSIGNABLE: if (!check_trait_type (type1) || !check_trait_type (type2)) return error_mark_node; diff -Nrcpad gcc-11.4.0/gcc/cp/typeck.c gcc-11.5.0/gcc/cp/typeck.c *** gcc-11.4.0/gcc/cp/typeck.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/cp/typeck.c Fri Jul 19 05:52:43 2024 *************** cp_build_indirect_ref (location_t loc, t *** 3563,3575 **** If INDEX is of some user-defined type, it must be converted to integer type. Otherwise, to make a compatible PLUS_EXPR, it will inherit the type of the array, which will be some pointer type. ! LOC is the location to use in building the array reference. */ tree cp_build_array_ref (location_t loc, tree array, tree idx, tsubst_flags_t complain) { tree ret; if (idx == 0) --- 3563,3576 ---- If INDEX is of some user-defined type, it must be converted to integer type. Otherwise, to make a compatible PLUS_EXPR, it will inherit the type of the array, which will be some pointer type. ! LOC is the location to use in building the array reference. */ tree cp_build_array_ref (location_t loc, tree array, tree idx, tsubst_flags_t complain) { + tree first = NULL_TREE; tree ret; if (idx == 0) *************** cp_build_array_ref (location_t loc, tree *** 3614,3619 **** --- 3615,3628 ---- bool non_lvalue = convert_vector_to_array_for_subscript (loc, &array, idx); + /* 0[array] */ + if (TREE_CODE (TREE_TYPE (idx)) == ARRAY_TYPE) + { + std::swap (array, idx); + if (flag_strong_eval_order == 2 && TREE_SIDE_EFFECTS (array)) + idx = first = save_expr (idx); + } + if (TREE_CODE (TREE_TYPE (array)) == ARRAY_TYPE) { tree rval, type; *************** cp_build_array_ref (location_t loc, tree *** 3689,3703 **** protected_set_expr_location (ret, loc); if (non_lvalue) ret = non_lvalue_loc (loc, ret); return ret; } { tree ar = cp_default_conversion (array, complain); tree ind = cp_default_conversion (idx, complain); - tree first = NULL_TREE; ! if (flag_strong_eval_order == 2 && TREE_SIDE_EFFECTS (ind)) ar = first = save_expr (ar); /* Put the integer in IND to simplify error checking. */ --- 3698,3713 ---- protected_set_expr_location (ret, loc); if (non_lvalue) ret = non_lvalue_loc (loc, ret); + if (first) + ret = build2_loc (loc, COMPOUND_EXPR, TREE_TYPE (ret), first, ret); return ret; } { tree ar = cp_default_conversion (array, complain); tree ind = cp_default_conversion (idx, complain); ! if (!first && flag_strong_eval_order == 2 && TREE_SIDE_EFFECTS (ind)) ar = first = save_expr (ar); /* Put the integer in IND to simplify error checking. */ *************** check_return_expr (tree retval, bool *no *** 10307,10312 **** --- 10317,10325 ---- if (fn_returns_value_p && flag_elide_constructors) { if (named_return_value_okay_p + /* The current NRV implementation breaks if a backward goto needs to + destroy the object (PR92407). */ + && !cp_function_chain->backward_goto && (current_function_return_value == NULL_TREE || current_function_return_value == retval)) current_function_return_value = retval; diff -Nrcpad gcc-11.4.0/gcc/d/ChangeLog gcc-11.5.0/gcc/d/ChangeLog *** gcc-11.4.0/gcc/d/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/gcc/d/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,75 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + + 2024-03-03 Iain Buclaw + + Backported from master: + 2024-03-03 Iain Buclaw + + PR d/114171 + * d-codegen.cc (lower_struct_comparison): Keep alignment of original + type in reinterpret cast for comparison. + + 2024-03-03 Iain Buclaw + + Backported from master: + 2024-02-12 Iain Buclaw + + PR d/113758 + * d-codegen.cc (d_build_call): Force a TARGET_EXPR when callee + destorys its arguments. + * decl.cc (DeclVisitor::visit (VarDeclaration *)): Set + SET_DECL_VALUE_EXPR on the temporary variable to make it a placeholder + for the TARGET_EXPR_SLOT. + + 2024-03-03 Iain Buclaw + + Backported from master: + 2024-02-12 Iain Buclaw + + PR d/113125 + * types.cc (TypeVisitor::visit (TypeStruct *)): Generate TYPE_DECL and + apply UDAs to opaque struct declarations. + + 2023-07-07 Iain Buclaw + + Backported from master: + 2023-07-07 Iain Buclaw + + PR d/108842 + * decl.cc (DeclVisitor::visit (VarDeclaration *)): Only emit scalar + manifest constants. + (get_symbol_decl): Don't generate CONST_DECL for non-scalar manifest + constants. + * imports.cc (ImportVisitor::visit (VarDeclaration *)): New method. + + 2023-07-02 Iain Buclaw + + Backported from master: + 2023-07-02 Iain Buclaw + + PR d/110516 + * intrinsics.cc (expand_volatile_load): Set TREE_SIDE_EFFECTS on the + expanded expression. + (expand_volatile_store): Likewise. + + 2023-07-01 Iain Buclaw + + PR d/110511 + * dmd/dinterpret.c (Interpreter::visit (CastExp *)): Handle casting + null to int or float. + + 2023-06-26 Iain Buclaw + + Backported from master: + 2023-06-26 Iain Buclaw + + PR d/110359 + * d-convert.cc (convert_for_rvalue): Only apply the @safe boolean + conversion to boolean fields of a union. + (convert_for_condition): Call convert_for_rvalue in the default case. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/gcc/d/d-codegen.cc gcc-11.5.0/gcc/d/d-codegen.cc *** gcc-11.4.0/gcc/d/d-codegen.cc Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/d/d-codegen.cc Fri Jul 19 05:52:43 2024 *************** lower_struct_comparison (tree_code code, *** 993,998 **** --- 993,999 ---- if (tmode == NULL_TREE) tmode = make_unsigned_type (GET_MODE_BITSIZE (mode.require ())); + tmode = build_aligned_type (tmode, TYPE_ALIGN (stype)); t1ref = build_vconvert (tmode, t1ref); t2ref = build_vconvert (tmode, t2ref); *************** d_build_call (TypeFunction *tf, tree cal *** 2050,2059 **** Type *t = arg->type->toBasetype (); StructDeclaration *sd = t->baseElemOf ()->isTypeStruct ()->sym; ! /* Nested structs also have ADDRESSABLE set, but if the type has ! neither a copy constructor nor a destructor available, then we ! need to take care of copying its value before passing it. */ ! if (arg->op == TOKstructliteral || (!sd->postblit && !sd->dtor)) targ = force_target_expr (targ); targ = convert (build_reference_type (TREE_TYPE (targ)), --- 2051,2067 ---- Type *t = arg->type->toBasetype (); StructDeclaration *sd = t->baseElemOf ()->isTypeStruct ()->sym; ! /* Need to take care of copying its value before passing the ! argument in the following scenarios: ! - The argument is a literal expression; a CONSTRUCTOR can't ! have its address taken. ! - The type has neither a copy constructor nor a destructor ! available; nested structs also have ADDRESSABLE set. ! - The ABI of the function expects the callee to destroy its ! arguments; when the caller is handles destruction, then `targ' ! has already been made into a temporary. */ ! if (arg->op == TOKstructliteral || (!sd->postblit && !sd->dtor) ! || arg->type->needsDestruction ()) targ = force_target_expr (targ); targ = convert (build_reference_type (TREE_TYPE (targ)), diff -Nrcpad gcc-11.4.0/gcc/d/d-convert.cc gcc-11.5.0/gcc/d/d-convert.cc *** gcc-11.4.0/gcc/d/d-convert.cc Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/d/d-convert.cc Fri Jul 19 05:52:43 2024 *************** convert_expr (tree exp, Type *etype, Typ *** 611,617 **** return result ? result : convert (build_ctype (totype), exp); } ! /* Return a TREE represenwation of EXPR, whose type has been converted from * ETYPE to TOTYPE, and is being used in an rvalue context. */ tree --- 611,617 ---- return result ? result : convert (build_ctype (totype), exp); } ! /* Return a TREE representation of EXPR, whose type has been converted from * ETYPE to TOTYPE, and is being used in an rvalue context. */ tree *************** convert_for_rvalue (tree expr, Type *ety *** 627,646 **** case Tbool: /* If casting from bool, the result is either 0 or 1, any other value violates @safe code, so enforce that it is never invalid. */ ! if (CONSTANT_CLASS_P (expr)) ! result = d_truthvalue_conversion (expr); ! else { ! /* Reinterpret the boolean as an integer and test the first bit. ! The generated code should end up being equivalent to: *cast(ubyte *)&expr & 1; */ ! machine_mode bool_mode = TYPE_MODE (TREE_TYPE (expr)); ! tree mtype = lang_hooks.types.type_for_mode (bool_mode, 1); ! result = fold_build2 (BIT_AND_EXPR, mtype, ! build_vconvert (mtype, expr), ! build_one_cst (mtype)); } result = convert (build_ctype (tbtype), result); break; } --- 627,653 ---- case Tbool: /* If casting from bool, the result is either 0 or 1, any other value violates @safe code, so enforce that it is never invalid. */ ! for (tree ref = expr; TREE_CODE (ref) == COMPONENT_REF; ! ref = TREE_OPERAND (ref, 0)) { ! /* If the expression is a field that's part of a union, reinterpret ! the boolean as an integer and test the first bit. The generated ! code should end up being equivalent to: *cast(ubyte *)&expr & 1; */ ! if (TREE_CODE (TREE_TYPE (TREE_OPERAND (ref, 0))) == UNION_TYPE) ! { ! machine_mode bool_mode = TYPE_MODE (TREE_TYPE (expr)); ! tree mtype = lang_hooks.types.type_for_mode (bool_mode, 1); ! result = fold_build2 (BIT_AND_EXPR, mtype, ! build_vconvert (mtype, expr), ! build_one_cst (mtype)); ! break; ! } } + if (result == NULL_TREE) + result = d_truthvalue_conversion (expr); + result = convert (build_ctype (tbtype), result); break; } *************** convert_for_condition (tree expr, Type * *** 838,844 **** break; default: ! result = expr; break; } --- 845,851 ---- break; default: ! result = convert_for_rvalue (expr, type, type); break; } diff -Nrcpad gcc-11.4.0/gcc/d/decl.cc gcc-11.5.0/gcc/d/decl.cc *** gcc-11.4.0/gcc/d/decl.cc Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/d/decl.cc Fri Jul 19 05:52:43 2024 *************** public: *** 755,761 **** { /* Do not store variables we cannot take the address of, but keep the values for purposes of debugging. */ ! if (!d->type->isscalar ()) { tree decl = get_symbol_decl (d); d_pushdecl (decl); --- 755,761 ---- { /* Do not store variables we cannot take the address of, but keep the values for purposes of debugging. */ ! if (d->type->isscalar () && !d->type->hasPointers ()) { tree decl = get_symbol_decl (d); d_pushdecl (decl); *************** public: *** 829,838 **** /* Maybe put variable on list of things needing destruction. */ if (d->needsScopeDtor ()) { vec_safe_push (d_function_chain->vars_in_scope, decl); /* Force a TARGET_EXPR to add the corresponding cleanup. */ ! exp = force_target_expr (compound_expr (exp, decl)); ! TARGET_EXPR_CLEANUP (exp) = build_expr (d->edtor); } add_stmt (exp); --- 829,856 ---- /* Maybe put variable on list of things needing destruction. */ if (d->needsScopeDtor ()) { + /* Rewrite: `decl = exp' => TARGET_EXPR(decl, exp, dtor). */ vec_safe_push (d_function_chain->vars_in_scope, decl); + /* Force a TARGET_EXPR to add the corresponding cleanup. */ ! if (TREE_CODE (exp) != TARGET_EXPR) ! { ! if (VOID_TYPE_P (TREE_TYPE (exp))) ! exp = compound_expr (exp, decl); ! ! exp = force_target_expr (exp); ! } ! ! TARGET_EXPR_CLEANUP (exp) ! = compound_expr (TARGET_EXPR_CLEANUP (exp), ! build_expr (d->edtor)); ! ! /* The decl is really an alias for the TARGET_EXPR slot. */ ! SET_DECL_VALUE_EXPR (decl, TARGET_EXPR_SLOT (exp)); ! DECL_HAS_VALUE_EXPR_P (decl) = 1; ! /* This tells the gimplifier not to emit a clobber for the decl ! as its lifetime ends when the slot gets cleaned up. */ ! TREE_ADDRESSABLE (decl) = 0; } add_stmt (exp); *************** get_symbol_decl (Declaration *decl) *** 1098,1103 **** --- 1116,1135 ---- return decl->csym; } + if (VarDeclaration *vd = decl->isVarDeclaration ()) + { + /* CONST_DECL was initially intended for enumerals and may be used for + scalars in general, but not for aggregates. Here a non-constant + value is generated anyway so as its value can be used. */ + if (!vd->canTakeAddressOf () && !vd->type->isscalar ()) + { + gcc_assert (vd->_init && !vd->_init->isVoidInitializer ()); + Expression *ie = initializerToExpression (vd->_init); + decl->csym = build_expr (ie, false); + return decl->csym; + } + } + /* Build the tree for the symbol. */ FuncDeclaration *fd = decl->isFuncDeclaration (); if (fd) *************** get_symbol_decl (Declaration *decl) *** 1145,1167 **** if (vd->storage_class & STCextern) DECL_EXTERNAL (decl->csym) = 1; ! /* CONST_DECL was initially intended for enumerals and may be used for ! scalars in general, but not for aggregates. Here a non-constant ! value is generated anyway so as the CONST_DECL only serves as a ! placeholder for the value, however the DECL itself should never be ! referenced in any generated code, or passed to the back-end. */ ! if (vd->storage_class & STCmanifest) { /* Cannot make an expression out of a void initializer. */ ! if (vd->_init && !vd->_init->isVoidInitializer ()) ! { ! Expression *ie = initializerToExpression (vd->_init); ! if (!vd->type->isscalar ()) ! DECL_INITIAL (decl->csym) = build_expr (ie, false); ! else ! DECL_INITIAL (decl->csym) = build_expr (ie, true); ! } } } --- 1177,1191 ---- if (vd->storage_class & STCextern) DECL_EXTERNAL (decl->csym) = 1; ! if (!vd->canTakeAddressOf ()) { /* Cannot make an expression out of a void initializer. */ ! gcc_assert (vd->_init && !vd->_init->isVoidInitializer ()); ! /* Non-scalar manifest constants have already been dealt with. */ ! gcc_assert (vd->type->isscalar ()); ! Expression *ie = initializerToExpression (vd->_init); ! DECL_INITIAL (decl->csym) = build_expr (ie, true); } } diff -Nrcpad gcc-11.4.0/gcc/d/dmd/dinterpret.c gcc-11.5.0/gcc/d/dmd/dinterpret.c *** gcc-11.4.0/gcc/d/dmd/dinterpret.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/d/dmd/dinterpret.c Fri Jul 19 05:52:43 2024 *************** public: *** 5792,5803 **** } if (e->to->ty == Tsarray) e1 = resolveSlice(e1); ! if (e->to->toBasetype()->ty == Tbool && e1->type->ty == Tpointer) { new(pue) IntegerExp(e->loc, e1->op != TOKnull, e->to); result = pue->exp(); return; } result = ctfeCast(pue, e->loc, e->type, e->to, e1); } --- 5792,5813 ---- } if (e->to->ty == Tsarray) e1 = resolveSlice(e1); ! Type *tobt = e->to->toBasetype(); ! if (tobt->ty == Tbool && e1->type->ty == Tpointer) { new(pue) IntegerExp(e->loc, e1->op != TOKnull, e->to); result = pue->exp(); return; } + else if (tobt->isTypeBasic() && e1->op == TOKnull) + { + if (tobt->isintegral()) + new(pue) IntegerExp(e->loc, 0, e->to); + else if (tobt->isreal()) + new(pue) RealExp(e->loc, CTFloat::zero, e->to); + result = pue->exp(); + return; + } result = ctfeCast(pue, e->loc, e->type, e->to, e1); } diff -Nrcpad gcc-11.4.0/gcc/d/imports.cc gcc-11.5.0/gcc/d/imports.cc *** gcc-11.4.0/gcc/d/imports.cc Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/d/imports.cc Fri Jul 19 05:52:43 2024 *************** public: *** 119,124 **** --- 119,133 ---- d->isym = this->make_import (TYPE_STUB_DECL (type)); } + void visit (VarDeclaration *d) + { + /* Not all kinds of manifest constants create a CONST_DECL. */ + if (!d->canTakeAddressOf () && !d->type->isscalar ()) + return; + + visit ((Declaration *) d); + } + /* For now, ignore importing other kinds of dsymbols. */ void visit (ScopeDsymbol *) { diff -Nrcpad gcc-11.4.0/gcc/d/intrinsics.cc gcc-11.5.0/gcc/d/intrinsics.cc *** gcc-11.4.0/gcc/d/intrinsics.cc Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/d/intrinsics.cc Fri Jul 19 05:52:43 2024 *************** expand_volatile_load (tree callexp) *** 721,726 **** --- 721,727 ---- tree type = build_qualified_type (TREE_TYPE (ptrtype), TYPE_QUAL_VOLATILE); tree result = indirect_ref (type, ptr); TREE_THIS_VOLATILE (result) = 1; + TREE_SIDE_EFFECTS (result) = 1; return result; } *************** expand_volatile_store (tree callexp) *** 748,753 **** --- 749,755 ---- tree type = build_qualified_type (TREE_TYPE (ptrtype), TYPE_QUAL_VOLATILE); tree result = indirect_ref (type, ptr); TREE_THIS_VOLATILE (result) = 1; + TREE_SIDE_EFFECTS (result) = 1; /* (*(volatile T *) ptr) = value; */ tree value = CALL_EXPR_ARG (callexp, 1); diff -Nrcpad gcc-11.4.0/gcc/d/types.cc gcc-11.5.0/gcc/d/types.cc *** gcc-11.4.0/gcc/d/types.cc Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/d/types.cc Fri Jul 19 05:52:43 2024 *************** public: *** 1008,1013 **** --- 1008,1018 ---- apply_user_attributes (t->sym, t->ctype); finish_aggregate_type (structsize, alignsize, t->ctype); } + else + { + build_type_decl (t->ctype, t->sym); + apply_user_attributes (t->sym, t->ctype); + } TYPE_CONTEXT (t->ctype) = d_decl_context (t->sym); build_type_decl (t->ctype, t->sym); diff -Nrcpad gcc-11.4.0/gcc/doc/cpp.1 gcc-11.5.0/gcc/doc/cpp.1 *** gcc-11.4.0/gcc/doc/cpp.1 Mon May 29 08:50:36 2023 --- gcc-11.5.0/gcc/doc/cpp.1 Fri Jul 19 05:55:07 2024 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 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. --- 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. *************** *** 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 --- 129,135 ---- .\" ======================================================================== .\" .IX Title "CPP 1" ! .TH CPP 1 "2024-07-19" "gcc-11.5.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l *************** time of the source or package and it sho *** 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. --- 920,927 ---- 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. *************** Permission is granted to copy, distribut *** 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 --- 930,936 ---- 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 diff -Nrcpad gcc-11.4.0/gcc/doc/cpp.info gcc-11.5.0/gcc/doc/cpp.info *** gcc-11.4.0/gcc/doc/cpp.info Mon May 29 09:02:37 2023 --- gcc-11.5.0/gcc/doc/cpp.info Fri Jul 19 06:06:44 2024 *************** *** 1,4 **** ! This is cpp.info, produced by makeinfo version 6.8 from cpp.texi. Copyright (C) 1987-2021 Free Software Foundation, Inc. --- 1,4 ---- ! This is cpp.info, produced by makeinfo version 6.5 from cpp.texi. Copyright (C) 1987-2021 Free Software Foundation, Inc. *************** without any initial '-' or '--'. *** 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 --- 5278,5364 ---- [index] * Menu: ! * A: Invocation. (line 338) ! * C: Invocation. (line 347) ! * CC: Invocation. (line 359) * 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 408) ! * dD: Invocation. (line 427) * DEPENDENCIES_OUTPUT: Environment Variables. ! (line 45) ! * dI: Invocation. (line 437) ! * dM: Invocation. (line 416) ! * dN: Invocation. (line 433) ! * dU: Invocation. (line 441) ! * fdebug-cpp: Invocation. (line 448) ! * 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 314) ! * fmacro-prefix-map: Invocation. (line 290) ! * fmax-include-depth: Invocation. (line 264) ! * fno-canonical-system-headers: Invocation. (line 260) ! * fno-working-directory: Invocation. (line 324) ! * fpreprocessed: Invocation. (line 218) ! * ftabstop: Invocation. (line 267) ! * ftrack-macro-expansion: Invocation. (line 273) ! * fwide-exec-charset: Invocation. (line 304) ! * fworking-directory: Invocation. (line 324) ! * H: Invocation. (line 401) ! * I: Invocation. (line 459) ! * I-: Invocation. (line 513) ! * idirafter: Invocation. (line 459) ! * imacros: Invocation. (line 82) ! * imultilib: Invocation. (line 547) ! * include: Invocation. (line 71) ! * iprefix: Invocation. (line 529) ! * iquote: Invocation. (line 459) ! * isysroot: Invocation. (line 541) ! * isystem: Invocation. (line 459) ! * iwithprefix: Invocation. (line 535) ! * iwithprefixbefore: Invocation. (line 535) ! * 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 551) ! * nostdinc++: Invocation. (line 557) * OBJC_INCLUDE_PATH: Environment Variables. (line 18) ! * P: Invocation. (line 371) ! * pthread: Invocation. (line 96) ! * remap: Invocation. (line 397) * SOURCE_DATE_EPOCH: Environment Variables. ! (line 67) * SUNPRO_DEPENDENCIES: Environment Variables. ! (line 61) ! * traditional: Invocation. (line 379) ! * traditional-cpp: Invocation. (line 379) ! * trigraphs: Invocation. (line 388) ! * U: Invocation. (line 67) ! * undef: Invocation. (line 91) ! * Wcomment: Invocation. (line 563) ! * Wcomments: Invocation. (line 563) ! * Wendif-labels: Invocation. (line 607) ! * Wexpansion-to-defined: Invocation. (line 582) ! * Wno-endif-labels: Invocation. (line 607) ! * Wno-undef: Invocation. (line 578) ! * Wtrigraphs: Invocation. (line 568) ! * Wundef: Invocation. (line 578) ! * Wunused-macros: Invocation. (line 588)  File: cpp.info, Node: Concept Index, Prev: Option Index, Up: Top *************** Concept Index *** 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) --- 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 377) * C++ named operators: C++ Named Operators. (line 6) * character constants: Tokenization. (line 81) ! * character set, execution: Invocation. (line 299) ! * character set, input: Invocation. (line 314) ! * character set, wide execution: Invocation. (line 304) * command line: Invocation. (line 6) * commenting out code: Deleted Code. (line 6) * comments: Initial processing. (line 77) *************** Concept Index *** 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. --- 5403,5412 ---- * 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. *************** Concept Index *** 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. --- 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 103) * manifest constants: Object-like Macros. (line 6) * named operators: C++ Named Operators. (line 6) * newlines in macro arguments: Newlines in Arguments. *************** Concept Index *** 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) --- 5453,5459 ---- * 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) *************** Concept Index *** 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) --- 5500,5506 ---- * token concatenation: Concatenation. (line 6) * token pasting: Concatenation. (line 6) * tokens: Tokenization. (line 6) ! * traditional C language: Invocation. (line 377) * trigraphs: Initial processing. (line 32) * undefining macros: Undefining and Redefining Macros. (line 6) *************** Node: Option Index223955 *** 5594,5601 **** Node: Concept Index230057  End Tag Table - -  - Local Variables: - coding: utf-8 - End: --- 5594,5596 ---- diff -Nrcpad gcc-11.4.0/gcc/doc/cppinternals.info gcc-11.5.0/gcc/doc/cppinternals.info *** gcc-11.4.0/gcc/doc/cppinternals.info Mon May 29 09:02:36 2023 --- gcc-11.5.0/gcc/doc/cppinternals.info Fri Jul 19 06:06:44 2024 *************** *** 1,4 **** ! This is cppinternals.info, produced by makeinfo version 6.8 from cppinternals.texi. INFO-DIR-SECTION Software development --- 1,4 ---- ! This is cppinternals.info, produced by makeinfo version 6.5 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 rô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 ro^le to play in memory management of lexed lines. I discuss these issues in a separate section (*note Lexing a line::). *************** Node: Files44873 *** 1039,1046 **** Node: Concept Index48339  End Tag Table - -  - Local Variables: - coding: utf-8 - End: --- 1039,1041 ---- diff -Nrcpad gcc-11.4.0/gcc/doc/extend.texi gcc-11.5.0/gcc/doc/extend.texi *** gcc-11.4.0/gcc/doc/extend.texi Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/doc/extend.texi Fri Jul 19 05:52:43 2024 *************** AMD Family 19h CPU. *** 21587,21592 **** --- 21587,21596 ---- @item znver3 AMD Family 19h Zen version 3. + + @item znver4 + AMD Family 19h Zen version 4. + @end table Here is an example: diff -Nrcpad gcc-11.4.0/gcc/doc/fsf-funding.7 gcc-11.5.0/gcc/doc/fsf-funding.7 *** gcc-11.4.0/gcc/doc/fsf-funding.7 Mon May 29 08:50:36 2023 --- gcc-11.5.0/gcc/doc/fsf-funding.7 Fri Jul 19 05:55:07 2024 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 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. --- 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. *************** *** 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 --- 129,135 ---- .\" ======================================================================== .\" .IX Title "FSF-FUNDING 7" ! .TH FSF-FUNDING 7 "2024-07-19" "gcc-11.5.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 *** 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. --- 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. diff -Nrcpad gcc-11.4.0/gcc/doc/g++.1 gcc-11.5.0/gcc/doc/g++.1 *** gcc-11.4.0/gcc/doc/g++.1 Mon May 29 09:02:38 2023 --- gcc-11.5.0/gcc/doc/g++.1 Fri Jul 19 06:06:45 2024 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 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. --- 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. *************** *** 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 --- 129,135 ---- .\" ======================================================================== .\" .IX Title "GCC 1" ! .TH GCC 1 "2024-07-19" "gcc-11.5.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l *************** and Objective\-\*(C+ programs: *** 4185,4194 **** Use \fIclass-name\fR as the name of the class to instantiate for each literal string specified with the syntax \f(CW\*(C`@"..."\*(C'\fR. The default class name is \f(CW\*(C`NXConstantString\*(C'\fR if the \s-1GNU\s0 runtime is being used, and ! \&\f(CW\*(C`NSConstantString\*(C'\fR if the NeXT runtime is being used (see below). The ! \&\fB\-fconstant\-cfstrings\fR option, if also present, overrides the ! \&\fB\-fconstant\-string\-class\fR setting and cause \f(CW\*(C`@"..."\*(C'\fR literals ! to be laid out as constant CoreFoundation strings. .IP "\fB\-fgnu\-runtime\fR" 4 .IX Item "-fgnu-runtime" Generate object code compatible with the standard \s-1GNU\s0 Objective-C --- 4181,4192 ---- Use \fIclass-name\fR as the name of the class to instantiate for each literal string specified with the syntax \f(CW\*(C`@"..."\*(C'\fR. The default class name is \f(CW\*(C`NXConstantString\*(C'\fR if the \s-1GNU\s0 runtime is being used, and ! \&\f(CW\*(C`NSConstantString\*(C'\fR if the NeXT runtime is being used (see below). On ! Darwin (macOS, MacOS X) platforms, the \fB\-fconstant\-cfstrings\fR option, if ! also present, overrides the \fB\-fconstant\-string\-class\fR setting and cause ! \&\f(CW\*(C`@"..."\*(C'\fR literals to be laid out as constant CoreFoundation strings. ! Note that \fB\-fconstant\-cfstrings\fR is an alias for the target-specific ! \&\fB\-mconstant\-cfstrings\fR equivalent. .IP "\fB\-fgnu\-runtime\fR" 4 .IX Item "-fgnu-runtime" Generate object code compatible with the standard \s-1GNU\s0 Objective-C *************** This is useful if you need to make sure *** 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 --- 4278,4285 ---- 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 *************** example of how this can happen: *** 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 --- 6552,6558 ---- .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 *************** run-time callbacks. *** 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 --- 13180,13186 ---- 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 *************** performance of the code. Permissible va *** 17523,17530 **** \&\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 \&\fBocteontx2t93\fR, \fBocteontx2f95\fR, \fBocteontx2f95n\fR, --- 17521,17528 ---- \&\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, \fBgrace\fR, ! \&\fBqdf24xx\fR, \fBsaphira\fR, \fBphecda\fR, \fBxgene1\fR, \fBvulcan\fR, \&\fBocteontx\fR, \fBocteontx81\fR, \fBocteontx83\fR, \&\fBocteontx2\fR, \fBocteontx2t98\fR, \fBocteontx2t96\fR \&\fBocteontx2t93\fR, \fBocteontx2f95\fR, \fBocteontx2f95n\fR, *************** performance of the code. Permissible va *** 17537,17543 **** \&\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, --- 17535,17541 ---- \&\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, \fBcobalt\-100\fR and \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, *************** This is by default \s-1ON.\s0 *** 21130,21140 **** .IP "\fB\-gfull\fR" 4 .IX Item "-gfull" Emit debugging information for all symbols and types. .IP "\fB\-mmacosx\-version\-min=\fR\fIversion\fR" 4 .IX Item "-mmacosx-version-min=version" ! The earliest version of MacOS X that this executable will run on ! is \fIversion\fR. Typical values of \fIversion\fR include \f(CW10.1\fR, ! \&\f(CW10.2\fR, and \f(CW10.3.9\fR. .Sp If the compiler was built to use the system's headers by default, then the default for this option is the system version on which the --- 21128,21146 ---- .IP "\fB\-gfull\fR" 4 .IX Item "-gfull" Emit debugging information for all symbols and types. + .IP "\fB\-fconstant\-cfstrings\fR" 4 + .IX Item "-fconstant-cfstrings" + The \fB\-fconstant\-cfstrings\fR is an alias for \fB\-mconstant\-cfstrings\fR. + .IP "\fB\-mconstant\-cfstrings\fR" 4 + .IX Item "-mconstant-cfstrings" + When the NeXT runtime is being used (the default on these systems), override + any \fB\-fconstant\-string\-class\fR setting and cause \f(CW\*(C`@"..."\*(C'\fR + literals to be laid out as constant CoreFoundation strings. .IP "\fB\-mmacosx\-version\-min=\fR\fIversion\fR" 4 .IX Item "-mmacosx-version-min=version" ! The earliest version of MacOS X that this executable will run on is ! \&\fIversion\fR. Typical values supported for \fIversion\fR include \f(CW12\fR, ! \&\f(CW10.12\fR, and \f(CW10.5.8\fR. .Sp If the compiler was built to use the system's headers by default, then the default for this option is the system version on which the *************** are provided for backwards compatibility *** 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 --- 21182,21188 ---- .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 *************** bind all undefined references when the f *** 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 --- 21194,21204 ---- .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 *************** supersets \s-1BMI, BMI2, CLWB, F16C, FMA *** 29269,29274 **** --- 29275,29289 ---- MWAITX, SHA, CLZERO, AES, PCLMUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT, RDPID, WBNOINVD, PKU, VPCLMULQDQ, VAES,\s0 and 64\-bit instruction set extensions.) + .IP "\fBznver4\fR" 4 + .IX Item "znver4" + \&\s-1AMD\s0 Family 19h core based CPUs with x86\-64 instruction set support. (This + supersets \s-1BMI, BMI2, CLWB, F16C, FMA, FSGSBASE, AVX, AVX2, ADCX, RDSEED, + MWAITX, SHA, CLZERO, AES, PCLMUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, + SSSE3, SSE4.1, SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT, RDPID, + WBNOINVD, PKU, VPCLMULQDQ, VAES, AVX512F, AVX512DQ, AVX512IFMA, AVX512CD, + AVX512BW, AVX512VL, AVX512BF16, AVX512VBMI, AVX512VBMI2, AVX512VNNI, + AVX512BITALG, AVX512VPOPCNTDQ, GFNI\s0 and 64\-bit instruction set extensions.) .IP "\fBbtver1\fR" 4 .IX Item "btver1" CPUs based on \s-1AMD\s0 Family 14h cores with x86\-64 instruction set support. (This *************** on x86\-64 processors in 64\-bit environ *** 30586,30592 **** Generate code for a 16\-bit, 32\-bit or 64\-bit environment. The \fB\-m32\fR option sets \f(CW\*(C`int\*(C'\fR, \f(CW\*(C`long\*(C'\fR, and pointer types to 32 bits, and ! generates code that runs on any i386 system. .Sp The \fB\-m64\fR option sets \f(CW\*(C`int\*(C'\fR to 32 bits and \f(CW\*(C`long\*(C'\fR and pointer types to 64 bits, and generates code for the x86\-64 architecture. --- 30601,30607 ---- Generate code for a 16\-bit, 32\-bit or 64\-bit environment. The \fB\-m32\fR option sets \f(CW\*(C`int\*(C'\fR, \f(CW\*(C`long\*(C'\fR, and pointer types to 32 bits, and ! generates code that runs in 32\-bit mode. .Sp The \fB\-m64\fR option sets \f(CW\*(C`int\*(C'\fR to 32 bits and \f(CW\*(C`long\*(C'\fR and pointer types to 64 bits, and generates code for the x86\-64 architecture. *************** to subtle defects. Supplying them in ca *** 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" --- 31117,31124 ---- 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" *************** any later version published by the Free *** 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 --- 31136,31142 ---- 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 diff -Nrcpad gcc-11.4.0/gcc/doc/gcc.1 gcc-11.5.0/gcc/doc/gcc.1 *** gcc-11.4.0/gcc/doc/gcc.1 Mon May 29 09:02:38 2023 --- gcc-11.5.0/gcc/doc/gcc.1 Fri Jul 19 06:06:45 2024 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 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. --- 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. *************** *** 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 --- 129,135 ---- .\" ======================================================================== .\" .IX Title "GCC 1" ! .TH GCC 1 "2024-07-19" "gcc-11.5.0" "GNU" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l *************** and Objective\-\*(C+ programs: *** 4185,4194 **** Use \fIclass-name\fR as the name of the class to instantiate for each literal string specified with the syntax \f(CW\*(C`@"..."\*(C'\fR. The default class name is \f(CW\*(C`NXConstantString\*(C'\fR if the \s-1GNU\s0 runtime is being used, and ! \&\f(CW\*(C`NSConstantString\*(C'\fR if the NeXT runtime is being used (see below). The ! \&\fB\-fconstant\-cfstrings\fR option, if also present, overrides the ! \&\fB\-fconstant\-string\-class\fR setting and cause \f(CW\*(C`@"..."\*(C'\fR literals ! to be laid out as constant CoreFoundation strings. .IP "\fB\-fgnu\-runtime\fR" 4 .IX Item "-fgnu-runtime" Generate object code compatible with the standard \s-1GNU\s0 Objective-C --- 4181,4192 ---- Use \fIclass-name\fR as the name of the class to instantiate for each literal string specified with the syntax \f(CW\*(C`@"..."\*(C'\fR. The default class name is \f(CW\*(C`NXConstantString\*(C'\fR if the \s-1GNU\s0 runtime is being used, and ! \&\f(CW\*(C`NSConstantString\*(C'\fR if the NeXT runtime is being used (see below). On ! Darwin (macOS, MacOS X) platforms, the \fB\-fconstant\-cfstrings\fR option, if ! also present, overrides the \fB\-fconstant\-string\-class\fR setting and cause ! \&\f(CW\*(C`@"..."\*(C'\fR literals to be laid out as constant CoreFoundation strings. ! Note that \fB\-fconstant\-cfstrings\fR is an alias for the target-specific ! \&\fB\-mconstant\-cfstrings\fR equivalent. .IP "\fB\-fgnu\-runtime\fR" 4 .IX Item "-fgnu-runtime" Generate object code compatible with the standard \s-1GNU\s0 Objective-C *************** This is useful if you need to make sure *** 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 --- 4278,4285 ---- 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 *************** example of how this can happen: *** 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 --- 6552,6558 ---- .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 *************** run-time callbacks. *** 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 --- 13180,13186 ---- 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 *************** performance of the code. Permissible va *** 17523,17530 **** \&\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 \&\fBocteontx2t93\fR, \fBocteontx2f95\fR, \fBocteontx2f95n\fR, --- 17521,17528 ---- \&\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, \fBgrace\fR, ! \&\fBqdf24xx\fR, \fBsaphira\fR, \fBphecda\fR, \fBxgene1\fR, \fBvulcan\fR, \&\fBocteontx\fR, \fBocteontx81\fR, \fBocteontx83\fR, \&\fBocteontx2\fR, \fBocteontx2t98\fR, \fBocteontx2t96\fR \&\fBocteontx2t93\fR, \fBocteontx2f95\fR, \fBocteontx2f95n\fR, *************** performance of the code. Permissible va *** 17537,17543 **** \&\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, --- 17535,17541 ---- \&\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, \fBcobalt\-100\fR and \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, *************** This is by default \s-1ON.\s0 *** 21130,21140 **** .IP "\fB\-gfull\fR" 4 .IX Item "-gfull" Emit debugging information for all symbols and types. .IP "\fB\-mmacosx\-version\-min=\fR\fIversion\fR" 4 .IX Item "-mmacosx-version-min=version" ! The earliest version of MacOS X that this executable will run on ! is \fIversion\fR. Typical values of \fIversion\fR include \f(CW10.1\fR, ! \&\f(CW10.2\fR, and \f(CW10.3.9\fR. .Sp If the compiler was built to use the system's headers by default, then the default for this option is the system version on which the --- 21128,21146 ---- .IP "\fB\-gfull\fR" 4 .IX Item "-gfull" Emit debugging information for all symbols and types. + .IP "\fB\-fconstant\-cfstrings\fR" 4 + .IX Item "-fconstant-cfstrings" + The \fB\-fconstant\-cfstrings\fR is an alias for \fB\-mconstant\-cfstrings\fR. + .IP "\fB\-mconstant\-cfstrings\fR" 4 + .IX Item "-mconstant-cfstrings" + When the NeXT runtime is being used (the default on these systems), override + any \fB\-fconstant\-string\-class\fR setting and cause \f(CW\*(C`@"..."\*(C'\fR + literals to be laid out as constant CoreFoundation strings. .IP "\fB\-mmacosx\-version\-min=\fR\fIversion\fR" 4 .IX Item "-mmacosx-version-min=version" ! The earliest version of MacOS X that this executable will run on is ! \&\fIversion\fR. Typical values supported for \fIversion\fR include \f(CW12\fR, ! \&\f(CW10.12\fR, and \f(CW10.5.8\fR. .Sp If the compiler was built to use the system's headers by default, then the default for this option is the system version on which the *************** are provided for backwards compatibility *** 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 --- 21182,21188 ---- .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 *************** bind all undefined references when the f *** 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 --- 21194,21204 ---- .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 *************** supersets \s-1BMI, BMI2, CLWB, F16C, FMA *** 29269,29274 **** --- 29275,29289 ---- MWAITX, SHA, CLZERO, AES, PCLMUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, SSE4.1, SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT, RDPID, WBNOINVD, PKU, VPCLMULQDQ, VAES,\s0 and 64\-bit instruction set extensions.) + .IP "\fBznver4\fR" 4 + .IX Item "znver4" + \&\s-1AMD\s0 Family 19h core based CPUs with x86\-64 instruction set support. (This + supersets \s-1BMI, BMI2, CLWB, F16C, FMA, FSGSBASE, AVX, AVX2, ADCX, RDSEED, + MWAITX, SHA, CLZERO, AES, PCLMUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, + SSSE3, SSE4.1, SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT, RDPID, + WBNOINVD, PKU, VPCLMULQDQ, VAES, AVX512F, AVX512DQ, AVX512IFMA, AVX512CD, + AVX512BW, AVX512VL, AVX512BF16, AVX512VBMI, AVX512VBMI2, AVX512VNNI, + AVX512BITALG, AVX512VPOPCNTDQ, GFNI\s0 and 64\-bit instruction set extensions.) .IP "\fBbtver1\fR" 4 .IX Item "btver1" CPUs based on \s-1AMD\s0 Family 14h cores with x86\-64 instruction set support. (This *************** on x86\-64 processors in 64\-bit environ *** 30586,30592 **** Generate code for a 16\-bit, 32\-bit or 64\-bit environment. The \fB\-m32\fR option sets \f(CW\*(C`int\*(C'\fR, \f(CW\*(C`long\*(C'\fR, and pointer types to 32 bits, and ! generates code that runs on any i386 system. .Sp The \fB\-m64\fR option sets \f(CW\*(C`int\*(C'\fR to 32 bits and \f(CW\*(C`long\*(C'\fR and pointer types to 64 bits, and generates code for the x86\-64 architecture. --- 30601,30607 ---- Generate code for a 16\-bit, 32\-bit or 64\-bit environment. The \fB\-m32\fR option sets \f(CW\*(C`int\*(C'\fR, \f(CW\*(C`long\*(C'\fR, and pointer types to 32 bits, and ! generates code that runs in 32\-bit mode. .Sp The \fB\-m64\fR option sets \f(CW\*(C`int\*(C'\fR to 32 bits and \f(CW\*(C`long\*(C'\fR and pointer types to 64 bits, and generates code for the x86\-64 architecture. *************** to subtle defects. Supplying them in ca *** 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" --- 31117,31124 ---- 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" *************** any later version published by the Free *** 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 --- 31136,31142 ---- 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 diff -Nrcpad gcc-11.4.0/gcc/doc/gcc.info gcc-11.5.0/gcc/doc/gcc.info *** gcc-11.4.0/gcc/doc/gcc.info Mon May 29 09:02:46 2023 --- gcc-11.5.0/gcc/doc/gcc.info Fri Jul 19 06:06:48 2024 *************** *** 1,4 **** ! This is gcc.info, produced by makeinfo version 6.8 from gcc.texi. Copyright (C) 1988-2021 Free Software Foundation, Inc. --- 1,4 ---- ! This is gcc.info, produced by makeinfo version 6.5 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, 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. --- 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.5.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. *************** Objective-C++ programs: *** 4255,4263 **** literal string specified with the syntax '@"..."'. The default class name is 'NXConstantString' if the GNU runtime is being used, and 'NSConstantString' if the NeXT runtime is being used (see ! below). The '-fconstant-cfstrings' option, if also present, ! overrides the '-fconstant-string-class' setting and cause '@"..."' ! literals to be laid out as constant CoreFoundation strings. '-fgnu-runtime' Generate object code compatible with the standard GNU Objective-C --- 4255,4266 ---- literal string specified with the syntax '@"..."'. The default class name is 'NXConstantString' if the GNU runtime is being used, and 'NSConstantString' if the NeXT runtime is being used (see ! below). On Darwin (macOS, MacOS X) platforms, the ! '-fconstant-cfstrings' option, if also present, overrides the ! '-fconstant-string-class' setting and cause '@"..."' literals to be ! laid out as constant CoreFoundation strings. Note that ! '-fconstant-cfstrings' is an alias for the target-specific ! '-mconstant-cfstrings' equivalent. '-fgnu-runtime' Generate object code compatible with the standard GNU Objective-C *************** These options are defined for AArch64 im *** 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', --- 17184,17199 ---- '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', 'grace', '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', 'cobalt-100' and '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 *** 19277,19283 **** 'avr3' "Classic" devices with 16 KiB up to 64 KiB of program memory. - MCU = 'at76c711', 'at43usb355'. 'avr31' --- 19280,19285 ---- *************** executable the most restrictive subtype *** 20461,20470 **** '-gfull' Emit debugging information for all symbols and types. '-mmacosx-version-min=VERSION' The earliest version of MacOS X that this executable will run on is ! VERSION. Typical values of VERSION include '10.1', '10.2', and ! '10.3.9'. If the compiler was built to use the system's headers by default, then the default for this option is the system version on which the --- 20463,20480 ---- '-gfull' Emit debugging information for all symbols and types. + '-fconstant-cfstrings' + The '-fconstant-cfstrings' is an alias for '-mconstant-cfstrings'. + + '-mconstant-cfstrings' + When the NeXT runtime is being used (the default on these systems), + override any '-fconstant-string-class' setting and cause '@"..."' + literals to be laid out as constant CoreFoundation strings. + '-mmacosx-version-min=VERSION' The earliest version of MacOS X that this executable will run on is ! VERSION. Typical values supported for VERSION include '12', ! '10.12', and '10.5.8'. If the compiler was built to use the system's headers by default, then the default for this option is the system version on which the *************** These '-m' options are defined for the x *** 27737,27742 **** --- 27747,27763 ---- RDPID, WBNOINVD, PKU, VPCLMULQDQ, VAES, and 64-bit instruction set extensions.) + 'znver4' + AMD Family 19h core based CPUs with x86-64 instruction set + support. (This supersets BMI, BMI2, CLWB, F16C, FMA, + FSGSBASE, AVX, AVX2, ADCX, RDSEED, MWAITX, SHA, CLZERO, AES, + PCLMUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, SSSE3, + SSE4.1, SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT, + RDPID, WBNOINVD, PKU, VPCLMULQDQ, VAES, AVX512F, AVX512DQ, + AVX512IFMA, AVX512CD, AVX512BW, AVX512VL, AVX512BF16, + AVX512VBMI, AVX512VBMI2, AVX512VNNI, AVX512BITALG, + AVX512VPOPCNTDQ, GFNI and 64-bit instruction set extensions.) + 'btver1' CPUs based on AMD Family 14h cores with x86-64 instruction set support. (This supersets MMX, SSE, SSE2, SSE3, SSSE3, SSE4A, *************** processors in 64-bit environments. *** 28880,28886 **** '-miamcu' Generate code for a 16-bit, 32-bit or 64-bit environment. The '-m32' option sets 'int', 'long', and pointer types to 32 bits, and ! generates code that runs on any i386 system. The '-m64' option sets 'int' to 32 bits and 'long' and pointer types to 64 bits, and generates code for the x86-64 architecture. --- 28901,28907 ---- '-miamcu' Generate code for a 16-bit, 32-bit or 64-bit environment. The '-m32' option sets 'int', 'long', and pointer types to 32 bits, and ! generates code that runs in 32-bit mode. The '-m64' option sets 'int' to 32 bits and 'long' and pointer types to 64 bits, and generates code for the x86-64 architecture. *************** vec_div (vector unsigned long long a, ve *** 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) --- 51157,51164 ---- 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) *************** to check the target platform type. *** 52559,52564 **** --- 52580,52588 ---- 'znver3' AMD Family 19h Zen version 3. + 'znver4' + AMD Family 19h Zen version 4. + Here is an example: if (__builtin_cpu_is ("corei7")) { *************** alphabetical order. *** 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. --- 60709,60715 ---- * 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. *************** alphabetical order. *** 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. --- 60752,60758 ---- 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. *************** alphabetical order. *** 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. --- 61011,61023 ---- * 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. *************** alphabetical order. *** 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. --- 61209,61215 ---- * 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. *************** alphabetical order. *** 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, --- 61223,61229 ---- * 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, *************** alphabetical order. *** 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, --- 61244,61250 ---- * 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, *************** contributions to testing: *** 61717,61723 **** * Robert A. French ! * Jörgen Freyh * Mark K. Gardner --- 61741,61747 ---- * Robert A. French ! * Jo"rgen Freyh * Mark K. Gardner *************** look up both forms. *** 61851,61888 **** * Menu: * ###: 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. (line 7) * ansi: Standards. (line 13) * ansi <1>: C Dialect Options. (line 11) * ansi <2>: Other Builtins. (line 31) * ansi <3>: Non-bugs. (line 107) ! * arch_errors_fatal: Darwin Options. (line 114) * aux-info: C Dialect Options. (line 241) * B: Directory Options. (line 122) * Bdynamic: VxWorks Options. (line 22) ! * bind_at_load: Darwin Options. (line 118) * block-ops-unaligned-vsx: RS/6000 and PowerPC Options. (line 959) * Bstatic: VxWorks Options. (line 22) ! * bundle: Darwin Options. (line 123) ! * 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. (line 50) ! * current_version: Darwin Options. (line 196) * D: Preprocessor Options. (line 19) * d: Preprocessor Options. --- 61875,61912 ---- * Menu: * ###: Overall Options. (line 476) ! * 80387: x86 Options. (line 591) * A: Preprocessor Options. (line 337) ! * allowable_client: Darwin Options. (line 204) ! * all_load: Darwin Options. (line 118) * analyzer: Static Analyzer Options. (line 7) * ansi: Standards. (line 13) * ansi <1>: C Dialect Options. (line 11) * ansi <2>: Other Builtins. (line 31) * ansi <3>: Non-bugs. (line 107) ! * arch_errors_fatal: Darwin Options. (line 122) * aux-info: C Dialect Options. (line 241) * B: Directory Options. (line 122) * Bdynamic: VxWorks Options. (line 22) ! * bind_at_load: Darwin Options. (line 126) * block-ops-unaligned-vsx: RS/6000 and PowerPC Options. (line 959) * Bstatic: VxWorks Options. (line 22) ! * bundle: Darwin Options. (line 131) ! * bundle_loader: Darwin Options. (line 135) * 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 204) ! * compatibility_version: Darwin Options. (line 204) * coverage: Instrumentation Options. (line 50) ! * current_version: Darwin Options. (line 204) * D: Preprocessor Options. (line 19) * d: Preprocessor Options. *************** look up both forms. *** 61893,61900 **** * 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) --- 61917,61924 ---- * dD: Preprocessor Options. (line 436) * dD <1>: Developer Options. (line 253) ! * dead_strip: Darwin Options. (line 204) ! * dependency-file: Darwin Options. (line 204) * dH: Developer Options. (line 257) * dI: Preprocessor Options. (line 446) *************** look up both forms. *** 61922,61942 **** * dumpspecs: Developer Options. (line 1019) * dumpversion: Developer Options. (line 1006) * dx: Developer Options. (line 269) ! * dylib_file: Darwin Options. (line 196) ! * dylinker_install_name: Darwin Options. (line 196) ! * dynamic: Darwin Options. (line 196) ! * dynamiclib: Darwin Options. (line 131) * 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) ! * exported_symbols_list: Darwin Options. (line 196) * F: Darwin Options. (line 31) * fabi-compat-version: C++ Dialect Options. (line 92) --- 61946,61966 ---- * dumpspecs: Developer Options. (line 1019) * dumpversion: Developer Options. (line 1006) * dx: Developer Options. (line 269) ! * dylib_file: Darwin Options. (line 204) ! * dylinker_install_name: Darwin Options. (line 204) ! * dynamic: Darwin Options. (line 204) ! * dynamiclib: Darwin Options. (line 139) * 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) ! * exported_symbols_list: Darwin Options. (line 204) * F: Darwin Options. (line 31) * fabi-compat-version: C++ Dialect Options. (line 92) *************** look up both forms. *** 62007,62014 **** (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) * fconstexpr-cache-depth: C++ Dialect Options. --- 62031,62039 ---- (line 176) * fconcepts-ts: C++ Dialect Options. (line 176) ! * fcond-mismatch: C Dialect Options. (line 408) * fconserve-stack: Optimize Options. (line 958) + * fconstant-cfstrings: Darwin Options. (line 71) * fconstant-string-class: Objective-C and Objective-C++ Dialect Options. (line 30) * fconstexpr-cache-depth: C++ Dialect Options. *************** look up both forms. *** 62214,62220 **** * ffile-prefix-map: Overall Options. (line 634) * ffinite-loops: Optimize Options. (line 1215) * ffinite-math-only: Optimize Options. (line 2349) ! * ffix-and-continue: Darwin Options. (line 104) * ffixed: Code Gen Options. (line 426) * ffloat-store: Optimize Options. (line 2234) * ffloat-store <1>: Disappointments. (line 77) --- 62239,62245 ---- * ffile-prefix-map: Overall Options. (line 634) * ffinite-loops: Optimize Options. (line 1215) * ffinite-math-only: Optimize Options. (line 2349) ! * ffix-and-continue: Darwin Options. (line 112) * ffixed: Code Gen Options. (line 426) * ffloat-store: Optimize Options. (line 2234) * ffloat-store <1>: Disappointments. (line 77) *************** look up both forms. *** 62237,62244 **** * fgnu-keywords: C++ Dialect Options. (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) --- 62262,62269 ---- * fgnu-keywords: C++ Dialect Options. (line 260) * fgnu-runtime: Objective-C and Objective-C++ Dialect Options. ! (line 42) ! * 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) *************** look up both forms. *** 62249,62262 **** * fif-conversion: Optimize Options. (line 583) * fif-conversion2: Optimize Options. (line 592) * fiji: AMD GCN Options. (line 13) ! * filelist: Darwin Options. (line 196) * fimplement-inlines: C++ Dialect Options. (line 280) * fimplicit-inline-templates: C++ Dialect Options. (line 274) * fimplicit-templates: C++ Dialect Options. (line 266) ! * findirect-data: Darwin Options. (line 104) * findirect-inlining: Optimize Options. (line 293) * finhibit-size-directive: Code Gen Options. (line 255) * finline: Optimize Options. (line 276) --- 62274,62287 ---- * fif-conversion: Optimize Options. (line 583) * fif-conversion2: Optimize Options. (line 592) * fiji: AMD GCN Options. (line 13) ! * filelist: Darwin Options. (line 204) * fimplement-inlines: C++ Dialect Options. (line 280) * fimplicit-inline-templates: C++ Dialect Options. (line 274) * fimplicit-templates: C++ Dialect Options. (line 266) ! * findirect-data: Darwin Options. (line 112) * findirect-inlining: Optimize Options. (line 293) * finhibit-size-directive: Code Gen Options. (line 255) * finline: Optimize Options. (line 276) *************** look up both forms. *** 62298,62304 **** * fisolate-erroneous-paths-attribute: Optimize Options. (line 1157) * fisolate-erroneous-paths-dereference: Optimize Options. (line 1149) * fivar-visibility: Objective-C and Objective-C++ Dialect Options. ! (line 161) * fivopts: Optimize Options. (line 1382) * fjump-tables: Code Gen Options. (line 414) * fkeep-inline-dllexport: Optimize Options. (line 362) --- 62323,62329 ---- * fisolate-erroneous-paths-attribute: Optimize Options. (line 1157) * fisolate-erroneous-paths-dereference: Optimize Options. (line 1149) * fivar-visibility: Objective-C and Objective-C++ Dialect Options. ! (line 164) * fivopts: Optimize Options. (line 1382) * fjump-tables: Code Gen Options. (line 414) * fkeep-inline-dllexport: Optimize Options. (line 362) *************** look up both forms. *** 62314,62328 **** (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) * flive-patching: Optimize Options. (line 1089) * flive-range-shrinkage: Optimize Options. (line 683) * flocal-ivars: Objective-C and Objective-C++ Dialect Options. ! (line 152) * floop-block: Optimize Options. (line 1251) * floop-interchange: Optimize Options. (line 1335) * floop-nest-optimize: Optimize Options. (line 1265) --- 62339,62353 ---- (line 546) * flarge-source-files: Preprocessor Options. (line 497) ! * flat_namespace: Darwin Options. (line 204) ! * 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) * flive-patching: Optimize Options. (line 1089) * flive-range-shrinkage: Optimize Options. (line 683) * flocal-ivars: Objective-C and Objective-C++ Dialect Options. ! (line 155) * floop-block: Optimize Options. (line 1251) * floop-interchange: Optimize Options. (line 1335) * floop-nest-optimize: Optimize Options. (line 1265) *************** look up both forms. *** 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) --- 62388,62394 ---- * 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) *************** look up both forms. *** 62372,62380 **** * fnew-ttp-matching: C++ Dialect Options. (line 335) * fnext-runtime: Objective-C and Objective-C++ Dialect Options. ! (line 43) * fnil-receivers: Objective-C and Objective-C++ Dialect Options. ! (line 49) * fno-access-control: C++ Dialect Options. (line 108) * fno-allocation-dce: Optimize Options. (line 1782) --- 62397,62405 ---- * fnew-ttp-matching: C++ Dialect Options. (line 335) * fnext-runtime: Objective-C and Objective-C++ Dialect Options. ! (line 46) * fnil-receivers: Objective-C and Objective-C++ Dialect Options. ! (line 52) * fno-access-control: C++ Dialect Options. (line 108) * fno-allocation-dce: Optimize Options. (line 1782) *************** look up both forms. *** 62461,62467 **** * fno-keep-inline-dllexport: Optimize Options. (line 362) * fno-lifetime-dse: Optimize Options. (line 668) * fno-local-ivars: Objective-C and Objective-C++ Dialect Options. ! (line 152) * fno-math-errno: Optimize Options. (line 2286) * fno-merge-debug-strings: Debugging Options. (line 135) * fno-module-lazy: C++ Dialect Options. --- 62486,62492 ---- * fno-keep-inline-dllexport: Optimize Options. (line 362) * fno-lifetime-dse: Optimize Options. (line 668) * fno-local-ivars: Objective-C and Objective-C++ Dialect Options. ! (line 155) * fno-math-errno: Optimize Options. (line 2286) * fno-merge-debug-strings: Debugging Options. (line 135) * fno-module-lazy: C++ Dialect Options. *************** look up both forms. *** 62469,62475 **** * fno-modules-ts: C++ Dialect Options. (line 286) * fno-nil-receivers: Objective-C and Objective-C++ Dialect Options. ! (line 49) * fno-nonansi-builtins: C++ Dialect Options. (line 342) * fno-operator-names: C++ Dialect Options. --- 62494,62500 ---- * fno-modules-ts: C++ Dialect Options. (line 286) * fno-nil-receivers: Objective-C and Objective-C++ Dialect Options. ! (line 52) * fno-nonansi-builtins: C++ Dialect Options. (line 342) * fno-operator-names: C++ Dialect Options. *************** look up both forms. *** 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) --- 62519,62525 ---- (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) *************** look up both forms. *** 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) --- 62527,62533 ---- (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) *************** look up both forms. *** 62520,62543 **** * fnothrow-opt: C++ Dialect Options. (line 347) * fobjc-abi-version: Objective-C and Objective-C++ Dialect Options. ! (line 56) * fobjc-call-cxx-cdtors: Objective-C and Objective-C++ Dialect Options. ! (line 67) * fobjc-direct-dispatch: Objective-C and Objective-C++ Dialect Options. ! (line 92) * fobjc-exceptions: Objective-C and Objective-C++ Dialect Options. ! (line 96) * fobjc-gc: Objective-C and Objective-C++ Dialect Options. ! (line 104) * fobjc-nilcheck: Objective-C and Objective-C++ Dialect Options. ! (line 110) * fobjc-std: Objective-C and Objective-C++ Dialect Options. ! (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) --- 62545,62568 ---- * fnothrow-opt: C++ Dialect Options. (line 347) * fobjc-abi-version: Objective-C and Objective-C++ Dialect Options. ! (line 59) * fobjc-call-cxx-cdtors: Objective-C and Objective-C++ Dialect Options. ! (line 70) * fobjc-direct-dispatch: Objective-C and Objective-C++ Dialect Options. ! (line 95) * fobjc-exceptions: Objective-C and Objective-C++ Dialect Options. ! (line 99) * fobjc-gc: Objective-C and Objective-C++ Dialect Options. ! (line 107) * fobjc-nilcheck: Objective-C and Objective-C++ Dialect Options. ! (line 113) * fobjc-std: Objective-C and Objective-C++ Dialect Options. ! (line 122) * 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) *************** look up both forms. *** 62545,62552 **** * foptimize-strlen: Optimize Options. (line 269) * foptional-diags: C++ Dialect Options. (line 362) ! * force_cpusubtype_ALL: Darwin Options. (line 135) ! * force_flat_namespace: Darwin Options. (line 196) * fpack-struct: Code Gen Options. (line 469) * fpartial-inlining: Optimize Options. (line 1506) * fpatchable-function-entry: Instrumentation Options. --- 62570,62577 ---- * foptimize-strlen: Optimize Options. (line 269) * foptional-diags: C++ Dialect Options. (line 362) ! * force_cpusubtype_ALL: Darwin Options. (line 143) ! * force_flat_namespace: Darwin Options. (line 204) * fpack-struct: Code Gen Options. (line 469) * fpartial-inlining: Optimize Options. (line 1506) * fpatchable-function-entry: Instrumentation Options. *************** look up both forms. *** 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) --- 62594,62600 ---- * 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) *************** look up both forms. *** 62624,62630 **** * freorder-blocks-and-partition: Optimize Options. (line 1601) * freorder-functions: Optimize Options. (line 1618) * freplace-objc-classes: Objective-C and Objective-C++ Dialect Options. ! (line 130) * freport-bug: Developer Options. (line 287) * frerun-cse-after-loop: Optimize Options. (line 498) * freschedule-modulo-scheduled-loops: Optimize Options. (line 876) --- 62649,62655 ---- * freorder-blocks-and-partition: Optimize Options. (line 1601) * freorder-functions: Optimize Options. (line 1618) * freplace-objc-classes: Objective-C and Objective-C++ Dialect Options. ! (line 133) * freport-bug: Developer Options. (line 287) * frerun-cse-after-loop: Optimize Options. (line 498) * freschedule-modulo-scheduled-loops: Optimize Options. (line 876) *************** look up both forms. *** 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) --- 62769,62777 ---- * 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) *************** look up both forms. *** 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. --- 62790,62796 ---- * 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. *************** look up both forms. *** 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) --- 62816,62825 ---- * 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) *************** look up both forms. *** 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) --- 62882,62892 ---- * 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) *************** look up both forms. *** 62908,62916 **** * fzero-call-used-regs: Optimize Options. (line 2663) * fzero-initialized-in-bss: Optimize Options. (line 446) * 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) --- 62933,62941 ---- * fzero-call-used-regs: Optimize Options. (line 2663) * fzero-initialized-in-bss: Optimize Options. (line 446) * fzero-link: Objective-C and Objective-C++ Dialect Options. ! (line 143) * 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) *************** look up both forms. *** 62925,62931 **** * gdwarf32: Debugging Options. (line 181) * gdwarf64: Debugging Options. (line 181) * gen-decls: Objective-C and Objective-C++ Dialect Options. ! (line 166) * gfull: Darwin Options. (line 69) * ggdb: Debugging Options. (line 38) * ggnu-pubnames: Debugging Options. (line 199) --- 62950,62956 ---- * gdwarf32: Debugging Options. (line 181) * gdwarf64: Debugging Options. (line 181) * gen-decls: Objective-C and Objective-C++ Dialect Options. ! (line 169) * gfull: Darwin Options. (line 69) * ggdb: Debugging Options. (line 38) * ggnu-pubnames: Debugging Options. (line 199) *************** look up both forms. *** 62956,62962 **** * 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) * I-: Directory Options. (line 65) --- 62981,62987 ---- * gz: Debugging Options. (line 329) * H: Preprocessor Options. (line 405) ! * headerpad_max_install_names: Darwin Options. (line 204) * help: Overall Options. (line 482) * I: Directory Options. (line 13) * I-: Directory Options. (line 65) *************** look up both forms. *** 62964,62975 **** * iframework: Darwin Options. (line 57) * imacros: Preprocessor Options. (line 57) ! * image_base: Darwin Options. (line 196) * imultilib: Directory Options. (line 98) * include: Preprocessor Options. (line 46) ! * init: Darwin Options. (line 196) ! * install_name: Darwin Options. (line 196) * iplugindir=: Directory Options. (line 113) * iprefix: Directory Options. (line 80) * iquote: Directory Options. (line 13) --- 62989,63000 ---- * iframework: Darwin Options. (line 57) * imacros: Preprocessor Options. (line 57) ! * image_base: Darwin Options. (line 204) * imultilib: Directory Options. (line 98) * include: Preprocessor Options. (line 46) ! * init: Darwin Options. (line 204) ! * install_name: Darwin Options. (line 204) * iplugindir=: Directory Options. (line 113) * iprefix: Directory Options. (line 80) * iquote: Directory Options. (line 13) *************** look up both forms. *** 62977,62983 **** * isystem: Directory Options. (line 13) * iwithprefix: Directory Options. (line 86) * iwithprefixbefore: Directory Options. (line 86) ! * keep_private_externs: Darwin Options. (line 196) * l: Link Options. (line 84) * L: Directory Options. (line 118) * lobjc: Link Options. (line 110) --- 63002,63008 ---- * isystem: Directory Options. (line 13) * iwithprefix: Directory Options. (line 86) * iwithprefixbefore: Directory Options. (line 86) ! * keep_private_externs: Darwin Options. (line 204) * l: Link Options. (line 84) * L: Directory Options. (line 118) * lobjc: Link Options. (line 110) *************** look up both forms. *** 62987,62995 **** (line 521) * 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) --- 63012,63020 ---- (line 521) * m1: SH Options. (line 9) * m10: PDP-11 Options. (line 29) ! * m128bit-long-double: x86 Options. (line 643) ! * m16: x86 Options. (line 1522) ! * m16-bit: CRIS Options. (line 63) * m16-bit <1>: NDS32 Options. (line 51) * m1reg-: Adapteva Epiphany Options. (line 131) *************** look up both forms. *** 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) --- 63032,63047 ---- * m32 <1>: SPARC Options. (line 315) * m32 <2>: TILE-Gx Options. (line 23) * m32 <3>: TILEPro Options. (line 13) ! * m32 <4>: x86 Options. (line 1522) ! * 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 875) ! * m3dnowa: x86 Options. (line 876) * m3e: SH Options. (line 37) * m4: SH Options. (line 51) * m4-100: SH Options. (line 54) *************** look up both forms. *** 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) --- 63081,63087 ---- (line 86) * m64 <3>: SPARC Options. (line 315) * m64 <4>: TILE-Gx Options. (line 23) ! * m64 <5>: x86 Options. (line 1522) * m64bit-doubles: RL78 Options. (line 73) * m64bit-doubles <1>: RX Options. (line 10) * m68000: M680x0 Options. (line 93) *************** look up both forms. *** 63068,63077 **** * 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) * mA7: ARC Options. (line 30) * mabi: AArch64 Options. (line 9) --- 63093,63102 ---- * 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 1430) * m8byte-align: V850 Options. (line 170) ! * m96bit-long-double: x86 Options. (line 643) * mA6: ARC Options. (line 23) * mA7: ARC Options. (line 30) * mabi: AArch64 Options. (line 9) *************** look up both forms. *** 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) --- 63105,63111 ---- * mabi <3>: RISC-V Options. (line 17) * mabi <4>: RS/6000 and PowerPC Options. (line 552) ! * mabi <5>: x86 Options. (line 1123) * mabi <6>: Xtensa Options. (line 103) * mabi=32: MIPS Options. (line 156) * mabi=64: MIPS Options. (line 156) *************** look up both forms. *** 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. --- 63125,63148 ---- * mabi=o64: MIPS Options. (line 156) * mabi=windowed: Xtensa Options. (line 115) * mabicalls: MIPS Options. (line 192) ! * mabm: x86 Options. (line 878) * 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 1167) ! * maddress-mode=long: x86 Options. (line 1572) ! * maddress-mode=short: x86 Options. (line 1577) * mads: RS/6000 and PowerPC Options. (line 614) ! * madx: x86 Options. (line 879) ! * maes: x86 Options. (line 856) * maix-struct-return: RS/6000 and PowerPC Options. (line 545) * maix32: RS/6000 and PowerPC Options. *************** look up both forms. *** 63125,63134 **** * 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) * malign-int: M680x0 Options. (line 261) * malign-labels: FRV Options. (line 128) * malign-loops: M32R/D Options. (line 73) --- 63150,63159 ---- * 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 683) ! * malign-double: x86 Options. (line 628) * malign-int: M680x0 Options. (line 261) * malign-labels: FRV Options. (line 128) * malign-loops: M32R/D Options. (line 73) *************** look up both forms. *** 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) --- 63161,63167 ---- (line 321) * malign-power: RS/6000 and PowerPC Options. (line 321) ! * malign-stringops: x86 Options. (line 1303) * mall-opts: MeP Options. (line 11) * malloc-cc: FRV Options. (line 31) * mallow-string-insns: RX Options. (line 150) *************** look up both forms. *** 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) --- 63171,63179 ---- * mam33: MN10300 Options. (line 17) * mam33-2: MN10300 Options. (line 24) * mam34: MN10300 Options. (line 27) ! * mamx-bf16: x86 Options. (line 916) ! * mamx-int8: x86 Options. (line 915) ! * mamx-tile: x86 Options. (line 914) * manchor: C-SKY Options. (line 126) * mandroid: GNU/Linux Options. (line 26) * mannotate-align: ARC Options. (line 382) *************** look up both forms. *** 63177,63219 **** * 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) * masm-syntax-unified: ARM Options. (line 922) ! * masm=DIALECT: x86 Options. (line 566) * 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) --- 63202,63244 ---- * 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) * masm-syntax-unified: ARM Options. (line 922) ! * masm=DIALECT: x86 Options. (line 577) * 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 844) ! * mavx2: x86 Options. (line 845) ! * mavx256-split-unaligned-load: x86 Options. (line 1438) ! * mavx256-split-unaligned-store: x86 Options. (line 1438) ! * mavx5124fmaps: x86 Options. (line 908) ! * mavx5124vnniw: x86 Options. (line 911) ! * mavx512bf16: x86 Options. (line 895) ! * mavx512bitalg: x86 Options. (line 900) ! * mavx512bw: x86 Options. (line 851) ! * mavx512cd: x86 Options. (line 849) ! * mavx512dq: x86 Options. (line 852) ! * mavx512er: x86 Options. (line 848) ! * mavx512f: x86 Options. (line 846) ! * mavx512ifma: x86 Options. (line 853) ! * mavx512pf: x86 Options. (line 847) ! * mavx512vbmi: x86 Options. (line 854) ! * mavx512vbmi2: x86 Options. (line 894) ! * mavx512vl: x86 Options. (line 850) ! * mavx512vnni: x86 Options. (line 909) ! * mavx512vp2intersect: x86 Options. (line 907) ! * mavx512vpopcntdq: x86 Options. (line 906) ! * mavxvnni: x86 Options. (line 910) * max-vect-align: Adapteva Epiphany Options. (line 119) * mb: SH Options. (line 126) *************** look up both forms. *** 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) --- 63246,63260 ---- (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) *************** look up both forms. *** 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) --- 63283,63294 ---- (line 700) * mblock-move-inline-limit: RS/6000 and PowerPC Options. (line 688) ! * mbmi: x86 Options. (line 880) ! * mbmi2: x86 Options. (line 881) * 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) *************** look up both forms. *** 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. --- 63315,63326 ---- (line 529) * mcall-linux: RS/6000 and PowerPC Options. (line 525) ! * mcall-ms2sysv-xlogues: x86 Options. (line 1143) * 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. *************** look up both forms. *** 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) --- 63331,63369 ---- * 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 971) ! * mcldemote: x86 Options. (line 912) * mclear-hwcap: Solaris 2 Options. (line 9) ! * mclflushopt: x86 Options. (line 858) * mclip: MeP Options. (line 35) ! * mclwb: x86 Options. (line 859) ! * mclzero: x86 Options. (line 892) * mcmodel: NDS32 Options. (line 67) * mcmodel <1>: SPARC Options. (line 320) ! * mcmodel=kernel: x86 Options. (line 1556) * 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 1568) * mcmodel=medany: RISC-V Options. (line 129) * mcmodel=medium: RS/6000 and PowerPC Options. (line 126) ! * mcmodel=medium <1>: x86 Options. (line 1561) * 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 1550) * mcmodel=tiny: AArch64 Options. (line 34) * mcmov: NDS32 Options. (line 21) * mcmov <1>: OpenRISC Options. (line 45) *************** look up both forms. *** 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) --- 63373,63385 ---- (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) *************** look up both forms. *** 63363,63370 **** * 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) * mcop: MeP Options. (line 48) --- 63388,63396 ---- * mconfig=: MeP Options. (line 39) * mconsole: x86 Windows Options. (line 9) ! * mconst-align: CRIS Options. (line 54) * mconst16: Xtensa Options. (line 10) + * mconstant-cfstrings: Darwin Options. (line 74) * mconstant-gp: IA-64 Options. (line 46) * mconstpool: C-SKY Options. (line 143) * mcop: MeP Options. (line 48) *************** look up both forms. *** 63390,63396 **** * mcpu <13>: TILE-Gx Options. (line 18) * mcpu <14>: TILEPro Options. (line 9) * mcpu <15>: Visium Options. (line 33) ! * mcpu <16>: x86 Options. (line 512) * mcpu32: M680x0 Options. (line 135) * mcpu=: Blackfin Options. (line 7) * mcpu= <1>: C-SKY Options. (line 14) --- 63416,63422 ---- * mcpu <13>: TILE-Gx Options. (line 18) * mcpu <14>: TILEPro Options. (line 9) * mcpu <15>: Visium Options. (line 33) ! * mcpu <16>: x86 Options. (line 523) * mcpu32: M680x0 Options. (line 135) * mcpu=: Blackfin Options. (line 7) * mcpu= <1>: C-SKY Options. (line 14) *************** look up both forms. *** 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) --- 63426,63432 ---- * mcr16c: CR16 Options. (line 14) * mcr16cplus: CR16 Options. (line 14) * mcrc: MIPS Options. (line 416) ! * mcrc32: x86 Options. (line 1039) * mcrypto: RS/6000 and PowerPC Options. (line 178) * mcsync-anomaly: Blackfin Options. (line 57) *************** look up both forms. *** 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. --- 63434,63447 ---- * 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 1012) * 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) ! * mdaz-ftz: x86 Options. (line 771) * mdc: MeP Options. (line 62) * mdebug: M32R/D Options. (line 69) * mdebug <1>: S/390 and zSeries Options. *************** look up both forms. *** 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) --- 63468,63474 ---- * 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) *************** look up both forms. *** 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) --- 63476,63489 ---- * 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 953) * mdvbf: ARC Options. (line 340) * mdwarf2-asm: IA-64 Options. (line 94) * mdword: FRV Options. (line 40) *************** look up both forms. *** 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) --- 63491,63500 ---- * 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) *************** look up both forms. *** 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) --- 63505,63526 ---- * 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 903) * 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) *************** look up both forms. *** 63505,63512 **** * 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) * mfast-sw-div: Nios II Options. (line 115) --- 63531,63538 ---- * mextern-sdata: MIPS Options. (line 480) * MF: Preprocessor Options. (line 111) ! * mf16c: x86 Options. (line 863) ! * mfancy-math-387: x86 Options. (line 618) * mfast-fp: Blackfin Options. (line 130) * mfast-indirect-calls: HPPA Options. (line 52) * mfast-sw-div: Nios II Options. (line 115) *************** look up both forms. *** 63515,63526 **** * 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) * mfix-at697f: SPARC Options. (line 294) * mfix-cmse-cve-2021-35465: ARM Options. (line 957) * mfix-cortex-a53-835769: AArch64 Options. (line 90) --- 63541,63552 ---- * mfdivdu: C-SKY Options. (line 64) * mfdpic: ARM Options. (line 966) * mfdpic <1>: FRV Options. (line 72) ! * mfentry: x86 Options. (line 1377) ! * mfentry-name: x86 Options. (line 1408) ! * mfentry-section: x86 Options. (line 1412) * mfix: DEC Alpha Options. (line 163) * mfix-24k: MIPS Options. (line 641) ! * mfix-and-continue: Darwin Options. (line 112) * mfix-at697f: SPARC Options. (line 294) * mfix-cmse-cve-2021-35465: ARM Options. (line 957) * mfix-cortex-a53-835769: AArch64 Options. (line 90) *************** look up both forms. *** 63555,63578 **** * 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. (line 71) * mfp-reg: DEC Alpha Options. (line 25) ! * mfp-ret-in-387: x86 Options. (line 597) * mfp-rounding-mode: DEC Alpha Options. (line 85) * mfp-trap-mode: DEC Alpha Options. (line 63) * mfp16-format: ARM Options. (line 729) * mfp32: MIPS Options. (line 258) * mfp64: MIPS Options. (line 261) * mfpmath: Optimize Options. (line 2265) ! * mfpmath <1>: x86 Options. (line 515) * mfpr-32: FRV Options. (line 15) * mfpr-64: FRV Options. (line 19) * mfprnd: RS/6000 and PowerPC Options. --- 63581,63604 ---- * 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 864) ! * mfma4: x86 Options. (line 867) * mfmaf: SPARC Options. (line 267) * mfmovd: SH Options. (line 148) ! * mforce-indirect-call: x86 Options. (line 1132) * mforce-no-pic: Xtensa Options. (line 41) * mfp-exceptions: MIPS Options. (line 824) * mfp-mode: Adapteva Epiphany Options. (line 71) * mfp-reg: DEC Alpha Options. (line 25) ! * mfp-ret-in-387: x86 Options. (line 608) * mfp-rounding-mode: DEC Alpha Options. (line 85) * mfp-trap-mode: DEC Alpha Options. (line 63) * mfp16-format: ARM Options. (line 729) * mfp32: MIPS Options. (line 258) * mfp64: MIPS Options. (line 261) * mfpmath: Optimize Options. (line 2265) ! * mfpmath <1>: x86 Options. (line 526) * mfpr-32: FRV Options. (line 15) * mfpr-64: FRV Options. (line 19) * mfprnd: RS/6000 and PowerPC Options. *************** look up both forms. *** 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. --- 63610,63628 ---- * 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 860) * 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 1480) * 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. *** 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) --- 63631,63637 ---- (line 183) * mfused-madd <4>: SH Options. (line 356) * mfused-madd <5>: Xtensa Options. (line 19) ! * mfxsr: x86 Options. (line 883) * MG: Preprocessor Options. (line 122) * mg: VAX Options. (line 17) *************** look up both forms. *** 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) --- 63639,63650 ---- * 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 1456) ! * mgfni: x86 Options. (line 896) * mghs: V850 Options. (line 127) * mginv: MIPS Options. (line 421) * mglibc: GNU/Linux Options. (line 9) *************** look up both forms. *** 63660,63677 **** * mhard-float <8>: SPARC Options. (line 34) * mhard-float <9>: V850 Options. (line 113) * mhard-float <10>: Visium Options. (line 19) ! * mhard-float <11>: x86 Options. (line 580) * 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. --- 63686,63703 ---- * mhard-float <8>: SPARC Options. (line 34) * mhard-float <9>: V850 Options. (line 113) * mhard-float <10>: Visium Options. (line 19) ! * mhard-float <11>: x86 Options. (line 591) * 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 1502) * mhardlit: MCore Options. (line 10) * mhigh-registers: C-SKY Options. (line 120) ! * mhle: x86 Options. (line 889) * mhotpatch: S/390 and zSeries Options. (line 218) * mhp-ld: HPPA Options. (line 123) ! * mhreset: x86 Options. (line 917) * mhtm: RS/6000 and PowerPC Options. (line 184) * mhtm <1>: S/390 and zSeries Options. *************** look up both forms. *** 63680,63703 **** * 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) * mieee: DEC Alpha Options. (line 39) * mieee <1>: SH Options. (line 165) * mieee-conformant: DEC Alpha Options. (line 134) ! * mieee-fp: x86 Options. (line 574) * mieee-with-inexact: DEC Alpha Options. (line 52) * 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) --- 63706,63729 ---- * mhw-mul: Nios II Options. (line 124) * mhw-mulx: Nios II Options. (line 124) * mhwmult=: MSP430 Options. (line 93) ! * miamcu: x86 Options. (line 1522) * micplb: Blackfin Options. (line 175) * mid-shared-library: Blackfin Options. (line 78) * mid-shared-library <1>: Blackfin Options. (line 85) * mieee: DEC Alpha Options. (line 39) * mieee <1>: SH Options. (line 165) * mieee-conformant: DEC Alpha Options. (line 134) ! * mieee-fp: x86 Options. (line 585) * mieee-with-inexact: DEC Alpha Options. (line 52) * milp32: IA-64 Options. (line 121) * mimadd: MIPS Options. (line 617) * mimpure-text: Solaris 2 Options. (line 15) ! * mincoming-stack-boundary: x86 Options. (line 810) ! * mindexed-loads: ARC Options. (line 483) ! * mindirect-branch: x86 Options. (line 1461) ! * mindirect-branch-cs-prefix: x86 Options. (line 1509) ! * mindirect-branch-register: x86 Options. (line 1499) ! * minline-all-stringops: x86 Options. (line 1308) * 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. *** 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) --- 63734,63751 ---- * 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 1316) * 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 1396) * 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) *************** look up both forms. *** 63750,63764 **** * mjli-alawys: ARC Options. (line 14) * mjsr: RX Options. (line 169) * 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) * mlarge: MSP430 Options. (line 82) * mlarge-data: DEC Alpha Options. (line 187) ! * mlarge-data-threshold: x86 Options. (line 679) * mlarge-text: DEC Alpha Options. (line 205) * mleadz: MeP Options. (line 81) * mleaf-id-shared-library: Blackfin Options. (line 89) --- 63776,63790 ---- * mjli-alawys: ARC Options. (line 14) * mjsr: RX Options. (line 169) * mjump-in-delay: HPPA Options. (line 30) ! * mkernel: Darwin Options. (line 90) * mkernel <1>: eBPF Options. (line 13) ! * mkl: x86 Options. (line 918) * mknuthdiv: MMIX Options. (line 32) * ml: MeP Options. (line 78) * ml <1>: SH Options. (line 129) * mlarge: MSP430 Options. (line 82) * mlarge-data: DEC Alpha Options. (line 187) ! * mlarge-data-threshold: x86 Options. (line 690) * mlarge-text: DEC Alpha Options. (line 205) * mleadz: MeP Options. (line 81) * mleaf-id-shared-library: Blackfin Options. (line 89) *************** look up both forms. *** 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) --- 63796,63802 ---- * 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) *************** look up both forms. *** 63792,63812 **** * 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) * mlong-double-64: S/390 and zSeries Options. (line 29) ! * mlong-double-64 <1>: x86 Options. (line 658) ! * mlong-double-80: x86 Options. (line 658) * mlong-jump-table-offsets: M680x0 Options. (line 339) * mlong-jumps: V850 Options. (line 108) * mlong-load-store: HPPA Options. (line 66) --- 63818,63838 ---- * 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 669) * mlong-double-64: S/390 and zSeries Options. (line 29) ! * mlong-double-64 <1>: x86 Options. (line 669) ! * mlong-double-80: x86 Options. (line 669) * mlong-jump-table-offsets: M680x0 Options. (line 339) * mlong-jumps: V850 Options. (line 108) * mlong-load-store: HPPA Options. (line 66) *************** look up both forms. *** 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) --- 63852,63867 ---- * 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 874) * mlxc1-sxc1: MIPS Options. (line 895) ! * mlzcnt: x86 Options. (line 882) * MM: Preprocessor Options. (line 102) * mm: MeP Options. (line 84) *************** look up both forms. *** 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) --- 63869,63887 ---- * mmac <1>: Score Options. (line 21) * mmac-24: ARC Options. (line 354) * mmac-d16: ARC Options. (line 350) ! * mmacosx-version-min: Darwin Options. (line 79) ! * 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 1137) * 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) *************** look up both forms. *** 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) --- 63890,63926 ---- * 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 1338) * mmemory-latency: DEC Alpha Options. (line 268) * mmemory-model: SPARC Options. (line 348) ! * mmemset-strategy=STRATEGY: x86 Options. (line 1350) * 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 835) * 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 1031) ! * mmovdir64b: x86 Options. (line 902) ! * mmovdiri: x86 Options. (line 901) * mmp: C-SKY Options. (line 87) * mmpy: ARC Options. (line 117) * mmpy-option: ARC Options. (line 173) ! * mms-bitfields: x86 Options. (line 1183) * 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) *************** look up both forms. *** 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. --- 63929,63935 ---- (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. *************** look up both forms. *** 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) --- 63940,63952 ---- (line 138) * mmvme: RS/6000 and PowerPC Options. (line 609) ! * mmwait: x86 Options. (line 1045) ! * mmwaitx: x86 Options. (line 891) * 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 1583) * mneon-for-64bits: ARM Options. (line 913) * mnested-cond-exec: FRV Options. (line 230) * mnewlib: OpenRISC Options. (line 13) *************** look up both forms. *** 63929,63938 **** * mno-8byte-align: V850 Options. (line 170) * mno-abicalls: MIPS Options. (line 192) * mno-ac0: PDP-11 Options. (line 20) ! * 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) --- 63956,63965 ---- * mno-8byte-align: V850 Options. (line 170) * mno-abicalls: MIPS Options. (line 192) * mno-ac0: PDP-11 Options. (line 20) ! * mno-align-double: x86 Options. (line 628) * mno-align-int: M680x0 Options. (line 261) * mno-align-loops: M32R/D Options. (line 76) ! * mno-align-stringops: x86 Options. (line 1303) * mno-allow-string-insns: RX Options. (line 150) * mno-altivec: RS/6000 and PowerPC Options. (line 137) *************** look up both forms. *** 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) --- 63978,63988 ---- * 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 1143) * 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. *** 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) --- 63991,64000 ---- * 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) *************** look up both forms. *** 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) --- 64003,64012 ---- (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 967) * mno-disable-callt: V850 Options. (line 92) * mno-div: M680x0 Options. (line 206) * mno-div <1>: MCore Options. (line 15) *************** look up both forms. *** 64006,64012 **** * mno-ext-perf2: NDS32 Options. (line 36) * mno-ext-string: NDS32 Options. (line 42) * mno-extern-sdata: MIPS Options. (line 480) ! * mno-fancy-math-387: x86 Options. (line 607) * mno-fast-sw-div: Nios II Options. (line 115) * mno-faster-structs: SPARC Options. (line 91) * mno-fdpic: ARM Options. (line 966) --- 64033,64039 ---- * mno-ext-perf2: NDS32 Options. (line 36) * mno-ext-string: NDS32 Options. (line 42) * mno-extern-sdata: MIPS Options. (line 480) ! * mno-fancy-math-387: x86 Options. (line 618) * mno-fast-sw-div: Nios II Options. (line 115) * mno-faster-structs: SPARC Options. (line 91) * mno-fdpic: ARM Options. (line 966) *************** look up both forms. *** 64029,64035 **** * mno-fp-in-toc: RS/6000 and PowerPC Options. (line 256) * mno-fp-regs: DEC Alpha Options. (line 25) ! * mno-fp-ret-in-387: x86 Options. (line 597) * mno-fprnd: RS/6000 and PowerPC Options. (line 25) * mno-fpu: SPARC Options. (line 39) --- 64056,64062 ---- * mno-fp-in-toc: RS/6000 and PowerPC Options. (line 256) * mno-fp-regs: DEC Alpha Options. (line 25) ! * mno-fp-ret-in-387: x86 Options. (line 608) * mno-fprnd: RS/6000 and PowerPC Options. (line 25) * mno-fpu: SPARC Options. (line 39) *************** look up both forms. *** 64066,64072 **** * mno-hw-mulx: Nios II Options. (line 124) * mno-id-shared-library: Blackfin Options. (line 85) * mno-ieee: SH Options. (line 165) ! * mno-ieee-fp: x86 Options. (line 574) * mno-imadd: MIPS Options. (line 617) * mno-inline-float-divide: IA-64 Options. (line 62) * mno-inline-int-divide: IA-64 Options. (line 73) --- 64093,64099 ---- * mno-hw-mulx: Nios II Options. (line 124) * mno-id-shared-library: Blackfin Options. (line 85) * mno-ieee: SH Options. (line 165) ! * mno-ieee-fp: x86 Options. (line 585) * mno-imadd: MIPS Options. (line 617) * mno-inline-float-divide: IA-64 Options. (line 62) * mno-inline-int-divide: IA-64 Options. (line 73) *************** look up both forms. *** 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) --- 64102,64108 ---- * 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) *************** look up both forms. *** 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) --- 64149,64157 ---- * Mno-modules: Preprocessor Options. (line 132) * mno-mpy: ARC Options. (line 117) ! * mno-ms-bitfields: x86 Options. (line 1183) * 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) *************** look up both forms. *** 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) --- 64202,64218 ---- * 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 1160) * 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 1542) * mno-register-names: IA-64 Options. (line 37) * mno-regnames: RS/6000 and PowerPC Options. (line 722) *************** look up both forms. *** 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) --- 64240,64246 ---- * 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) *************** look up both forms. *** 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) --- 64248,64254 ---- * 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) *************** look up both forms. *** 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) --- 64263,64269 ---- * 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) *************** look up both forms. *** 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. --- 64304,64310 ---- * 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. *************** look up both forms. *** 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) --- 64329,64335 ---- * mnomacsave: SH Options. (line 160) * mnop-fun-dllimport: x86 Windows Options. (line 22) ! * mnop-mcount: x86 Options. (line 1390) * mnopm: FT32 Options. (line 29) * mnops: Adapteva Epiphany Options. (line 26) *************** look up both forms. *** 64310,64317 **** * 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) * moptimize-membar <1>: FRV Options. (line 249) --- 64337,64344 ---- * 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 1354) ! * mone-byte-bool: Darwin Options. (line 98) * moptimize: Nvidia PTX Options. (line 22) * moptimize-membar: FRV Options. (line 244) * moptimize-membar <1>: FRV Options. (line 249) *************** look up both forms. *** 64327,64341 **** * mpadstruct: SH Options. (line 189) * mpaired-single: MIPS Options. (line 370) * mpc-relative-literal-loads: AArch64 Options. (line 270) ! * 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. --- 64354,64368 ---- * mpadstruct: SH Options. (line 189) * mpaired-single: MIPS Options. (line 370) * mpc-relative-literal-loads: AArch64 Options. (line 270) ! * mpc32: x86 Options. (line 750) ! * mpc64: x86 Options. (line 750) ! * mpc80: x86 Options. (line 750) ! * mpclmul: x86 Options. (line 857) ! * mpconfig: x86 Options. (line 865) * 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. *************** look up both forms. *** 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) --- 64371,64377 ---- * 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 893) * mplt: MIPS Options. (line 219) * mpltseq: RS/6000 and PowerPC Options. (line 765) *************** look up both forms. *** 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. --- 64380,64386 ---- (line 878) * mpoke-function-name: ARM Options. (line 801) * mpopc: SPARC Options. (line 281) ! * mpopcnt: x86 Options. (line 877) * mpopcntb: RS/6000 and PowerPC Options. (line 25) * mpopcntd: RS/6000 and PowerPC Options. *************** look up both forms. *** 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) --- 64400,64463 ---- (line 25) * mpowerpc64: RS/6000 and PowerPC Options. (line 25) ! * mprefer-avx128: x86 Options. (line 991) * mprefer-short-insn-regs: Adapteva Epiphany Options. (line 13) ! * mprefer-vector-width: x86 Options. (line 995) * mprefergot: SH Options. (line 268) * mpreferred-stack-boundary: RISC-V Options. (line 88) ! * mpreferred-stack-boundary <1>: x86 Options. (line 789) ! * mprefetchwt1: x86 Options. (line 870) * mprefixed: RS/6000 and PowerPC Options. (line 938) * mpretend-cmove: SH Options. (line 383) ! * mprfchw: x86 Options. (line 868) * 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 861) * mpure-code: ARM Options. (line 944) ! * mpush-args: x86 Options. (line 1160) * 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 869) ! * mrdrnd: x86 Options. (line 862) ! * mrdseed: x86 Options. (line 871) * mreadonly-in-sdata: RS/6000 and PowerPC Options. (line 684) * mrecip: RS/6000 and PowerPC Options. (line 785) ! * mrecip <1>: x86 Options. (line 1050) * mrecip-precision: RS/6000 and PowerPC Options. (line 842) * mrecip=opt: RS/6000 and PowerPC Options. (line 798) ! * mrecip=opt <1>: x86 Options. (line 1072) ! * mrecord-mcount: x86 Options. (line 1384) ! * mrecord-return: x86 Options. (line 1404) ! * mred-zone: x86 Options. (line 1542) * 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 720) ! * mrelax: AVR Options. (line 231) * mrelax <1>: H8/300 Options. (line 9) * mrelax <2>: MN10300 Options. (line 46) * mrelax <3>: MSP430 Options. (line 88) *************** look up both forms. *** 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) --- 64479,64485 ---- * 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) *************** look up both forms. *** 64460,64475 **** * mround-nearest: Adapteva Epiphany Options. (line 51) * mrtd: M680x0 Options. (line 236) ! * 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) --- 64487,64502 ---- * mround-nearest: Adapteva Epiphany Options. (line 51) * mrtd: M680x0 Options. (line 236) ! * mrtd <1>: x86 Options. (line 696) * mrtd <2>: x86 Function Attributes. (line 9) ! * mrtm: x86 Options. (line 888) * 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 1021) * 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. *** 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) --- 64529,64535 ---- * 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) *************** look up both forms. *** 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) --- 64557,64576 ---- * 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 913) * 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 872) ! * msha: x86 Options. (line 855) * 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 1035) ! * 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) *************** look up both forms. *** 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) --- 64597,64604 ---- * 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 1417) * mslow-bytes: MCore Options. (line 35) * mslow-flash-data: ARM Options. (line 916) * msmall: MSP430 Options. (line 85) *************** look up both forms. *** 64608,64618 **** * msoft-float <12>: SPARC Options. (line 39) * msoft-float <13>: V850 Options. (line 113) * msoft-float <14>: Visium Options. (line 24) ! * msoft-float <15>: x86 Options. (line 584) * 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) --- 64635,64645 ---- * msoft-float <12>: SPARC Options. (line 39) * msoft-float <13>: V850 Options. (line 113) * msoft-float <14>: Visium Options. (line 24) ! * msoft-float <15>: x86 Options. (line 595) * 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) *************** look up both forms. *** 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. --- 64647,64654 ---- * 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. *************** look up both forms. *** 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. --- 64656,64672 ---- * msplit-vecmove-early: Adapteva Epiphany Options. (line 126) * msram-ecc: AMD GCN Options. (line 25) ! * msse: x86 Options. (line 836) ! * msse2: x86 Options. (line 837) ! * msse2avx: x86 Options. (line 1372) ! * msse3: x86 Options. (line 838) ! * msse4: x86 Options. (line 840) ! * msse4.1: x86 Options. (line 842) ! * msse4.2: x86 Options. (line 843) ! * msse4a: x86 Options. (line 841) ! * msseregparm: x86 Options. (line 731) ! * mssse3: x86 Options. (line 839) ! * 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. *************** look up both forms. *** 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) --- 64678,64711 ---- * 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 1443) * 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 1443) * 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 1443) * 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 780) * 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 1320) * mstructure-size-boundary: ARM Options. (line 735) * msubxc: SPARC Options. (line 288) * msv-mode: Visium Options. (line 52) *************** look up both forms. *** 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) --- 64722,64747 ---- (line 147) * mtarget-align: Xtensa Options. (line 74) * mtas: SH Options. (line 259) ! * mtbm: x86 Options. (line 890) * 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 1175) * 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 1153) * mtls-dialect=desc: AArch64 Options. (line 77) * mtls-dialect=traditional: AArch64 Options. (line 81) ! * mtls-direct-seg-refs: x86 Options. (line 1362) * mtls-markers: RS/6000 and PowerPC Options. (line 777) * mtls-size: AArch64 Options. (line 85) *************** look up both forms. *** 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) --- 64762,64774 ---- (line 541) * mtrap-precision: DEC Alpha Options. (line 109) * mtrust: C-SKY Options. (line 99) ! * mtsxldtrk: x86 Options. (line 905) * 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) *************** look up both forms. *** 64754,64772 **** (line 162) * 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. --- 64781,64799 ---- (line 162) * mtune <14>: SPARC Options. (line 199) * mtune <15>: Visium Options. (line 47) ! * mtune <16>: x86 Options. (line 469) ! * mtune-ctrl=FEATURE-LIST: x86 Options. (line 958) * muclibc: GNU/Linux Options. (line 14) ! * muintr: x86 Options. (line 904) * 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 204) ! * multiply_defined_unused: Darwin Options. (line 204) ! * multi_module: Darwin Options. (line 204) ! * munalign-prob-threshold: ARC Options. (line 582) * munaligned-access: ARM Options. (line 900) * munaligned-doubles: SPARC Options. (line 73) * municode: x86 Windows Options. *************** look up both forms. *** 64792,64805 **** * 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) * mverbose-cost-dump: AArch64 Options. (line 265) * mverbose-cost-dump <1>: ARM Options. (line 940) * mvirt: MIPS Options. (line 407) --- 64819,64832 ---- * mv850e3v5: V850 Options. (line 52) * mv850es: V850 Options. (line 75) * mv8plus: SPARC Options. (line 214) ! * mvaes: x86 Options. (line 897) * mvdsp: C-SKY Options. (line 104) * mveclibabi: RS/6000 and PowerPC Options. (line 851) ! * mveclibabi <1>: x86 Options. (line 1101) * mvect-double: Adapteva Epiphany Options. (line 115) ! * mvect8-ret-in-mem: x86 Options. (line 741) * mverbose-cost-dump: AArch64 Options. (line 265) * mverbose-cost-dump <1>: ARM Options. (line 940) * mvirt: MIPS Options. (line 407) *************** look up both forms. *** 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) --- 64838,64846 ---- * 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 899) * mvr4130-align: MIPS Options. (line 834) * mvrsave: RS/6000 and PowerPC Options. (line 153) *************** look up both forms. *** 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) --- 64850,64857 ---- (line 112) * mvxworks: RS/6000 and PowerPC Options. (line 624) ! * mvzeroupper: x86 Options. (line 985) ! * mwaitpkg: x86 Options. (line 898) * mwarn-devices-csv: MSP430 Options. (line 168) * mwarn-dynamicstack: S/390 and zSeries Options. (line 196) *************** look up both forms. *** 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) --- 64859,64873 ---- (line 188) * mwarn-mcu: MSP430 Options. (line 65) * mwarn-multiple-fast-interrupts: RX Options. (line 143) ! * mwbnoinvd: x86 Options. (line 866) * mwide-bitfields: MCore Options. (line 23) ! * mwidekl: x86 Options. (line 919) * mwin32: x86 Windows Options. (line 35) * mwindows: x86 Windows Options. (line 41) * mword-relocations: ARM Options. (line 886) ! * mx32: x86 Options. (line 1522) * mxgot: M680x0 Options. (line 312) * mxgot <1>: MIPS Options. (line 229) * mxl-barrel-shift: MicroBlaze Options. (line 32) *************** look up both forms. *** 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) --- 64883,64894 ---- * mxl-soft-mul: MicroBlaze Options. (line 26) * mxl-stack-check: MicroBlaze Options. (line 41) * mxnack: AMD GCN Options. (line 38) ! * mxop: x86 Options. (line 873) * mxpa: MIPS Options. (line 411) ! * mxsave: x86 Options. (line 884) ! * mxsavec: x86 Options. (line 886) ! * mxsaveopt: x86 Options. (line 885) ! * mxsaves: x86 Options. (line 887) * mxy: ARC Options. (line 373) * myellowknife: RS/6000 and PowerPC Options. (line 619) *************** look up both forms. *** 64872,64878 **** * mzero-extend: MMIX Options. (line 26) * mzvector: S/390 and zSeries Options. (line 123) ! * no-80387: x86 Options. (line 584) * no-block-ops-unaligned-vsx: RS/6000 and PowerPC Options. (line 959) * no-canonical-prefixes: Directory Options. (line 164) --- 64899,64905 ---- * mzero-extend: MMIX Options. (line 26) * mzvector: S/390 and zSeries Options. (line 123) ! * no-80387: x86 Options. (line 595) * no-block-ops-unaligned-vsx: RS/6000 and PowerPC Options. (line 959) * no-canonical-prefixes: Directory Options. (line 164) *************** look up both forms. *** 64880,64905 **** (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) * nolibdld: HPPA Options. (line 188) ! * nomultidefs: Darwin Options. (line 196) * non-static: VxWorks Options. (line 16) ! * noprebind: Darwin Options. (line 196) ! * noseglinkedit: Darwin Options. (line 196) * nostartfiles: Link Options. (line 114) * nostdinc: Directory Options. (line 102) * nostdinc++: C++ Dialect Options. (line 530) * nostdinc++ <1>: Directory Options. (line 108) * nostdlib: Link Options. (line 143) ! * no_dead_strip_inits_and_terms: Darwin Options. (line 196) * o: Overall Options. (line 197) * O: Optimize Options. (line 39) * O0: Optimize Options. (line 165) --- 64907,64932 ---- (line 485) * no-pie: Link Options. (line 181) * no-sysroot-suffix: Directory Options. (line 183) ! * noall_load: Darwin Options. (line 204) * nocpp: MIPS Options. (line 636) * nodefaultlibs: Link Options. (line 119) ! * nodevicelib: AVR Options. (line 290) ! * nodevicespecs: AVR Options. (line 293) ! * nofixprebinding: Darwin Options. (line 204) * nofpu: RX Options. (line 17) * nolibc: Link Options. (line 131) * nolibdld: HPPA Options. (line 188) ! * nomultidefs: Darwin Options. (line 204) * non-static: VxWorks Options. (line 16) ! * noprebind: Darwin Options. (line 204) ! * noseglinkedit: Darwin Options. (line 204) * nostartfiles: Link Options. (line 114) * nostdinc: Directory Options. (line 102) * nostdinc++: C++ Dialect Options. (line 530) * nostdinc++ <1>: Directory Options. (line 108) * nostdlib: Link Options. (line 143) ! * no_dead_strip_inits_and_terms: Darwin Options. (line 204) * o: Overall Options. (line 197) * O: Optimize Options. (line 39) * O0: Optimize Options. (line 165) *************** look up both forms. *** 64915,64921 **** (line 370) * p <1>: Common Function Attributes. (line 794) ! * pagezero_size: Darwin Options. (line 196) * param: Optimize Options. (line 2676) * pass-exit-codes: Overall Options. (line 601) * pedantic: Standards. (line 13) --- 64942,64948 ---- (line 370) * p <1>: Common Function Attributes. (line 794) ! * pagezero_size: Darwin Options. (line 204) * param: Optimize Options. (line 2676) * pass-exit-codes: Overall Options. (line 601) * pedantic: Standards. (line 13) *************** look up both forms. *** 64936,64943 **** * pie: Link Options. (line 175) * pipe: Overall Options. (line 609) * plt: RISC-V Options. (line 13) ! * prebind: Darwin Options. (line 196) ! * prebind_all_twolevel_modules: Darwin Options. (line 196) * print-file-name: Developer Options. (line 935) * print-libgcc-file-name: Developer Options. (line 969) * print-multi-directory: Developer Options. (line 941) --- 64963,64970 ---- * pie: Link Options. (line 175) * pipe: Overall Options. (line 609) * plt: RISC-V Options. (line 13) ! * prebind: Darwin Options. (line 204) ! * prebind_all_twolevel_modules: Darwin Options. (line 204) * print-file-name: Developer Options. (line 935) * print-libgcc-file-name: Developer Options. (line 969) * print-multi-directory: Developer Options. (line 941) *************** look up both forms. *** 64945,64956 **** * print-multi-os-directory: Developer Options. (line 953) * print-multiarch: Developer Options. (line 962) * print-objc-runtime-info: Objective-C and Objective-C++ Dialect Options. ! (line 227) * print-prog-name: Developer Options. (line 966) * print-search-dirs: Developer Options. (line 977) * print-sysroot: Developer Options. (line 990) * print-sysroot-headers-suffix: Developer Options. (line 997) ! * private_bundle: Darwin Options. (line 196) * pthread: Preprocessor Options. (line 70) * pthread <1>: Link Options. (line 192) --- 64972,64983 ---- * print-multi-os-directory: Developer Options. (line 953) * print-multiarch: Developer Options. (line 962) * print-objc-runtime-info: Objective-C and Objective-C++ Dialect Options. ! (line 230) * print-prog-name: Developer Options. (line 966) * print-search-dirs: Developer Options. (line 977) * print-sysroot: Developer Options. (line 990) * print-sysroot-headers-suffix: Developer Options. (line 997) ! * private_bundle: Darwin Options. (line 204) * pthread: Preprocessor Options. (line 70) * pthread <1>: Link Options. (line 192) *************** look up both forms. *** 64960,64966 **** * Qy: System V Options. (line 14) * r: Link Options. (line 199) * rdynamic: Link Options. (line 203) ! * read_only_relocs: Darwin Options. (line 196) * remap: Preprocessor Options. (line 401) * S: Overall Options. (line 180) --- 64987,64993 ---- * Qy: System V Options. (line 14) * r: Link Options. (line 199) * rdynamic: Link Options. (line 203) ! * read_only_relocs: Darwin Options. (line 204) * remap: Preprocessor Options. (line 401) * S: Overall Options. (line 180) *************** look up both forms. *** 64969,64999 **** * save-temps: Developer Options. (line 735) * save-temps=cwd: Developer Options. (line 746) * save-temps=obj: Developer Options. (line 749) ! * sectalign: Darwin Options. (line 196) ! * sectcreate: Darwin Options. (line 196) ! * sectobjectsymbols: Darwin Options. (line 196) ! * sectobjectsymbols <1>: Darwin Options. (line 196) ! * sectorder: Darwin Options. (line 196) ! * seg1addr: Darwin Options. (line 196) ! * segaddr: Darwin Options. (line 196) ! * seglinkedit: Darwin Options. (line 196) ! * segprot: Darwin Options. (line 196) ! * segs_read_only_addr: Darwin Options. (line 196) ! * segs_read_only_addr <1>: Darwin Options. (line 196) ! * segs_read_write_addr: Darwin Options. (line 196) ! * segs_read_write_addr <1>: Darwin Options. (line 196) ! * seg_addr_table: Darwin Options. (line 196) ! * seg_addr_table_filename: Darwin Options. (line 196) * shared: Link Options. (line 219) * 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) ! * static <1>: Darwin Options. (line 196) * static <2>: HPPA Options. (line 192) * static-libasan: Link Options. (line 261) * static-libgcc: Link Options. (line 227) --- 64996,65026 ---- * save-temps: Developer Options. (line 735) * save-temps=cwd: Developer Options. (line 746) * save-temps=obj: Developer Options. (line 749) ! * sectalign: Darwin Options. (line 204) ! * sectcreate: Darwin Options. (line 204) ! * sectobjectsymbols: Darwin Options. (line 204) ! * sectobjectsymbols <1>: Darwin Options. (line 204) ! * sectorder: Darwin Options. (line 204) ! * seg1addr: Darwin Options. (line 204) ! * segaddr: Darwin Options. (line 204) ! * seglinkedit: Darwin Options. (line 204) ! * segprot: Darwin Options. (line 204) ! * segs_read_only_addr: Darwin Options. (line 204) ! * segs_read_only_addr <1>: Darwin Options. (line 204) ! * segs_read_write_addr: Darwin Options. (line 204) ! * segs_read_write_addr <1>: Darwin Options. (line 204) ! * seg_addr_table: Darwin Options. (line 204) ! * seg_addr_table_filename: Darwin Options. (line 204) * shared: Link Options. (line 219) * 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 204) * specs: Overall Options. (line 615) * static: Link Options. (line 214) ! * static <1>: Darwin Options. (line 204) * static <2>: HPPA Options. (line 192) * static-libasan: Link Options. (line 261) * static-libgcc: Link Options. (line 227) *************** look up both forms. *** 65008,65015 **** * std <3>: Non-bugs. (line 107) * stdlib: C++ Dialect Options. (line 553) ! * sub_library: Darwin Options. (line 196) ! * sub_umbrella: Darwin Options. (line 196) * symbolic: Link Options. (line 305) * sysroot: Directory Options. (line 168) * T: Link Options. (line 311) --- 65035,65042 ---- * std <3>: Non-bugs. (line 107) * stdlib: C++ Dialect Options. (line 553) ! * sub_library: Darwin Options. (line 204) ! * sub_umbrella: Darwin Options. (line 204) * symbolic: Link Options. (line 305) * sysroot: Directory Options. (line 168) * T: Link Options. (line 311) *************** look up both forms. *** 65025,65039 **** (line 377) * trigraphs: Preprocessor Options. (line 387) ! * twolevel_namespace: Darwin Options. (line 196) * U: Preprocessor Options. (line 42) * u: Link Options. (line 343) ! * umbrella: Darwin Options. (line 196) * undef: Preprocessor Options. (line 66) ! * undefined: Darwin Options. (line 196) ! * unexported_symbols_list: Darwin Options. (line 196) * v: Overall Options. (line 470) * version: Overall Options. (line 598) * w: Warning Options. (line 25) --- 65052,65066 ---- (line 377) * trigraphs: Preprocessor Options. (line 387) ! * twolevel_namespace: Darwin Options. (line 204) * U: Preprocessor Options. (line 42) * u: Link Options. (line 343) ! * umbrella: Darwin Options. (line 204) * undef: Preprocessor Options. (line 66) ! * undefined: Darwin Options. (line 204) ! * unexported_symbols_list: Darwin Options. (line 204) * v: Overall Options. (line 470) * version: Overall Options. (line 598) * w: Warning Options. (line 25) *************** look up both forms. *** 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) --- 65073,65079 ---- * 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) *************** look up both forms. *** 65104,65110 **** * Warith-conversion: Warning Options. (line 1757) * Warray-bounds: Warning Options. (line 1770) * Wassign-intercept: Objective-C and Objective-C++ Dialect Options. ! (line 170) * Wattribute-alias: Warning Options. (line 1831) * Wattribute-warning: Warning Options. (line 2840) * Wattributes: Warning Options. (line 2682) --- 65131,65137 ---- * Warith-conversion: Warning Options. (line 1757) * Warray-bounds: Warning Options. (line 1770) * Wassign-intercept: Objective-C and Objective-C++ Dialect Options. ! (line 173) * Wattribute-alias: Warning Options. (line 1831) * Wattribute-warning: Warning Options. (line 2840) * Wattributes: Warning Options. (line 2682) *************** look up both forms. *** 65172,65178 **** * Wduplicate-decl-specifier: Warning Options. (line 411) * Wduplicated-branches: Warning Options. (line 1882) * Wduplicated-cond: Warning Options. (line 1893) ! * weak_reference_mismatches: Darwin Options. (line 196) * Weffc++: C++ Dialect Options. (line 917) * Wempty-body: Warning Options. (line 2512) --- 65199,65205 ---- * Wduplicate-decl-specifier: Warning Options. (line 411) * Wduplicated-branches: Warning Options. (line 1882) * Wduplicated-cond: Warning Options. (line 1893) ! * weak_reference_mismatches: Darwin Options. (line 204) * Weffc++: C++ Dialect Options. (line 917) * Wempty-body: Warning Options. (line 2512) *************** look up both forms. *** 65217,65224 **** * Wframe-address: Warning Options. (line 1899) * Wframe-larger-than=: Warning Options. (line 2166) * Wfree-nonheap-object: Warning Options. (line 2183) ! * whatsloaded: Darwin Options. (line 196) ! * whyload: Darwin Options. (line 196) * Wif-not-aligned: Warning Options. (line 769) * Wignored-attributes: Warning Options. (line 784) * Wignored-qualifiers: Warning Options. (line 773) --- 65244,65251 ---- * Wframe-address: Warning Options. (line 1899) * Wframe-larger-than=: Warning Options. (line 2166) * Wfree-nonheap-object: Warning Options. (line 2183) ! * whatsloaded: Darwin Options. (line 204) ! * whyload: Darwin Options. (line 204) * Wif-not-aligned: Warning Options. (line 769) * Wignored-attributes: Warning Options. (line 784) * Wignored-qualifiers: Warning Options. (line 773) *************** look up both forms. *** 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) --- 65303,65309 ---- * 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) *************** look up both forms. *** 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) --- 65315,65321 ---- * 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) *************** look up both forms. *** 65348,65354 **** * Wno-array-bounds: Warning Options. (line 1770) * Wno-array-parameter: Warning Options. (line 1787) * Wno-assign-intercept: Objective-C and Objective-C++ Dialect Options. ! (line 170) * Wno-attribute-alias: Warning Options. (line 1831) * Wno-attribute-warning: Warning Options. (line 2840) * Wno-attributes: Warning Options. (line 2682) --- 65375,65381 ---- * Wno-array-bounds: Warning Options. (line 1770) * Wno-array-parameter: Warning Options. (line 1787) * Wno-assign-intercept: Objective-C and Objective-C++ Dialect Options. ! (line 173) * Wno-attribute-alias: Warning Options. (line 1831) * Wno-attribute-warning: Warning Options. (line 2840) * Wno-attributes: Warning Options. (line 2682) *************** look up both forms. *** 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) --- 65529,65535 ---- * 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) *************** look up both forms. *** 65558,65566 **** * Wno-pragmas: Warning Options. (line 1356) * Wno-prio-ctor-dtor: Warning Options. (line 1361) * Wno-property-assign-default: Objective-C and Objective-C++ Dialect Options. ! (line 174) * Wno-protocol: Objective-C and Objective-C++ Dialect Options. ! (line 178) * Wno-range-loop-construct: C++ Dialect Options. (line 861) * Wno-redundant-decls: Warning Options. (line 2936) --- 65585,65593 ---- * Wno-pragmas: Warning Options. (line 1356) * Wno-prio-ctor-dtor: Warning Options. (line 1361) * Wno-property-assign-default: Objective-C and Objective-C++ Dialect Options. ! (line 177) * Wno-protocol: Objective-C and Objective-C++ Dialect Options. ! (line 181) * Wno-range-loop-construct: C++ Dialect Options. (line 861) * Wno-redundant-decls: Warning Options. (line 2936) *************** look up both forms. *** 65577,65583 **** * Wno-return-type: Warning Options. (line 1040) * Wno-scalar-storage-order: Warning Options. (line 2559) * Wno-selector: Objective-C and Objective-C++ Dialect Options. ! (line 195) * Wno-sequence-point: Warning Options. (line 983) * Wno-shadow: Warning Options. (line 2098) * Wno-shadow-ivar: Warning Options. (line 2109) --- 65604,65610 ---- * Wno-return-type: Warning Options. (line 1040) * Wno-scalar-storage-order: Warning Options. (line 2559) * Wno-selector: Objective-C and Objective-C++ Dialect Options. ! (line 198) * Wno-sequence-point: Warning Options. (line 983) * Wno-shadow: Warning Options. (line 2098) * Wno-shadow-ivar: Warning Options. (line 2109) *************** look up both forms. *** 65604,65610 **** * Wno-strict-overflow: Warning Options. (line 1408) * Wno-strict-prototypes: Warning Options. (line 2714) * Wno-strict-selector-match: Objective-C and Objective-C++ Dialect Options. ! (line 207) * Wno-string-compare: Warning Options. (line 1456) * Wno-stringop-overflow: Warning Options. (line 1478) * Wno-stringop-overflow <1>: Warning Options. (line 1517) --- 65631,65637 ---- * Wno-strict-overflow: Warning Options. (line 1408) * Wno-strict-prototypes: Warning Options. (line 2714) * Wno-strict-selector-match: Objective-C and Objective-C++ Dialect Options. ! (line 210) * Wno-string-compare: Warning Options. (line 1456) * Wno-stringop-overflow: Warning Options. (line 1478) * Wno-stringop-overflow <1>: Warning Options. (line 1517) *************** look up both forms. *** 65644,65650 **** * Wno-tsan: Warning Options. (line 2260) * Wno-type-limits: Warning Options. (line 2268) * Wno-undeclared-selector: Objective-C and Objective-C++ Dialect Options. ! (line 215) * Wno-undef: Warning Options. (line 2301) * Wno-uninitialized: Warning Options. (line 1251) * Wno-unknown-pragmas: Warning Options. (line 1349) --- 65671,65677 ---- * Wno-tsan: Warning Options. (line 2260) * Wno-type-limits: Warning Options. (line 2268) * Wno-undeclared-selector: Objective-C and Objective-C++ Dialect Options. ! (line 218) * Wno-undef: Warning Options. (line 2301) * Wno-uninitialized: Warning Options. (line 1251) * Wno-unknown-pragmas: Warning Options. (line 1349) *************** look up both forms. *** 65696,65702 **** * Wnormalized=: Warning Options. (line 2797) * Wnull-dereference: Warning Options. (line 614) * Wobjc-root-class: Objective-C and Objective-C++ Dialect Options. ! (line 188) * Wodr: Warning Options. (line 2860) * Wold-style-cast: C++ Dialect Options. (line 966) --- 65723,65729 ---- * Wnormalized=: Warning Options. (line 2797) * Wnull-dereference: Warning Options. (line 614) * Wobjc-root-class: Objective-C and Objective-C++ Dialect Options. ! (line 191) * Wodr: Warning Options. (line 2860) * Wold-style-cast: C++ Dialect Options. (line 966) *************** look up both forms. *** 65732,65740 **** * Wpragmas: Warning Options. (line 1356) * Wprio-ctor-dtor: Warning Options. (line 1361) * Wproperty-assign-default: Objective-C and Objective-C++ Dialect Options. ! (line 174) * Wprotocol: Objective-C and Objective-C++ Dialect Options. ! (line 178) * Wrange-loop-construct: C++ Dialect Options. (line 861) * wrapper: Overall Options. (line 624) --- 65759,65767 ---- * Wpragmas: Warning Options. (line 1356) * Wprio-ctor-dtor: Warning Options. (line 1361) * Wproperty-assign-default: Objective-C and Objective-C++ Dialect Options. ! (line 177) * Wprotocol: Objective-C and Objective-C++ Dialect Options. ! (line 181) * Wrange-loop-construct: C++ Dialect Options. (line 861) * wrapper: Overall Options. (line 624) *************** look up both forms. *** 65752,65758 **** * Wreturn-type: Warning Options. (line 1040) * Wscalar-storage-order: Warning Options. (line 2559) * Wselector: Objective-C and Objective-C++ Dialect Options. ! (line 195) * Wsequence-point: Warning Options. (line 983) * Wshadow: Warning Options. (line 2098) * Wshadow-ivar: Warning Options. (line 2109) --- 65779,65785 ---- * Wreturn-type: Warning Options. (line 1040) * Wscalar-storage-order: Warning Options. (line 2559) * Wselector: Objective-C and Objective-C++ Dialect Options. ! (line 198) * Wsequence-point: Warning Options. (line 983) * Wshadow: Warning Options. (line 2098) * Wshadow-ivar: Warning Options. (line 2109) *************** look up both forms. *** 65782,65788 **** * Wstrict-overflow: Warning Options. (line 1408) * Wstrict-prototypes: Warning Options. (line 2714) * Wstrict-selector-match: Objective-C and Objective-C++ Dialect Options. ! (line 207) * Wstring-compare: Warning Options. (line 1456) * Wstringop-overflow: Warning Options. (line 1478) * Wstringop-overflow <1>: Warning Options. (line 1517) --- 65809,65815 ---- * Wstrict-overflow: Warning Options. (line 1408) * Wstrict-prototypes: Warning Options. (line 2714) * Wstrict-selector-match: Objective-C and Objective-C++ Dialect Options. ! (line 210) * Wstring-compare: Warning Options. (line 1456) * Wstringop-overflow: Warning Options. (line 1478) * Wstringop-overflow <1>: Warning Options. (line 1517) *************** look up both forms. *** 65823,65829 **** * Wtsan: Warning Options. (line 2260) * Wtype-limits: Warning Options. (line 2268) * Wundeclared-selector: Objective-C and Objective-C++ Dialect Options. ! (line 215) * Wundef: Warning Options. (line 2301) * Wuninitialized: Warning Options. (line 1251) * Wunknown-pragmas: Warning Options. (line 1349) --- 65850,65856 ---- * Wtsan: Warning Options. (line 2260) * Wtype-limits: Warning Options. (line 2268) * Wundeclared-selector: Objective-C and Objective-C++ Dialect Options. ! (line 218) * Wundef: Warning Options. (line 2301) * Wuninitialized: Warning Options. (line 1251) * Wunknown-pragmas: Warning Options. (line 1349) *************** Keyword Index *** 66051,66057 **** * __builtin_cpu_supports: Basic PowerPC Built-in Functions Available on all Configurations. (line 70) * __builtin_cpu_supports <1>: x86 Built-in Functions. ! (line 249) * __builtin_ctz: Other Builtins. (line 949) * __builtin_ctzl: Other Builtins. (line 971) * __builtin_ctzll: Other Builtins. (line 994) --- 66078,66084 ---- * __builtin_cpu_supports: Basic PowerPC Built-in Functions Available on all Configurations. (line 70) * __builtin_cpu_supports <1>: x86 Built-in Functions. ! (line 252) * __builtin_ctz: Other Builtins. (line 949) * __builtin_ctzl: Other Builtins. (line 971) * __builtin_ctzll: Other Builtins. (line 994) *************** Keyword Index *** 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. --- 66374,66380 ---- * __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. *************** Keyword Index *** 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) --- 66400,66408 ---- * __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) *************** Keyword Index *** 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) --- 66812,66824 ---- * 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) *************** Keyword Index *** 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. --- 66880,66886 ---- (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. *************** Keyword Index *** 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. --- 67170,67176 ---- * 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. *************** Keyword Index *** 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) --- 67317,67325 ---- * 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) *************** Keyword Index *** 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. --- 67436,67442 ---- * 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. *************** Keyword Index *** 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) --- 67478,67484 ---- (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) *************** Keyword Index *** 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. --- 67541,67547 ---- * 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. *************** Keyword Index *** 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. --- 67689,67697 ---- * 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. *************** Keyword Index *** 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. --- 67855,67864 ---- * 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. *************** Keyword Index *** 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. --- 67970,67976 ---- * 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. *************** Keyword Index *** 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. --- 67988,67994 ---- * 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. *************** Keyword Index *** 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) --- 68013,68019 ---- * 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) *************** Keyword Index *** 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. --- 68034,68040 ---- * 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. *************** Keyword Index *** 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) --- 68102,68108 ---- * 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) *************** Keyword Index *** 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) --- 68667,68673 ---- * 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) *************** Keyword Index *** 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: --- 68694,69131 ----  Tag Table: Node: Top2135 ! Node: G++ and GCC4093 ! Node: Standards6153 ! Node: Invoking GCC20209 ! Node: Option Summary25436 ! Node: Overall Options82552 ! Node: Invoking G++110132 ! Node: C Dialect Options111655 ! Node: C++ Dialect Options131313 ! Node: Objective-C and Objective-C++ Dialect Options189333 ! Node: Diagnostic Message Formatting Options201238 ! Node: Warning Options230023 ! Ref: Wtrigraphs331531 ! Node: Static Analyzer Options369118 ! Node: Debugging Options385899 ! Node: Optimize Options405847 ! Ref: Type-punning476186 ! Node: Instrumentation Options591592 ! Node: Preprocessor Options635239 ! Ref: dashMF640086 ! Ref: fdollars-in-identifiers644748 ! Node: Assembler Options658073 ! Node: Link Options658764 ! Ref: Link Options-Footnote-1675640 ! Node: Directory Options675976 ! Node: Code Gen Options684379 ! Node: Developer Options712891 ! Node: Submodel Options754276 ! Node: AArch64 Options756086 ! Ref: aarch64-feature-modifiers771460 ! Node: Adapteva Epiphany Options776696 ! Node: AMD GCN Options782648 ! Node: ARC Options784211 ! Node: ARM Options805437 ! Node: AVR Options846623 ! Node: Blackfin Options873145 ! Node: C6X Options881037 ! Node: CRIS Options882580 ! Node: CR16 Options885764 ! Node: C-SKY Options886676 ! Node: Darwin Options892403 ! Node: DEC Alpha Options900183 ! Node: eBPF Options911799 ! Node: FR30 Options913081 ! Node: FT32 Options913641 ! Node: FRV Options914587 ! Node: GNU/Linux Options921351 ! Node: H8/300 Options922732 ! Node: HPPA Options924184 ! Node: IA-64 Options933716 ! Node: LM32 Options941844 ! Node: M32C Options942367 ! Node: M32R/D Options943640 ! Node: M680x0 Options947185 ! Node: MCore Options961260 ! Node: MeP Options962762 ! Node: MicroBlaze Options966722 ! Node: MIPS Options969812 ! Node: MMIX Options1006351 ! Node: MN10300 Options1008828 ! Node: Moxie Options1011371 ! Node: MSP430 Options1011858 ! Node: NDS32 Options1019619 ! Node: Nios II Options1021789 ! Node: Nvidia PTX Options1035005 ! Node: OpenRISC Options1037514 ! Node: PDP-11 Options1040034 ! Node: picoChip Options1041283 ! Node: PowerPC Options1043421 ! Node: PRU Options1043641 ! Node: RISC-V Options1045850 ! Node: RL78 Options1053502 ! Node: RS/6000 and PowerPC Options1057277 ! Node: RX Options1098793 ! Node: S/390 and zSeries Options1107395 ! Node: Score Options1118195 ! Node: SH Options1119044 ! Node: Solaris 2 Options1134184 ! Node: SPARC Options1135422 ! Node: System V Options1151074 ! Node: TILE-Gx Options1151902 ! Node: TILEPro Options1152920 ! Node: V850 Options1153424 ! Node: VAX Options1160111 ! Node: Visium Options1160649 ! Node: VMS Options1162957 ! Node: VxWorks Options1163773 ! Node: x86 Options1164925 ! Node: x86 Windows Options1232330 ! Node: Xstormy16 Options1235135 ! Node: Xtensa Options1235429 ! Node: zSeries Options1241565 ! Node: Spec Files1241761 ! Node: Environment Variables1267840 ! Node: Precompiled Headers1277273 ! Node: C++ Modules1283482 ! Ref: C++ Modules-Footnote-11289621 ! Node: C++ Module Mapper1289874 ! Node: C++ Module Preprocessing1295027 ! Node: C++ Compiled Module Interface1296856 ! Ref: C++ Compiled Module Interface-Footnote-11300240 ! Ref: C++ Compiled Module Interface-Footnote-21300329 ! Node: C Implementation1300385 ! Node: Translation implementation1302075 ! Node: Environment implementation1302666 ! Node: Identifiers implementation1303220 ! Node: Characters implementation1304306 ! Node: Integers implementation1307956 ! Node: Floating point implementation1310005 ! Node: Arrays and pointers implementation1313068 ! Ref: Arrays and pointers implementation-Footnote-11314528 ! Node: Hints implementation1314654 ! Node: Structures unions enumerations and bit-fields implementation1316149 ! Node: Qualifiers implementation1318373 ! Node: Declarators implementation1320434 ! Node: Statements implementation1320775 ! Node: Preprocessing directives implementation1321101 ! Node: Library functions implementation1323422 ! Node: Architecture implementation1324071 ! Node: Locale-specific behavior implementation1325716 ! Node: C++ Implementation1326021 ! Node: Conditionally-supported behavior1327304 ! Node: Exception handling1327921 ! Node: C Extensions1328388 ! Node: Statement Exprs1333611 ! Node: Local Labels1338983 ! Node: Labels as Values1341956 ! Ref: Labels as Values-Footnote-11344483 ! Node: Nested Functions1344668 ! Node: Nonlocal Gotos1348622 ! Node: Constructing Calls1350888 ! Node: Typeof1355600 ! Node: Conditionals1359529 ! Node: __int1281360418 ! Node: Long Long1360943 ! Node: Complex1362434 ! Node: Floating Types1365202 ! Node: Half-Precision1368669 ! Node: Decimal Float1371080 ! Node: Hex Floats1372934 ! Node: Fixed-Point1374008 ! Node: Named Address Spaces1377266 ! Ref: AVR Named Address Spaces1377947 ! Node: Zero Length1384559 ! Node: Empty Structures1388740 ! Node: Variable Length1389146 ! Node: Variadic Macros1391864 ! Node: Escaped Newlines1394242 ! Node: Subscripting1395103 ! Node: Pointer Arith1395828 ! Node: Variadic Pointer Args1396405 ! Node: Pointers to Arrays1397130 ! Node: Initializers1397883 ! Node: Compound Literals1398384 ! Node: Designated Inits1401951 ! Node: Case Ranges1405875 ! Node: Cast to Union1406556 ! Node: Mixed Labels and Declarations1408290 ! Node: Function Attributes1408927 ! Node: Common Function Attributes1413394 ! Ref: Common Function Attributes-Footnote-11487269 ! Node: AArch64 Function Attributes1487586 ! Node: AMD GCN Function Attributes1493780 ! Node: ARC Function Attributes1496833 ! Node: ARM Function Attributes1499770 ! Node: AVR Function Attributes1504909 ! Node: Blackfin Function Attributes1509444 ! Node: BPF Function Attributes1511941 ! Node: CR16 Function Attributes1512529 ! Node: C-SKY Function Attributes1513048 ! Node: Epiphany Function Attributes1514347 ! Node: H8/300 Function Attributes1517102 ! Node: IA-64 Function Attributes1518300 ! Node: M32C Function Attributes1519342 ! Node: M32R/D Function Attributes1521680 ! Node: m68k Function Attributes1523154 ! Node: MCORE Function Attributes1524098 ! Node: MeP Function Attributes1524909 ! Node: MicroBlaze Function Attributes1526210 ! Node: Microsoft Windows Function Attributes1527717 ! Node: MIPS Function Attributes1532286 ! Node: MSP430 Function Attributes1537904 ! Node: NDS32 Function Attributes1541983 ! Node: Nios II Function Attributes1544407 ! Node: Nvidia PTX Function Attributes1545704 ! Node: PowerPC Function Attributes1546319 ! Node: RISC-V Function Attributes1553093 ! Node: RL78 Function Attributes1554509 ! Node: RX Function Attributes1555748 ! Node: S/390 Function Attributes1558295 ! Node: SH Function Attributes1560123 ! Node: Symbian OS Function Attributes1563551 ! Node: V850 Function Attributes1563887 ! Node: Visium Function Attributes1564432 ! Node: x86 Function Attributes1564960 ! Node: Xstormy16 Function Attributes1588762 ! Node: Variable Attributes1589269 ! Node: Common Variable Attributes1590802 ! Node: ARC Variable Attributes1611267 ! Node: AVR Variable Attributes1611649 ! Node: Blackfin Variable Attributes1616811 ! Node: H8/300 Variable Attributes1617669 ! Node: IA-64 Variable Attributes1618742 ! Node: M32R/D Variable Attributes1619493 ! Node: MeP Variable Attributes1620276 ! Node: Microsoft Windows Variable Attributes1622369 ! Node: MSP430 Variable Attributes1624822 ! Node: Nvidia PTX Variable Attributes1626036 ! Node: PowerPC Variable Attributes1626653 ! Node: RL78 Variable Attributes1627210 ! Node: V850 Variable Attributes1627629 ! Node: x86 Variable Attributes1628262 ! Node: Xstormy16 Variable Attributes1629318 ! Node: Type Attributes1629888 ! Node: Common Type Attributes1631552 ! Node: ARC Type Attributes1653309 ! Node: ARM Type Attributes1653781 ! Node: MeP Type Attributes1654563 ! Node: PowerPC Type Attributes1654965 ! Node: x86 Type Attributes1655954 ! Node: Label Attributes1656946 ! Node: Enumerator Attributes1658973 ! Node: Statement Attributes1660292 ! Node: Attribute Syntax1661775 ! Node: Function Prototypes1673033 ! Node: C++ Comments1674813 ! Node: Dollar Signs1675332 ! Node: Character Escapes1675797 ! Node: Alignment1676081 ! Node: Inline1677734 ! Node: Volatiles1682551 ! Node: Using Assembly Language with C1685450 ! Node: Basic Asm1686687 ! Node: Extended Asm1692137 ! Ref: Volatile1696251 ! Ref: AssemblerTemplate1700364 ! Ref: OutputOperands1704604 ! Ref: FlagOutputOperands1711567 ! Ref: InputOperands1714514 ! Ref: Clobbers and Scratch Registers1718782 ! Ref: GotoLabels1727423 ! Ref: x86Operandmodifiers1731046 ! Ref: x86floatingpointasmoperands1735862 ! Ref: msp430Operandmodifiers1739191 ! Node: Constraints1740849 ! Node: Simple Constraints1741955 ! Node: Multi-Alternative1749269 ! Node: Modifiers1750944 ! Node: Machine Constraints1753743 ! Node: Asm Labels1809968 ! Node: Explicit Register Variables1811588 ! Ref: Explicit Reg Vars1811802 ! Node: Global Register Variables1812411 ! Ref: Global Reg Vars1812619 ! Node: Local Register Variables1817401 ! Ref: Local Reg Vars1817621 ! Node: Size of an asm1821249 ! Node: Alternate Keywords1822727 ! Node: Incomplete Enums1824232 ! Node: Function Names1824989 ! Node: Return Address1826893 ! Node: Vector Extensions1831480 ! Node: Offsetof1841245 ! Node: __sync Builtins1842078 ! Node: __atomic Builtins1848521 ! Node: Integer Overflow Builtins1862146 ! Node: x86 specific memory model extensions for transactional memory1868629 ! Node: Object Size Checking1869895 ! Node: Other Builtins1876151 ! Node: Target Builtins1927799 ! Node: AArch64 Built-in Functions1929574 ! Node: Alpha Built-in Functions1930262 ! Node: Altera Nios II Built-in Functions1933310 ! Node: ARC Built-in Functions1937679 ! Node: ARC SIMD Built-in Functions1942891 ! Node: ARM iWMMXt Built-in Functions1951787 ! Node: ARM C Language Extensions (ACLE)1958783 ! Node: ARM Floating Point Status and Control Intrinsics1960060 ! Node: ARM ARMv8-M Security Extensions1960545 ! Node: AVR Built-in Functions1961825 ! Node: Blackfin Built-in Functions1965586 ! Node: BPF Built-in Functions1966204 ! Node: FR-V Built-in Functions1967104 ! Node: Argument Types1967967 ! Node: Directly-mapped Integer Functions1969721 ! Node: Directly-mapped Media Functions1970805 ! Node: Raw read/write Functions1979011 ! Node: Other Built-in Functions1979919 ! Node: MIPS DSP Built-in Functions1981105 ! Node: MIPS Paired-Single Support1993602 ! Node: MIPS Loongson Built-in Functions1995101 ! Node: Paired-Single Arithmetic2001623 ! Node: Paired-Single Built-in Functions2002571 ! Node: MIPS-3D Built-in Functions2005238 ! Node: MIPS SIMD Architecture (MSA) Support2010632 ! Node: MIPS SIMD Architecture Built-in Functions2013472 ! Node: Other MIPS Built-in Functions2040326 ! Node: MSP430 Built-in Functions2041335 ! Node: NDS32 Built-in Functions2042736 ! Node: picoChip Built-in Functions2044029 ! Node: Basic PowerPC Built-in Functions2045378 ! Node: Basic PowerPC Built-in Functions Available on all Configurations2046236 ! Node: Basic PowerPC Built-in Functions Available on ISA 2.052054745 ! Node: Basic PowerPC Built-in Functions Available on ISA 2.062059580 ! Node: Basic PowerPC Built-in Functions Available on ISA 2.072061660 ! Node: Basic PowerPC Built-in Functions Available on ISA 3.02062514 ! Node: Basic PowerPC Built-in Functions Available on ISA 3.12069492 ! Node: PowerPC AltiVec/VSX Built-in Functions2072705 ! Node: PowerPC AltiVec Built-in Functions on ISA 2.052080774 ! Node: PowerPC AltiVec Built-in Functions Available on ISA 2.062106174 ! Node: PowerPC AltiVec Built-in Functions Available on ISA 2.072113240 ! Node: PowerPC AltiVec Built-in Functions Available on ISA 3.02123050 ! Node: PowerPC AltiVec Built-in Functions Available on ISA 3.12138767 ! Node: PowerPC Hardware Transactional Memory Built-in Functions2171990 ! Node: PowerPC Atomic Memory Operation Functions2180505 ! Node: PowerPC Matrix-Multiply Assist Built-in Functions2183068 ! Node: PRU Built-in Functions2189193 ! Node: RISC-V Built-in Functions2190381 ! Node: RX Built-in Functions2190792 ! Node: S/390 System z Built-in Functions2194794 ! Node: SH Built-in Functions2200024 ! Node: SPARC VIS Built-in Functions2201752 ! Node: TI C6X Built-in Functions2210283 ! Node: TILE-Gx Built-in Functions2211314 ! Node: TILEPro Built-in Functions2212433 ! Node: x86 Built-in Functions2213533 ! Node: x86 transactional memory intrinsics2277668 ! Node: x86 control-flow protection intrinsics2280935 ! Node: Target Format Checks2282706 ! Node: Solaris Format Checks2283138 ! Node: Darwin Format Checks2283564 ! Node: Pragmas2284527 ! Node: AArch64 Pragmas2285468 ! Node: ARM Pragmas2285925 ! Node: M32C Pragmas2286552 ! Node: MeP Pragmas2287624 ! Node: PRU Pragmas2289676 ! Node: RS/6000 and PowerPC Pragmas2290254 ! Node: S/390 Pragmas2290994 ! Node: Darwin Pragmas2291560 ! Node: Solaris Pragmas2292613 ! Node: Symbol-Renaming Pragmas2293777 ! Node: Structure-Layout Pragmas2295414 ! Node: Weak Pragmas2297694 ! Node: Diagnostic Pragmas2298429 ! Node: Visibility Pragmas2302620 ! Node: Push/Pop Macro Pragmas2303305 ! Node: Function Specific Option Pragmas2304278 ! Node: Loop-Specific Pragmas2306244 ! Node: Unnamed Fields2307844 ! Node: Thread-Local2310041 ! Node: C99 Thread-Local Edits2312147 ! Node: C++98 Thread-Local Edits2314145 ! Node: Binary constants2317590 ! Node: C++ Extensions2318261 ! Node: C++ Volatiles2319891 ! Node: Restricted Pointers2322239 ! Node: Vague Linkage2323830 ! Node: C++ Interface2327453 ! Ref: C++ Interface-Footnote-12331250 ! Node: Template Instantiation2331388 ! Node: Bound member functions2337479 ! Node: C++ Attributes2339011 ! Node: Function Multiversioning2343083 ! Node: Type Traits2344890 ! Node: C++ Concepts2351840 ! Node: Deprecated Features2353346 ! Node: Backwards Compatibility2355171 ! Node: Objective-C2356243 ! Node: GNU Objective-C runtime API2356850 ! Node: Modern GNU Objective-C runtime API2357857 ! Node: Traditional GNU Objective-C runtime API2360293 ! Node: Executing code before main2361020 ! Node: What you can and what you cannot do in +load2363764 ! Node: Type encoding2366134 ! Node: Legacy type encoding2371275 ! Node: @encode2372365 ! Node: Method signatures2372910 ! Node: Garbage Collection2374902 ! Node: Constant string objects2377592 ! Node: compatibility_alias2380101 ! Node: Exceptions2380826 ! Node: Synchronization2383536 ! Node: Fast enumeration2384720 ! Node: Using fast enumeration2385032 ! Node: c99-like fast enumeration syntax2386243 ! Node: Fast enumeration details2386946 ! Node: Fast enumeration protocol2389286 ! Node: Messaging with the GNU Objective-C runtime2392438 ! Node: Dynamically registering methods2393810 ! Node: Forwarding hook2395501 ! Node: Compatibility2398541 ! Node: Gcov2405097 ! Node: Gcov Intro2405632 ! Node: Invoking Gcov2408350 ! Node: Gcov and Optimization2431216 ! Node: Gcov Data Files2434959 ! Node: Cross-profiling2436368 ! Node: Gcov-tool2438222 ! Node: Gcov-tool Intro2438647 ! Node: Invoking Gcov-tool2440617 ! Node: Gcov-dump2443195 ! Node: Gcov-dump Intro2443518 ! Node: Invoking Gcov-dump2443785 ! Node: lto-dump2444442 ! Node: lto-dump Intro2444741 ! Node: Invoking lto-dump2444991 ! Node: Trouble2446087 ! Node: Actual Bugs2447504 ! Node: Interoperation2447951 ! Node: Incompatibilities2454842 ! Node: Fixed Headers2462994 ! Node: Standard Libraries2464652 ! Node: Disappointments2466024 ! Node: C++ Misunderstandings2470383 ! Node: Static Definitions2471194 ! Node: Name lookup2472247 ! Ref: Name lookup-Footnote-12477028 ! Node: Temporaries2477217 ! Node: Copy Assignment2479193 ! Node: Non-bugs2481028 ! Node: Warnings and Errors2491534 ! Node: Bugs2493296 ! Node: Bug Criteria2493763 ! Node: Bug Reporting2495973 ! Node: Service2496191 ! Node: Contributing2497011 ! Node: Funding2497752 ! Node: GNU Project2500242 ! Node: Copying2500888 ! Node: GNU Free Documentation License2538396 ! Node: Contributors2563514 ! Node: Option Index2604487 ! Node: Keyword Index2894856  End Tag Table diff -Nrcpad gcc-11.4.0/gcc/doc/gccinstall.info gcc-11.5.0/gcc/doc/gccinstall.info *** gcc-11.4.0/gcc/doc/gccinstall.info Mon May 29 09:02:37 2023 --- gcc-11.5.0/gcc/doc/gccinstall.info Fri Jul 19 06:06:44 2024 *************** *** 1,4 **** ! This is gccinstall.info, produced by makeinfo version 6.8 from install.texi. Copyright (C) 1988-2021 Free Software Foundation, Inc. --- 1,4 ---- ! This is gccinstall.info, produced by makeinfo version 6.5 from install.texi. Copyright (C) 1988-2021 Free Software Foundation, Inc. *************** Perl version between 5.6.1 and 5.6.24 *** 240,245 **** --- 240,248 ---- Used by 'automake'. + If available, enables parallel testing of 'libgomp' in case that + 'flock' is not available. + Several support libraries are necessary to build GCC, some are required, others optional. While any sufficiently new version of required tools usually work, library requirements are generally *************** Concept Index *** 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. --- 4880,4886 ---- * 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. *************** 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 1761) * Installing GCC: Binaries: Binaries. (line 6) * Installing GCC: Building: Building. (line 6) * Installing GCC: Configuration: Configuration. (line 6) --- 4890,4896 ---- * 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) *************** 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 1765) * Testing: Testing. (line 6) * Testsuite: Testing. (line 6) --- 4900,4906 ---- * 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) *************** Node: Top1696 *** 4908,5015 **** Node: Installing GCC2254 Node: Prerequisites3888 Ref: GNAT-prerequisite5954 ! Node: Downloading the source15566 ! Node: Configuration17237 ! Ref: with-gnu-as33325 ! Ref: with-as34220 ! Ref: with-gnu-ld35629 ! Ref: WithAixSoname60535 ! Ref: AixLdCommand61196 ! Node: Building102949 ! Node: Testing119072 ! Node: Final install127020 ! Node: Binaries132320 ! Node: Specific133427 ! Ref: aarch64-x-x133934 ! Ref: alpha-x-x135954 ! Ref: amd64-x-solaris2136168 ! Ref: amdgcn-x-amdhsa136250 ! Ref: arc-x-elf32136776 ! Ref: arc-linux-uclibc136952 ! Ref: arm-x-eabi137093 ! Ref: avr137346 ! Ref: bfin137927 ! Ref: cr16138190 ! Ref: cris138606 ! Ref: dos138932 ! Ref: epiphany-x-elf139257 ! Ref: x-x-freebsd139362 ! Ref: ft32-x-elf141162 ! Ref: h8300-hms141260 ! Ref: hppa-hp-hpux141612 ! Ref: hppa-hp-hpux10143984 ! Ref: hppa-hp-hpux11144397 ! Ref: x-x-linux-gnu149799 ! Ref: ix86-x-linux149992 ! Ref: ix86-x-solaris2150305 ! Ref: ia64-x-linux151381 ! Ref: ia64-x-hpux152151 ! Ref: x-ibm-aix152706 ! Ref: TransferAixShobj156368 ! Ref: iq2000-x-elf160178 ! Ref: lm32-x-elf160318 ! Ref: lm32-x-uclinux160422 ! Ref: m32c-x-elf160550 ! Ref: m32r-x-elf160652 ! Ref: m68k-x-x160754 ! Ref: m68k-x-uclinux161792 ! Ref: microblaze-x-elf162037 ! Ref: mips-x-x162156 ! Ref: moxie-x-elf164066 ! Ref: msp430-x-elf164113 ! Ref: nds32le-x-elf164670 ! Ref: nds32be-x-elf164742 ! Ref: nvptx-x-none164811 ! Ref: or1k-x-elf165374 ! Ref: or1k-x-linux165505 ! Ref: powerpc-x-x165586 ! Ref: powerpc-x-darwin165777 ! Ref: powerpc-x-elf166271 ! Ref: powerpc-x-linux-gnu166356 ! Ref: powerpc-x-netbsd166451 ! Ref: powerpc-x-eabisim166539 ! Ref: powerpc-x-eabi166665 ! Ref: powerpcle-x-elf166741 ! Ref: powerpcle-x-eabisim166833 ! Ref: powerpcle-x-eabi166966 ! Ref: rl78-x-elf167049 ! Ref: riscv32-x-elf167155 ! Ref: riscv32-x-linux167344 ! Ref: riscv64-x-elf167501 ! Ref: riscv64-x-linux167690 ! Ref: rx-x-elf167847 ! Ref: s390-x-linux167893 ! Ref: s390x-x-linux167965 ! Ref: s390x-ibm-tpf168052 ! Ref: x-x-solaris2168183 ! Ref: sparc-x-x171290 ! Ref: sparc-sun-solaris2171792 ! Ref: sparc-x-linux172935 ! Ref: sparc64-x-solaris2172966 ! Ref: sparcv9-x-solaris2173684 ! Ref: c6x-x-x173771 ! Ref: tilegx-*-linux173863 ! Ref: tilegxbe-*-linux174005 ! Ref: tilepro-*-linux174148 ! Ref: visium-x-elf174269 ! Ref: x-x-vxworks174377 ! Ref: x86-64-x-x175900 ! Ref: x86-64-x-solaris2176228 ! Ref: xtensa-x-elf176878 ! Ref: xtensa-x-linux177549 ! Ref: windows177890 ! Ref: x-x-cygwin179731 ! Ref: x-x-mingw32180284 ! Ref: older180510 ! Ref: elf182627 ! Node: Old182885 ! Node: Configurations186018 ! Node: GNU Free Documentation License189556 ! Node: Concept Index214684  End Tag Table - -  - Local Variables: - coding: utf-8 - End: --- 4911,5013 ---- Node: Installing GCC2254 Node: Prerequisites3888 Ref: GNAT-prerequisite5954 ! Node: Downloading the source15668 ! Node: Configuration17339 ! Ref: with-gnu-as33427 ! Ref: with-as34322 ! Ref: with-gnu-ld35731 ! Ref: WithAixSoname60637 ! Ref: AixLdCommand61298 ! Node: Building103051 ! Node: Testing119174 ! Node: Final install127122 ! Node: Binaries132422 ! Node: Specific133529 ! Ref: aarch64-x-x134036 ! Ref: alpha-x-x136056 ! Ref: amd64-x-solaris2136270 ! Ref: amdgcn-x-amdhsa136352 ! Ref: arc-x-elf32136878 ! Ref: arc-linux-uclibc137054 ! Ref: arm-x-eabi137195 ! Ref: avr137448 ! Ref: bfin138029 ! Ref: cr16138292 ! Ref: cris138708 ! Ref: dos139034 ! Ref: epiphany-x-elf139359 ! Ref: x-x-freebsd139464 ! Ref: ft32-x-elf141264 ! Ref: h8300-hms141362 ! Ref: hppa-hp-hpux141714 ! Ref: hppa-hp-hpux10144086 ! Ref: hppa-hp-hpux11144499 ! Ref: x-x-linux-gnu149901 ! Ref: ix86-x-linux150094 ! Ref: ix86-x-solaris2150407 ! Ref: ia64-x-linux151483 ! Ref: ia64-x-hpux152253 ! Ref: x-ibm-aix152808 ! Ref: TransferAixShobj156470 ! Ref: iq2000-x-elf160280 ! Ref: lm32-x-elf160420 ! Ref: lm32-x-uclinux160524 ! Ref: m32c-x-elf160652 ! Ref: m32r-x-elf160754 ! Ref: m68k-x-x160856 ! Ref: m68k-x-uclinux161894 ! Ref: microblaze-x-elf162139 ! Ref: mips-x-x162258 ! Ref: moxie-x-elf164168 ! Ref: msp430-x-elf164215 ! Ref: nds32le-x-elf164772 ! Ref: nds32be-x-elf164844 ! Ref: nvptx-x-none164913 ! Ref: or1k-x-elf165476 ! Ref: or1k-x-linux165607 ! Ref: powerpc-x-x165688 ! Ref: powerpc-x-darwin165879 ! Ref: powerpc-x-elf166373 ! Ref: powerpc-x-linux-gnu166458 ! Ref: powerpc-x-netbsd166553 ! Ref: powerpc-x-eabisim166641 ! Ref: powerpc-x-eabi166767 ! Ref: powerpcle-x-elf166843 ! Ref: powerpcle-x-eabisim166935 ! Ref: powerpcle-x-eabi167068 ! Ref: rl78-x-elf167151 ! Ref: riscv32-x-elf167257 ! Ref: riscv32-x-linux167446 ! Ref: riscv64-x-elf167603 ! Ref: riscv64-x-linux167792 ! Ref: rx-x-elf167949 ! Ref: s390-x-linux167995 ! Ref: s390x-x-linux168067 ! Ref: s390x-ibm-tpf168154 ! Ref: x-x-solaris2168285 ! Ref: sparc-x-x171392 ! Ref: sparc-sun-solaris2171894 ! Ref: sparc-x-linux173037 ! Ref: sparc64-x-solaris2173068 ! Ref: sparcv9-x-solaris2173786 ! Ref: c6x-x-x173873 ! Ref: tilegx-*-linux173965 ! Ref: tilegxbe-*-linux174107 ! Ref: tilepro-*-linux174250 ! Ref: visium-x-elf174371 ! Ref: x-x-vxworks174479 ! Ref: x86-64-x-x176002 ! Ref: x86-64-x-solaris2176330 ! Ref: xtensa-x-elf176980 ! Ref: xtensa-x-linux177651 ! Ref: windows177992 ! Ref: x-x-cygwin179833 ! Ref: x-x-mingw32180386 ! Ref: older180612 ! Ref: elf182729 ! Node: Old182987 ! Node: Configurations186120 ! Node: GNU Free Documentation License189658 ! Node: Concept Index214786  End Tag Table diff -Nrcpad gcc-11.4.0/gcc/doc/gccint.info gcc-11.5.0/gcc/doc/gccint.info *** gcc-11.4.0/gcc/doc/gccint.info Mon May 29 09:02:47 2023 --- gcc-11.5.0/gcc/doc/gccint.info Fri Jul 19 06:06:49 2024 *************** *** 1,4 **** ! This is gccint.info, produced by makeinfo version 6.8 from gccint.texi. Copyright (C) 1988-2021 Free Software Foundation, Inc. --- 1,4 ---- ! This is gccint.info, produced by makeinfo version 6.5 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, Up: (dir) Introduction ************ --- 47,53 ---- development.  ! File: gccint.info, Node: Top, Next: Contributing 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.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 --- 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.5.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 *************** kinds of expressions: *** 10714,10720 **** vector. For example { 0, 1 } could be seen as two patterns with one element each or one pattern with two elements (BASE0 and BASE1). The canonical encoding is always the one with the fewest ! patterns or (if both encodings have the same number of petterns) the one with the fewest encoded elements. 'vector_cst_encoding_nelts (V)' gives the total number of encoded --- 10714,10720 ---- vector. For example { 0, 1 } could be seen as two patterns with one element each or one pattern with two elements (BASE0 and BASE1). The canonical encoding is always the one with the fewest ! patterns or (if both encodings have the same number of patterns) the one with the fewest encoded elements. 'vector_cst_encoding_nelts (V)' gives the total number of encoded *************** 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 *************** The simplest RTL expressions are those t *** 17578,17584 **** vector. For example { 0, 1 } could be seen as two patterns with one element each or one pattern with two elements (BASE0 and BASE1). The canonical encoding is always the one with the fewest ! patterns or (if both encodings have the same number of petterns) the one with the fewest encoded elements. 'const_vector_encoding_nelts (V)' gives the total number of encoded --- 17578,17584 ---- vector. For example { 0, 1 } could be seen as two patterns with one element each or one pattern with two elements (BASE0 and BASE1). The canonical encoding is always the one with the fewest ! patterns or (if both encodings have the same number of patterns) the one with the fewest encoded elements. 'const_vector_encoding_nelts (V)' gives the total number of encoded *************** expression simplified to a simple operan *** 46501,46508 **** which moves the outer 'plus' operation to the inner arms of the 'vec_cond' expression but only if the actual plus operations both ! simplify. Note this is currently only supported for code generation ! targeting 'GIMPLE'. As intermediate conversions are often optional there is a way to avoid the need to repeat patterns both with and without such conversions. --- 46501,46509 ---- which moves the outer 'plus' operation to the inner arms of the 'vec_cond' expression but only if the actual plus operations both ! simplify. Note that on 'GENERIC' a simple operand means that the result ! satisfies '!EXPR_P' which can be limiting if the operation itself ! simplifies but the remaining operand is an (unrelated) expression. As intermediate conversions are often optional there is a way to avoid the need to repeat patterns both with and without such conversions. *************** alphabetical order. *** 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. --- 48981,48987 ---- * 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. *************** alphabetical order. *** 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. --- 49024,49030 ---- 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. *************** alphabetical order. *** 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. --- 49283,49295 ---- * 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. *************** alphabetical order. *** 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. --- 49481,49487 ---- * 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. *************** alphabetical order. *** 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, --- 49495,49501 ---- * 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, *************** alphabetical order. *** 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, --- 49516,49522 ---- * 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, *************** contributions to testing: *** 50012,50018 **** * Robert A. French ! * Jörgen Freyh * Mark K. Gardner --- 50013,50019 ---- * Robert A. French ! * Jo"rgen Freyh * Mark K. Gardner *************** Concept Index *** 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. --- 50235,50277 ---- * __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. *************** Concept Index *** 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. --- 50279,50341 ---- * __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. *************** Concept Index *** 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) --- 50534,50580 ---- * __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) *************** Concept Index *** 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. --- 50583,50589 ---- * __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. *************** Concept Index *** 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. --- 50591,50605 ---- * __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. *************** Concept Index *** 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. --- 50607,50615 ---- * __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. *************** Concept Index *** 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. --- 50918,52170 ---- * __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. *************** Concept Index *** 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. --- 52190,52210 ---- * __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. *************** Concept Index *** 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. --- 52225,52231 ---- * __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. *************** Concept Index *** 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. --- 52233,52247 ---- * __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. *************** Concept Index *** 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. --- 52249,52257 ---- * __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. *************** Concept Index *** 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. --- 52259,52279 ---- * __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. *************** Concept Index *** 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. --- 52285,52331 ---- * __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. *************** Concept Index *** 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. --- 52357,53359 ---- * __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. *************** Concept Index *** 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. --- 53385,53405 ---- * __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. *************** Concept Index *** 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) --- 53413,53513 ---- * __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) *************** 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 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) --- 53678,53684 ---- * 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) *************** Concept Index *** 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) --- 56504,56510 ---- (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) *************** Concept Index *** 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) --- 57619,57625 ---- * 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) *************** Concept Index *** 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: --- 57867,58325 ----  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 Analyzer2034053 ! Node: Analyzer Internals2034318 ! Node: Debugging the Analyzer2050205 ! Node: User Experience Guidelines2052642 ! Node: Guidelines for Diagnostics2053578 ! Ref: input_location_example2061753 ! Node: Guidelines for Options2071438 ! Node: Funding2071615 ! Node: GNU Project2074122 ! Node: Copying2074771 ! Node: GNU Free Documentation License2112282 ! Node: Contributors2137403 ! Node: Option Index2178379 ! Node: Concept Index2179256  End Tag Table diff -Nrcpad gcc-11.4.0/gcc/doc/gcov-dump.1 gcc-11.5.0/gcc/doc/gcov-dump.1 *** gcc-11.4.0/gcc/doc/gcov-dump.1 Mon May 29 08:50:36 2023 --- gcc-11.5.0/gcc/doc/gcov-dump.1 Fri Jul 19 05:55:07 2024 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 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. --- 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. *************** *** 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 --- 129,135 ---- .\" ======================================================================== .\" .IX Title "GCOV-DUMP 1" ! .TH GCOV-DUMP 1 "2024-07-19" "gcc-11.5.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 *** 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 --- 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 diff -Nrcpad gcc-11.4.0/gcc/doc/gcov-tool.1 gcc-11.5.0/gcc/doc/gcov-tool.1 *** gcc-11.4.0/gcc/doc/gcov-tool.1 Mon May 29 08:50:36 2023 --- gcc-11.5.0/gcc/doc/gcov-tool.1 Fri Jul 19 05:55:07 2024 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 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. --- 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. *************** *** 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 --- 129,135 ---- .\" ======================================================================== .\" .IX Title "GCOV-TOOL 1" ! .TH GCOV-TOOL 1 "2024-07-19" "gcc-11.5.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. *** 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" --- 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" *************** any later version published by the Free *** 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 --- 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 diff -Nrcpad gcc-11.4.0/gcc/doc/gcov.1 gcc-11.5.0/gcc/doc/gcov.1 *** gcc-11.4.0/gcc/doc/gcov.1 Mon May 29 08:50:36 2023 --- gcc-11.5.0/gcc/doc/gcov.1 Fri Jul 19 05:55:07 2024 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 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. --- 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. *************** *** 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 --- 129,135 ---- .\" ======================================================================== .\" .IX Title "GCOV 1" ! .TH GCOV 1 "2024-07-19" "gcc-11.5.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 *** 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. --- 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. *************** any later version published by the Free *** 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 --- 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 diff -Nrcpad gcc-11.4.0/gcc/doc/generic.texi gcc-11.5.0/gcc/doc/generic.texi *** gcc-11.4.0/gcc/doc/generic.texi Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/doc/generic.texi Fri Jul 19 05:52:43 2024 *************** vector. For example @{ 0, 1 @} could be *** 1144,1150 **** one element each or one pattern with two elements (@var{base0} and @var{base1}). The canonical encoding is always the one with the fewest patterns or (if both encodings have the same number of ! petterns) the one with the fewest encoded elements. @samp{vector_cst_encoding_nelts (@var{v})} gives the total number of encoded elements in @var{v}, which is 6 in the example above. --- 1144,1150 ---- one element each or one pattern with two elements (@var{base0} and @var{base1}). The canonical encoding is always the one with the fewest patterns or (if both encodings have the same number of ! patterns) the one with the fewest encoded elements. @samp{vector_cst_encoding_nelts (@var{v})} gives the total number of encoded elements in @var{v}, which is 6 in the example above. diff -Nrcpad gcc-11.4.0/gcc/doc/gfdl.7 gcc-11.5.0/gcc/doc/gfdl.7 *** gcc-11.4.0/gcc/doc/gfdl.7 Mon May 29 08:50:36 2023 --- gcc-11.5.0/gcc/doc/gfdl.7 Fri Jul 19 05:55:07 2024 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 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. --- 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. *************** *** 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 --- 129,135 ---- .\" ======================================================================== .\" .IX Title "GFDL 7" ! .TH GFDL 7 "2024-07-19" "gcc-11.5.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 *** 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. --- 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. diff -Nrcpad gcc-11.4.0/gcc/doc/gfortran.1 gcc-11.5.0/gcc/doc/gfortran.1 *** gcc-11.4.0/gcc/doc/gfortran.1 Mon May 29 09:02:36 2023 --- gcc-11.5.0/gcc/doc/gfortran.1 Fri Jul 19 06:06:44 2024 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 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. --- 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. *************** *** 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 --- 129,135 ---- .\" ======================================================================== .\" .IX Title "GFORTRAN 1" ! .TH GFORTRAN 1 "2024-07-19" "gcc-11.5.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 *** 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" --- 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" *************** under the terms of the \s-1GNU\s0 Free D *** 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 --- 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 diff -Nrcpad gcc-11.4.0/gcc/doc/gpl.7 gcc-11.5.0/gcc/doc/gpl.7 *** gcc-11.4.0/gcc/doc/gpl.7 Mon May 29 08:50:36 2023 --- gcc-11.5.0/gcc/doc/gpl.7 Fri Jul 19 05:55:07 2024 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 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. --- 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. *************** *** 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 --- 129,135 ---- .\" ======================================================================== .\" .IX Title "GPL 7" ! .TH GPL 7 "2024-07-19" "gcc-11.5.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 *** 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. --- 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. diff -Nrcpad gcc-11.4.0/gcc/doc/install.texi gcc-11.5.0/gcc/doc/install.texi *** gcc-11.4.0/gcc/doc/install.texi Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/doc/install.texi Fri Jul 19 05:52:43 2024 *************** tables. *** 363,368 **** --- 363,371 ---- Used by @command{automake}. + If available, enables parallel testing of @samp{libgomp} in case that + @command{flock} is not available. + @end table Several support libraries are necessary to build GCC, some are required, diff -Nrcpad gcc-11.4.0/gcc/doc/invoke.texi gcc-11.5.0/gcc/doc/invoke.texi *** gcc-11.4.0/gcc/doc/invoke.texi Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/doc/invoke.texi Fri Jul 19 05:52:43 2024 *************** and Objective-C++ programs: *** 4346,4355 **** Use @var{class-name} as the name of the class to instantiate for each literal string specified with the syntax @code{@@"@dots{}"}. The default class name is @code{NXConstantString} if the GNU runtime is being used, and ! @code{NSConstantString} if the NeXT runtime is being used (see below). The ! @option{-fconstant-cfstrings} option, if also present, overrides the ! @option{-fconstant-string-class} setting and cause @code{@@"@dots{}"} literals ! to be laid out as constant CoreFoundation strings. @item -fgnu-runtime @opindex fgnu-runtime --- 4346,4357 ---- Use @var{class-name} as the name of the class to instantiate for each literal string specified with the syntax @code{@@"@dots{}"}. The default class name is @code{NXConstantString} if the GNU runtime is being used, and ! @code{NSConstantString} if the NeXT runtime is being used (see below). On ! Darwin (macOS, MacOS X) platforms, the @option{-fconstant-cfstrings} option, if ! also present, overrides the @option{-fconstant-string-class} setting and cause ! @code{@@"@dots{}"} literals to be laid out as constant CoreFoundation strings. ! Note that @option{-fconstant-cfstrings} is an alias for the target-specific ! @option{-mconstant-cfstrings} equivalent. @item -fgnu-runtime @opindex fgnu-runtime *************** performance of the code. Permissible va *** 18231,18238 **** @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} @samp{octeontx2t93}, @samp{octeontx2f95}, @samp{octeontx2f95n}, --- 18233,18240 ---- @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{grace}, ! @samp{qdf24xx}, @samp{saphira}, @samp{phecda}, @samp{xgene1}, @samp{vulcan}, @samp{octeontx}, @samp{octeontx81}, @samp{octeontx83}, @samp{octeontx2}, @samp{octeontx2t98}, @samp{octeontx2t96} @samp{octeontx2t93}, @samp{octeontx2f95}, @samp{octeontx2f95n}, *************** performance of the code. Permissible va *** 18245,18251 **** @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}, --- 18247,18253 ---- @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{cobalt-100} and @samp{native}. The values @samp{cortex-a57.cortex-a53}, @samp{cortex-a72.cortex-a53}, @samp{cortex-a73.cortex-a35}, @samp{cortex-a73.cortex-a53}, *************** This is by default ON@. *** 21812,21821 **** @opindex gfull Emit debugging information for all symbols and types. @item -mmacosx-version-min=@var{version} ! The earliest version of MacOS X that this executable will run on ! is @var{version}. Typical values of @var{version} include @code{10.1}, ! @code{10.2}, and @code{10.3.9}. If the compiler was built to use the system's headers by default, then the default for this option is the system version on which the --- 21814,21834 ---- @opindex gfull Emit debugging information for all symbols and types. + @opindex fconstant-cfstrings + @item -fconstant-cfstrings + The @option{-fconstant-cfstrings} is an alias for @option{-mconstant-cfstrings}. + + @opindex mconstant-cfstrings + @item -mconstant-cfstrings + When the NeXT runtime is being used (the default on these systems), override + any @option{-fconstant-string-class} setting and cause @code{@@"@dots{}"} + literals to be laid out as constant CoreFoundation strings. + + @opindex mmacosx-version-min @item -mmacosx-version-min=@var{version} ! The earliest version of MacOS X that this executable will run on is ! @var{version}. Typical values supported for @var{version} include @code{12}, ! @code{10.12}, and @code{10.5.8}. If the compiler was built to use the system's headers by default, then the default for this option is the system version on which the *************** MWAITX, SHA, CLZERO, AES, PCLMUL, CX16, *** 30340,30345 **** --- 30353,30367 ---- SSSE3, SSE4.1, SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT, RDPID, WBNOINVD, PKU, VPCLMULQDQ, VAES, and 64-bit instruction set extensions.) + @item znver4 + AMD Family 19h core based CPUs with x86-64 instruction set support. (This + supersets BMI, BMI2, CLWB, F16C, FMA, FSGSBASE, AVX, AVX2, ADCX, RDSEED, + MWAITX, SHA, CLZERO, AES, PCLMUL, CX16, MOVBE, MMX, SSE, SSE2, SSE3, SSE4A, + SSSE3, SSE4.1, SSE4.2, ABM, XSAVEC, XSAVES, CLFLUSHOPT, POPCNT, RDPID, + WBNOINVD, PKU, VPCLMULQDQ, VAES, AVX512F, AVX512DQ, AVX512IFMA, AVX512CD, + AVX512BW, AVX512VL, AVX512BF16, AVX512VBMI, AVX512VBMI2, AVX512VNNI, + AVX512BITALG, AVX512VPOPCNTDQ, GFNI and 64-bit instruction set extensions.) + @item btver1 CPUs based on AMD Family 14h cores with x86-64 instruction set support. (This supersets MMX, SSE, SSE2, SSE3, SSSE3, SSE4A, CX16, ABM and 64-bit *************** on x86-64 processors in 64-bit environme *** 31757,31763 **** Generate code for a 16-bit, 32-bit or 64-bit environment. The @option{-m32} option sets @code{int}, @code{long}, and pointer types to 32 bits, and ! generates code that runs on any i386 system. The @option{-m64} option sets @code{int} to 32 bits and @code{long} and pointer types to 64 bits, and generates code for the x86-64 architecture. --- 31779,31785 ---- Generate code for a 16-bit, 32-bit or 64-bit environment. The @option{-m32} option sets @code{int}, @code{long}, and pointer types to 32 bits, and ! generates code that runs in 32-bit mode. The @option{-m64} option sets @code{int} to 32 bits and @code{long} and pointer types to 64 bits, and generates code for the x86-64 architecture. diff -Nrcpad gcc-11.4.0/gcc/doc/lto-dump.1 gcc-11.5.0/gcc/doc/lto-dump.1 *** gcc-11.4.0/gcc/doc/lto-dump.1 Mon May 29 08:50:36 2023 --- gcc-11.5.0/gcc/doc/lto-dump.1 Fri Jul 19 05:55:07 2024 *************** *** 1,4 **** ! .\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== --- 1,4 ---- ! .\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== *************** *** 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. --- 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. *************** *** 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 --- 129,135 ---- .\" ======================================================================== .\" .IX Title "LTO-DUMP 1" ! .TH LTO-DUMP 1 "2024-07-19" "gcc-11.5.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 *** 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 --- 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 diff -Nrcpad gcc-11.4.0/gcc/doc/match-and-simplify.texi gcc-11.5.0/gcc/doc/match-and-simplify.texi *** gcc-11.4.0/gcc/doc/match-and-simplify.texi Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/doc/match-and-simplify.texi Fri Jul 19 05:52:43 2024 *************** for example *** 374,381 **** which moves the outer @code{plus} operation to the inner arms of the @code{vec_cond} expression but only if the actual plus ! operations both simplify. Note this is currently only supported ! for code generation targeting @code{GIMPLE}. As intermediate conversions are often optional there is a way to avoid the need to repeat patterns both with and without such --- 374,383 ---- which moves the outer @code{plus} operation to the inner arms of the @code{vec_cond} expression but only if the actual plus ! operations both simplify. Note that on @code{GENERIC} a simple ! operand means that the result satisfies @code{!EXPR_P} which ! can be limiting if the operation itself simplifies but the ! remaining operand is an (unrelated) expression. As intermediate conversions are often optional there is a way to avoid the need to repeat patterns both with and without such diff -Nrcpad gcc-11.4.0/gcc/doc/rtl.texi gcc-11.5.0/gcc/doc/rtl.texi *** gcc-11.4.0/gcc/doc/rtl.texi Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/doc/rtl.texi Fri Jul 19 05:52:43 2024 *************** vector. For example @{ 0, 1 @} could be *** 1844,1850 **** one element each or one pattern with two elements (@var{base0} and @var{base1}). The canonical encoding is always the one with the fewest patterns or (if both encodings have the same number of ! petterns) the one with the fewest encoded elements. @samp{const_vector_encoding_nelts (@var{v})} gives the total number of encoded elements in @var{v}, which is 6 in the example above. --- 1844,1850 ---- one element each or one pattern with two elements (@var{base0} and @var{base1}). The canonical encoding is always the one with the fewest patterns or (if both encodings have the same number of ! patterns) the one with the fewest encoded elements. @samp{const_vector_encoding_nelts (@var{v})} gives the total number of encoded elements in @var{v}, which is 6 in the example above. diff -Nrcpad gcc-11.4.0/gcc/dwarf2out.c gcc-11.5.0/gcc/dwarf2out.c *** gcc-11.4.0/gcc/dwarf2out.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/dwarf2out.c Fri Jul 19 05:52:43 2024 *************** process_scope_var (tree stmt, tree decl, *** 26120,26126 **** if (die != NULL && die->die_parent == NULL) add_child_die (context_die, die); ! else if (TREE_CODE (decl_or_origin) == IMPORTED_DECL) { if (early_dwarf) dwarf2out_imported_module_or_decl_1 (decl_or_origin, DECL_NAME (decl_or_origin), --- 26120,26127 ---- if (die != NULL && die->die_parent == NULL) add_child_die (context_die, die); ! ! if (TREE_CODE (decl_or_origin) == IMPORTED_DECL) { if (early_dwarf) dwarf2out_imported_module_or_decl_1 (decl_or_origin, DECL_NAME (decl_or_origin), *************** prune_unused_types_walk (dw_die_ref die) *** 29692,29699 **** --- 29693,29705 ---- case DW_TAG_reference_type: case DW_TAG_rvalue_reference_type: case DW_TAG_volatile_type: + case DW_TAG_restrict_type: + case DW_TAG_shared_type: + case DW_TAG_atomic_type: + case DW_TAG_immutable_type: case DW_TAG_typedef: case DW_TAG_array_type: + case DW_TAG_coarray_type: case DW_TAG_friend: case DW_TAG_enumeration_type: case DW_TAG_subroutine_type: *************** prune_unused_types_walk (dw_die_ref die) *** 29702,29707 **** --- 29708,29715 ---- case DW_TAG_subrange_type: case DW_TAG_ptr_to_member_type: case DW_TAG_file_type: + case DW_TAG_unspecified_type: + case DW_TAG_dynamic_type: /* Type nodes are useful only when other DIEs reference them --- don't mark them. */ /* FALLTHROUGH */ *************** dwarf2out_finish (const char *filename) *** 31696,31719 **** reset_dies (comp_unit_die ()); for (limbo_die_node *node = cu_die_list; node; node = node->next) reset_dies (node->die); - - hash_table comdat_type_table (100); for (ctnode = comdat_type_list; ctnode != NULL; ctnode = ctnode->next) { - comdat_type_node **slot - = comdat_type_table.find_slot (ctnode, INSERT); - - /* Don't reset types twice. */ - if (*slot != HTAB_EMPTY_ENTRY) - continue; - /* Remove the pointer to the line table. */ remove_AT (ctnode->root_die, DW_AT_stmt_list); - if (debug_info_level >= DINFO_LEVEL_TERSE) reset_dies (ctnode->root_die); - - *slot = ctnode; } /* Reset die CU symbol so we don't output it twice. */ --- 31704,31715 ---- diff -Nrcpad gcc-11.4.0/gcc/expmed.c gcc-11.5.0/gcc/expmed.c *** gcc-11.4.0/gcc/expmed.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/expmed.c Fri Jul 19 05:52:43 2024 *************** emit_store_flag_1 (rtx target, enum rtx_ *** 5589,5599 **** enum insn_code icode; machine_mode compare_mode; enum mode_class mclass; - enum rtx_code scode; if (unsignedp) code = unsigned_condition (code); - scode = swap_condition (code); /* If one operand is constant, make it the second one. Only do this if the other operand is not constant as well. */ --- 5589,5597 ---- *************** emit_store_flag_1 (rtx target, enum rtx_ *** 5761,5766 **** --- 5759,5766 ---- if (GET_MODE_CLASS (mode) == MODE_FLOAT) { + enum rtx_code scode = swap_condition (code); + tem = emit_cstore (target, icode, scode, mode, compare_mode, unsignedp, op1, op0, normalizep, target_mode); if (tem) diff -Nrcpad gcc-11.4.0/gcc/fold-const.c gcc-11.5.0/gcc/fold-const.c *** gcc-11.4.0/gcc/fold-const.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/fold-const.c Fri Jul 19 05:52:43 2024 *************** along with GCC; see the file COPYING3. *** 83,88 **** --- 83,89 ---- #include "tree-vector-builder.h" #include "vec-perm-indices.h" #include "asan.h" + #include "internal-fn.h" /* Nonzero if we are folding constants inside an initializer; zero otherwise. */ *************** static tree *** 6171,6177 **** merge_truthop_with_opposite_arm (location_t loc, tree op, tree cmpop, bool rhs_only) { - tree type = TREE_TYPE (cmpop); enum tree_code code = TREE_CODE (cmpop); enum tree_code truthop_code = TREE_CODE (op); tree lhs = TREE_OPERAND (op, 0); --- 6172,6177 ---- *************** merge_truthop_with_opposite_arm (locatio *** 6187,6192 **** --- 6187,6194 ---- if (TREE_CODE_CLASS (code) != tcc_comparison) return NULL_TREE; + tree type = TREE_TYPE (TREE_OPERAND (cmpop, 0)); + if (rhs_code == truthop_code) { tree newrhs = merge_truthop_with_opposite_arm (loc, rhs, cmpop, rhs_only); *************** native_encode_initializer (tree init, un *** 8401,8406 **** --- 8403,8410 ---- if (BYTES_BIG_ENDIAN != WORDS_BIG_ENDIAN) return 0; + if (TREE_CODE (val) == NON_LVALUE_EXPR) + val = TREE_OPERAND (val, 0); if (TREE_CODE (val) != INTEGER_CST) return 0; *************** multiple_of_p (tree type, const_tree top *** 14185,14191 **** && TREE_CODE (op2) == INTEGER_CST && integer_pow2p (bottom) && wi::multiple_of_p (wi::to_widest (op2), ! wi::to_widest (bottom), UNSIGNED)) return 1; op1 = gimple_assign_rhs1 (stmt); --- 14189,14195 ---- && TREE_CODE (op2) == INTEGER_CST && integer_pow2p (bottom) && wi::multiple_of_p (wi::to_widest (op2), ! wi::to_widest (bottom), SIGNED)) return 1; op1 = gimple_assign_rhs1 (stmt); *************** tree_call_nonnegative_warnv_p (tree type *** 14732,14738 **** CASE_CFN_FFS: CASE_CFN_PARITY: CASE_CFN_POPCOUNT: - CASE_CFN_CLZ: CASE_CFN_CLRSB: case CFN_BUILT_IN_BSWAP16: case CFN_BUILT_IN_BSWAP32: --- 14736,14741 ---- *************** tree_call_nonnegative_warnv_p (tree type *** 14741,14746 **** --- 14744,14765 ---- /* Always true. */ return true; + CASE_CFN_CLZ: + if (fn != CFN_CLZ) + return true; + else if (INTEGRAL_TYPE_P (TREE_TYPE (arg0))) + { + tree atype = TREE_TYPE (arg0); + int val = 0; + if (direct_internal_fn_supported_p (IFN_CLZ, atype, + OPTIMIZE_FOR_BOTH) + && CLZ_DEFINED_VALUE_AT_ZERO (SCALAR_INT_TYPE_MODE (atype), + val) == 2 + && val >= 0) + return true; + } + break; + CASE_CFN_SQRT: CASE_CFN_SQRT_FN: /* sqrt(-0.0) is -0.0. */ diff -Nrcpad gcc-11.4.0/gcc/fortran/ChangeLog gcc-11.5.0/gcc/fortran/ChangeLog *** gcc-11.4.0/gcc/fortran/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/gcc/fortran/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,152 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + + 2024-04-06 Harald Anlauf + + Backported from master: + 2024-03-28 Harald Anlauf + + PR fortran/114474 + * primary.c (gfc_variable_attr): Catch variables used in structure + constructors within DATA statements that are still tagged with a + temporary type BT_PROCEDURE from match_actual_arg and which have the + target attribute, and fix their typespec. + + 2024-04-05 Chung-Lin Tang + + Backported from master: + 2021-12-03 Tobias Burnus + + * trans-stmt.c (gfc_trans_allocate): Set e3_has_nodescriptor to true + only for non-named arrays. + + 2024-04-02 Mikael Morin + + Backported from master: + 2024-03-22 Mikael Morin + + PR fortran/107426 + * gfortran.h (gfc_save_module_list, gfc_restore_old_module_list): + New declarations. + * module.c (old_module_list_tail): New global variable. + (gfc_save_module_list, gfc_restore_old_module_list): New functions. + (gfc_use_modules): Set module_list and old_module_list_tail. + * parse.c (next_statement): Save module_list before doing any work. + (reject_statement): Restore module_list to its saved value. + + 2024-03-29 Harald Anlauf + + Backported from master: + 2024-03-29 Harald Anlauf + + PR fortran/50410 + * trans-expr.c (gfc_conv_structure): Check for NULL pointer. + + 2024-03-20 Harald Anlauf + + Backported from master: + 2024-03-18 Harald Anlauf + + PR fortran/103715 + * frontend-passes.c (check_externals_expr): Prevent invalid read + in case of mismatch of external subroutine with function. + + 2024-02-09 Harald Anlauf + + Backported from master: + 2024-01-27 Harald Anlauf + + PR fortran/104908 + * trans-array.c (gfc_conv_array_ref): Restrict use of transformed + descriptor (sym->backend_decl) to the unlimited polymorphic case. + + 2023-12-01 Harald Anlauf + + Backported from master: + 2023-11-26 Harald Anlauf + + PR fortran/111880 + * resolve.c (resolve_common_vars): Do not call gfc_add_in_common + for symbols that are USE associated or used in a submodule. + + 2023-10-21 Harald Anlauf + + Backported from master: + 2023-10-17 Harald Anlauf + + PR fortran/111837 + * frontend-passes.c (traverse_io_block): Dependency check of loop + nest shall be triangular, not banded. + + 2023-08-06 Steve Kargl + + Backported from master: + 2022-12-18 Steve Kargl + + PR fortran/107397 + * decl.c (add_init_expr_to_sym): Add check with new error message. + + 2023-08-05 Jerry DeLisle + + Backported from master: + 2023-01-29 Jerry DeLisle + + PR fortran/103506 + * parse.c (parse_module): Remove use of a bool error value + that prevented proper setting of the namespace pointer. + + 2023-07-20 Harald Anlauf + + Backported from master: + 2023-07-17 Harald Anlauf + + PR fortran/95947 + PR fortran/110658 + * trans-expr.c (gfc_conv_procedure_call): For intrinsic procedures + whose result characteristics depends on the first argument and which + can be of type character, the character length will not be deferred. + + 2023-07-14 Harald Anlauf + + Backported from master: + 2023-07-11 Harald Anlauf + + PR fortran/110288 + * symbol.c (gfc_copy_formal_args_intr): When deriving the formal + argument attributes from the actual ones for intrinsic procedure + calls, take special care of CHARACTER arguments that we do not + wrongly treat them formally as deferred-length. + + 2023-07-08 Harald Anlauf + + Backported from master: + 2023-07-08 Harald Anlauf + + PR fortran/110585 + * arith.c (gfc_compare_expr): Handle equality comparison of constant + complex gfc_expr arguments. + + 2023-06-09 Jakub Jelinek + + Backported from master: + 2023-06-09 Jakub Jelinek + + PR fortran/96024 + * primary.c (gfc_convert_to_structure_constructor): Only do + constant string ctor length verification and truncation/padding + if constant length has INTEGER type. + + 2023-06-04 Steve Kargl + + Backported from master: + 2023-06-02 Steve Kargl + + PR fortran/100607 + * resolve.c (resolve_select_rank): Remove duplicate error. + (resolve_fl_var_and_proc): Prevent NULL pointer dereference and + suppress error message for temporary. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/gcc/fortran/arith.c gcc-11.5.0/gcc/fortran/arith.c *** gcc-11.4.0/gcc/fortran/arith.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/fortran/arith.c Fri Jul 19 05:52:43 2024 *************** gfc_compare_expr (gfc_expr *op1, gfc_exp *** 1080,1085 **** --- 1080,1090 ---- || (op1->value.logical && !op2->value.logical)); break; + case BT_COMPLEX: + gcc_assert (op == INTRINSIC_EQ); + rc = mpc_cmp (op1->value.complex, op2->value.complex); + break; + default: gfc_internal_error ("gfc_compare_expr(): Bad basic type"); } diff -Nrcpad gcc-11.4.0/gcc/fortran/decl.c gcc-11.5.0/gcc/fortran/decl.c *** gcc-11.4.0/gcc/fortran/decl.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/fortran/decl.c Fri Jul 19 05:52:43 2024 *************** add_init_expr_to_sym (const char *name, *** 2141,2146 **** --- 2141,2154 ---- sym->ts.f90_type = init->ts.f90_type; } + /* Catch the case: type(t), parameter :: x = z'1'. */ + if (sym->ts.type == BT_DERIVED && init->ts.type == BT_BOZ) + { + gfc_error ("Entity %qs at %L is incompatible with a BOZ " + "literal constant", name, &sym->declared_at); + return false; + } + /* Add initializer. Make sure we keep the ranks sane. */ if (sym->attr.dimension && init->rank == 0) { diff -Nrcpad gcc-11.4.0/gcc/fortran/frontend-passes.c gcc-11.5.0/gcc/fortran/frontend-passes.c *** gcc-11.4.0/gcc/fortran/frontend-passes.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/fortran/frontend-passes.c Fri Jul 19 05:52:43 2024 *************** traverse_io_block (gfc_code *code, bool *** 1326,1332 **** if (iters[i]) { gfc_expr *var = iters[i]->var; ! for (int j = i - 1; j < i; j++) { if (iters[j] && (var_in_expr (var, iters[j]->start) --- 1326,1332 ---- if (iters[i]) { gfc_expr *var = iters[i]->var; ! for (int j = 0; j < i; j++) { if (iters[j] && (var_in_expr (var, iters[j]->start) *************** check_externals_expr (gfc_expr **ep, int *** 5782,5787 **** --- 5782,5790 ---- if (e->expr_type != EXPR_FUNCTION) return 0; + if (e->symtree && e->symtree->n.sym->attr.subroutine) + return 0; + sym = e->value.function.esym; if (sym == NULL) return 0; diff -Nrcpad gcc-11.4.0/gcc/fortran/gfortran.h gcc-11.5.0/gcc/fortran/gfortran.h *** gcc-11.4.0/gcc/fortran/gfortran.h Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/fortran/gfortran.h Fri Jul 19 05:52:43 2024 *************** void gfc_module_done_2 (void); *** 3578,3583 **** --- 3578,3585 ---- void gfc_dump_module (const char *, int); bool gfc_check_symbol_access (gfc_symbol *); void gfc_free_use_stmts (gfc_use_list *); + void gfc_save_module_list (); + void gfc_restore_old_module_list (); const char *gfc_dt_lower_string (const char *); const char *gfc_dt_upper_string (const char *); diff -Nrcpad gcc-11.4.0/gcc/fortran/gfortran.info gcc-11.5.0/gcc/fortran/gfortran.info *** gcc-11.4.0/gcc/fortran/gfortran.info Mon May 29 09:02:39 2023 --- gcc-11.5.0/gcc/fortran/gfortran.info Fri Jul 19 06:06:46 2024 *************** *** 1,4 **** ! This is gfortran.info, produced by makeinfo version 6.8 from gfortran.texi. Copyright (C) 1999-2021 Free Software Foundation, Inc. --- 1,4 ---- ! This is gfortran.info, produced by makeinfo version 6.5 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-à-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-a`-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 ! - François-Xavier Coudert - Bud Davis - Jerry DeLisle - Erik Edelmann --- 20064,20070 ---- - Steven Bosscher - Paul Brook - Tobias Burnus ! - Franc,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 Schlüter - Roger Sayle - Paul Thomas - Andy Vaught --- 20086,20092 ---- - Tim Prince - Christopher D. Rickett - Richard Sandiford ! - Tobias Schlu"ter - Roger Sayle - Paul Thomas - Andy Vaught *************** patches, and much needed feedback and en *** 20099,20105 **** project: - Bill Clodius ! - Dominique d'Humières - Kate Hedstrom - Erik Schnetter - Joost VandeVondele --- 20099,20105 ---- project: - Bill Clodius ! - Dominique d'Humie`res - Kate Hedstrom - Erik Schnetter - Joost VandeVondele *************** Node: Option Index782806 *** 23677,23684 **** Node: Keyword Index801940  End Tag Table - -  - Local Variables: - coding: utf-8 - End: --- 23677,23679 ---- diff -Nrcpad gcc-11.4.0/gcc/fortran/module.c gcc-11.5.0/gcc/fortran/module.c *** gcc-11.4.0/gcc/fortran/module.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/fortran/module.c Fri Jul 19 05:52:43 2024 *************** static const char *module_name; *** 195,201 **** --- 195,206 ---- /* The name of the .smod file that the submodule will write to. */ static const char *submodule_name; + /* The list of use statements to apply to the current namespace + before parsing the non-use statements. */ static gfc_use_list *module_list; + /* The end of the MODULE_LIST list above at the time the recognition + of the current statement started. */ + static gfc_use_list **old_module_list_tail; /* If we're reading an intrinsic module, this is its ID. */ static intmod_id current_intmod; *************** gfc_use_modules (void) *** 7476,7481 **** --- 7481,7488 ---- gfc_use_module (module_list); free (module_list); } + module_list = NULL; + old_module_list_tail = &module_list; gfc_rename_list = NULL; } *************** gfc_free_use_stmts (gfc_use_list *use_st *** 7499,7504 **** --- 7506,7535 ---- } + /* Remember the end of the MODULE_LIST list, so that the list can be restored + to its previous state if the current statement is erroneous. */ + + void + gfc_save_module_list () + { + gfc_use_list **tail = &module_list; + while (*tail != NULL) + tail = &(*tail)->next; + old_module_list_tail = tail; + } + + + /* Restore the MODULE_LIST list to its previous value and free the use + statements that are no longer part of the list. */ + + void + gfc_restore_old_module_list () + { + gfc_free_use_stmts (*old_module_list_tail); + *old_module_list_tail = NULL; + } + + void gfc_module_init_2 (void) { diff -Nrcpad gcc-11.4.0/gcc/fortran/parse.c gcc-11.5.0/gcc/fortran/parse.c *** gcc-11.4.0/gcc/fortran/parse.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/fortran/parse.c Fri Jul 19 05:52:43 2024 *************** next_statement (void) *** 1519,1524 **** --- 1519,1525 ---- locus old_locus; gfc_enforce_clean_symbol_state (); + gfc_save_module_list (); gfc_new_block = NULL; *************** reject_statement (void) *** 2674,2679 **** --- 2675,2683 ---- gfc_reject_data (gfc_current_ns); + /* Don't queue use-association of a module if we reject the use statement. */ + gfc_restore_old_module_list (); + gfc_new_block = NULL; gfc_undo_symbols (); gfc_clear_warning (); *************** parse_module (void) *** 6160,6166 **** { gfc_statement st; gfc_gsymbol *s; - bool error; s = gfc_get_gsymbol (gfc_new_block->name, false); if (s->defined || (s->type != GSYM_UNKNOWN && s->type != GSYM_MODULE)) --- 6164,6169 ---- *************** parse_module (void) *** 6183,6189 **** st = parse_spec (ST_NONE); - error = false; loop: switch (st) { --- 6186,6191 ---- *************** loop: *** 6202,6217 **** default: gfc_error ("Unexpected %s statement in MODULE at %C", gfc_ascii_statement (st)); - - error = true; reject_statement (); st = next_statement (); goto loop; } ! ! /* Make sure not to free the namespace twice on error. */ ! if (!error) ! s->ns = gfc_current_ns; } --- 6204,6214 ---- default: gfc_error ("Unexpected %s statement in MODULE at %C", gfc_ascii_statement (st)); reject_statement (); st = next_statement (); goto loop; } ! s->ns = gfc_current_ns; } diff -Nrcpad gcc-11.4.0/gcc/fortran/primary.c gcc-11.5.0/gcc/fortran/primary.c *** gcc-11.4.0/gcc/fortran/primary.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/fortran/primary.c Fri Jul 19 05:52:43 2024 *************** gfc_variable_attr (gfc_expr *expr, gfc_t *** 2663,2668 **** --- 2663,2680 ---- if (ts != NULL && expr->ts.type == BT_UNKNOWN) *ts = sym->ts; + /* Catch left-overs from match_actual_arg, where an actual argument of a + procedure is given a temporary ts.type == BT_PROCEDURE. The fixup is + needed for structure constructors in DATA statements, where a pointer + is associated with a data target, and the argument has not been fully + resolved yet. Components references are dealt with further below. */ + if (ts != NULL + && expr->ts.type == BT_PROCEDURE + && expr->ref == NULL + && attr.flavor != FL_PROCEDURE + && attr.target) + *ts = sym->ts; + has_inquiry_part = false; for (ref = expr->ref; ref; ref = ref->next) if (ref->type == REF_INQUIRY) *************** gfc_convert_to_structure_constructor (gf *** 3188,3197 **** goto cleanup; /* For a constant string constructor, make sure the length is ! correct; truncate of fill with blanks if needed. */ if (this_comp->ts.type == BT_CHARACTER && !this_comp->attr.allocatable && this_comp->ts.u.cl && this_comp->ts.u.cl->length && this_comp->ts.u.cl->length->expr_type == EXPR_CONSTANT && actual->expr->ts.type == BT_CHARACTER && actual->expr->expr_type == EXPR_CONSTANT) { --- 3200,3210 ---- goto cleanup; /* For a constant string constructor, make sure the length is ! correct; truncate or fill with blanks if needed. */ if (this_comp->ts.type == BT_CHARACTER && !this_comp->attr.allocatable && this_comp->ts.u.cl && this_comp->ts.u.cl->length && this_comp->ts.u.cl->length->expr_type == EXPR_CONSTANT + && this_comp->ts.u.cl->length->ts.type == BT_INTEGER && actual->expr->ts.type == BT_CHARACTER && actual->expr->expr_type == EXPR_CONSTANT) { diff -Nrcpad gcc-11.4.0/gcc/fortran/resolve.c gcc-11.5.0/gcc/fortran/resolve.c *** gcc-11.4.0/gcc/fortran/resolve.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/fortran/resolve.c Fri Jul 19 05:52:43 2024 *************** resolve_common_vars (gfc_common_head *co *** 965,972 **** /* gfc_add_in_common may have been called before, but the reported errors have been ignored to continue parsing. ! We do the checks again here. */ ! if (!csym->attr.use_assoc) { gfc_add_in_common (&csym->attr, csym->name, &common_block->where); gfc_notify_std (GFC_STD_F2018_OBS, "COMMON block at %L", --- 965,972 ---- /* gfc_add_in_common may have been called before, but the reported errors have been ignored to continue parsing. ! We do the checks again here, unless the symbol is USE associated. */ ! if (!csym->attr.use_assoc && !csym->attr.used_in_submodule) { gfc_add_in_common (&csym->attr, csym->name, &common_block->where); gfc_notify_std (GFC_STD_F2018_OBS, "COMMON block at %L", *************** resolve_select_rank (gfc_code *code, gfc *** 9864,9874 **** || gfc_expr_attr (code->expr1).pointer)) gfc_error ("RANK (*) at %L cannot be used with the pointer or " "allocatable selector at %L", &c->where, &code->expr1->where); - - if (case_value == -1 && (gfc_expr_attr (code->expr1).allocatable - || gfc_expr_attr (code->expr1).pointer)) - gfc_error ("RANK (*) at %L cannot be used with the pointer or " - "allocatable selector at %L", &c->where, &code->expr1->where); } /* Add EXEC_SELECT to switch on rank. */ --- 9864,9869 ---- *************** resolve_fl_var_and_proc (gfc_symbol *sym *** 12806,12812 **** if (allocatable) { ! if (dimension && as->type != AS_ASSUMED_RANK) { gfc_error ("Allocatable array %qs at %L must have a deferred " "shape or assumed rank", sym->name, &sym->declared_at); --- 12801,12810 ---- if (allocatable) { ! if (dimension ! && as ! && as->type != AS_ASSUMED_RANK ! && !sym->attr.select_rank_temporary) { gfc_error ("Allocatable array %qs at %L must have a deferred " "shape or assumed rank", sym->name, &sym->declared_at); diff -Nrcpad gcc-11.4.0/gcc/fortran/symbol.c gcc-11.5.0/gcc/fortran/symbol.c *** gcc-11.4.0/gcc/fortran/symbol.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/fortran/symbol.c Fri Jul 19 05:52:43 2024 *************** gfc_copy_formal_args_intr (gfc_symbol *d *** 4705,4710 **** --- 4705,4717 ---- formal_arg->sym->attr.flavor = FL_VARIABLE; formal_arg->sym->attr.dummy = 1; + /* Do not treat an actual deferred-length character argument wrongly + as template for the formal argument. */ + if (formal_arg->sym->ts.type == BT_CHARACTER + && !(formal_arg->sym->attr.allocatable + || formal_arg->sym->attr.pointer)) + formal_arg->sym->ts.deferred = false; + if (formal_arg->sym->ts.type == BT_CHARACTER) formal_arg->sym->ts.u.cl = gfc_new_charlen (gfc_current_ns, NULL); diff -Nrcpad gcc-11.4.0/gcc/fortran/trans-array.c gcc-11.5.0/gcc/fortran/trans-array.c *** gcc-11.4.0/gcc/fortran/trans-array.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/fortran/trans-array.c Fri Jul 19 05:52:43 2024 *************** gfc_conv_array_ref (gfc_se * se, gfc_arr *** 3723,3729 **** } decl = se->expr; ! if (IS_CLASS_ARRAY (sym) && sym->attr.dummy && ar->as->type != AS_DEFERRED) decl = sym->backend_decl; cst_offset = offset = gfc_index_zero_node; --- 3723,3732 ---- } decl = se->expr; ! if (UNLIMITED_POLY(sym) ! && IS_CLASS_ARRAY (sym) ! && sym->attr.dummy ! && ar->as->type != AS_DEFERRED) decl = sym->backend_decl; cst_offset = offset = gfc_index_zero_node; diff -Nrcpad gcc-11.4.0/gcc/fortran/trans-expr.c gcc-11.5.0/gcc/fortran/trans-expr.c *** gcc-11.4.0/gcc/fortran/trans-expr.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/fortran/trans-expr.c Fri Jul 19 05:52:43 2024 *************** gfc_conv_procedure_call (gfc_se * se, gf *** 7016,7022 **** (and other intrinsics?) and dummy functions. In the case of SPREAD, we take the character length of the first argument for the result. For dummies, we have to look through the formal argument list for ! this function and use the character length found there.*/ if (ts.deferred) cl.backend_decl = gfc_create_var (gfc_charlen_type_node, "slen"); else if (!sym->attr.dummy) --- 7016,7027 ---- (and other intrinsics?) and dummy functions. In the case of SPREAD, we take the character length of the first argument for the result. For dummies, we have to look through the formal argument list for ! this function and use the character length found there. ! Likewise, we handle the case of deferred-length character dummy ! arguments to intrinsics that determine the characteristics of ! the result, which cannot be deferred-length. */ ! if (expr->value.function.isym) ! ts.deferred = false; if (ts.deferred) cl.backend_decl = gfc_create_var (gfc_charlen_type_node, "slen"); else if (!sym->attr.dummy) *************** gfc_conv_structure (gfc_se * se, gfc_exp *** 8874,8880 **** cm = expr->ts.u.derived->components; for (c = gfc_constructor_first (expr->value.constructor); ! c; c = gfc_constructor_next (c), cm = cm->next) { /* Skip absent members in default initializers and allocatable components. Although the latter have a default initializer --- 8879,8885 ---- cm = expr->ts.u.derived->components; for (c = gfc_constructor_first (expr->value.constructor); ! c && cm; c = gfc_constructor_next (c), cm = cm->next) { /* Skip absent members in default initializers and allocatable components. Although the latter have a default initializer diff -Nrcpad gcc-11.4.0/gcc/fortran/trans-stmt.c gcc-11.5.0/gcc/fortran/trans-stmt.c *** gcc-11.4.0/gcc/fortran/trans-stmt.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/fortran/trans-stmt.c Fri Jul 19 05:52:43 2024 *************** gfc_trans_allocate (gfc_code * code) *** 6661,6676 **** else e3rhs = gfc_copy_expr (code->expr3); ! // We need to propagate the bounds of the expr3 for source=/mold=; ! // however, for nondescriptor arrays, we use internally a lower bound ! // of zero instead of one, which needs to be corrected for the allocate obj ! if (e3_is == E3_DESC) ! { ! symbol_attribute attr = gfc_expr_attr (code->expr3); ! if (code->expr3->expr_type == EXPR_ARRAY || ! (!attr.allocatable && !attr.pointer)) ! e3_has_nodescriptor = true; ! } } /* Loop over all objects to allocate. */ --- 6661,6673 ---- else e3rhs = gfc_copy_expr (code->expr3); ! // We need to propagate the bounds of the expr3 for source=/mold=. ! // However, for non-named arrays, the lbound has to be 1 and neither the ! // bound used inside the called function even when returning an ! // allocatable/pointer nor the zero used internally. ! if (e3_is == E3_DESC ! && code->expr3->expr_type != EXPR_VARIABLE) ! e3_has_nodescriptor = true; } /* Loop over all objects to allocate. */ diff -Nrcpad gcc-11.4.0/gcc/fwprop.c gcc-11.5.0/gcc/fwprop.c *** gcc-11.4.0/gcc/fwprop.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/fwprop.c Fri Jul 19 05:52:43 2024 *************** try_fwprop_subst (use_info *use, set_inf *** 606,612 **** if (def_insn->bb () != use_insn->bb ()) { src_uses = crtl->ssa->make_uses_available (attempt, src_uses, ! use_insn->bb ()); if (!src_uses.is_valid ()) return false; } --- 606,613 ---- if (def_insn->bb () != use_insn->bb ()) { src_uses = crtl->ssa->make_uses_available (attempt, src_uses, ! use_insn->bb (), ! use_insn->is_debug_insn ()); if (!src_uses.is_valid ()) return false; } diff -Nrcpad gcc-11.4.0/gcc/gengtype-lex.c gcc-11.5.0/gcc/gengtype-lex.c *** gcc-11.4.0/gcc/gengtype-lex.c Mon May 29 08:50:36 2023 --- gcc-11.5.0/gcc/gengtype-lex.c Fri Jul 19 05:55:07 2024 *************** int yy_flex_debug = 0; *** 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. --- 1188,1194 ---- #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET char *yytext; ! #line 1 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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 "/d/gcc-11.4.0/gcc-11.4.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 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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 "/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" --- 1238,1244 ---- } #line 1235 "gengtype-lex.c" ! #line 59 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.0/gcc/gengtype-lex.l" /* Include '::' in identifiers to capture C++ scope qualifiers. */ #line 1239 "gengtype-lex.c" *************** YY_DECL *** 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; --- 1462,1468 ---- } { ! #line 67 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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 "/d/gcc-11.4.0/gcc-11.4.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 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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 "/d/gcc-11.4.0/gcc-11.4.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 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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 "/d/gcc-11.4.0/gcc-11.4.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 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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 "/d/gcc-11.4.0/gcc-11.4.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 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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 "/d/gcc-11.4.0/gcc-11.4.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 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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 "/d/gcc-11.4.0/gcc-11.4.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 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.0/gcc/gengtype-lex.l" { BEGIN(in_struct); return STATIC; *************** YY_RULE_SETUP *** 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: --- 1610,1634 ---- case 7: YY_RULE_SETUP ! #line 106 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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.5.0/gcc-11.5.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.5.0/gcc-11.5.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.5.0/gcc-11.5.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 "/d/gcc-11.4.0/gcc-11.4.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 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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 "/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; --- 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.5.0/gcc-11.5.0/gcc/gengtype-lex.l" case 13: /* rule 13 can match eol */ ! #line 115 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.0/gcc/gengtype-lex.l" case 14: /* rule 14 can match eol */ ! #line 116 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.0/gcc/gengtype-lex.l" case 15: /* rule 15 can match eol */ YY_RULE_SETUP ! #line 116 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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 "/d/gcc-11.4.0/gcc-11.4.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 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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 "/d/gcc-11.4.0/gcc-11.4.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 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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 "/d/gcc-11.4.0/gcc-11.4.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 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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 "/d/gcc-11.4.0/gcc-11.4.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 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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 "/d/gcc-11.4.0/gcc-11.4.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 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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 "/d/gcc-11.4.0/gcc-11.4.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 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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 "/d/gcc-11.4.0/gcc-11.4.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 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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 "/d/gcc-11.4.0/gcc-11.4.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 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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 "/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; --- 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.5.0/gcc-11.5.0/gcc/gengtype-lex.l" { return USER_GTY; } YY_BREAK case 25: YY_RULE_SETUP ! #line 129 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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 "/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; --- 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.5.0/gcc-11.5.0/gcc/gengtype-lex.l" case 27: /* rule 27 can match eol */ YY_RULE_SETUP ! #line 135 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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 "/d/gcc-11.4.0/gcc-11.4.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 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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 "/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; --- 1799,1805 ---- case 29: /* rule 29 can match eol */ YY_RULE_SETUP ! #line 151 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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 "/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; --- 1809,1815 ---- case 30: /* rule 30 can match eol */ YY_RULE_SETUP ! #line 156 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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 "/d/gcc-11.4.0/gcc-11.4.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 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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 "/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); } --- 1826,1849 ---- YY_BREAK case 32: YY_RULE_SETUP ! #line 165 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.0/gcc/gengtype-lex.l" { return ELLIPSIS; } YY_BREAK case 33: YY_RULE_SETUP ! #line 166 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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.5.0/gcc-11.5.0/gcc/gengtype-lex.l" {lexer_line.line++;} YY_BREAK case 35: YY_RULE_SETUP ! #line 171 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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 "/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: --- 1851,1886 ---- case 36: YY_RULE_SETUP ! #line 176 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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.5.0/gcc-11.5.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.5.0/gcc-11.5.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 39: ! #line 180 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.0/gcc/gengtype-lex.l" case 40: /* rule 40 can match eol */ ! #line 181 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.0/gcc/gengtype-lex.l" case 41: /* rule 41 can match eol */ YY_RULE_SETUP ! #line 181 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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.5.0/gcc-11.5.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 "/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: --- 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.5.0/gcc-11.5.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.5.0/gcc-11.5.0/gcc/gengtype-lex.l" { lexer_line.line++; } YY_BREAK case 45: ! #line 188 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.0/gcc/gengtype-lex.l" case 46: YY_RULE_SETUP ! #line 188 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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 "/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"); --- 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.5.0/gcc-11.5.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 48: YY_RULE_SETUP ! #line 192 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.0/gcc/gengtype-lex.l" { BEGIN(INITIAL); } YY_BREAK case 49: YY_RULE_SETUP ! #line 193 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.0/gcc/gengtype-lex.l" { BEGIN(in_struct); } YY_BREAK case 50: ! #line 196 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.0/gcc/gengtype-lex.l" case 51: YY_RULE_SETUP ! #line 196 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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 "/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" --- 1941,1952 ---- case 52: /* rule 52 can match eol */ YY_RULE_SETUP ! #line 201 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.0/gcc/gengtype-lex.l" /* do nothing */ YY_BREAK case 53: YY_RULE_SETUP ! #line 203 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.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 "/d/gcc-11.4.0/gcc-11.4.0/gcc/gengtype-lex.l" void --- 2924,2930 ---- #define YYTABLES_NAME "yytables" ! #line 203 "/home/rguenther/src/releases/gcc-11.5.0/gcc-11.5.0/gcc/gengtype-lex.l" void diff -Nrcpad gcc-11.4.0/gcc/genmatch.c gcc-11.5.0/gcc/genmatch.c *** gcc-11.4.0/gcc/genmatch.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/genmatch.c Fri Jul 19 05:52:43 2024 *************** expr::gen_transform (FILE *f, int indent *** 2548,2576 **** { fprintf_indent (f, indent, "if (TREE_TYPE (_o%d[0]) != %s)\n", depth, type); ! indent += 2; } if (opr->kind == id_base::CODE) fprintf_indent (f, indent, "_r%d = fold_build%d_loc (loc, %s, %s", depth, ops.length(), opr_name, type); else ! { ! fprintf_indent (f, indent, "{\n"); ! fprintf_indent (f, indent, " _r%d = maybe_build_call_expr_loc (loc, " ! "%s, %s, %d", depth, opr_name, type, ops.length()); ! } for (unsigned i = 0; i < ops.length (); ++i) fprintf (f, ", _o%d[%u]", depth, i); fprintf (f, ");\n"); if (opr->kind != id_base::CODE) { ! fprintf_indent (f, indent, " if (!_r%d)\n", depth); ! fprintf_indent (f, indent, " goto %s;\n", fail_label); ! fprintf_indent (f, indent, "}\n"); } if (*opr == CONVERT_EXPR) { ! indent -= 2; fprintf_indent (f, indent, "else\n"); fprintf_indent (f, indent, " _r%d = _o%d[0];\n", depth, depth); } --- 2548,2579 ---- { fprintf_indent (f, indent, "if (TREE_TYPE (_o%d[0]) != %s)\n", depth, type); ! fprintf_indent (f, indent + 2, "{\n"); ! indent += 4; } if (opr->kind == id_base::CODE) fprintf_indent (f, indent, "_r%d = fold_build%d_loc (loc, %s, %s", depth, ops.length(), opr_name, type); else ! fprintf_indent (f, indent, "_r%d = maybe_build_call_expr_loc (loc, " ! "%s, %s, %d", depth, opr_name, type, ops.length()); for (unsigned i = 0; i < ops.length (); ++i) fprintf (f, ", _o%d[%u]", depth, i); fprintf (f, ");\n"); if (opr->kind != id_base::CODE) { ! fprintf_indent (f, indent, "if (!_r%d)\n", depth); ! fprintf_indent (f, indent, " goto %s;\n", fail_label); ! } ! if (force_leaf) ! { ! fprintf_indent (f, indent, "if (EXPR_P (_r%d))\n", depth); ! fprintf_indent (f, indent, " goto %s;\n", fail_label); } if (*opr == CONVERT_EXPR) { ! fprintf_indent (f, indent - 2, "}\n"); ! indent -= 4; fprintf_indent (f, indent, "else\n"); fprintf_indent (f, indent, " _r%d = _o%d[0];\n", depth, depth); } *************** parser::parse_expr () *** 4300,4308 **** && token->type == CPP_NOT && !(token->flags & PREV_WHITE)) { - if (!gimple) - fatal_at (token, "forcing simplification to a leaf is not supported " - "for GENERIC"); eat_token (CPP_NOT); e->force_leaf = true; } --- 4303,4308 ---- diff -Nrcpad gcc-11.4.0/gcc/gimple-fold.c gcc-11.5.0/gcc/gimple-fold.c *** gcc-11.4.0/gcc/gimple-fold.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/gimple-fold.c Fri Jul 19 05:52:43 2024 *************** clear_padding_flush (clear_padding_struc *** 4084,4090 **** i -= wordsize; continue; } ! for (size_t j = i; j < i + wordsize && j < end; j++) { if (buf->buf[j]) { --- 4084,4091 ---- i -= wordsize; continue; } ! size_t endsize = end - i > wordsize ? wordsize : end - i; ! for (size_t j = i; j < i + endsize; j++) { if (buf->buf[j]) { *************** clear_padding_flush (clear_padding_struc *** 4113,4124 **** if (padding_bytes) { if (nonzero_first == 0 ! && nonzero_last == wordsize && all_ones) { /* All bits are padding and we had some padding before too. Just extend it. */ ! padding_bytes += wordsize; continue; } if (all_ones && nonzero_first == 0) --- 4114,4125 ---- if (padding_bytes) { if (nonzero_first == 0 ! && nonzero_last == endsize && all_ones) { /* All bits are padding and we had some padding before too. Just extend it. */ ! padding_bytes += endsize; continue; } if (all_ones && nonzero_first == 0) *************** clear_padding_flush (clear_padding_struc *** 4158,4164 **** if (nonzero_first == wordsize) /* All bits in a word are 0, there are no padding bits. */ continue; ! if (all_ones && nonzero_last == wordsize) { /* All bits between nonzero_first and end of word are padding bits, start counting padding_bytes. */ --- 4159,4165 ---- if (nonzero_first == wordsize) /* All bits in a word are 0, there are no padding bits. */ continue; ! if (all_ones && nonzero_last == endsize) { /* All bits between nonzero_first and end of word are padding bits, start counting padding_bytes. */ *************** clear_padding_flush (clear_padding_struc *** 4200,4206 **** j = k; } } ! if (nonzero_last == wordsize) padding_bytes = nonzero_last - zero_last; continue; } --- 4201,4207 ---- j = k; } } ! if (nonzero_last == endsize) padding_bytes = nonzero_last - zero_last; continue; } *************** clear_padding_type (clear_padding_struct *** 4630,4635 **** --- 4631,4637 ---- buf->off = 0; buf->size = 0; clear_padding_emit_loop (buf, elttype, end); + off += sz; buf->base = base; buf->sz = prev_sz; buf->align = prev_align; diff -Nrcpad gcc-11.4.0/gcc/gimple-ssa-backprop.c gcc-11.5.0/gcc/gimple-ssa-backprop.c *** gcc-11.4.0/gcc/gimple-ssa-backprop.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/gimple-ssa-backprop.c Fri Jul 19 05:52:43 2024 *************** strip_sign_op_1 (tree rhs) *** 688,694 **** switch (gimple_assign_rhs_code (assign)) { case ABS_EXPR: - case ABSU_EXPR: case NEGATE_EXPR: return gimple_assign_rhs1 (assign); --- 688,693 ---- diff -Nrcpad gcc-11.4.0/gcc/gimple-ssa-sprintf.c gcc-11.5.0/gcc/gimple-ssa-sprintf.c *** gcc-11.4.0/gcc/gimple-ssa-sprintf.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/gimple-ssa-sprintf.c Fri Jul 19 05:52:43 2024 *************** format_character (const directive &dir, *** 2136,2143 **** res.knownrange = true; ! if (dir.specifier == 'C' ! || dir.modifier == FMT_LEN_l) { /* A wide character can result in as few as zero bytes. */ res.range.min = 0; --- 2136,2142 ---- res.knownrange = true; ! if (dir.specifier == 'C' || dir.modifier == FMT_LEN_l) { /* A wide character can result in as few as zero bytes. */ res.range.min = 0; *************** format_character (const directive &dir, *** 2147,2156 **** { if (min == 0 && max == 0) { ! /* The NUL wide character results in no bytes. */ ! res.range.max = 0; ! res.range.likely = 0; ! res.range.unlikely = 0; } else if (min >= 0 && min < 128) { --- 2146,2158 ---- { if (min == 0 && max == 0) { ! /* In strict reading of older ISO C or POSIX, this required ! no characters to be emitted. ISO C23 changes that, so ! does POSIX, to match what has been implemented in most of the ! implementations, namely emitting a single NUL character. ! Let's use 0 for minimum and 1 for all the other values. */ ! res.range.max = 1; ! res.range.likely = res.range.unlikely = 1; } else if (min >= 0 && min < 128) { *************** format_character (const directive &dir, *** 2158,2168 **** is not a 1-to-1 mapping to the source character set or if the source set is not ASCII. */ bool one_2_one_ascii ! = (target_to_host_charmap[0] == 1 && target_to_host ('a') == 97); /* A wide character in the ASCII range most likely results in a single byte, and only unlikely in up to MB_LEN_MAX. */ ! res.range.max = one_2_one_ascii ? 1 : target_mb_len_max ();; res.range.likely = 1; res.range.unlikely = target_mb_len_max (); res.mayfail = !one_2_one_ascii; --- 2160,2171 ---- is not a 1-to-1 mapping to the source character set or if the source set is not ASCII. */ bool one_2_one_ascii ! = (target_to_host_charmap[0] == 1 ! && target_to_host ('a') == 97); /* A wide character in the ASCII range most likely results in a single byte, and only unlikely in up to MB_LEN_MAX. */ ! res.range.max = one_2_one_ascii ? 1 : target_mb_len_max (); res.range.likely = 1; res.range.unlikely = target_mb_len_max (); res.mayfail = !one_2_one_ascii; *************** format_character (const directive &dir, *** 2193,2199 **** /* A plain '%c' directive. Its output is exactly 1. */ res.range.min = res.range.max = 1; res.range.likely = res.range.unlikely = 1; - res.knownrange = true; } /* Bump up the byte counters if WIDTH is greater. */ --- 2196,2201 ---- diff -Nrcpad gcc-11.4.0/gcc/gimple-ssa-store-merging.c gcc-11.5.0/gcc/gimple-ssa-store-merging.c *** gcc-11.4.0/gcc/gimple-ssa-store-merging.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/gimple-ssa-store-merging.c Fri Jul 19 05:52:43 2024 *************** imm_store_chain_info::output_merged_stor *** 4519,4530 **** } else if ((BYTES_BIG_ENDIAN ? start_gap : end_gap) > 0) { ! const unsigned HOST_WIDE_INT imask ! = (HOST_WIDE_INT_1U << info->bitsize) - 1; tem = gimple_build (&seq, loc, BIT_AND_EXPR, TREE_TYPE (tem), tem, ! build_int_cst (TREE_TYPE (tem), ! imask)); } const HOST_WIDE_INT shift = (BYTES_BIG_ENDIAN ? end_gap : start_gap); --- 4519,4531 ---- } else if ((BYTES_BIG_ENDIAN ? start_gap : end_gap) > 0) { ! wide_int imask ! = wi::mask (info->bitsize, false, ! TYPE_PRECISION (TREE_TYPE (tem))); tem = gimple_build (&seq, loc, BIT_AND_EXPR, TREE_TYPE (tem), tem, ! wide_int_to_tree (TREE_TYPE (tem), ! imask)); } const HOST_WIDE_INT shift = (BYTES_BIG_ENDIAN ? end_gap : start_gap); diff -Nrcpad gcc-11.4.0/gcc/go/ChangeLog gcc-11.5.0/gcc/go/ChangeLog *** gcc-11.4.0/gcc/go/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/gcc/go/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,15 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + + 2023-06-29 Paul E. Murphy + + Backported from master: + 2023-06-22 Paul E. Murphy + + * go-backend.c [TARGET_AIX]: Rename and update usage to TARGET_AIX_OS. + * go-lang.c: Likewise. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/gcc/go/go-backend.c gcc-11.5.0/gcc/go/go-backend.c *** gcc-11.4.0/gcc/go/go-backend.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/go/go-backend.c Fri Jul 19 05:52:43 2024 *************** along with GCC; see the file COPYING3. *** 45,52 **** #define GO_EXPORT_SECTION_NAME ".go_export" #endif ! #ifndef TARGET_AIX ! #define TARGET_AIX 0 #endif /* This file holds all the cases where the Go frontend needs --- 45,52 ---- #define GO_EXPORT_SECTION_NAME ".go_export" #endif ! #ifndef TARGET_AIX_OS ! #define TARGET_AIX_OS 0 #endif /* This file holds all the cases where the Go frontend needs *************** go_write_export_data (const char *bytes, *** 107,113 **** { gcc_assert (targetm_common.have_named_sections); sec = get_section (GO_EXPORT_SECTION_NAME, ! TARGET_AIX ? SECTION_EXCLUDE : SECTION_DEBUG, NULL); } --- 107,113 ---- { gcc_assert (targetm_common.have_named_sections); sec = get_section (GO_EXPORT_SECTION_NAME, ! TARGET_AIX_OS ? SECTION_EXCLUDE : SECTION_DEBUG, NULL); } diff -Nrcpad gcc-11.4.0/gcc/go/go-lang.c gcc-11.5.0/gcc/go/go-lang.c *** gcc-11.4.0/gcc/go/go-lang.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/go/go-lang.c Fri Jul 19 05:52:43 2024 *************** along with GCC; see the file COPYING3. *** 39,46 **** #include "go-c.h" #include "go-gcc.h" ! #ifndef TARGET_AIX ! #define TARGET_AIX 0 #endif /* Language-dependent contents of a type. */ --- 39,46 ---- #include "go-c.h" #include "go-gcc.h" ! #ifndef TARGET_AIX_OS ! #define TARGET_AIX_OS 0 #endif /* Language-dependent contents of a type. */ *************** go_langhook_init (void) *** 119,127 **** args.compiling_runtime = go_compiling_runtime; args.debug_escape_level = go_debug_escape_level; args.debug_escape_hash = go_debug_escape_hash; ! args.nil_check_size_threshold = TARGET_AIX ? -1 : 4096; args.debug_optimization = go_debug_optimization; ! args.need_eqtype = TARGET_AIX ? true : false; args.linemap = go_get_linemap(); args.backend = go_get_backend(); go_create_gogo (&args); --- 119,127 ---- args.compiling_runtime = go_compiling_runtime; args.debug_escape_level = go_debug_escape_level; args.debug_escape_hash = go_debug_escape_hash; ! args.nil_check_size_threshold = TARGET_AIX_OS ? -1 : 4096; args.debug_optimization = go_debug_optimization; ! args.need_eqtype = TARGET_AIX_OS ? true : false; args.linemap = go_get_linemap(); args.backend = go_get_backend(); go_create_gogo (&args); diff -Nrcpad gcc-11.4.0/gcc/internal-fn.c gcc-11.5.0/gcc/internal-fn.c *** gcc-11.4.0/gcc/internal-fn.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/internal-fn.c Fri Jul 19 05:52:43 2024 *************** along with GCC; see the file COPYING3. *** 51,56 **** --- 51,61 ---- #include "ssa-iterators.h" #include "explow.h" #include "rtl-iter.h" + #include "tree-ssa-live.h" + #include "tree-outof-ssa.h" + + /* For lang_hooks.types.type_for_mode. */ + #include "langhooks.h" /* The names of each internal function, indexed by function number. */ const char *const internal_fn_name_array[] = { *************** expand_mul_overflow (location_t loc, tre *** 1388,1394 **** --- 1393,1403 ---- rtx target = NULL_RTX; signop sign; enum insn_code icode; + int save_flag_trapv = flag_trapv; + /* We don't want any __mulv?i3 etc. calls from the expansion of + these internal functions, so disable -ftrapv temporarily. */ + flag_trapv = 0; done_label = gen_label_rtx (); do_error = gen_label_rtx (); *************** expand_mul_overflow (location_t loc, tre *** 2230,2235 **** --- 2239,2245 ---- else expand_arith_overflow_result_store (lhs, target, mode, res); } + flag_trapv = save_flag_trapv; } /* Expand UBSAN_CHECK_* internal function if it has vector operands. */ *************** expand_vector_ubsan_overflow (location_t *** 2250,2256 **** --- 2260,2270 ---- rtx resvr = NULL_RTX; unsigned HOST_WIDE_INT const_cnt = 0; bool use_loop_p = (!cnt.is_constant (&const_cnt) || const_cnt > 4); + int save_flag_trapv = flag_trapv; + /* We don't want any __mulv?i3 etc. calls from the expansion of + these internal functions, so disable -ftrapv temporarily. */ + flag_trapv = 0; if (lhs) { optab op; *************** expand_vector_ubsan_overflow (location_t *** 2380,2385 **** --- 2394,2400 ---- } else if (resvr) emit_move_insn (lhsr, resvr); + flag_trapv = save_flag_trapv; } /* Expand UBSAN_CHECK_ADD call STMT. */ *************** expand_arith_overflow (enum tree_code co *** 2458,2464 **** --- 2473,2483 ---- prec0 = MIN (prec0, pr); pr = get_min_precision (arg1, uns1_p ? UNSIGNED : SIGNED); prec1 = MIN (prec1, pr); + int save_flag_trapv = flag_trapv; + /* We don't want any __mulv?i3 etc. calls from the expansion of + these internal functions, so disable -ftrapv temporarily. */ + flag_trapv = 0; /* If uns0_p && uns1_p, precop is minimum needed precision of unsigned type to hold the exact result, otherwise precop is minimum needed precision of signed type to *************** expand_arith_overflow (enum tree_code co *** 2499,2504 **** --- 2518,2524 ---- ops.location = loc; rtx tem = expand_expr_real_2 (&ops, NULL_RTX, mode, EXPAND_NORMAL); expand_arith_overflow_result_store (lhs, target, mode, tem); + flag_trapv = save_flag_trapv; return; } *************** expand_arith_overflow (enum tree_code co *** 2522,2537 **** --- 2542,2560 ---- if (integer_zerop (arg0) && !unsr_p) { expand_neg_overflow (loc, lhs, arg1, false, NULL); + flag_trapv = save_flag_trapv; return; } /* FALLTHRU */ case PLUS_EXPR: expand_addsub_overflow (loc, code, lhs, arg0, arg1, unsr_p, unsr_p, unsr_p, false, NULL); + flag_trapv = save_flag_trapv; return; case MULT_EXPR: expand_mul_overflow (loc, lhs, arg0, arg1, unsr_p, unsr_p, unsr_p, false, NULL); + flag_trapv = save_flag_trapv; return; default: gcc_unreachable (); *************** expand_arith_overflow (enum tree_code co *** 2577,2582 **** --- 2600,2606 ---- else expand_mul_overflow (loc, lhs, arg0, arg1, unsr_p, uns0_p, uns1_p, false, NULL); + flag_trapv = save_flag_trapv; return; } *************** expand_call_mem_ref (tree type, gcall *s *** 2658,2665 **** tree tmp = addr; if (TREE_CODE (tmp) == SSA_NAME) { ! gimple *def = SSA_NAME_DEF_STMT (tmp); ! if (gimple_assign_single_p (def)) tmp = gimple_assign_rhs1 (def); } --- 2682,2689 ---- tree tmp = addr; if (TREE_CODE (tmp) == SSA_NAME) { ! gimple *def = get_gimple_for_ssa_name (tmp); ! if (def && gimple_assign_single_p (def)) tmp = gimple_assign_rhs1 (def); } diff -Nrcpad gcc-11.4.0/gcc/ipa-icf.c gcc-11.5.0/gcc/ipa-icf.c *** gcc-11.4.0/gcc/ipa-icf.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/ipa-icf.c Fri Jul 19 05:52:43 2024 *************** sem_item_optimizer::merge_classes (unsig *** 3389,3394 **** --- 3389,3395 ---- continue; sem_item *source = c->members[0]; + bool this_merged_p = false; if (DECL_NAME (source->decl) && MAIN_NAME_P (DECL_NAME (source->decl))) *************** sem_item_optimizer::merge_classes (unsig *** 3435,3441 **** if (dbg_cnt (merged_ipa_icf)) { bool merged = source->merge (alias); ! merged_p |= merged; if (merged && alias->type == VAR) { --- 3436,3442 ---- if (dbg_cnt (merged_ipa_icf)) { bool merged = source->merge (alias); ! this_merged_p |= merged; if (merged && alias->type == VAR) { *************** sem_item_optimizer::merge_classes (unsig *** 3444,3449 **** --- 3445,3479 ---- } } } + + merged_p |= this_merged_p; + if (this_merged_p + && source->type == FUNC + && (!flag_wpa || flag_checking)) + { + unsigned i; + tree name; + FOR_EACH_SSA_NAME (i, name, DECL_STRUCT_FUNCTION (source->decl)) + { + /* We need to either merge or reset SSA_NAME_*_INFO. + For merging we don't preserve the mapping between + original and alias SSA_NAMEs from successful equals + calls. */ + if (POINTER_TYPE_P (TREE_TYPE (name))) + { + if (SSA_NAME_PTR_INFO (name)) + { + gcc_checking_assert (!flag_wpa); + SSA_NAME_PTR_INFO (name) = NULL; + } + } + else if (SSA_NAME_RANGE_INFO (name)) + { + gcc_checking_assert (!flag_wpa); + SSA_NAME_RANGE_INFO (name) = NULL; + } + } + } } if (!m_merged_variables.is_empty ()) diff -Nrcpad gcc-11.4.0/gcc/jit/ChangeLog gcc-11.5.0/gcc/jit/ChangeLog *** gcc-11.4.0/gcc/jit/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/gcc/jit/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,16 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + + 2024-04-29 Iain Sandoe + + Backported from master: + 2024-04-02 Iain Sandoe + + * Make-lang.in: Implement exports list, and use a shared + libgcc. + * libgccjit.exports: New file. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/gcc/jit/Make-lang.in gcc-11.5.0/gcc/jit/Make-lang.in *** gcc-11.4.0/gcc/jit/Make-lang.in Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/jit/Make-lang.in Fri Jul 19 05:52:43 2024 *************** else *** 55,61 **** ifneq (,$(findstring darwin,$(host))) ! LIBGCCJIT_AGE = 1 LIBGCCJIT_BASENAME = libgccjit LIBGCCJIT_SONAME = \ --- 55,71 ---- ifneq (,$(findstring darwin,$(host))) ! # NOTE that we are building here for the host, and so tests for target- ! # specific functionality will only work when host == target. This causes ! # fails when building cross-compilers with different object formats (at ! # least when the respective linkers do not accept the same command line ! # options). Fortunately, for Darwin we can safely hard-code the relevant ! # host options, since all usable linkers support them). ! ! LIBGCCJIT_CURRENT = 15 ! LIBGCCJIT_REVISION = 0 ! LIBGCCJIT_AGE = 15 ! LIBGCCJIT_COMPAT = 0 LIBGCCJIT_BASENAME = libgccjit LIBGCCJIT_SONAME = \ *************** LIBGCCJIT_SONAME = \ *** 63,80 **** LIBGCCJIT_FILENAME = $(LIBGCCJIT_BASENAME).$(LIBGCCJIT_VERSION_NUM).dylib LIBGCCJIT_LINKER_NAME = $(LIBGCCJIT_BASENAME).dylib ! # Conditionalize the use of the LD_VERSION_SCRIPT_OPTION and ! # LD_SONAME_OPTION depending if configure found them, using $(if) ! # We have to define a COMMA here, otherwise the commas in the "true" ! # result are treated as separators by the $(if). COMMA := , LIBGCCJIT_VERSION_SCRIPT_OPTION = \ ! $(if $(LD_VERSION_SCRIPT_OPTION),\ ! -Wl$(COMMA)$(LD_VERSION_SCRIPT_OPTION)$(COMMA)$(srcdir)/jit/libgccjit.map) LIBGCCJIT_SONAME_OPTION = \ ! $(if $(LD_SONAME_OPTION), \ ! -Wl$(COMMA)$(LD_SONAME_OPTION)$(COMMA)$(LIBGCCJIT_SONAME)) LIBGCCJIT_SONAME_SYMLINK = $(LIBGCCJIT_FILENAME) LIBGCCJIT_LINKER_NAME_SYMLINK = $(LIBGCCJIT_LINKER_NAME) --- 73,90 ---- LIBGCCJIT_FILENAME = $(LIBGCCJIT_BASENAME).$(LIBGCCJIT_VERSION_NUM).dylib LIBGCCJIT_LINKER_NAME = $(LIBGCCJIT_BASENAME).dylib ! # Darwin does not have a version script option. Exported symbols are controlled ! # by the following, and library versioning is done using libtool. ! # We have to define a COMMA here, otherwise the commas are treated as ! # separators. COMMA := , LIBGCCJIT_VERSION_SCRIPT_OPTION = \ ! -Wl$(COMMA)-exported_symbols_list$(COMMA)$(srcdir)/jit/libgccjit.exports + # For Darwin host, we need a l64 or ld64-compatible linker, that uses + # -install_name to introduce this. LIBGCCJIT_SONAME_OPTION = \ ! -Wl$(COMMA)-install_name$(COMMA)$(LIBGCCJIT_SONAME) LIBGCCJIT_SONAME_SYMLINK = $(LIBGCCJIT_FILENAME) LIBGCCJIT_LINKER_NAME_SYMLINK = $(LIBGCCJIT_LINKER_NAME) *************** ifneq (,$(findstring mingw,$(target))) *** 143,157 **** # Create import library LIBGCCJIT_EXTRA_OPTS = -Wl,--out-implib,$(LIBGCCJIT_IMPORT_LIB) else - ifneq (,$(findstring darwin,$(host))) ! # TODO : Construct a Darwin-style symbol export file. ! LIBGCCJIT_EXTRA_OPTS = -Wl,-compatibility_version,$(LIBGCCJIT_VERSION_NUM) \ ! -Wl,-current_version,$(LIBGCCJIT_VERSION_NUM).$(LIBGCCJIT_MINOR_NUM).$(LIBGCCJIT_AGE) \ ! $(LIBGCCJIT_VERSION_SCRIPT_OPTION) \ ! $(LIBGCCJIT_SONAME_OPTION) else ! LIBGCCJIT_EXTRA_OPTS = $(LIBGCCJIT_VERSION_SCRIPT_OPTION) \ $(LIBGCCJIT_SONAME_OPTION) endif --- 153,170 ---- # Create import library LIBGCCJIT_EXTRA_OPTS = -Wl,--out-implib,$(LIBGCCJIT_IMPORT_LIB) else ifneq (,$(findstring darwin,$(host))) ! LIBGCCJIT_VERS = $(LIBGCCJIT_CURRENT).$(LIBGCCJIT_REVISION).$(LIBGCCJIT_AGE) ! LIBGCCJIT_EXTRA_OPTS = -Wl,-current_version,$(LIBGCCJIT_VERS) \ ! -Wl,-compatibility_version,$(LIBGCCJIT_COMPAT) \ ! $(LIBGCCJIT_VERSION_SCRIPT_OPTION) $(LIBGCCJIT_SONAME_OPTION) ! # Use the default (shared) libgcc. ! JIT_LDFLAGS = $(filter-out -static-libgcc, $(LDFLAGS)) ! ifeq (,$(findstring darwin8,$(host))) ! JIT_LDFLAGS += -Wl,-rpath,@loader_path ! endif else ! JIT_LDFLAGS = $(LDFLAGS) LIBGCCJIT_EXTRA_OPTS = $(LIBGCCJIT_VERSION_SCRIPT_OPTION) \ $(LIBGCCJIT_SONAME_OPTION) endif *************** $(LIBGCCJIT_FILENAME): $(jit_OBJS) \ *** 165,171 **** $(LIBDEPS) $(srcdir)/jit/libgccjit.map \ $(EXTRA_GCC_OBJS) $(jit.prev) @$(call LINK_PROGRESS,$(INDEX.jit),start) ! +$(LLINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ -shared \ $(jit_OBJS) libbackend.a libcommon-target.a libcommon.a \ $(CPPLIB) $(LIBDECNUMBER) $(EXTRA_GCC_LIBS) $(LIBS) $(BACKENDLIBS) \ $(EXTRA_GCC_OBJS) \ --- 178,184 ---- $(LIBDEPS) $(srcdir)/jit/libgccjit.map \ $(EXTRA_GCC_OBJS) $(jit.prev) @$(call LINK_PROGRESS,$(INDEX.jit),start) ! +$(LLINKER) $(ALL_LINKERFLAGS) $(JIT_LDFLAGS) -o $@ -shared \ $(jit_OBJS) libbackend.a libcommon-target.a libcommon.a \ $(CPPLIB) $(LIBDECNUMBER) $(EXTRA_GCC_LIBS) $(LIBS) $(BACKENDLIBS) \ $(EXTRA_GCC_OBJS) \ diff -Nrcpad gcc-11.4.0/gcc/jit/libgccjit.exports gcc-11.5.0/gcc/jit/libgccjit.exports *** gcc-11.4.0/gcc/jit/libgccjit.exports Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/jit/libgccjit.exports Fri Jul 19 05:52:43 2024 *************** *** 0 **** --- 1,171 ---- + # Linker export list for Darwin libgccjit.dylib + + # Contributed by Iain Sandoe . + # + # 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 + # . */ + + # The initial release of the library. + # Keep this list sorted alphabetically: + _gcc_jit_block_add_assignment + _gcc_jit_block_add_assignment_op + _gcc_jit_block_add_comment + _gcc_jit_block_add_eval + _gcc_jit_block_as_object + _gcc_jit_block_end_with_conditional + _gcc_jit_block_end_with_jump + _gcc_jit_block_end_with_return + _gcc_jit_block_end_with_void_return + _gcc_jit_block_get_function + _gcc_jit_context_acquire + _gcc_jit_context_compile + _gcc_jit_context_compile_to_file + _gcc_jit_context_dump_to_file + _gcc_jit_context_dump_reproducer_to_file + _gcc_jit_context_enable_dump + _gcc_jit_context_get_builtin_function + _gcc_jit_context_get_first_error + _gcc_jit_context_get_last_error + _gcc_jit_context_get_type + _gcc_jit_context_get_int_type + _gcc_jit_context_new_array_access + _gcc_jit_context_new_array_type + _gcc_jit_context_new_binary_op + _gcc_jit_context_new_call + _gcc_jit_context_new_call_through_ptr + _gcc_jit_context_new_cast + _gcc_jit_context_new_child_context + _gcc_jit_context_new_comparison + _gcc_jit_context_new_field + _gcc_jit_context_new_function + _gcc_jit_context_new_function_ptr_type + _gcc_jit_context_new_global + _gcc_jit_context_new_location + _gcc_jit_context_new_opaque_struct + _gcc_jit_context_new_param + _gcc_jit_context_new_rvalue_from_double + _gcc_jit_context_new_rvalue_from_int + _gcc_jit_context_new_rvalue_from_long + _gcc_jit_context_new_rvalue_from_ptr + _gcc_jit_context_new_string_literal + _gcc_jit_context_new_struct_type + _gcc_jit_context_new_unary_op + _gcc_jit_context_new_union_type + _gcc_jit_context_null + _gcc_jit_context_one + _gcc_jit_context_release + _gcc_jit_context_set_bool_option + _gcc_jit_context_set_int_option + _gcc_jit_context_set_logfile + _gcc_jit_context_set_str_option + _gcc_jit_context_zero + _gcc_jit_field_as_object + _gcc_jit_function_as_object + _gcc_jit_function_dump_to_dot + _gcc_jit_function_get_param + _gcc_jit_function_new_block + _gcc_jit_function_new_local + _gcc_jit_location_as_object + _gcc_jit_lvalue_as_object + _gcc_jit_lvalue_as_rvalue + _gcc_jit_lvalue_access_field + _gcc_jit_lvalue_get_address + _gcc_jit_object_get_context + _gcc_jit_object_get_debug_string + _gcc_jit_param_as_lvalue + _gcc_jit_param_as_object + _gcc_jit_param_as_rvalue + _gcc_jit_result_get_code + _gcc_jit_result_get_global + _gcc_jit_result_release + _gcc_jit_rvalue_access_field + _gcc_jit_rvalue_as_object + _gcc_jit_rvalue_dereference + _gcc_jit_rvalue_dereference_field + _gcc_jit_rvalue_get_type + _gcc_jit_struct_as_type + _gcc_jit_struct_set_fields + _gcc_jit_type_as_object + _gcc_jit_type_get_const + _gcc_jit_type_get_pointer + _gcc_jit_type_get_volatile + + # Add support for adding arbitrary command-line options (PR jit/66628). + # LIBGCCJIT_ABI_1 + _gcc_jit_context_add_command_line_option + + # Add support for disabling the check for unreachable blocks (PR jit/66546). + # LIBGCCJIT_ABI_2 + _gcc_jit_context_set_bool_allow_unreachable_blocks + + # Add support for switch statements. + # LIBGCCJIT_ABI_3 + _gcc_jit_block_end_with_switch + _gcc_jit_case_as_object + _gcc_jit_context_new_case + + # Add timing API. + #LIBGCCJIT_ABI_4 + _gcc_jit_context_get_timer + _gcc_jit_context_set_timer + _gcc_jit_timer_new + _gcc_jit_timer_release + _gcc_jit_timer_push + _gcc_jit_timer_pop + _gcc_jit_timer_print + + # LIBGCCJIT_ABI_5 + _gcc_jit_context_set_bool_use_external_driver + + # LIBGCCJIT_ABI_6 + _gcc_jit_rvalue_set_bool_require_tail_call + + # LIBGCCJIT_ABI_7 + _gcc_jit_type_get_aligned + + # LIBGCCJIT_ABI_8 + _gcc_jit_type_get_vector + + # LIBGCCJIT_ABI_9 + _gcc_jit_function_get_address + + # LIBGCCJIT_ABI_10 + _gcc_jit_context_new_rvalue_from_vector + + # LIBGCCJIT_ABI_11 + _gcc_jit_context_add_driver_option + + # LIBGCCJIT_ABI_12 + _gcc_jit_context_new_bitfield + + # LIBGCCJIT_ABI_13 + _gcc_jit_version_major + _gcc_jit_version_minor + _gcc_jit_version_patchlevel + + # LIBGCCJIT_ABI_14 + _gcc_jit_global_set_initializer + + # LIBGCCJIT_ABI_15 + _gcc_jit_block_add_extended_asm + _gcc_jit_block_end_with_extended_asm_goto + _gcc_jit_extended_asm_as_object + _gcc_jit_extended_asm_set_volatile_flag + _gcc_jit_extended_asm_set_inline_flag + _gcc_jit_extended_asm_add_output_operand + _gcc_jit_extended_asm_add_input_operand + _gcc_jit_extended_asm_add_clobber + _gcc_jit_context_add_top_level_asm diff -Nrcpad gcc-11.4.0/gcc/lto/ChangeLog gcc-11.5.0/gcc/lto/ChangeLog *** gcc-11.4.0/gcc/lto/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/gcc/lto/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/gcc/match.pd gcc-11.5.0/gcc/match.pd *** gcc-11.4.0/gcc/match.pd Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/match.pd Fri Jul 19 05:52:44 2024 *************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) *** 1543,1549 **** /* (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2) */ (simplify (bit_and (bit_ior @0 CONSTANT_CLASS_P@1) CONSTANT_CLASS_P@2) ! (bit_ior (bit_and @0 @2) (bit_and @1 @2))) /* Combine successive equal operations with constants. */ (for bitop (bit_and bit_ior bit_xor) --- 1543,1549 ---- /* (x | CST1) & CST2 -> (x & CST2) | (CST1 & CST2) */ (simplify (bit_and (bit_ior @0 CONSTANT_CLASS_P@1) CONSTANT_CLASS_P@2) ! (bit_ior (bit_and @0 @2) (bit_and! @1 @2))) /* Combine successive equal operations with constants. */ (for bitop (bit_and bit_ior bit_xor) *************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) *** 1552,1558 **** (if (!CONSTANT_CLASS_P (@0)) /* This is the canonical form regardless of whether (bitop @1 @2) can be folded to a constant. */ ! (bitop @0 (bitop @1 @2)) /* In this case we have three constants and (bitop @0 @1) doesn't fold to a constant. This can happen if @0 or @1 is a POLY_INT_CST and if the values involved are such that the operation can't be decided at --- 1552,1558 ---- (if (!CONSTANT_CLASS_P (@0)) /* This is the canonical form regardless of whether (bitop @1 @2) can be folded to a constant. */ ! (bitop @0 (bitop! @1 @2)) /* In this case we have three constants and (bitop @0 @1) doesn't fold to a constant. This can happen if @0 or @1 is a POLY_INT_CST and if the values involved are such that the operation can't be decided at *************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) *** 2432,2444 **** forever if something doesn't simplify into a constant. */ (if (!CONSTANT_CLASS_P (@0)) (if (outer_op == PLUS_EXPR) ! (plus (view_convert @0) (inner_op @2 (view_convert @1))) ! (minus (view_convert @0) (neg_inner_op @2 (view_convert @1))))) (if (!ANY_INTEGRAL_TYPE_P (TREE_TYPE (@0)) || TYPE_OVERFLOW_WRAPS (TREE_TYPE (@0))) (if (outer_op == PLUS_EXPR) ! (view_convert (plus @0 (inner_op (view_convert @2) @1))) ! (view_convert (minus @0 (neg_inner_op (view_convert @2) @1)))) /* If the constant operation overflows we cannot do the transform directly as we would introduce undefined overflow, for example with (a - 1) + INT_MIN. */ --- 2432,2444 ---- forever if something doesn't simplify into a constant. */ (if (!CONSTANT_CLASS_P (@0)) (if (outer_op == PLUS_EXPR) ! (plus (view_convert @0) (inner_op! @2 (view_convert @1))) ! (minus (view_convert @0) (neg_inner_op! @2 (view_convert @1))))) (if (!ANY_INTEGRAL_TYPE_P (TREE_TYPE (@0)) || TYPE_OVERFLOW_WRAPS (TREE_TYPE (@0))) (if (outer_op == PLUS_EXPR) ! (view_convert (plus @0 (inner_op! (view_convert @2) @1))) ! (view_convert (minus @0 (neg_inner_op! (view_convert @2) @1)))) /* If the constant operation overflows we cannot do the transform directly as we would introduce undefined overflow, for example with (a - 1) + INT_MIN. */ *************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) *** 2469,2478 **** /* If all 3 captures are CONSTANT_CLASS_P, punt, as we might recurse forever if something doesn't simplify into a constant. */ (if (!CONSTANT_CLASS_P (@0)) ! (minus (outer_op (view_convert @1) @2) (view_convert @0))) (if (!ANY_INTEGRAL_TYPE_P (TREE_TYPE (@0)) || TYPE_OVERFLOW_WRAPS (TREE_TYPE (@0))) ! (view_convert (minus (outer_op @1 (view_convert @2)) @0)) (if (types_match (type, @0)) (with { tree cst = const_binop (outer_op, type, @1, @2); } (if (cst && !TREE_OVERFLOW (cst)) --- 2469,2478 ---- /* If all 3 captures are CONSTANT_CLASS_P, punt, as we might recurse forever if something doesn't simplify into a constant. */ (if (!CONSTANT_CLASS_P (@0)) ! (minus (outer_op! (view_convert @1) @2) (view_convert @0))) (if (!ANY_INTEGRAL_TYPE_P (TREE_TYPE (@0)) || TYPE_OVERFLOW_WRAPS (TREE_TYPE (@0))) ! (view_convert (minus (outer_op! @1 (view_convert @2)) @0)) (if (types_match (type, @0)) (with { tree cst = const_binop (outer_op, type, @1, @2); } (if (cst && !TREE_OVERFLOW (cst)) *************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) *** 2488,2497 **** /* If all 3 captures are CONSTANT_CLASS_P, punt, as we might recurse forever if something doesn't simplify into a constant. */ (if (!CONSTANT_CLASS_P (@0)) ! (plus (view_convert @0) (minus @1 (view_convert @2)))) (if (!ANY_INTEGRAL_TYPE_P (TREE_TYPE (@0)) || TYPE_OVERFLOW_WRAPS (TREE_TYPE (@0))) ! (view_convert (plus @0 (minus (view_convert @1) @2))) (if (types_match (type, @0)) (with { tree cst = const_binop (MINUS_EXPR, type, @1, @2); } (if (cst && !TREE_OVERFLOW (cst)) --- 2488,2497 ---- /* If all 3 captures are CONSTANT_CLASS_P, punt, as we might recurse forever if something doesn't simplify into a constant. */ (if (!CONSTANT_CLASS_P (@0)) ! (plus (view_convert @0) (minus! @1 (view_convert @2)))) (if (!ANY_INTEGRAL_TYPE_P (TREE_TYPE (@0)) || TYPE_OVERFLOW_WRAPS (TREE_TYPE (@0))) ! (view_convert (plus @0 (minus! (view_convert @1) @2))) (if (types_match (type, @0)) (with { tree cst = const_binop (MINUS_EXPR, type, @1, @2); } (if (cst && !TREE_OVERFLOW (cst)) *************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) *** 3376,3394 **** int inside_ptr = POINTER_TYPE_P (inside_type); int inside_float = FLOAT_TYPE_P (inside_type); int inside_vec = VECTOR_TYPE_P (inside_type); ! unsigned int inside_prec = TYPE_PRECISION (inside_type); int inside_unsignedp = TYPE_UNSIGNED (inside_type); int inter_int = INTEGRAL_TYPE_P (inter_type); int inter_ptr = POINTER_TYPE_P (inter_type); int inter_float = FLOAT_TYPE_P (inter_type); int inter_vec = VECTOR_TYPE_P (inter_type); ! unsigned int inter_prec = TYPE_PRECISION (inter_type); int inter_unsignedp = TYPE_UNSIGNED (inter_type); int final_int = INTEGRAL_TYPE_P (type); int final_ptr = POINTER_TYPE_P (type); int final_float = FLOAT_TYPE_P (type); int final_vec = VECTOR_TYPE_P (type); ! unsigned int final_prec = TYPE_PRECISION (type); int final_unsignedp = TYPE_UNSIGNED (type); } (switch --- 3376,3394 ---- int inside_ptr = POINTER_TYPE_P (inside_type); int inside_float = FLOAT_TYPE_P (inside_type); int inside_vec = VECTOR_TYPE_P (inside_type); ! unsigned int inside_prec = element_precision (inside_type); int inside_unsignedp = TYPE_UNSIGNED (inside_type); int inter_int = INTEGRAL_TYPE_P (inter_type); int inter_ptr = POINTER_TYPE_P (inter_type); int inter_float = FLOAT_TYPE_P (inter_type); int inter_vec = VECTOR_TYPE_P (inter_type); ! unsigned int inter_prec = element_precision (inter_type); int inter_unsignedp = TYPE_UNSIGNED (inter_type); int final_int = INTEGRAL_TYPE_P (type); int final_ptr = POINTER_TYPE_P (type); int final_float = FLOAT_TYPE_P (type); int final_vec = VECTOR_TYPE_P (type); ! unsigned int final_prec = element_precision (type); int final_unsignedp = TYPE_UNSIGNED (type); } (switch *************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) *** 3675,3680 **** --- 3675,3684 ---- /* (v ? w : 0) ? a : b is just (v & w) ? a : b Currently disabled after pass lvec because ARM understands VEC_COND_EXPR but not a plain v==w fed to BIT_IOR_EXPR. */ + #if GIMPLE + /* These can only be done in gimple as fold likes to convert: + (CMP) & N into (CMP) ? N : 0 + and we try to match the same pattern again and again. */ (simplify (vec_cond (vec_cond:s @0 @3 integer_zerop) @1 @2) (if (optimize_vectors_before_lowering_p () && types_match (@0, @3)) *************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) *** 3709,3714 **** --- 3713,3719 ---- (vec_cond @0 @3 (vec_cond:s @1 @2 @3)) (if (optimize_vectors_before_lowering_p () && types_match (@0, @1)) (vec_cond (bit_and (bit_not @0) @1) @2 @3))) + #endif /* Canonicalize mask ? { 0, ... } : { -1, ...} to ~mask if the mask types are compatible. */ *************** DEFINE_INT_AND_FLOAT_ROUND_FN (RINT) *** 4707,4725 **** >= TYPE_PRECISION (TREE_TYPE (@10))) && (TYPE_UNSIGNED (TREE_TYPE (@00)) == TYPE_UNSIGNED (TREE_TYPE (@10)))) ! || (TREE_CODE (@10) == INTEGER_CST && INTEGRAL_TYPE_P (TREE_TYPE (@00)) ! && int_fits_type_p (@10, TREE_TYPE (@00))))) (cmp @00 (convert @10)) ! (if (TREE_CODE (@10) == INTEGER_CST && INTEGRAL_TYPE_P (TREE_TYPE (@00)) ! && !int_fits_type_p (@10, TREE_TYPE (@00))) (with { tree min = lower_bound_in_type (TREE_TYPE (@10), TREE_TYPE (@00)); tree max = upper_bound_in_type (TREE_TYPE (@10), TREE_TYPE (@00)); ! bool above = integer_nonzerop (const_binop (LT_EXPR, type, max, @10)); ! bool below = integer_nonzerop (const_binop (LT_EXPR, type, @10, min)); } (if (above || below) (if (cmp == EQ_EXPR || cmp == NE_EXPR) --- 4712,4730 ---- >= TYPE_PRECISION (TREE_TYPE (@10))) && (TYPE_UNSIGNED (TREE_TYPE (@00)) == TYPE_UNSIGNED (TREE_TYPE (@10)))) ! || (TREE_CODE (@1) == INTEGER_CST && INTEGRAL_TYPE_P (TREE_TYPE (@00)) ! && int_fits_type_p (@1, TREE_TYPE (@00))))) (cmp @00 (convert @10)) ! (if (TREE_CODE (@1) == INTEGER_CST && INTEGRAL_TYPE_P (TREE_TYPE (@00)) ! && !int_fits_type_p (@1, TREE_TYPE (@00))) (with { tree min = lower_bound_in_type (TREE_TYPE (@10), TREE_TYPE (@00)); tree max = upper_bound_in_type (TREE_TYPE (@10), TREE_TYPE (@00)); ! bool above = integer_nonzerop (const_binop (LT_EXPR, type, max, @1)); ! bool below = integer_nonzerop (const_binop (LT_EXPR, type, @1, min)); } (if (above || below) (if (cmp == EQ_EXPR || cmp == NE_EXPR) diff -Nrcpad gcc-11.4.0/gcc/objc/ChangeLog gcc-11.5.0/gcc/objc/ChangeLog *** gcc-11.4.0/gcc/objc/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/gcc/objc/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,105 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + + 2024-05-10 Iain Sandoe + + Backported from master: + 2024-05-02 Iain Sandoe + + * objc-next-runtime-abi-02.c (WEAK_PROTOCOLS_AFTER): New. + (next_runtime_abi_02_protocol_decl): Use WEAK_PROTOCOLS_AFTER + to determine this ABI change. + (build_v2_protocol_list_address_table): Likewise. + + 2024-04-28 Iain Sandoe + + Backported from master: + 2024-01-28 Iain Sandoe + + * objc-next-runtime-abi-02.c (build_v2_address_table): Prevent + over-alignment of Objective-C metadata by setting DECL_USER_ALIGN + on relevant variables. + (build_v2_protocol_list_address_table): Likewise. + (generate_v2_protocol_list): Likewise. + (generate_v2_meth_descriptor_table): Likewise. + (generate_v2_meth_type_list): Likewise. + (generate_v2_property_table): Likewise. + (generate_v2_dispatch_table): Likewise. + (generate_v2_ivars_list): Likewise. + (generate_v2_class_structs): Likewise. + (build_ehtype): Likewise. + * objc-runtime-shared-support.c (generate_strings): Likewise. + + 2024-04-28 Iain Sandoe + + Backported from master: + 2024-01-18 Iain Sandoe + + * objc-act.c (objc_init): Initialize interface and class + name hash maps before the preprocessor uses them. + + 2024-04-27 Iain Sandoe + + Backported from master: + 2024-01-12 Iain Sandoe + + * objc-next-runtime-abi-02.c + (build_v2_objc_method_fixup_call): Early exit for cases + where the sender or receiver are known to be in error. + + 2024-04-23 Matt Jacobson + + Backported from master: + 2021-08-17 Matt Jacobson + + * objc-next-runtime-abi-02.c + (objc_next_runtime_abi_02_init): Warn about and reset + flag_objc_sjlj_exceptions regardless of flag_objc_exceptions. + (next_runtime_02_initialize): Use a checking assert that + flag_objc_sjlj_exceptions is off. + + 2024-04-23 Iain Sandoe + + Backported from master: + 2021-08-19 Iain Sandoe + + * objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init): + Default receiver nilchecks on. + + 2024-04-23 Iain Sandoe + + Backported from master: + 2021-08-18 Iain Sandoe + Matt Jacobson + + PR objc/101666 + * objc-act.c (objc_build_constructor): Handle empty constructor + lists. + * objc-next-runtime-abi-02.c (build_v2_objc_method_fixup_call): + Handle nil receivers. + (build_v2_build_objc_method_call): Likewise. + + 2024-04-22 Iain Sandoe + + Backported from master: + 2022-05-03 Iain Sandoe + + * objc-next-runtime-abi-02.c (next_runtime_abi_02_protocol_decl): Do + not dead-strip the runtime meta-data symbols. + (build_v2_classrefs_table): Likewise. + (build_v2_protocol_list_address_table): Likewise. + + 2024-03-31 Iain Sandoe + + Backported from master: + 2021-09-01 Iain Sandoe + + PR objc/101718 + * objc-next-runtime-abi-02.c (build_v2_build_objc_method_call): + Revise for cases where scalar objects use an sret parameter. + (next_runtime_abi_02_build_objc_method_call): Likwise. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/gcc/objc/objc-act.c gcc-11.5.0/gcc/objc/objc-act.c *** gcc-11.4.0/gcc/objc/objc-act.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/objc/objc-act.c Fri Jul 19 05:52:44 2024 *************** bool *** 347,352 **** --- 347,357 ---- objc_init (void) { bool ok; + + /* Set up stuff used by the preprocessor as well as FE parser. */ + interface_hash_init (); + hash_init (); + #ifdef OBJCPLUS if (cxx_init () == false) #else *************** objc_init (void) *** 376,383 **** /* Set up stuff used by FE parser and all runtimes. */ errbuf = XNEWVEC (char, 1024 * 10); - interface_hash_init (); - hash_init (); objc_encoding_init (); /* ... and then check flags and set-up for the selected runtime ... */ if (flag_next_runtime && flag_objc_abi >= 2) --- 381,386 ---- *************** objc_build_string_object (tree string) *** 3376,3383 **** return addr; } ! /* Build a static constant CONSTRUCTOR ! with type TYPE and elements ELTS. */ tree objc_build_constructor (tree type, vec *elts) --- 3379,3388 ---- return addr; } ! /* Build a static constant CONSTRUCTOR with type TYPE and elements ELTS. ! We might be presented with a NULL for ELTS, which means 'empty ctor' ! which will subsequently be converted into a zero initializer in the ! middle end. */ tree objc_build_constructor (tree type, vec *elts) *************** objc_build_constructor (tree type, vec (SIZEHASHTABLE); ! if (flag_objc_exceptions && flag_objc_sjlj_exceptions) { inform (UNKNOWN_LOCATION, "%<-fobjc-sjlj-exceptions%> is ignored for " --- 246,252 ---- { extern_names = ggc_cleared_vec_alloc (SIZEHASHTABLE); ! if (flag_objc_sjlj_exceptions) { inform (UNKNOWN_LOCATION, "%<-fobjc-sjlj-exceptions%> is ignored for " *************** objc_next_runtime_abi_02_init (objc_runt *** 254,259 **** --- 255,264 ---- flag_objc_sjlj_exceptions = 0; } + /* NeXT ABI 2 is intended to default to checking for nil receivers. */ + if (! global_options_set.x_flag_objc_nilcheck) + flag_objc_nilcheck = 1; + rthooks->initialize = next_runtime_02_initialize; rthooks->default_constant_string_class_name = DEF_CONSTANT_STRING_CLASS_NAME; rthooks->tag_getclass = TAG_GETCLASS; *************** static void next_runtime_02_initialize ( *** 507,513 **** objc_getPropertyStruct_decl = NULL_TREE; objc_setPropertyStruct_decl = NULL_TREE; ! gcc_assert (!flag_objc_sjlj_exceptions); /* Although we warn that fobjc-exceptions is required for exceptions code, we carry on and create it anyway. */ --- 512,518 ---- objc_getPropertyStruct_decl = NULL_TREE; objc_setPropertyStruct_decl = NULL_TREE; ! gcc_checking_assert (!flag_objc_sjlj_exceptions); /* Although we warn that fobjc-exceptions is required for exceptions code, we carry on and create it anyway. */ *************** next_runtime_abi_02_protocol_decl (tree *** 1027,1033 **** /* static struct _objc_protocol _OBJC_Protocol_; */ snprintf (buf, BUFSIZE, "_OBJC_Protocol_%s", IDENTIFIER_POINTER (PROTOCOL_NAME (p))); ! if (flag_next_runtime >= USE_FIXUP_BEFORE) { decl = create_hidden_decl (objc_v2_protocol_template, buf); DECL_WEAK (decl) = true; --- 1032,1038 ---- /* static struct _objc_protocol _OBJC_Protocol_; */ snprintf (buf, BUFSIZE, "_OBJC_Protocol_%s", IDENTIFIER_POINTER (PROTOCOL_NAME (p))); ! if (flag_next_runtime >= WEAK_PROTOCOLS_AFTER) { decl = create_hidden_decl (objc_v2_protocol_template, buf); DECL_WEAK (decl) = true; *************** next_runtime_abi_02_protocol_decl (tree *** 1035,1040 **** --- 1040,1046 ---- else decl = start_var_decl (objc_v2_protocol_template, buf); OBJCMETA (decl, objc_meta, meta_protocol); + DECL_PRESERVE_P (decl) = 1; return decl; } *************** build_v2_objc_method_fixup_call (int sup *** 1658,1663 **** --- 1664,1671 ---- rcv_p = (super_flag ? objc_super_type : objc_object_type); lookup_object = build_c_cast (input_location, rcv_p, lookup_object); + if (sender == error_mark_node || lookup_object == error_mark_node) + return error_mark_node; /* Use SAVE_EXPR to avoid evaluating the receiver twice. */ lookup_object = save_expr (lookup_object); *************** build_v2_objc_method_fixup_call (int sup *** 1675,1687 **** if (TREE_CODE (ret_type) == RECORD_TYPE || TREE_CODE (ret_type) == UNION_TYPE) ! { ! vec *rtt = NULL; ! /* ??? CHECKME. hmmm..... think we need something more ! here. */ ! CONSTRUCTOR_APPEND_ELT (rtt, NULL_TREE, NULL_TREE); ! ftree = objc_build_constructor (ret_type, rtt); ! } else ftree = fold_convert (ret_type, integer_zero_node); --- 1683,1690 ---- if (TREE_CODE (ret_type) == RECORD_TYPE || TREE_CODE (ret_type) == UNION_TYPE) ! /* An empty constructor is zero-filled by the middle end. */ ! ftree = objc_build_constructor (ret_type, NULL); else ftree = fold_convert (ret_type, integer_zero_node); *************** build_v2_objc_method_fixup_call (int sup *** 1694,1704 **** ifexp, ret_val, ftree, tf_warning_or_error); #else - /* ??? CHECKME. */ ret_val = build_conditional_expr (input_location, ! ifexp, 1, ret_val, NULL_TREE, input_location, ftree, NULL_TREE, input_location); #endif } return ret_val; --- 1697,1707 ---- ifexp, ret_val, ftree, tf_warning_or_error); #else ret_val = build_conditional_expr (input_location, ! ifexp, 0, ret_val, NULL_TREE, input_location, ftree, NULL_TREE, input_location); + ret_val = fold_convert (ret_type, ret_val); #endif } return ret_val; *************** build_v2_build_objc_method_call (int sup *** 1740,1754 **** /* Param list + 2 slots for object and selector. */ vec_alloc (parms, nparm + 2); ! /* If we are returning a struct in memory, and the address ! of that memory location is passed as a hidden first ! argument, then change which messenger entry point this ! expr will call. NB: Note that sender_cast remains ! unchanged (it already has a struct return type). */ ! if (!targetm.calls.struct_value_rtx (0, 0) ! && (TREE_CODE (ret_type) == RECORD_TYPE ! || TREE_CODE (ret_type) == UNION_TYPE) ! && targetm.calls.return_in_memory (ret_type, 0)) { if (super) sender = umsg_id_super2_stret_fixup_decl; --- 1743,1758 ---- /* Param list + 2 slots for object and selector. */ vec_alloc (parms, nparm + 2); ! /* If we are returning an item that must be returned in memory, and the ! target ABI does this by an invisible pointer provided as the first arg, ! we need to adjust the message signature to include this. The second ! part of this excludes targets that provide some alternate scheme for ! structure returns. */ ! if (ret_type && !VOID_TYPE_P (ret_type) ! && targetm.calls.return_in_memory (ret_type, 0) ! && !(targetm.calls.struct_value_rtx (0, 0) ! && (TREE_CODE (ret_type) == RECORD_TYPE ! || TREE_CODE (ret_type) == UNION_TYPE))) { if (super) sender = umsg_id_super2_stret_fixup_decl; *************** build_v2_build_objc_method_call (int sup *** 1790,1800 **** if (TREE_CODE (ret_type) == RECORD_TYPE || TREE_CODE (ret_type) == UNION_TYPE) { ! vec *rtt = NULL; ! /* ??? CHECKME. hmmm..... think we need something more ! here. */ ! CONSTRUCTOR_APPEND_ELT (rtt, NULL_TREE, NULL_TREE); ! ftree = objc_build_constructor (ret_type, rtt); } else ftree = fold_convert (ret_type, integer_zero_node); --- 1794,1801 ---- if (TREE_CODE (ret_type) == RECORD_TYPE || TREE_CODE (ret_type) == UNION_TYPE) { ! /* An empty constructor is zero-filled by the middle end. */ ! ftree = objc_build_constructor (ret_type, NULL); } else ftree = fold_convert (ret_type, integer_zero_node); *************** build_v2_build_objc_method_call (int sup *** 1807,1816 **** ret_val = build_conditional_expr (loc, ifexp, ret_val, ftree, tf_warning_or_error); #else - /* ??? CHECKME. */ ret_val = build_conditional_expr (loc, ifexp, 1, ret_val, NULL_TREE, loc, ftree, NULL_TREE, loc); #endif } return ret_val; --- 1808,1817 ---- ret_val = build_conditional_expr (loc, ifexp, ret_val, ftree, tf_warning_or_error); #else ret_val = build_conditional_expr (loc, ifexp, 1, ret_val, NULL_TREE, loc, ftree, NULL_TREE, loc); + ret_val = fold_convert (ret_type, ret_val); #endif } return ret_val; *************** next_runtime_abi_02_build_objc_method_ca *** 1853,1862 **** ? TREE_VALUE (TREE_TYPE (method_prototype)) : objc_object_type; ! if (!targetm.calls.struct_value_rtx (0, 0) ! && (TREE_CODE (ret_type) == RECORD_TYPE ! || TREE_CODE (ret_type) == UNION_TYPE) ! && targetm.calls.return_in_memory (ret_type, 0)) { if (super) message_func_decl = umsg_id_super2_stret_fixup_decl; --- 1854,1865 ---- ? TREE_VALUE (TREE_TYPE (method_prototype)) : objc_object_type; ! /* See comment for the fixup version above. */ ! if (ret_type && !VOID_TYPE_P (ret_type) ! && targetm.calls.return_in_memory (ret_type, 0) ! && !(targetm.calls.struct_value_rtx (0, 0) ! && (TREE_CODE (ret_type) == RECORD_TYPE ! || TREE_CODE (ret_type) == UNION_TYPE))) { if (super) message_func_decl = umsg_id_super2_stret_fixup_decl; *************** build_v2_classrefs_table (void) *** 2121,2128 **** expr = convert (objc_class_type, build_fold_addr_expr (expr)); } /* The runtime wants this, even if it appears unused, so we must force the ! output. ! DECL_PRESERVE_P (decl) = 1; */ finish_var_decl (decl, expr); } } --- 2124,2131 ---- expr = convert (objc_class_type, build_fold_addr_expr (expr)); } /* The runtime wants this, even if it appears unused, so we must force the ! output. */ ! DECL_PRESERVE_P (decl) = 1; finish_var_decl (decl, expr); } } *************** build_v2_address_table (vec *** 2249,2254 **** --- 2252,2258 ---- DECL_PRESERVE_P (decl) = 1; expr = objc_build_constructor (type, initlist); OBJCMETA (decl, objc_meta, attr); + DECL_USER_ALIGN (decl) = 1; finish_var_decl (decl, expr); } *************** build_v2_protocol_list_address_table (vo *** 2314,2320 **** gcc_assert (ref->id && TREE_CODE (ref->id) == PROTOCOL_INTERFACE_TYPE); snprintf (buf, BUFSIZE, "_OBJC_LabelProtocol_%s", IDENTIFIER_POINTER (PROTOCOL_NAME (ref->id))); ! if (flag_next_runtime >= USE_FIXUP_BEFORE) { decl = create_hidden_decl (objc_protocol_type, buf, /*is def=*/true); DECL_WEAK (decl) = true; --- 2318,2324 ---- gcc_assert (ref->id && TREE_CODE (ref->id) == PROTOCOL_INTERFACE_TYPE); snprintf (buf, BUFSIZE, "_OBJC_LabelProtocol_%s", IDENTIFIER_POINTER (PROTOCOL_NAME (ref->id))); ! if (flag_next_runtime >= WEAK_PROTOCOLS_AFTER) { decl = create_hidden_decl (objc_protocol_type, buf, /*is def=*/true); DECL_WEAK (decl) = true; *************** build_v2_protocol_list_address_table (vo *** 2323,2328 **** --- 2327,2334 ---- decl = create_global_decl (objc_protocol_type, buf, /*is def=*/true); expr = convert (objc_protocol_type, build_fold_addr_expr (ref->refdecl)); OBJCMETA (decl, objc_meta, meta_label_protocollist); + DECL_PRESERVE_P (decl) = 1; + DECL_USER_ALIGN (decl) = 1; finish_var_decl (decl, expr); } *************** generate_v2_protocol_list (tree i_or_p, *** 2401,2406 **** --- 2407,2413 ---- /* ObjC2 puts all these in the base section. */ OBJCMETA (refs_decl, objc_meta, meta_base); DECL_PRESERVE_P (refs_decl) = 1; + DECL_USER_ALIGN (refs_decl) = 1; finish_var_decl (refs_decl, objc_build_constructor (TREE_TYPE (refs_decl),initlist)); return refs_decl; *************** generate_v2_meth_descriptor_table (tree *** 2509,2514 **** --- 2516,2522 ---- CONSTRUCTOR_APPEND_ELT (v, NULL_TREE, initlist); /* Get into the right section. */ OBJCMETA (decl, objc_meta, attr); + DECL_USER_ALIGN (decl) = 1; finish_var_decl (decl, objc_build_constructor (method_list_template, v)); return decl; } *************** generate_v2_meth_type_list (vec& a *** 2527,2539 **** IDENTIFIER_POINTER (PROTOCOL_NAME (protocol))); tree decl = start_var_decl (list_type, nam); free (nam); - OBJCMETA (decl, objc_meta, meta_base); vec *v = NULL; for (unsigned i = 0; i < size; ++i) CONSTRUCTOR_APPEND_ELT (v, NULL_TREE, add_objc_string (METHOD_ENCODING (all_meths[i]), meth_var_types)); finish_var_decl (decl, objc_build_constructor (list_type, v)); return decl; } --- 2535,2548 ---- IDENTIFIER_POINTER (PROTOCOL_NAME (protocol))); tree decl = start_var_decl (list_type, nam); free (nam); vec *v = NULL; for (unsigned i = 0; i < size; ++i) CONSTRUCTOR_APPEND_ELT (v, NULL_TREE, add_objc_string (METHOD_ENCODING (all_meths[i]), meth_var_types)); + OBJCMETA (decl, objc_meta, meta_base); + DECL_USER_ALIGN (decl) = 1; finish_var_decl (decl, objc_build_constructor (list_type, v)); return decl; } *************** generate_v2_property_table (tree context *** 2656,2661 **** --- 2665,2671 ---- CONSTRUCTOR_APPEND_ELT (inits, NULL_TREE, initlist); OBJCMETA (decl, objc_meta, meta_base); + DECL_USER_ALIGN (decl) = 1; finish_var_decl (decl, objc_build_constructor (TREE_TYPE (decl), inits)); return decl; } *************** generate_v2_dispatch_table (tree chain, *** 2867,2872 **** --- 2877,2883 ---- CONSTRUCTOR_APPEND_ELT (v, NULL_TREE, initlist); OBJCMETA (decl, objc_meta, attr); + DECL_USER_ALIGN (decl) = 1; finish_var_decl (decl, objc_build_constructor (TREE_TYPE (decl), v)); return decl; *************** generate_v2_ivars_list (tree chain, cons *** 3164,3169 **** --- 3175,3181 ---- build_int_cst (integer_type_node, size)); CONSTRUCTOR_APPEND_ELT (inits, NULL_TREE, initlist); OBJCMETA (decl, objc_meta, attr); + DECL_USER_ALIGN (decl) = 1; finish_var_decl (decl, objc_build_constructor (TREE_TYPE (decl), inits)); generating_instance_variables = 0; return decl; *************** generate_v2_class_structs (struct imp_en *** 3431,3437 **** decl = start_var_decl (objc_v2_class_ro_template, newabi_append_ro (IDENTIFIER_POINTER (DECL_NAME (metaclass_decl)))); - /* TODO: ivarLayout needs t be built. */ initlist = build_v2_class_ro_t_initializer (TREE_TYPE (decl), name_expr, --- 3443,3448 ---- *************** generate_v2_class_structs (struct imp_en *** 3441,3446 **** --- 3452,3458 ---- class_ivars, NULL_TREE); /* The ROs sit in the default const section. */ OBJCMETA (decl, objc_meta, meta_base); + DECL_USER_ALIGN (decl) = 1; finish_var_decl (decl, initlist); /* static struct class_t _OBJC_METACLASS_Foo = { ... }; */ *************** generate_v2_class_structs (struct imp_en *** 3452,3457 **** --- 3464,3470 ---- build_fold_addr_expr (UOBJC_V2_CACHE_decl), build_fold_addr_expr (UOBJC_V2_VTABLE_decl)); /* The class section attributes are set when they are created. */ + DECL_USER_ALIGN (metaclass_decl) = 1; finish_var_decl (metaclass_decl, initlist); impent->meta_decl = metaclass_decl; *************** generate_v2_class_structs (struct imp_en *** 3531,3536 **** --- 3544,3550 ---- inst_ivars, props); /* The ROs sit in the default const section. */ OBJCMETA (decl, objc_meta, meta_base); + DECL_USER_ALIGN (decl) = 1; finish_var_decl (decl, initlist); /* static struct class_t _OBJC_CLASS_Foo = { ... }; */ *************** generate_v2_class_structs (struct imp_en *** 3542,3547 **** --- 3556,3562 ---- build_fold_addr_expr (UOBJC_V2_VTABLE_decl)); /* The class section attributes are set when they are created. */ + DECL_USER_ALIGN (class_decl) = 1; finish_var_decl (class_decl, initlist); impent->class_decl = class_decl; *************** build_ehtype (tree name, const char *eh_ *** 3716,3721 **** --- 3731,3737 ---- DECL_WEAK (ehtype_decl) = 1; inits = objc2_build_ehtype_initializer (name_expr, class_name_expr); OBJCMETA (ehtype_decl, objc_meta, meta_ehtype); + DECL_USER_ALIGN (ehtype_decl) = 1; finish_var_decl (ehtype_decl, inits); return ehtype_decl; } diff -Nrcpad gcc-11.4.0/gcc/objc/objc-runtime-shared-support.c gcc-11.5.0/gcc/objc/objc-runtime-shared-support.c *** gcc-11.4.0/gcc/objc/objc-runtime-shared-support.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/objc/objc-runtime-shared-support.c Fri Jul 19 05:52:44 2024 *************** generate_strings (void) *** 689,694 **** --- 689,695 ---- decl = TREE_PURPOSE (chain); string_expr = my_build_string (IDENTIFIER_LENGTH (string) + 1, IDENTIFIER_POINTER (string)); + DECL_USER_ALIGN (decl) = 1; finish_var_decl (decl, string_expr); } *************** generate_strings (void) *** 698,703 **** --- 699,705 ---- decl = TREE_PURPOSE (chain); string_expr = my_build_string (IDENTIFIER_LENGTH (string) + 1, IDENTIFIER_POINTER (string)); + DECL_USER_ALIGN (decl) = 1; finish_var_decl (decl, string_expr); } *************** generate_strings (void) *** 707,712 **** --- 709,715 ---- decl = TREE_PURPOSE (chain); string_expr = my_build_string (IDENTIFIER_LENGTH (string) + 1, IDENTIFIER_POINTER (string)); + DECL_USER_ALIGN (decl) = 1; finish_var_decl (decl, string_expr); } *************** generate_strings (void) *** 716,721 **** --- 719,725 ---- decl = TREE_PURPOSE (chain); string_expr = my_build_string (IDENTIFIER_LENGTH (string) + 1, IDENTIFIER_POINTER (string)); + DECL_USER_ALIGN (decl) = 1; finish_var_decl (decl, string_expr); } } diff -Nrcpad gcc-11.4.0/gcc/objcp/ChangeLog gcc-11.5.0/gcc/objcp/ChangeLog *** gcc-11.4.0/gcc/objcp/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/gcc/objcp/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/gcc/opts-common.c gcc-11.5.0/gcc/opts-common.c *** gcc-11.4.0/gcc/opts-common.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/opts-common.c Fri Jul 19 05:52:44 2024 *************** add_misspelling_candidates (auto_vecsafe_push (alternative); } } --- 508,516 ---- if (strncmp (opt_text, new_prefix, new_prefix_len) == 0) { ! char *alternative ! = concat (opt0 + 1, opt1 ? " " : "", opt1 ? opt1 : "", ! opt_text + new_prefix_len, NULL); candidates->safe_push (alternative); } } diff -Nrcpad gcc-11.4.0/gcc/po/ChangeLog gcc-11.5.0/gcc/po/ChangeLog *** gcc-11.4.0/gcc/po/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/gcc/po/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/gcc/rtl-ssa/accesses.cc gcc-11.5.0/gcc/rtl-ssa/accesses.cc *** gcc-11.4.0/gcc/rtl-ssa/accesses.cc Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/rtl-ssa/accesses.cc Fri Jul 19 05:52:44 2024 *************** function_info::insert_temp_clobber (obst *** 1290,1296 **** } // A subroutine of make_uses_available. Try to make USE's definition ! // available at the head of BB. On success: // // - If the use would have the same def () as USE, return USE. // --- 1290,1299 ---- } // A subroutine of make_uses_available. Try to make USE's definition ! // available at the head of BB. WILL_BE_DEBUG_USE is true if the ! // definition will be used only in debug instructions. ! // ! // On success: // // - If the use would have the same def () as USE, return USE. // *************** function_info::insert_temp_clobber (obst *** 1302,1308 **** // // Return null on failure. use_info * ! function_info::make_use_available (use_info *use, bb_info *bb) { set_info *def = use->def (); if (!def) --- 1305,1312 ---- // // Return null on failure. use_info * ! function_info::make_use_available (use_info *use, bb_info *bb, ! bool will_be_debug_use) { set_info *def = use->def (); if (!def) *************** function_info::make_use_available (use_i *** 1318,1324 **** && single_pred (cfg_bb) == use_bb->cfg_bb () && remains_available_on_exit (def, use_bb)) { ! if (def->ebb () == bb->ebb ()) return use; resource_info resource = use->resource (); --- 1322,1328 ---- && single_pred (cfg_bb) == use_bb->cfg_bb () && remains_available_on_exit (def, use_bb)) { ! if (def->ebb () == bb->ebb () || will_be_debug_use) return use; resource_info resource = use->resource (); *************** function_info::make_use_available (use_i *** 1362,1368 **** // See the comment above the declaration. use_array function_info::make_uses_available (obstack_watermark &watermark, ! use_array uses, bb_info *bb) { unsigned int num_uses = uses.size (); if (num_uses == 0) --- 1366,1373 ---- // See the comment above the declaration. use_array function_info::make_uses_available (obstack_watermark &watermark, ! use_array uses, bb_info *bb, ! bool will_be_debug_uses) { unsigned int num_uses = uses.size (); if (num_uses == 0) *************** function_info::make_uses_available (obst *** 1371,1377 **** auto **new_uses = XOBNEWVEC (watermark, access_info *, num_uses); for (unsigned int i = 0; i < num_uses; ++i) { ! use_info *use = make_use_available (uses[i], bb); if (!use) return use_array (access_array::invalid ()); new_uses[i] = use; --- 1376,1382 ---- auto **new_uses = XOBNEWVEC (watermark, access_info *, num_uses); for (unsigned int i = 0; i < num_uses; ++i) { ! use_info *use = make_use_available (uses[i], bb, will_be_debug_uses); if (!use) return use_array (access_array::invalid ()); new_uses[i] = use; diff -Nrcpad gcc-11.4.0/gcc/rtl-ssa/functions.h gcc-11.5.0/gcc/rtl-ssa/functions.h *** gcc-11.4.0/gcc/rtl-ssa/functions.h Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/rtl-ssa/functions.h Fri Jul 19 05:52:44 2024 *************** public: *** 126,133 **** // If the operation fails, return an invalid use_array. // // WATERMARK is a watermark returned by new_change_attempt (). use_array make_uses_available (obstack_watermark &watermark, ! use_array uses, bb_info *bb); // If CHANGE doesn't already clobber REGNO, try to add such a clobber, // limiting the movement range in order to make the clobber valid. --- 126,136 ---- // If the operation fails, return an invalid use_array. // // WATERMARK is a watermark returned by new_change_attempt (). + // WILL_BE_DEBUG_USES is true if the returned use_array will be + // used only for debug instructions. use_array make_uses_available (obstack_watermark &watermark, ! use_array uses, bb_info *bb, ! bool will_be_debug_uses); // If CHANGE doesn't already clobber REGNO, try to add such a clobber, // limiting the movement range in order to make the clobber valid. *************** private: *** 196,202 **** def_node *need_def_node (def_info *); def_splay_tree need_def_splay_tree (def_info *); ! use_info *make_use_available (use_info *, bb_info *); def_array insert_temp_clobber (obstack_watermark &, insn_info *, unsigned int, def_array); --- 199,205 ---- def_node *need_def_node (def_info *); def_splay_tree need_def_splay_tree (def_info *); ! use_info *make_use_available (use_info *, bb_info *, bool); def_array insert_temp_clobber (obstack_watermark &, insn_info *, unsigned int, def_array); diff -Nrcpad gcc-11.4.0/gcc/rtl-ssa/insns.h gcc-11.5.0/gcc/rtl-ssa/insns.h *** gcc-11.4.0/gcc/rtl-ssa/insns.h Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/rtl-ssa/insns.h Fri Jul 19 05:52:44 2024 *************** using insn_call_clobbers_tree = default_ *** 141,147 **** // of "notes", a bit like REG_NOTES for the underlying RTL insns. class insn_info { ! // Size: 8 LP64 words. friend class ebb_info; friend class function_info; --- 141,147 ---- // of "notes", a bit like REG_NOTES for the underlying RTL insns. class insn_info { ! // Size: 9 LP64 words. friend class ebb_info; friend class function_info; *************** private: *** 401,410 **** // The number of definitions and the number uses. FIRST_PSEUDO_REGISTER + 1 // is the maximum number of accesses to hard registers and memory, and // MAX_RECOG_OPERANDS is the maximum number of pseudos that can be ! // defined by an instruction, so the number of definitions should fit ! // easily in 16 bits. unsigned int m_num_uses; ! unsigned int m_num_defs : 16; // Flags returned by the accessors above. unsigned int m_is_debug_insn : 1; --- 401,411 ---- // The number of definitions and the number uses. FIRST_PSEUDO_REGISTER + 1 // is the maximum number of accesses to hard registers and memory, and // MAX_RECOG_OPERANDS is the maximum number of pseudos that can be ! // defined by an instruction, so the number of definitions in a real ! // instruction should fit easily in 16 bits. However, there are no ! // limits on the number of definitions in artifical instructions. unsigned int m_num_uses; ! unsigned int m_num_defs; // Flags returned by the accessors above. unsigned int m_is_debug_insn : 1; *************** private: *** 414,420 **** unsigned int m_has_volatile_refs : 1; // For future expansion. ! unsigned int m_spare : 11; // The program point at which the instruction occurs. // --- 415,421 ---- unsigned int m_has_volatile_refs : 1; // For future expansion. ! unsigned int m_spare : 27; // The program point at which the instruction occurs. // *************** private: *** 431,436 **** --- 432,440 ---- // instruction. mutable int m_cost_or_uid; + // On LP64 systems, there's a gap here that could be used for future + // expansion. + // The list of notes that have been attached to the instruction. insn_note *m_first_note; }; diff -Nrcpad gcc-11.4.0/gcc/rtlanal.c gcc-11.5.0/gcc/rtlanal.c *** gcc-11.4.0/gcc/rtlanal.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/rtlanal.c Fri Jul 19 05:52:44 2024 *************** set_noop_p (const_rtx set) *** 1644,1655 **** return 1; if (MEM_P (dst) && MEM_P (src)) ! return rtx_equal_p (dst, src) && !side_effects_p (dst); if (GET_CODE (dst) == ZERO_EXTRACT) ! return rtx_equal_p (XEXP (dst, 0), src) ! && !BITS_BIG_ENDIAN && XEXP (dst, 2) == const0_rtx ! && !side_effects_p (src); if (GET_CODE (dst) == STRICT_LOW_PART) dst = XEXP (dst, 0); --- 1644,1658 ---- return 1; if (MEM_P (dst) && MEM_P (src)) ! return (rtx_equal_p (dst, src) ! && !side_effects_p (dst) ! && !side_effects_p (src)); if (GET_CODE (dst) == ZERO_EXTRACT) ! return (rtx_equal_p (XEXP (dst, 0), src) ! && !BITS_BIG_ENDIAN && XEXP (dst, 2) == const0_rtx ! && !side_effects_p (src) ! && !side_effects_p (XEXP (dst, 0))); if (GET_CODE (dst) == STRICT_LOW_PART) dst = XEXP (dst, 0); diff -Nrcpad gcc-11.4.0/gcc/symtab.c gcc-11.5.0/gcc/symtab.c *** gcc-11.4.0/gcc/symtab.c Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/symtab.c Fri Jul 19 05:52:44 2024 *************** symtab_node::verify (void) *** 1363,1368 **** --- 1363,1460 ---- timevar_pop (TV_CGRAPH_VERIFY); } + /* Return true and set *DATA to true if NODE is an ifunc resolver. */ + + static bool + check_ifunc_resolver (cgraph_node *node, void *data) + { + if (node->ifunc_resolver) + { + bool *is_ifunc_resolver = (bool *) data; + *is_ifunc_resolver = true; + return true; + } + return false; + } + + static bitmap ifunc_ref_map; + + /* Return true if any caller of NODE is an ifunc resolver. */ + + static bool + is_caller_ifunc_resolver (cgraph_node *node) + { + bool is_ifunc_resolver = false; + + for (cgraph_edge *e = node->callers; e; e = e->next_caller) + { + /* Return true if caller is known to be an IFUNC resolver. */ + if (e->caller->called_by_ifunc_resolver) + return true; + + /* Check for recursive call. */ + if (e->caller == node) + continue; + + /* Skip if it has been visited. */ + unsigned int uid = e->caller->get_uid (); + if (!bitmap_set_bit (ifunc_ref_map, uid)) + continue; + + if (is_caller_ifunc_resolver (e->caller)) + { + /* Return true if caller is an IFUNC resolver. */ + e->caller->called_by_ifunc_resolver = true; + return true; + } + + /* Check if caller's alias is an IFUNC resolver. */ + e->caller->call_for_symbol_and_aliases (check_ifunc_resolver, + &is_ifunc_resolver, + true); + if (is_ifunc_resolver) + { + /* Return true if caller's alias is an IFUNC resolver. */ + e->caller->called_by_ifunc_resolver = true; + return true; + } + } + + return false; + } + + /* Check symbol table for callees of IFUNC resolvers. */ + + void + symtab_node::check_ifunc_callee_symtab_nodes (void) + { + symtab_node *node; + + bitmap_obstack_initialize (NULL); + ifunc_ref_map = BITMAP_ALLOC (NULL); + + FOR_EACH_SYMBOL (node) + { + cgraph_node *cnode = dyn_cast (node); + if (!cnode) + continue; + + unsigned int uid = cnode->get_uid (); + if (bitmap_bit_p (ifunc_ref_map, uid)) + continue; + bitmap_set_bit (ifunc_ref_map, uid); + + bool is_ifunc_resolver = false; + cnode->call_for_symbol_and_aliases (check_ifunc_resolver, + &is_ifunc_resolver, true); + if (is_ifunc_resolver || is_caller_ifunc_resolver (cnode)) + cnode->called_by_ifunc_resolver = true; + } + + BITMAP_FREE (ifunc_ref_map); + bitmap_obstack_release (NULL); + } + /* Verify symbol table for internal consistency. */ DEBUG_FUNCTION void diff -Nrcpad gcc-11.4.0/gcc/system.h gcc-11.5.0/gcc/system.h *** gcc-11.4.0/gcc/system.h Mon May 29 08:46:29 2023 --- gcc-11.5.0/gcc/system.h Fri Jul 19 05:52:44 2024 *************** extern int fprintf_unlocked (FILE *, con *** 194,220 **** #undef fread_unlocked #undef fwrite_unlocked ! /* Include before "safe-ctype.h" to avoid GCC poisoning ! the ctype macros through safe-ctype.h */ ! ! #ifdef __cplusplus ! #ifdef INCLUDE_STRING ! # include ! #endif ! #endif ! ! /* There are an extraordinary number of issues with . ! The last straw is that it varies with the locale. Use libiberty's ! replacement instead. */ ! #include "safe-ctype.h" ! ! #include ! ! #include ! ! #if !defined (errno) && defined (HAVE_DECL_ERRNO) && !HAVE_DECL_ERRNO ! extern int errno; ! #endif #ifdef __cplusplus #if defined (INCLUDE_ALGORITHM) || !defined (HAVE_SWAP_IN_UTILITY) --- 194,201 ---- #undef fread_unlocked #undef fwrite_unlocked ! /* Include C++ standard headers before "safe-ctype.h" to avoid GCC ! poisoning the ctype macros through safe-ctype.h */ #ifdef __cplusplus #if defined (INCLUDE_ALGORITHM) || !defined (HAVE_SWAP_IN_UTILITY) *************** extern int errno; *** 229,234 **** --- 210,218 ---- #ifdef INCLUDE_SET # include #endif + #ifdef INCLUDE_STRING + # include + #endif #ifdef INCLUDE_VECTOR # include #endif *************** extern int errno; *** 244,249 **** --- 228,246 ---- # include #endif + /* There are an extraordinary number of issues with . + The last straw is that it varies with the locale. Use libiberty's + replacement instead. */ + #include "safe-ctype.h" + + #include + + #include + + #if !defined (errno) && defined (HAVE_DECL_ERRNO) && !HAVE_DECL_ERRNO + extern int errno; + #endif + /* Some of glibc's string inlines cause warnings. Plus we'd rather rely on (and therefore test) GCC's string builtins. */ #define __NO_STRING_INLINES diff -Nrcpad gcc-11.4.0/gcc/testsuite/ChangeLog gcc-11.5.0/gcc/testsuite/ChangeLog *** gcc-11.4.0/gcc/testsuite/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/gcc/testsuite/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,1494 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + + 2024-07-18 Jakub Jelinek + + Backported from master: + 2024-07-18 Jakub Jelinek + + * c-c++-common/torture/builtin-clear-padding-3.c (main): Compare + s2.b.a against -1 rather than (char) -1. + + 2024-07-17 Jakub Jelinek + + Backported from master: + 2024-07-17 Jakub Jelinek + + PR middle-end/115527 + * c-c++-common/torture/builtin-clear-padding-1.c: Add dg-do run + directive. + * c-c++-common/torture/builtin-clear-padding-2.c: Likewise. + * c-c++-common/torture/builtin-clear-padding-3.c: Likewise. + * c-c++-common/torture/builtin-clear-padding-4.c: Likewise. + * c-c++-common/torture/builtin-clear-padding-5.c: Likewise. + * c-c++-common/torture/builtin-clear-padding-6.c: New test. + + 2024-07-11 Andre Vieira + + Backported from master: + 2024-07-11 Andre Vieira + + * gcc.target/arm/mve/intrinsics/vsetq_lane_su64.c: New test. + + 2024-07-09 Kyrylo Tkachov + + Backported from master: + 2024-07-03 Kyrylo Tkachov + + PR target/115475 + * gcc.target/aarch64/acle/bf16_sve_feature.c: New test. + + 2024-07-09 Kyrylo Tkachov + + Backported from master: + 2024-07-03 Kyrylo Tkachov + + PR target/115457 + * gcc.target/aarch64/acle/bf16_feature.c: New test. + + 2024-07-08 Andrew Pinski + + Backported from master: + 2024-02-16 Andrew Pinski + + PR c++/97990 + * g++.dg/torture/vector-struct-1.C: New test. + + 2024-06-27 Iain Sandoe + + Backported from master: + 2022-04-28 Iain Sandoe + + PR c++/104051 + * g++.dg/coroutines/pr104051.C: New test. + + 2024-06-27 Iain Sandoe + + Backported from master: + 2021-10-03 Iain Sandoe + + PR c++/101765 + * g++.dg/coroutines/pr101765.C: New test. + + 2024-06-27 Iain Sandoe + + Backported from master: + 2021-12-17 Iain Sandoe + + PR c++/100772 + * g++.dg/coroutines/pr100772-a.C: New test. + * g++.dg/coroutines/pr100772-b.C: New test. + + 2024-06-27 Iain Sandoe + + Backported from master: + 2021-10-03 Iain Sandoe + + PR c++/99710 + * g++.dg/coroutines/pr99710.C: New test. + + 2024-06-24 Kewen Lin + + Backported from master: + 2024-05-29 Kewen Lin + + PR target/114846 + * gcc.target/powerpc/pr114846.c: New test. + + 2024-06-21 Richard Biener + + Backported from master: + 2024-01-31 Richard Biener + + PR middle-end/110176 + * gcc.dg/torture/pr110176.c: New testcase. + + 2024-06-21 Richard Biener + + PR tree-optimization/111070 + * gcc.dg/pr111070.c: New testcase. + + 2024-06-21 Richard Biener + + PR tree-optimization/111039 + * gcc.dg/pr111039.c: New testcase. + + 2024-06-21 Richard Biener + + PR debug/111080 + * gcc.dg/debug/dwarf2/pr111080.c: New testcase. + + 2024-06-21 Richard Biener + + Backported from master: + 2023-10-20 Richard Biener + + PR tree-optimization/111445 + * gcc.dg/torture/pr111445.c: New testcase. + + 2024-06-21 Richard Biener + + Backported from master: + 2023-11-13 Richard Biener + + PR tree-optimization/112495 + * gcc.target/i386/pr112495.c: New testcase. + + 2024-06-21 Richard Biener + + Backported from master: + 2024-01-11 Richard Biener + + PR tree-optimization/112505 + * gcc.dg/vect/pr112505.c: New testcase. + + 2024-06-21 Richard Biener + + Backported from master: + 2024-01-23 Richard Biener + + PR debug/112718 + * gcc.dg/debug/pr112718.c: New testcase. + + 2024-06-21 Richard Biener + + Backported from master: + 2023-12-14 Richard Biener + + PR tree-optimization/112793 + * g++.dg/vect/pr112793.cc: New testcase. + + 2024-06-21 Richard Biener + + Backported from master: + 2024-03-26 Richard Biener + + PR tree-optimization/114027 + * gcc.dg/vect/pr114027.c: Fix iteration count. + + 2024-06-21 Richard Biener + + Backported from master: + 2024-02-22 Richard Biener + + PR tree-optimization/114027 + * gcc.dg/vect/pr114027.c: New testcase. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-06-17 Jakub Jelinek + + PR driver/115440 + * g++.dg/cpp1z/pr115440.C: New test. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-06-06 Jakub Jelinek + + PR c/114493 + * gcc.dg/pr114493-1.c: New test. + * gcc.dg/pr114493-2.c: New test. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-06-04 Jakub Jelinek + + PR middle-end/108789 + * gcc.c-torture/execute/pr108789.c: New test. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-05-15 Jakub Jelinek + + PR rtl-optimization/114902 + PR rtl-optimization/115092 + * gcc.dg/pr114902.c: New test. + * gcc.dg/pr115092.c: New test. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-05-07 Jakub Jelinek + + PR sanitizer/114956 + * gcc.dg/asan/pr114956.c: New test. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-04-30 Jakub Jelinek + + PR tree-optimization/114876 + * gcc.dg/pr114876.c: New test. + * gcc.dg/tree-ssa/builtin-sprintf-warn-1.c: Adjust expected + diagnostics. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-04-25 Jakub Jelinek + + PR fortran/114825 + * gfortran.dg/gomp/pr114825.f90: New test. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-04-19 Jakub Jelinek + + PR rtl-optimization/114768 + * gcc.dg/pr114768.c: New test. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-04-18 Jakub Jelinek + + PR middle-end/114753 + * gcc.dg/pr114753.c: New test. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-04-15 Jakub Jelinek + + PR c++/114634 + * g++.dg/ext/attrib68.C: New test. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-04-12 Jakub Jelinek + + PR c++/114691 + * g++.dg/ext/pr114691.C: New test. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-04-11 Jakub Jelinek + + PR middle-end/110027 + * gcc.dg/asan/pr110027.c: New test. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-04-05 Jakub Jelinek + + PR tree-optimization/114566 + * gcc.target/i386/avx512f-pr114566.c: New test. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-04-04 Jakub Jelinek + + PR c++/114537 + * g++.dg/cpp2a/bit-cast16.C: New test. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-03-14 Jakub Jelinek + + PR middle-end/113907 + * gcc.dg/pr113907-1.c: New test. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-03-14 Jakub Jelinek + + PR target/114310 + * gcc.dg/pr114310.c: New test. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-03-07 Jakub Jelinek + + PR rtl-optimization/110079 + * gcc.dg/pr110079.c: New test. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-03-04 Jakub Jelinek + + PR target/114184 + * gcc.target/i386/pr114184.c: New test. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-02-22 Jakub Jelinek + + PR c/114007 + * gcc.dg/c23-attr-syntax-8.c: New test. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-02-12 Jakub Jelinek + + PR c++/113674 + * c-c++-common/Wattributes-3.c: New test. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-01-30 Jakub Jelinek + + PR tree-optimization/113603 + * gcc.c-torture/compile/pr113603.c: New test. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-01-18 Jakub Jelinek + + PR target/113122 + * gcc.target/i386/pr113122-1.c: New test. + * gcc.target/i386/pr113122-2.c: New test. + * gcc.target/i386/pr113122-3.c: New test. + * gcc.target/i386/pr113122-4.c: New test. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-01-16 Jakub Jelinek + + PR tree-optimization/113372 + PR middle-end/90348 + PR middle-end/110115 + PR middle-end/111422 + * gcc.c-torture/execute/pr90348.c: New test. + * gcc.c-torture/execute/pr110115.c: New test. + * gcc.c-torture/execute/pr111422.c: New test. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-01-09 Jakub Jelinek + + PR c/113262 + * gcc.dg/pr113262.c: New test. + + 2024-06-12 Torbjörn SVENSSON + + Backported from master: + 2024-06-12 Torbjörn SVENSSON + Yvan ROUX + + PR target/115253 + * gcc.target/arm/cmse/extend-return.c: Update test case + condition for Armv8.1-M. + + 2024-06-04 Richard Sandiford + + Backported from master: + 2021-04-29 Richard Sandiford + + PR rtl-optimization/100303 + * g++.dg/torture/pr100303.C: New file. + + 2024-06-04 Richard Sandiford + + Backported from master: + 2024-01-29 Richard Sandiford + + PR target/113281 + * gcc.dg/vect/pr113281-1.c: New test. + * gcc.dg/vect/pr113281-2.c: Likewise. + * gcc.dg/vect/pr113281-3.c: Likewise. + * gcc.dg/vect/pr113281-4.c: Likewise. + * gcc.dg/vect/pr113281-5.c: Likewise. + + 2024-06-04 Richard Sandiford + + Backported from master: + 2024-05-24 Richard Sandiford + + PR tree-optimization/115192 + * gcc.dg/vect/pr115192.c: New test. + + 2024-06-03 Uros Bizjak + + Backported from master: + 2024-05-31 Uros Bizjak + + PR target/115297 + * gcc.target/alpha/pr115297.c: New test. + + 2024-05-28 Jakub Jelinek + + Backported from master: + 2024-05-22 Jakub Jelinek + + PR sanitizer/115172 + * gcc.dg/asan/pr115172.c: New test. + + 2024-05-24 Jason Merrill + + Backported from master: + 2024-01-25 Jason Merrill + + PR c++/113598 + * g++.dg/cpp0x/initlist-pmf2.C: New test. + + 2024-05-24 Jason Merrill + + Backported from master: + 2023-09-22 Jason Merrill + + PR c++/111529 + * g++.dg/ext/unroll-4.C: New test. + + 2024-05-24 Jason Merrill + + Backported from master: + 2024-03-28 Jason Merrill + + PR c++/100667 + * g++.dg/ext/is_constructible8.C: New test. + + 2024-05-24 Jason Merrill + + Backported from master: + 2024-04-02 Jason Merrill + + PR c++/114561 + PR c++/114562 + * g++.dg/conversion/ref10.C: New test. + * g++.dg/conversion/ref11.C: New test. + + 2024-05-22 Torbjörn SVENSSON + + Backported from master: + 2024-05-22 Torbjörn SVENSSON + + * gcc.target/arm/cmse/extend-param.c: Add regression test. Add + -fshort-enums. + * gcc.target/arm/cmse/extend-return.c: Add -fshort-enums option. + + 2024-05-09 Jakub Jelinek + + Backported from master: + 2024-05-09 Jakub Jelinek + + PR c++/89224 + * g++.dg/torture/vector-subaccess-1.C: Add -Wno-psabi as additional + options. + + 2024-05-09 Andrew Pinski + + Backported from master: + 2023-09-25 Andrew Pinski + + PR tree-optimization/110386 + * gcc.c-torture/compile/pr110386-1.c: New test. + * gcc.c-torture/compile/pr110386-2.c: New test. + + 2024-05-08 Andrew Pinski + + Backported from master: + 2023-09-10 Andrew Pinski + + PR tree-optimization/111331 + * gcc.c-torture/execute/pr111331-1.c: New test. + * gcc.c-torture/execute/pr111331-2.c: New test. + * gcc.c-torture/execute/pr111331-3.c: New test. + + 2024-05-08 Andrew Pinski + + Backported from master: + 2024-03-11 Andrew Pinski + + PR middle-end/95351 + * gcc.dg/float_opposite_arm-1.c: New test. + + 2024-05-08 Andrew Pinski + + Backported from master: + 2024-05-07 Andrew Pinski + + PR c++/89224 + * g++.dg/torture/vector-subaccess-1.C: New test. + * gcc.dg/pr83415.c: Change warning to error. + + 2024-05-02 Peter Bergner + + Backported from master: + 2024-04-12 Will Schmidt + Peter Bergner + + PR target/101865 + * gcc.target/powerpc/predefine-p7-novsx.c: New test. + * gcc.target/powerpc/predefine-p8-noaltivec-novsx.c: New test. + * gcc.target/powerpc/predefine-p8-noaltivec.c: New test. + * gcc.target/powerpc/predefine-p8-novsx.c: New test. + * gcc.target/powerpc/predefine-p8-pragma-vsx.c: New test. + * gcc.target/powerpc/predefine-p9-novsx.c: New test. + + 2024-04-29 Iain Sandoe + + Backported from master: + 2024-04-02 Iain Sandoe + + PR testsuite/114034 + * g++.dg/gcov/gcov-dump-1.C: Remove extra -lgcov. + * g++.dg/gcov/gcov-dump-2.C: Likewise. + + 2024-04-29 Iain Sandoe + + Backported from master: + 2024-04-02 Iain Sandoe + + PR testsuite/114036 + * gcc.misc-tests/gcov-14.c: Allow for 'Foo' to be undefined + on Darwin link lines. + + 2024-04-29 Iain Sandoe + + Backported from master: + 2024-03-19 Iain Sandoe + + PR target/114049 + * gcc.dg/framework-1.c: Use an IOKit header instead of a + Kernel one. + + 2024-04-29 Iain Sandoe + + Backported from master: + 2024-02-02 Iain Sandoe + Francois-Xavier Coudert + + * lib/target-supports.exp (check_effective_target_shared): + Allow the external symbols referenced in the test to be undefined. + + 2024-04-28 Francois-Xavier Coudert + + Backported from master: + 2024-02-10 Francois-Xavier Coudert + + * gcc.dg/ssp-2.c: Ignore warning that + -multiply_defined is obsolete + + 2024-04-28 Francois-Xavier Coudert + + Backported from master: + 2024-02-10 Francois-Xavier Coudert + + * gcc.dg/darwin-ld-2.c: Ignore warning + that -bind_at_load is deprecated. + + 2024-04-28 Francois-Xavier Coudert + + Backported from master: + 2023-10-30 Francois-Xavier Coudert + + * gcc.target/i386/pr105554.c: Require ifunc. + + 2024-04-28 Francois-Xavier Coudert + + Backported from master: + 2023-08-20 Francois-Xavier Coudert + + PR analyzer/104042 + * gcc.dg/analyzer/analyzer.exp: Pass -D_FORTIFY_SOURCE=0 on Darwin. + + 2024-04-28 Iain Sandoe + + Backported from master: + 2022-06-20 Iain Sandoe + + * lib/asan-dg.exp: Do not apply color to asan output when + under test. + + 2024-04-28 Francois-Xavier Coudert + + Backported from master: + 2023-08-20 Francois-Xavier Coudert + + * gcc.dg/ipa/ipa-icf-38.c: Require alias support. + + 2024-04-28 Iain Sandoe + + Backported from master: + 2024-01-28 Iain Sandoe + + * obj-c++.dg/encode-10.mm: Remove unneeded '-lobjc' option addition. + * obj-c++.dg/encode-9.mm: Likewise. + + 2024-04-28 Iain Sandoe + + Backported from master: + 2024-01-18 Iain Sandoe + + PR target/105522 + * gcc.dg/pr105522.c: New file. + + 2024-04-27 Francois-Xavier Coudert + + Backported from master: + 2023-10-30 Francois-Xavier Coudert + Iain Sandoe + + * gcc.dg/pie-2.c: Skip test on darwin. + + 2024-04-27 Iain Sandoe + + Backported from master: + 2023-10-02 Iain Sandoe + + * g++.dg/debug/dwarf2/pr85550.C: Skip for Darwin. + + 2024-04-27 Francois-Xavier Coudert + + Backported from master: + 2023-09-29 Francois-Xavier Coudert + + * gcc.dg/debug/dwarf2/inline4.c: Ajdust regexp to match darwin + output. + + 2024-04-25 Francois-Xavier Coudert + + Backported from master: + 2023-09-08 Francois-Xavier Coudert + + * gcc.dg/darwin-segaddr.c: Adjust for darwin linker warning. + * gcc.dg/pie-7.c: Likewise. + + 2024-04-25 Richard Ball + + Backported from master: + 2024-04-25 Richard Ball + + * gcc.target/arm/cmse/extend-param.c: New test. + * gcc.target/arm/cmse/extend-return.c: New test. + + 2024-04-25 Kewen Lin + + Backported from master: + 2024-04-09 Kewen Lin + Andrew Pinski + + PR target/88309 + * gcc.target/powerpc/pr88309.c: New test. + + 2024-04-24 Francois-Xavier Coudert + + Backported from master: + 2023-08-20 Francois-Xavier Coudert + + * gcc.dg/darwin-minversion-link.c: Account for macOS 13 and 14. + + 2024-04-24 Iain Sandoe + + Backported from master: + 2023-06-23 Iain Sandoe + + * objc-obj-c++-shared/GNUStep/Foundation/NSObjCRuntime.h: Make + this header use pragma system_header. + + 2024-04-24 Iain Sandoe + + Backported from master: + 2023-02-16 Iain Sandoe + + * objc.dg/proto-lossage-4.m: Amendn diagnostic matches for Windows. + + 2024-04-24 Iain Sandoe + + Backported from master: + 2022-04-28 Iain Sandoe + + * g++.target/i386/mv31.C: Add target supports guard for ifuncs. + + 2024-04-24 Jakub Jelinek + + Backported from master: + 2024-03-26 Jakub Jelinek + + * gcc.dg/tsan/pr111736.c: New test. + + 2024-04-24 Jakub Jelinek + + Backported from master: + 2024-03-22 Jakub Jelinek + + * gcc.dg/ubsan/pr111736.c: New test. + + 2024-04-24 Richard Biener + + Backported from master: + 2024-03-21 Richard Biener + + * gcc.target/i386/pr111736.c: New testcase. + + 2024-04-23 Iain Sandoe + + * gcc.target/i386/memcpy-strategy-10.c: Account for + __USER_LABEL_PREFIX__. + * gcc.target/i386/memcpy-strategy-5.c: Likewise. + * gcc.target/i386/memset-strategy-5.c: Likewise. + * gcc.target/i386/memset-strategy-7.c: Likewise. + + 2024-04-23 Richard Biener + + Backported from master: + 2022-03-28 Richard Biener + + * gcc.dg/torture/pr100786.c: Add dg-require alias. + + 2024-04-23 Iain Sandoe + + Backported from master: + 2021-08-27 Iain Sandoe + + * lib/target-supports.exp: Exclude cctools assembler based on + GAS 1.38. + + 2024-04-23 Iain Sandoe + + Backported from master: + 2021-08-18 Iain Sandoe + Matt Jacobson + + PR objc/101666 + * obj-c++.dg/pr101666-0.mm: New test. + * obj-c++.dg/pr101666-1.mm: New test. + * obj-c++.dg/pr101666.inc: New. + * objc.dg/pr101666-0.m: New test. + * objc.dg/pr101666-1.m: New test. + * objc.dg/pr101666.inc: New. + + 2024-04-22 Rainer Orth + + Backported from master: + 2023-03-28 Rainer Orth + + * lib/target-supports.exp (add_options_for_weak_undefined): Escape + brackets. + * gcc.dg/visibility-22.c: Add weak_undefined options. + + 2024-04-22 Iain Sandoe + + Backported from master: + 2023-02-15 Iain Sandoe + + * obj-c++.dg/proto-lossage-4.mm: Use uintptr_t for integral pointer + representations. + + 2024-04-22 Iain Sandoe + + Backported from master: + 2022-06-25 Iain Sandoe + + * gcc.dg/darwin-comm-1.c: Check for the correct error message for + Darwin <= 10. + + 2024-04-22 Iain Sandoe + + Backported from master: + 2023-07-03 Iain Sandoe + + * lib/g++.exp: Remove additional flag handled by Darwin specs. + * lib/obj-c++.exp: Likewise. + + 2024-04-15 Tamar Christina + + PR tree-optimization/113552 + * gcc.target/aarch64/pr113552.c: New test. + * gcc.target/aarch64/simd_pcs_attribute-3.c: Remove bogus check. + + 2024-04-15 H.J. Lu + + Backported from master: + 2024-04-03 H.J. Lu + + PR tree-optimization/114115 + * gcc.dg/pr114115.c: New test. + + 2024-04-12 Kito Cheng + + Backported from master: + 2024-02-29 Kito Cheng + + * gcc.target/riscv/pr114130.c: New. + + 2024-04-06 Harald Anlauf + + Backported from master: + 2024-03-28 Harald Anlauf + + PR fortran/114474 + * gfortran.dg/data_pointer_3.f90: New test. + + 2024-04-05 Chung-Lin Tang + + Backported from master: + 2021-12-03 Tobias Burnus + + * gfortran.dg/allocate_with_source_26.f90: Adjust testcase. + * gfortran.dg/allocate_with_mold_4.f90: New testcase. + + 2024-04-02 Qing Zhao + + Backported from master: + 2023-09-15 Qing Zhao + + PR tree-optimization/111407 + * gcc.dg/pr111407.c: New test. + + 2024-04-02 Mikael Morin + + Backported from master: + 2024-03-22 Mikael Morin + + PR fortran/107426 + * gfortran.dg/pr89943_3.f90: Update error pattern. + * gfortran.dg/pr89943_4.f90: Likewise. + * gfortran.dg/use_31.f90: New test. + + 2024-03-29 Harald Anlauf + + Backported from master: + 2024-03-29 Harald Anlauf + + PR fortran/50410 + * gfortran.dg/data_initialized_4.f90: New test. + + 2024-03-27 Richard Sandiford + + Backported from master: + 2024-03-05 Richard Sandiford + + PR sanitizer/97696 + * gcc.target/aarch64/sve/pr97696.c: New test. + + 2024-03-20 Harald Anlauf + + Backported from master: + 2024-03-18 Harald Anlauf + + PR fortran/103715 + * gfortran.dg/pr103715.f90: New test. + + 2024-03-07 Eric Botcazou + + * gnat.dg/predicate15.adb: New test. + + 2024-03-03 Iain Buclaw + + Backported from master: + 2024-03-03 Iain Buclaw + + PR d/114171 + * gdc.dg/torture/pr114171.d: New test. + + 2024-03-03 Iain Buclaw + + Backported from master: + 2024-02-12 Iain Buclaw + + PR d/113758 + * gdc.dg/torture/pr113758.d: New test. + + 2024-03-03 Iain Buclaw + + Backported from master: + 2024-02-12 Iain Buclaw + + PR d/113125 + * gdc.dg/imports/pr113125.d: New test. + * gdc.dg/pr113125.d: New test. + + 2024-02-27 H.J. Lu + + Backported from master: + 2024-02-26 H.J. Lu + + PR target/114098 + * gcc.target/i386/amxtile-4.c: New test. + + 2024-02-27 Jeevitha + + Backported from master: + 2023-08-31 Jeevitha Palanisamy + + PR target/110411 + * gcc.target/powerpc/pr110411-1.c: New testcase. + * gcc.target/powerpc/pr110411-2.c: New testcase. + + 2024-02-26 Eric Botcazou + + * gnat.dg/access10.adb: New test. + + 2024-02-23 Richard Earnshaw + + Backported from master: + 2024-02-23 Richard Earnshaw + + PR target/108120 + * gcc.target/arm/neon-recip-div-1.c: New file. + + 2024-02-20 Alex Coplan + + Backported from master: + 2024-02-14 Alex Coplan + + PR target/111677 + * gcc.target/aarch64/torture/pr111677.c: New test. + + 2024-02-15 Jakub Jelinek + + Backported from master: + 2024-02-15 Jakub Jelinek + + PR middle-end/107385 + * gcc.dg/pr107385.c: Require lra effective target. + + 2024-02-15 Jakub Jelinek + + Backported from master: + 2024-02-15 Jakub Jelinek + + PR middle-end/107385 + * gcc.dg/pr107385.c: New test. + + 2024-02-15 Jakub Jelinek + + Backported from master: + 2024-02-15 Jakub Jelinek + + PR middle-end/113921 + * gcc.target/i386/pr113921.c: New test. + + 2024-02-09 Harald Anlauf + + Backported from master: + 2024-01-27 Harald Anlauf + + PR fortran/104908 + * gfortran.dg/pr104908.f90: New test. + + 2024-02-09 Martin Jambor + + Backported from master: + 2024-01-24 Martin Jambor + + PR tree-optimization/110422 + * gcc.dg/torture/pr110422.c: New test. + + 2024-01-27 Lewis Hyatt + + PR preprocessor/105608 + * g++.dg/pch/line-map-1.C: New test. + * g++.dg/pch/line-map-1.Hs: New test. + * g++.dg/pch/line-map-2.C: New test. + * g++.dg/pch/line-map-2.Hs: New test. + * g++.dg/pch/line-map-3.Hs: New file. + + 2024-01-24 Jason Merrill + + Backported from master: + 2023-12-20 Jason Merrill + + PR c++/103185 + * g++.dg/cpp1z/array-prvalue2.C: New test. + * g++.dg/cpp1z/eval-order3.C: Test swapped operands. + + 2024-01-18 Tejas Joshi + + Backported from master: + 2022-10-21 Tejas Joshi + + * gcc.target/i386/funcspec-56.inc: Handle new march. + * g++.target/i386/mv29.C: Likewise. + + 2023-12-24 Patrick Palka + + Backported from master: + 2023-09-22 Patrick Palka + + PR c++/111485 + * g++.dg/cpp2a/concepts-ttp5.C: New test. + * g++.dg/cpp2a/concepts-ttp6.C: New test. + + 2023-12-20 Jason Merrill + + Backported from master: + 2021-04-27 Jason Merrill + + PR c++/92145 + * g++.dg/cpp0x/depr-copy3.C: New test. + + 2023-12-20 Jason Merrill + + Backported from master: + 2023-08-31 Jason Merrill + + PR c++/92407 + * g++.dg/opt/nrv22.C: New test. + + 2023-12-20 Patrick Palka + + Backported from master: + 2023-04-25 Patrick Palka + + PR c++/108975 + * g++.dg/cpp0x/lambda/lambda-const11a.C: New test. + + 2023-12-19 Jakub Jelinek + + Backported from master: + 2023-12-19 Jakub Jelinek + + PR target/112816 + * gcc.target/i386/sse2-pr112816-2.c: New test. + + 2023-12-17 Jakub Jelinek + + Backported from master: + 2023-12-08 Jakub Jelinek + + PR sanitizer/112727 + * c-c++-common/ubsan/pr112727.c: New test. + + 2023-12-17 Jakub Jelinek + + Backported from master: + 2023-11-29 Jakub Jelinek + + PR middle-end/112733 + * gcc.dg/pr112733.c: New test. + + 2023-12-17 Jakub Jelinek + + Backported from master: + 2023-12-05 Jakub Jelinek + + PR target/112845 + * gcc.dg/pr112845.c: New file. + + 2023-12-17 Jakub Jelinek + + Backported from master: + 2023-12-04 Jakub Jelinek + + PR target/112837 + * gcc.dg/pr112837.c: New test. + + 2023-12-17 Jakub Jelinek + + Backported from master: + 2023-12-04 Jakub Jelinek + + PR target/112816 + * gcc.target/i386/sse2-pr112816.c: New test. + + 2023-12-17 Jakub Jelinek + + Backported from master: + 2023-12-04 Jakub Jelinek + + PR c++/112795 + * g++.dg/ext/unroll-5.C: New test. + + 2023-12-17 Jakub Jelinek + + Backported from master: + 2023-11-25 Jakub Jelinek + + PR target/111408 + * gcc.c-torture/execute/pr111408.c: New test. + + 2023-12-17 Jakub Jelinek + + Backported from master: + 2023-07-19 Jakub Jelinek + + PR tree-optimization/110731 + * gcc.dg/pr110731.c: New test. + + 2023-12-15 Richard Biener + + Backported from master: + 2023-10-23 Richard Biener + + PR tree-optimization/111917 + * gcc.dg/torture/pr111917.c: New testcase. + + 2023-12-15 Richard Biener + + Backported from master: + 2023-09-28 Richard Biener + + PR tree-optimization/111614 + * gcc.dg/torture/pr111614.c: New testcase. + + 2023-12-15 Richard Biener + + Backported from master: + 2023-10-12 Richard Biener + + PR tree-optimization/111764 + * gcc.dg/vect/pr111764.c: New testcase. + + 2023-12-15 Richard Biener + + Backported from master: + 2023-10-17 Richard Biener + + PR middle-end/111818 + * gcc.dg/torture/pr111818.c: New testcase. + + 2023-12-15 Richard Biener + + Backported from master: + 2023-06-19 Richard Biener + + PR tree-optimization/110298 + * gcc.dg/torture/pr110298.c: New testcase. + + 2023-12-15 Richard Biener + + Backported from master: + 2023-06-20 Richard Biener + + PR debug/110295 + * g++.dg/debug/pr110295.C: New testcase. + + 2023-12-12 liuhongt + + Backported from master: + 2023-12-12 liuhongt + + * gcc.target/i386/pr112891.c: New test. + * gcc.target/i386/pr112891-2.c: New test. + + 2023-12-01 Harald Anlauf + + Backported from master: + 2023-11-26 Harald Anlauf + + PR fortran/111880 + * gfortran.dg/pr111880.f90: New test. + + 2023-11-24 Uros Bizjak + + Backported from master: + 2023-11-23 Uros Bizjak + + PR target/112672 + * gcc.target/i386/pr112672.c: New test. + + 2023-11-22 Maciej W. Rozycki + + Backported from master: + 2023-11-22 Maciej W. Rozycki + + PR target/111815 + * gcc.dg/torture/pr111815.c: New test. + + 2023-10-23 Kewen Lin + + Backported from master: + 2023-10-12 Kewen Lin + + PR target/111367 + * g++.target/powerpc/pr111367.C: New test. + + 2023-10-21 Harald Anlauf + + Backported from master: + 2023-10-17 Harald Anlauf + + PR fortran/111837 + * gfortran.dg/implied_do_io_8.f90: New test. + + 2023-10-17 liuhongt + + Backported from master: + 2023-07-06 liuhongt + + * gcc.target/i386/pr110170-3.c: New test. + + 2023-10-07 Andrew Pinski + + Backported from master: + 2023-10-06 Andrew Pinski + + PR middle-end/111699 + * gcc.c-torture/compile/pr111699-1.c: New test. + + 2023-10-02 Pat Haugen + + Backported from master: + 2023-09-19 Pat Haugen + + * gcc.target/powerpc/clone1.c: Add xfails. + * gcc.target/powerpc/clone3.c: Likewise. + * gcc.target/powerpc/mod-1.c: Update scan strings and add xfails. + * gcc.target/powerpc/mod-2.c: Likewise. + * gcc.target/powerpc/p10-vdivq-vmodq.c: Add xfails. + + 2023-09-12 Uros Bizjak + + Backported from master: + 2023-09-11 Uros Bizjak + + PR target/111340 + * gcc.target/i386/pr111340.c: New test. + + 2023-09-12 Richard Sandiford + + * gcc.target/aarch64/stack-protector-8.c: New test. + * gcc.target/aarch64/stack-protector-9.c: Likewise. + + 2023-09-12 Richard Sandiford + + * gcc.target/aarch64/sve/pcs/stack_clash_3.c: Avoid redundant probes. + + 2023-09-12 Richard Sandiford + + * gcc.target/aarch64/stack-check-prologue-17.c: Expect the probe + to be at offset 1024 rather than offset 0. + * gcc.target/aarch64/stack-check-prologue-18.c: Likewise. + + 2023-09-12 Richard Sandiford + + * gcc.target/aarch64/stack-check-prologue-18.c: New test. + + 2023-09-12 Richard Sandiford + + * gcc.target/aarch64/stack-check-prologue-17.c: New test. + + 2023-09-12 Haochen Gui + + Backported from master: + 2023-08-31 Haochen Gui + + PR target/96762 + * gcc.target/powerpc/pr96762.c: New. + + 2023-09-11 Jason Merrill + + PR c++/106310 + * g++.dg/template/template-keyword4.C: New test. + + 2023-09-11 Jason Merrill + + PR c++/106890 + PR c++/109666 + * g++.dg/cpp0x/nsdmi-array2.C: New test. + * g++.dg/cpp0x/nsdmi-template25.C: New test. + + 2023-08-30 Jakub Jelinek + + Backported from master: + 2023-08-30 Jakub Jelinek + + PR tree-optimization/110914 + * gcc.c-torture/execute/pr110914.c: New test. + + 2023-08-30 Jakub Jelinek + + Backported from master: + 2023-08-30 Jakub Jelinek + + PR tree-optimization/111015 + * gcc.dg/pr111015.c: New test. + + 2023-08-16 liuhongt + + Backported from master: + 2023-08-16 liuhongt + + * gcc.target/i386/avx2-gather-2.c: Adjust options to keep + gather vectorization. + * gcc.target/i386/avx2-gather-6.c: Ditto. + * gcc.target/i386/avx512f-pr88464-1.c: Ditto. + * gcc.target/i386/avx512f-pr88464-5.c: Ditto. + * gcc.target/i386/avx512vl-pr88464-1.c: Ditto. + * gcc.target/i386/avx512vl-pr88464-11.c: Ditto. + * gcc.target/i386/avx512vl-pr88464-3.c: Ditto. + * gcc.target/i386/avx512vl-pr88464-9.c: Ditto. + + 2023-08-09 Patrick Palka + + Backported from master: + 2023-05-09 Patrick Palka + + PR c++/109761 + * g++.dg/cpp0x/noexcept78.C: New test. + + 2023-08-06 Jakub Jelinek + + Backported from master: + 2022-12-19 Jakub Jelinek + + PR fortran/107397 + * gfortran.dg/pr107397.f90: Adjust expected diagnostic wording and + add space between dg-error string and closing }. + + 2023-08-06 Steve Kargl + + Backported from master: + 2022-12-18 Steve Kargl + + PR fortran/107397 + * gfortran.dg/pr107397.f90: New test. + + 2023-08-05 Jerry DeLisle + + Backported from master: + 2023-01-29 Jerry DeLisle + + PR fortran/103506 + * gfortran.dg/pr103506_1.f90: New test. + + 2023-08-01 Kewen Lin + + Backported from master: + 2023-07-26 Kewen Lin + + PR target/110741 + * g++.target/powerpc/pr110741.C: New test. + + 2023-07-20 Harald Anlauf + + Backported from master: + 2023-07-17 Harald Anlauf + + PR fortran/95947 + PR fortran/110658 + * gfortran.dg/deferred_character_37.f90: New test. + + 2023-07-19 Maciej W. Rozycki + + Backported from master: + 2023-07-11 Maciej W. Rozycki + + * gcc.dg/vect/pr97428.c: Limit to `vect_double' targets. + + 2023-07-14 Harald Anlauf + + Backported from master: + 2023-07-11 Harald Anlauf + + PR fortran/110288 + * gfortran.dg/findloc_10.f90: New test. + + 2023-07-08 Harald Anlauf + + Backported from master: + 2023-07-08 Harald Anlauf + + PR fortran/110585 + * gfortran.dg/findloc_9.f90: New test. + + 2023-07-07 Iain Buclaw + + Backported from master: + 2023-07-07 Iain Buclaw + + PR d/108842 + * gdc.dg/pr98277.d: Add more tests. + * gdc.dg/pr108842.d: New test. + + 2023-07-05 Michael Meissner + + Backported from master: + 2023-06-23 Michael Meissner + Aaron Sawdey + + PR target/105325 + * g++.target/powerpc/pr105325.C: New test. + * gcc.target/powerpc/fusion-p10-ldcmpi.c: Update insn counts. + + 2023-07-02 Iain Buclaw + + Backported from master: + 2023-07-02 Iain Buclaw + + PR d/110516 + * gdc.dg/torture/pr110516a.d: New test. + * gdc.dg/torture/pr110516b.d: New test. + + 2023-07-01 Iain Buclaw + + PR d/110511 + * gdc.test/compilable/test21794.d: New test. + + 2023-06-28 liuhongt + + * gcc.target/i386/avx-vzeroupper-29.c: New testcase. + + 2023-06-26 Iain Buclaw + + Backported from master: + 2023-06-26 Iain Buclaw + + PR d/110359 + * gdc.dg/pr110359.d: New test. + + 2023-06-20 Kewen Lin + + PR target/109932 + * gcc.target/powerpc/pr109932-1.c: New test. + * gcc.target/powerpc/pr109932-2.c: New test. + + 2023-06-20 Kewen Lin + + Backported from master: + 2023-06-12 Kewen Lin + + PR target/110011 + * gcc.target/powerpc/pr110011.c: New test. + + 2023-06-09 Alex Coplan + + Backported from master: + 2023-05-25 Alex Coplan + + PR target/109800 + * gcc.target/arm/pure-code/pr109800.c: New test. + + 2023-06-09 Iain Sandoe + + Backported from master: + 2023-06-02 Iain Sandoe + + PR target/110044 + * gcc.target/powerpc/darwin-abi-13-0.c: New test. + * gcc.target/powerpc/darwin-abi-13-1.c: New test. + * gcc.target/powerpc/darwin-abi-13-2.c: New test. + * gcc.target/powerpc/darwin-structs-0.h: New test. + + 2023-06-04 Steve Kargl + + Backported from master: + 2023-06-02 Steve Kargl + + PR fortran/100607 + * gfortran.dg/select_rank_6.f90: New test. + + 2023-06-02 Jakub Jelinek + + Backported from master: + 2023-05-21 Jakub Jelinek + + PR tree-optimization/109505 + * gcc.target/aarch64/sve/pr109505.c: New test. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/gcc/testsuite/c-c++-common/Wattributes-3.c gcc-11.5.0/gcc/testsuite/c-c++-common/Wattributes-3.c *** gcc-11.4.0/gcc/testsuite/c-c++-common/Wattributes-3.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/c-c++-common/Wattributes-3.c Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,13 ---- + /* PR c++/113674 */ + /* { dg-do compile { target { c || c++11 } } } */ + /* { dg-options "" } */ + + [[____noreturn____]] int foo (int i) /* { dg-warning "'__noreturn__' attribute (directive )?ignored" } */ + { + return i; + } + + [[____maybe_unused____]] int bar (int i) /* { dg-warning "'__maybe_unused__' attribute (directive )?ignored" } */ + { + return i; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-1.c gcc-11.5.0/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-1.c *** gcc-11.4.0/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-1.c Mon May 29 08:46:30 2023 --- gcc-11.5.0/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-1.c Fri Jul 19 05:52:44 2024 *************** *** 1,4 **** --- 1,5 ---- /* PR libstdc++/88101 */ + /* { dg-do run } */ int i1, i2; long double l1, l2; diff -Nrcpad gcc-11.4.0/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-2.c gcc-11.5.0/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-2.c *** gcc-11.4.0/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-2.c Mon May 29 08:46:30 2023 --- gcc-11.5.0/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-2.c Fri Jul 19 05:52:44 2024 *************** *** 1,4 **** --- 1,5 ---- /* PR libstdc++/88101 */ + /* { dg-do run } */ typedef int T __attribute__((aligned (16384))); struct S { char a; short b; long double c; T d; T e; long long f; }; diff -Nrcpad gcc-11.4.0/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-3.c gcc-11.5.0/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-3.c *** gcc-11.4.0/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-3.c Mon May 29 08:46:30 2023 --- gcc-11.5.0/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-3.c Fri Jul 19 05:52:44 2024 *************** *** 1,4 **** --- 1,5 ---- /* PR libstdc++/88101 */ + /* { dg-do run } */ union V { char a; signed char b; unsigned char c; }; struct T { char a; int b; union V c; }; *************** main () *** 33,39 **** foo (&s1, 0); foo (&s2, 0); __builtin_clear_padding (&s2); ! if (s2.b.a != (char) -1) __builtin_abort (); __builtin_clear_padding (&s2.b.a); __builtin_memset (&s2.b.a + 1, 0, sizeof (union U) - sizeof (s2.b.a)); --- 34,40 ---- foo (&s1, 0); foo (&s2, 0); __builtin_clear_padding (&s2); ! if (s2.b.a != -1) __builtin_abort (); __builtin_clear_padding (&s2.b.a); __builtin_memset (&s2.b.a + 1, 0, sizeof (union U) - sizeof (s2.b.a)); diff -Nrcpad gcc-11.4.0/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-4.c gcc-11.5.0/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-4.c *** gcc-11.4.0/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-4.c Mon May 29 08:46:30 2023 --- gcc-11.5.0/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-4.c Fri Jul 19 05:52:44 2024 *************** *** 1,4 **** --- 1,6 ---- /* PR libstdc++/88101 */ + /* { dg-do run } */ + /* { dg-require-effective-target alloca } */ struct S { char a; short b; char c; }; diff -Nrcpad gcc-11.4.0/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-5.c gcc-11.5.0/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-5.c *** gcc-11.4.0/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-5.c Mon May 29 08:46:30 2023 --- gcc-11.5.0/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-5.c Fri Jul 19 05:52:44 2024 *************** *** 1,4 **** --- 1,5 ---- /* PR libstdc++/88101 */ + /* { dg-do run } */ struct S { char a; short b; char c; } s1[24], s2[24]; struct T { char a; long long b; char c; struct S d[3]; long long e; char f; } t1, t2; diff -Nrcpad gcc-11.4.0/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-6.c gcc-11.5.0/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-6.c *** gcc-11.4.0/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-6.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/c-c++-common/torture/builtin-clear-padding-6.c Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,28 ---- + /* PR middle-end/115527 */ + /* { dg-do run } */ + + struct T { struct S { double a; signed char b; long c; } d[3]; int e; } t1, t2; + + __attribute__((noipa)) void + foo (struct T *t) + { + for (int i = 0; i < 3; ++i) + { + t->d[i].a = 1. + 3 * i; + t->d[i].b = 2 + 3 * i; + t->d[i].c = 3 + 3 * i; + } + t->e = 10; + } + + int + main () + { + __builtin_memset (&t2, -1, sizeof (t2)); + foo (&t1); + foo (&t2); + __builtin_clear_padding (&t2); + if (__builtin_memcmp (&t1, &t2, sizeof (t1))) + __builtin_abort (); + return 0; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/c-c++-common/ubsan/pr112727.c gcc-11.5.0/gcc/testsuite/c-c++-common/ubsan/pr112727.c *** gcc-11.4.0/gcc/testsuite/c-c++-common/ubsan/pr112727.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/c-c++-common/ubsan/pr112727.c Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,17 ---- + /* PR sanitizer/112727 */ + /* { dg-do compile } */ + /* { dg-options "-O2 -fsanitize=shift-exponent,bounds-strict -Wuninitialized" } */ + + #ifndef __cplusplus + #define bool _Bool + #endif + + struct S { bool s[8]; }; + + void + foo (const struct S *x) + { + unsigned n = 0; + for (unsigned j = 0; j < 8; j++) + n |= ((!x->s[j]) ? 1 : 0) << (16 + j); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/conversion/ref10.C gcc-11.5.0/gcc/testsuite/g++.dg/conversion/ref10.C *** gcc-11.4.0/gcc/testsuite/g++.dg/conversion/ref10.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/conversion/ref10.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,5 ---- + // PR c++/114561 + + void create(void* u) { + const void* const& r = ( (void)0, u ); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/conversion/ref11.C gcc-11.5.0/gcc/testsuite/g++.dg/conversion/ref11.C *** gcc-11.4.0/gcc/testsuite/g++.dg/conversion/ref11.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/conversion/ref11.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,33 ---- + // PR c++/114562 + // { dg-do compile { target c++11 } } + + template + struct Optional { + Optional(T&&); + }; + + struct MyClass { + MyClass(Optional); + }; + + // const void* NONE = nullptr; // Correct Error + void* NONE = nullptr; // Crash + + void beforeParam(); + + template + struct Create { + template static T create(U &&) noexcept; + }; + + + template + template + T Create::create(U && u) noexcept { + return T( ( (beforeParam()), (u) ) ); // { dg-error "cannot bind rvalue reference" } + // return T( (u) ); // Correct Error + } + + void test_func() { + Create::create(NONE); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/coroutines/pr100772-a.C gcc-11.5.0/gcc/testsuite/g++.dg/coroutines/pr100772-a.C *** gcc-11.4.0/gcc/testsuite/g++.dg/coroutines/pr100772-a.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/coroutines/pr100772-a.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,77 ---- + // { dg-additional-options "-fsyntax-only " } + #ifdef __clang__ + #include + namespace std { + using namespace std::experimental; + } + #else + #include + #endif + + struct Task + { + struct promise_type + { + void return_void() const noexcept {} + + void* operator new(std::size_t, auto &&...args) noexcept + { + static_assert(sizeof...(args) > 0); + static_assert(sizeof...(args) == 2); + + return nullptr; + } + + void operator delete(void *, std::size_t) noexcept + { + } + + static Task get_return_object_on_allocation_failure() noexcept + { + return {}; + } + + Task get_return_object() noexcept + { + return Task{ *this }; + } + + std::suspend_always initial_suspend() noexcept + { + return {}; + } + + std::suspend_always final_suspend() noexcept + { + return {}; + } + + void unhandled_exception() noexcept {} + }; + + using promise_handle = std::coroutine_handle; + + Task() = default; + Task(promise_type & promise) noexcept + : m_handle{ promise_handle::from_promise(promise) } + {} + + ~Task() + { + if (m_handle.address()) { m_handle.destroy(); } + } + + promise_handle m_handle{}; + }; + + + Task Foo(auto && ... args) noexcept + { + co_return; + } + + int main() + { + int v; + Foo(v, 2134); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/coroutines/pr100772-b.C gcc-11.5.0/gcc/testsuite/g++.dg/coroutines/pr100772-b.C *** gcc-11.4.0/gcc/testsuite/g++.dg/coroutines/pr100772-b.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/coroutines/pr100772-b.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,93 ---- + #ifdef __clang__ + #include + namespace std { + using namespace std::experimental; + } + #else + #include + #endif + #include + #include + #include // needed for abi::__cxa_demangle + #include + + std::shared_ptr cppDemangle(const char *abiName) + { + int status; + char *ret = abi::__cxa_demangle(abiName, 0, 0, &status); + + /* NOTE: must free() the returned char when done with it! */ + std::shared_ptr retval; + retval.reset( (char *)ret, [](char *mem) { if (mem) free((void*)mem); } ); + return retval; + } + + template + struct Id{}; + struct Task + { + struct promise_type + { + void return_void() const noexcept {} + + static void is_int (std::string x) { + if (x != "Id") + abort() ; + } + template + void* operator new(std::size_t len, Args ...args) noexcept + { + (is_int (cppDemangle(typeid(Id).name()).get()), ...); + (std::puts (cppDemangle(typeid(Id).name()).get()), ...); + return nullptr; + } + + static Task get_return_object_on_allocation_failure() noexcept + { + return {}; + } + + Task get_return_object() noexcept + { + return Task{ *this }; + } + + std::suspend_always initial_suspend() noexcept + { + return {}; + } + + std::suspend_always final_suspend() noexcept + { + return {}; + } + + void unhandled_exception() noexcept {} + }; + + using promise_handle = std::coroutine_handle; + + Task() = default; + Task(promise_type & promise) noexcept + : m_handle{ promise_handle::from_promise(promise) } + {} + + ~Task() + { + if (m_handle.address()) { m_handle.destroy(); } + } + + promise_handle m_handle{}; + }; + + + Task Foo(auto && ... args) noexcept + { + co_return; + } + + int main() + { + int v; + Foo(v, 2134); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/coroutines/pr101765.C gcc-11.5.0/gcc/testsuite/g++.dg/coroutines/pr101765.C *** gcc-11.4.0/gcc/testsuite/g++.dg/coroutines/pr101765.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/coroutines/pr101765.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,45 ---- + // We cannot compile this yet, much run it - but one day it might be + // feasible, so do the minimum for now. + // { dg-additional-options " -fsyntax-only -Wno-vla" } + + #include "coro.h" + + // boiler-plate for tests of codegen + #include "coro1-ret-int-yield-int.h" + + struct coro1 + foo (int arg) noexcept + { + PRINTF ("foo arg = %d\n", arg); + char arr[arg]; /* { dg-message "sorry, unimplemented: variable length arrays are not yet supported in coroutines" "" { target *-*-* } } */ + if (arg < 4) + co_return -6174; + else + for (int i = 0; i < arg; ++i) arr[i] = (char) i; + co_yield (int) arr[2]; + co_return (int) arr[3]; + } + + int main () + { + PRINT ("main: create coro1"); + struct coro1 x = foo (10); + PRINT ("main: got coro1 - resuming"); + if (x.handle.done()) + abort(); + x.handle.resume(); + PRINT ("main: after resume"); + int y = x.handle.promise().get_value(); + if ( y == -6174 ) + { + PRINT ("main: saw -6174"); + return 1; + } + else if ( y != 2 ) + abort; + x.handle.resume(); + y = x.handle.promise().get_value(); + if ( y != 3 ) + abort (); + return 0; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/coroutines/pr104051.C gcc-11.5.0/gcc/testsuite/g++.dg/coroutines/pr104051.C *** gcc-11.4.0/gcc/testsuite/g++.dg/coroutines/pr104051.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/coroutines/pr104051.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,29 ---- + // { dg-additional-options "-fsyntax-only" } + #include + #include + template struct promise { + struct final_awaitable { + bool await_ready() noexcept; + template + std::coroutine_handle<> + await_suspend(std::coroutine_handle) noexcept; + void await_resume() noexcept; + }; + auto get_return_object() { + return std::coroutine_handle::from_promise(*this); + } + auto initial_suspend() { return std::suspend_always(); } + auto final_suspend() noexcept { return true; } + void unhandled_exception(); + }; + template struct task { + using promise_type = promise; + task(std::coroutine_handle>); + bool await_ready(); + std::coroutine_handle<> await_suspend(std::coroutine_handle<>); + T await_resume(); + }; + task> foo() { // { dg-error {awaitable type 'bool' is not a structure} } + while ((co_await foo()).empty()) + ; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/coroutines/pr99710.C gcc-11.5.0/gcc/testsuite/g++.dg/coroutines/pr99710.C *** gcc-11.4.0/gcc/testsuite/g++.dg/coroutines/pr99710.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/coroutines/pr99710.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,25 ---- + #include + + struct task { + struct promise_type { + std::suspend_always initial_suspend(); + std::suspend_always final_suspend() noexcept; + task get_return_object(); + void return_void(); + void unhandled_exception(); + }; + }; + + task + my_coro () + { + try + { } + catch (...) + { + // [expr.await] An await-expression shall appear only in a potentially- + // evaluated expression within the compound-statement of a function-body + // outside of a handler + co_await std::suspend_always{}; // { dg-error "await expressions are not permitted in handlers" } + } + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/depr-copy3.C gcc-11.5.0/gcc/testsuite/g++.dg/cpp0x/depr-copy3.C *** gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/depr-copy3.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/cpp0x/depr-copy3.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,35 ---- + // PR c++/92145 + // { dg-do compile { target c++11 } } + // { dg-additional-options "-Wdeprecated-copy" } + + struct base + { + base() { } + base(const base&) { } + base(base&&) { } + base& operator=(const base&) { return *this; } + base& operator=(base&&) { return *this; } + }; + + struct foo : base + { + //using base::base; + using base::operator=; + }; + + struct bar + { + bar& operator=(foo v) + { + value = v; + return *this; + } + + foo value; + }; + + int main() + { + foo a; + foo{a}; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/initlist-pmf2.C gcc-11.5.0/gcc/testsuite/g++.dg/cpp0x/initlist-pmf2.C *** gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/initlist-pmf2.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/cpp0x/initlist-pmf2.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,12 ---- + // PR c++/113598 + // { dg-additional-options -w } + + struct Cpu + { + int op_nop(); + }; + typedef int(Cpu::*OpCode)(); + void f() + { + new OpCode[256]{&Cpu::op_nop}; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const11a.C gcc-11.5.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const11a.C *** gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const11a.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const11a.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,21 ---- + // PR c++/108975 + // A version of lambda-const11.C using a generic lambda. + // { dg-do compile { target c++14 } } + + template void g(); + template struct A { }; + + template + void f() { + constexpr int dim = 1; + auto l = [&](auto) { + int n[dim * 1]; + using ty1 = decltype(g()); + using ty2 = A; + }; + l(0); + // In f, we shouldn't actually capture dim. + static_assert (sizeof(l) == 1, ""); + } + + template void f(); diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/noexcept78.C gcc-11.5.0/gcc/testsuite/g++.dg/cpp0x/noexcept78.C *** gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/noexcept78.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/cpp0x/noexcept78.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,16 ---- + // PR c++/109761 + // { dg-do compile { target c++11 } } + + struct base { + virtual void foo() noexcept { } + virtual ~base() { } + }; + + struct outer : base { + struct nested { + void foo() noexcept(noexcept(g())); // { dg-bogus "looser" } + ~nested() noexcept(noexcept(g())); // { dg-bogus "looser" } + }; + static void g(); + }; + diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/nsdmi-array2.C gcc-11.5.0/gcc/testsuite/g++.dg/cpp0x/nsdmi-array2.C *** gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/nsdmi-array2.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/cpp0x/nsdmi-array2.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,15 ---- + // PR c++/109666 + // { dg-do compile { target c++11 } } + + struct Point { + int value_; + }; + template struct StaticVector { + static StaticVector create() { + StaticVector output; + return output; + } + Point _M_elems[n]{}; + + }; + void f() { StaticVector<3>::create(); } diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/nsdmi-template25.C gcc-11.5.0/gcc/testsuite/g++.dg/cpp0x/nsdmi-template25.C *** gcc-11.4.0/gcc/testsuite/g++.dg/cpp0x/nsdmi-template25.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/cpp0x/nsdmi-template25.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,18 ---- + // PR c++/106890 + // { dg-do compile { target c++11 } } + + struct A + { + int p; + }; + + template + struct B : virtual public A + { + B() { } + B(int) { } + + int k = this->p; + }; + + template struct B; diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/array-prvalue2.C gcc-11.5.0/gcc/testsuite/g++.dg/cpp1z/array-prvalue2.C *** gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/array-prvalue2.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/cpp1z/array-prvalue2.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,5 ---- + // PR c++/103185 + // { dg-do compile { target c++11 } } + + using intarr = int[]; + static_assert(__is_same(decltype(0[intarr{0}]), int&&), ""); diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/eval-order3.C gcc-11.5.0/gcc/testsuite/g++.dg/cpp1z/eval-order3.C *** gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/eval-order3.C Mon May 29 08:46:30 2023 --- gcc-11.5.0/gcc/testsuite/g++.dg/cpp1z/eval-order3.C Fri Jul 19 05:52:44 2024 *************** void g() *** 166,171 **** --- 166,176 ---- ip(24)[f(25)-25] = 0; last=0; + // even with swapped operands + (f(20)-20)[afn(21)].memfn(f(22),23); + (f(24)-24)[ip(25)] = 0; + last=0; + // a << b aref(24) << f(25); iref(26) << f(27); diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/pr115440.C gcc-11.5.0/gcc/testsuite/g++.dg/cpp1z/pr115440.C *** gcc-11.4.0/gcc/testsuite/g++.dg/cpp1z/pr115440.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/cpp1z/pr115440.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,8 ---- + // PR driver/115440 + // { dg-do compile { target c++17_only } } + // { dg-options "--c++17" } + + int i; + + // { dg-bogus "unrecognized command-line option '--c\\\+\\\+17'; did you mean '--stdc\\\+\\\+17'" "" { target *-*-* } 0 } + // { dg-error "unrecognized command-line option '--c\\\+\\\+17'" "" { target *-*-* } 0 } diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/bit-cast16.C gcc-11.5.0/gcc/testsuite/g++.dg/cpp2a/bit-cast16.C *** gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/bit-cast16.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/cpp2a/bit-cast16.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,16 ---- + // PR c++/114537 + // { dg-do compile { target c++20 } } + + namespace std { + template + constexpr T + bit_cast (const F& f) noexcept + { + return __builtin_bit_cast (T, f); + } + } + + struct A { signed char b : 1 = 0; signed char c : 7 = 0; }; + struct D { unsigned char e; }; + constexpr unsigned char f = std::bit_cast (A{}).e; + static_assert (f == 0); diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/concepts-ttp5.C gcc-11.5.0/gcc/testsuite/g++.dg/cpp2a/concepts-ttp5.C *** gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/concepts-ttp5.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/cpp2a/concepts-ttp5.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,24 ---- + // PR c++/111485 + // { dg-do compile { target c++20 } } + + template constexpr bool always_true = true; + + template concept C = always_true; + template concept D = C || true; + + template class TT> struct example; + template class UU> using example_t = example; + + template + struct A { + template class TT> struct example; + + template class UU> using example_t = example; + + template + struct B { + template class UU> using example_t = example; + }; + }; + + template struct A::B; diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/concepts-ttp6.C gcc-11.5.0/gcc/testsuite/g++.dg/cpp2a/concepts-ttp6.C *** gcc-11.4.0/gcc/testsuite/g++.dg/cpp2a/concepts-ttp6.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/cpp2a/concepts-ttp6.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,17 ---- + // PR c++/111485 + // { dg-do compile { target c++20 } } + + template constexpr bool always_true = true; + + template concept C = always_true; + + template requires C class TT> + void f(); + + template requires C + struct A; + + int main() { + f(); + f(); // { dg-error "no match|constraint mismatch" } + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/debug/dwarf2/pr85550.C gcc-11.5.0/gcc/testsuite/g++.dg/debug/dwarf2/pr85550.C *** gcc-11.4.0/gcc/testsuite/g++.dg/debug/dwarf2/pr85550.C Mon May 29 08:46:30 2023 --- gcc-11.5.0/gcc/testsuite/g++.dg/debug/dwarf2/pr85550.C Fri Jul 19 05:52:44 2024 *************** *** 2,7 **** --- 2,8 ---- // { dg-do link } // { dg-options "-O2 -g -fdebug-types-section" } // { dg-skip-if "AIX DWARF5" { powerpc-ibm-aix* } } + // { dg-skip-if "No debug linker support" { *-*-darwin* } } struct A { int bar () const { return 0; } diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/debug/pr110295.C gcc-11.5.0/gcc/testsuite/g++.dg/debug/pr110295.C *** gcc-11.4.0/gcc/testsuite/g++.dg/debug/pr110295.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/debug/pr110295.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,19 ---- + // { dg-do compile } + // { dg-options "-g" } + + template + struct QCachedT + { + void operator delete(void *, T *) {} + }; + template + void exercise() + { + struct thing_t + : QCachedT + { + }; + thing_t *list[1]; + new thing_t; + } + int main() { exercise<1>(); } diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/ext/attrib68.C gcc-11.5.0/gcc/testsuite/g++.dg/ext/attrib68.C *** gcc-11.4.0/gcc/testsuite/g++.dg/ext/attrib68.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/ext/attrib68.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,8 ---- + // PR c++/114634 + // { dg-do compile } + + template + struct A + { + enum { e __attribute__ ((aligned (16))) }; // { dg-error "alignment may not be specified for 'e'" } + }; diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/ext/is_constructible8.C gcc-11.5.0/gcc/testsuite/g++.dg/ext/is_constructible8.C *** gcc-11.4.0/gcc/testsuite/g++.dg/ext/is_constructible8.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/ext/is_constructible8.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,16 ---- + // PR c++/100667 + // { dg-do compile { target c++11 } } + + struct T; + + #define SA(X) static_assert ((X), #X); + + SA (__is_constructible(T&&, T)); + SA (__is_constructible(const T&, T)); + SA (!__is_constructible(T&, T)); + SA (__is_nothrow_constructible(T&&, T)); + SA (__is_nothrow_constructible(const T&, T)); + SA (!__is_nothrow_constructible(T&, T)); + SA (__is_trivially_constructible(T&&, T)); + SA (__is_trivially_constructible(const T&, T)); + SA (!__is_trivially_constructible(T&, T)); diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/ext/pr114691.C gcc-11.5.0/gcc/testsuite/g++.dg/ext/pr114691.C *** gcc-11.4.0/gcc/testsuite/g++.dg/ext/pr114691.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/ext/pr114691.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,22 ---- + // PR c++/114691 + // { dg-do compile } + // { dg-options "-O2 -Wall" } + + void qux (int); + int foo (int); + + void + bar (int x) + { + #pragma GCC ivdep + while (int y = foo (x)) // { dg-bogus "ignoring loop annotation" } + qux (y); + } + + void + baz (int x) + { + #pragma GCC ivdep + for (; int y = foo (x); ) // { dg-bogus "ignoring loop annotation" } + qux (y); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/ext/unroll-4.C gcc-11.5.0/gcc/testsuite/g++.dg/ext/unroll-4.C *** gcc-11.4.0/gcc/testsuite/g++.dg/ext/unroll-4.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/ext/unroll-4.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,16 ---- + // PR c++/111529 + // { dg-do compile { target c++11 } } + // { dg-additional-options -w } + + template + void f() { + []() { + #pragma GCC unroll 9 + for (int i = 1; i; --i) { + } + }; + } + + int main() { + f<0>(); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/ext/unroll-5.C gcc-11.5.0/gcc/testsuite/g++.dg/ext/unroll-5.C *** gcc-11.4.0/gcc/testsuite/g++.dg/ext/unroll-5.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/ext/unroll-5.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,23 ---- + // PR c++/112795 + // { dg-do compile { target c++11 } } + // { dg-options "-O2 -fdump-tree-cunrolli-details" } + + void baz (int); + constexpr int n = 3; + + template + void + foo () + { + #pragma GCC unroll(n) + for (int i = 0; i != n; ++i) + baz (i); + } + + void + qux () + { + foo <2> (); + } + + // { dg-final { scan-tree-dump "loop with 3 iterations completely unrolled" "cunrolli" } } diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/gcov/gcov-dump-1.C gcc-11.5.0/gcc/testsuite/g++.dg/gcov/gcov-dump-1.C *** gcc-11.4.0/gcc/testsuite/g++.dg/gcov/gcov-dump-1.C Mon May 29 08:46:30 2023 --- gcc-11.5.0/gcc/testsuite/g++.dg/gcov/gcov-dump-1.C Fri Jul 19 05:52:44 2024 *************** *** 1,4 **** ! /* { dg-options "-fprofile-generate -ftest-coverage -lgcov" } */ /* { dg-do run { target native } } */ int value; --- 1,4 ---- ! /* { dg-options "-fprofile-generate -ftest-coverage " } */ /* { dg-do run { target native } } */ int value; diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/gcov/gcov-dump-2.C gcc-11.5.0/gcc/testsuite/g++.dg/gcov/gcov-dump-2.C *** gcc-11.4.0/gcc/testsuite/g++.dg/gcov/gcov-dump-2.C Mon May 29 08:46:30 2023 --- gcc-11.5.0/gcc/testsuite/g++.dg/gcov/gcov-dump-2.C Fri Jul 19 05:52:44 2024 *************** *** 1,4 **** ! /* { dg-options "-fprofile-generate -ftest-coverage -lgcov" } */ /* { dg-do run { target native } } */ int value; --- 1,4 ---- ! /* { dg-options "-fprofile-generate -ftest-coverage " } */ /* { dg-do run { target native } } */ int value; diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/opt/nrv22.C gcc-11.5.0/gcc/testsuite/g++.dg/opt/nrv22.C *** gcc-11.4.0/gcc/testsuite/g++.dg/opt/nrv22.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/opt/nrv22.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,30 ---- + // PR c++/92407 + // { dg-do run } + + struct A + { + A () { a++; } + A (const A &) { a++; } + ~A () { a--; } + static int a; + }; + int A::a = 0; + + A + foo () + { + int cnt = 10; + lab: + A a; + if (cnt--) + goto lab; + return a; + } + + int + main () + { + foo (); + if (A::a) + __builtin_abort (); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/pch/line-map-1.C gcc-11.5.0/gcc/testsuite/g++.dg/pch/line-map-1.C *** gcc-11.4.0/gcc/testsuite/g++.dg/pch/line-map-1.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/pch/line-map-1.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,4 ---- + /* PR preprocessor/105608 */ + /* { dg-do compile } */ + #define MACRO_ON_A_LONG_LINE "this line is long enough that it forces the line table to create an LC_RENAME map, which formerly triggered an ICE after PCH restore" + #include "line-map-1.H" diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/pch/line-map-1.Hs gcc-11.5.0/gcc/testsuite/g++.dg/pch/line-map-1.Hs *** gcc-11.4.0/gcc/testsuite/g++.dg/pch/line-map-1.Hs Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/pch/line-map-1.Hs Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1 ---- + /* This space intentionally left blank. */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/pch/line-map-2.C gcc-11.5.0/gcc/testsuite/g++.dg/pch/line-map-2.C *** gcc-11.4.0/gcc/testsuite/g++.dg/pch/line-map-2.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/pch/line-map-2.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,6 ---- + /* PR preprocessor/105608 */ + /* { dg-do compile } */ + /* { dg-additional-options "-save-temps" } */ + #define MACRO_ON_A_LONG_LINE "this line is long enough that it forces the line table to create an LC_RENAME map, which formerly triggered an ICE after PCH restore" + #include "line-map-2.H" + #error "suppress PCH assembly comparison, which does not work with -save-temps" /* { dg-error "." } */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/pch/line-map-2.Hs gcc-11.5.0/gcc/testsuite/g++.dg/pch/line-map-2.Hs *** gcc-11.4.0/gcc/testsuite/g++.dg/pch/line-map-2.Hs Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/pch/line-map-2.Hs Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1 ---- + /* This space intentionally left blank. */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/pch/line-map-3.Hs gcc-11.5.0/gcc/testsuite/g++.dg/pch/line-map-3.Hs *** gcc-11.4.0/gcc/testsuite/g++.dg/pch/line-map-3.Hs Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/pch/line-map-3.Hs Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1 ---- + /* This space intentionally left blank. */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/template/template-keyword4.C gcc-11.5.0/gcc/testsuite/g++.dg/template/template-keyword4.C *** gcc-11.4.0/gcc/testsuite/g++.dg/template/template-keyword4.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/template/template-keyword4.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,18 ---- + // PR c++/106310 + + template + struct set{}; + + template< typename T > + struct Base + { + template< int > int set(T const &); + }; + + template< typename T > + struct Derived : Base< T > + { + void f(T const &arg) { + this->template set< 0 >(arg); + } + }; diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/torture/pr100303.C gcc-11.5.0/gcc/testsuite/g++.dg/torture/pr100303.C *** gcc-11.4.0/gcc/testsuite/g++.dg/torture/pr100303.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/torture/pr100303.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,112 ---- + /* { dg-additional-options "-w -fcompare-debug -fno-dce -ftracer" } */ + + template < typename _T1 > struct pair + { + _T1 first; + int second; + }; + struct __aligned_membuf + { + void _M_ptr (); + }; + struct _Rb_tree_node_base + { + typedef _Rb_tree_node_base *_Base_ptr; + }; + struct _Rb_tree_node:_Rb_tree_node_base + { + __aligned_membuf _M_storage; + void _M_valptr () + { + _M_storage._M_ptr (); + } + }; + struct _Rb_tree_iterator + { + typedef _Rb_tree_node_base::_Base_ptr _Base_ptr; + _Rb_tree_iterator (_Base_ptr __x):_M_node (__x) + { + } + void operator* () + { + static_cast < _Rb_tree_node * >(_M_node)->_M_valptr (); + } + friend bool operator== (_Rb_tree_iterator __x, _Rb_tree_iterator) + { + return __x._M_node; + } + _Base_ptr _M_node; + }; + + template < typename, typename, typename, typename, typename = + int >class _Rb_tree + { + typedef _Rb_tree_node_base *_Base_ptr; + public: + pair < _Base_ptr > _M_get_insert_hint_unique_pos (int); + void _M_insert_node (_Base_ptr, int); + template < typename ... _Args > + _Rb_tree_iterator _M_emplace_hint_unique (_Args && ...); + _Rb_tree_iterator lower_bound () + { + _Rb_tree_node_base __trans_tmp_2; + return &__trans_tmp_2; + } + }; + template < typename _Key, typename _Val, typename _KeyOfValue, + typename _Compare, + typename _Alloc > template < typename ... _Args > + _Rb_tree_iterator _Rb_tree < _Key, _Val, _KeyOfValue, _Compare, + _Alloc >::_M_emplace_hint_unique (_Args && ...) + { + int __z; + try + { + auto __res = _M_get_insert_hint_unique_pos (0); + _Rb_tree_node_base *__res_1; + if (__res_1) + _M_insert_node (__res.first, __z); + return __res.first; + } + catch ( ...) + { + } + } + + class map + { + _Rb_tree < int, int, int, int >_M_t; + public: + _Rb_tree_iterator end (); + void operator[] (int) + { + _Rb_tree_iterator __i = lower_bound (); + if (__i == end ()) + __i = _M_t._M_emplace_hint_unique (__i); + *__i; + } + _Rb_tree_iterator lower_bound () + { + return _M_t.lower_bound (); + } + }; + + class FlowStat + { + public: + int FlowStat_flow; + FlowStat () + { + shares[FlowStat_flow]; + } + map shares; + }; + + class LinkGraphJob + { + ~LinkGraphJob (); + }; + LinkGraphJob::~LinkGraphJob () + { + FlowStat (); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/torture/vector-struct-1.C gcc-11.5.0/gcc/testsuite/g++.dg/torture/vector-struct-1.C *** gcc-11.4.0/gcc/testsuite/g++.dg/torture/vector-struct-1.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/torture/vector-struct-1.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,18 ---- + /* PR c++/97990 */ + /* This used to crash with lto and strict aliasing enabled as the + vector type variant still had TYPE_ALIAS_SET set on it. */ + + typedef __attribute__((__vector_size__(sizeof(short)))) short TSimd; + TSimd hh(int); + struct y6 + { + TSimd VALUE; + ~y6(); + }; + template + auto f2(T1 p1, T2){ + return hh(p1) <= 0; + } + void f1(){ + f2(0, y6{}); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/torture/vector-subaccess-1.C gcc-11.5.0/gcc/testsuite/g++.dg/torture/vector-subaccess-1.C *** gcc-11.4.0/gcc/testsuite/g++.dg/torture/vector-subaccess-1.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/torture/vector-subaccess-1.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,24 ---- + /* PR c++/89224 */ + /* { dg-additional-options "-Wno-psabi" } */ + + /* The access of `vector[i]` has the same qualifiers as the original + vector which was missing. */ + + typedef __attribute__((vector_size(16))) unsigned char Int8x8_t; + + template + void g(T &x) { + __builtin_abort(); + } + template + void g(const T &x) { + __builtin_exit(0); + } + void f(const Int8x8_t x) { + g(x[0]); + } + int main(void) + { + Int8x8_t x ={}; + f(x); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.dg/vect/pr112793.cc gcc-11.5.0/gcc/testsuite/g++.dg/vect/pr112793.cc *** gcc-11.4.0/gcc/testsuite/g++.dg/vect/pr112793.cc Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.dg/vect/pr112793.cc Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,32 ---- + // { dg-do compile } + // { dg-require-effective-target c++11 } + // { dg-additional-options "-march=znver2" { target x86_64-*-* i?86-*-* } } + + typedef double T; + T c, s; + T a[16]; + struct Matrix4 { + Matrix4(){} + Matrix4(T e, T f, T i, T j) { + r[1] = r[4] = e; + r[5] = f; + r[8] = i; + r[9] = j; + } + Matrix4 operator*(Matrix4 a) { + return Matrix4( + r[0] * a.r[4] + r[4] + r[15] + r[6], + r[1] * a.r[4] + 1 + 2 + 3, r[0] * r[8] + 1 + 2 + 3, + r[1] * r[8] + r[1] + r[14] + r[2] * r[3]); + } + T r[16] = {}; + }; + Matrix4 t1, t2; + Matrix4 tt; + Matrix4 getRotAltAzToEquatorial() + { + t2.r[4] = 0; + t1.r[1] = -s; + t1.r[8] = 0; + return t1 * t2; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.target/i386/mv29.C gcc-11.5.0/gcc/testsuite/g++.target/i386/mv29.C *** gcc-11.4.0/gcc/testsuite/g++.target/i386/mv29.C Mon May 29 08:46:30 2023 --- gcc-11.5.0/gcc/testsuite/g++.target/i386/mv29.C Fri Jul 19 05:52:44 2024 *************** int __attribute__ ((target("arch=znver3" *** 49,54 **** --- 49,57 ---- return 9; } + int __attribute__ ((target("arch=znver4"))) foo () { + return 10; + } int main () { *************** int main () *** 72,77 **** --- 75,82 ---- assert (val == 8); else if (__builtin_cpu_is ("znver3")) assert (val == 9); + else if (__builtin_cpu_is ("znver4")) + assert (val == 10); else assert (val == 0); diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.target/i386/mv31.C gcc-11.5.0/gcc/testsuite/g++.target/i386/mv31.C *** gcc-11.4.0/gcc/testsuite/g++.target/i386/mv31.C Mon May 29 08:46:30 2023 --- gcc-11.5.0/gcc/testsuite/g++.target/i386/mv31.C Fri Jul 19 05:52:44 2024 *************** *** 1,4 **** --- 1,5 ---- // PR c++/104669 + // { dg-require-ifunc "" } void bar() { diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.target/powerpc/pr105325.C gcc-11.5.0/gcc/testsuite/g++.target/powerpc/pr105325.C *** gcc-11.4.0/gcc/testsuite/g++.target/powerpc/pr105325.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.target/powerpc/pr105325.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,28 ---- + /* { dg-do assemble } */ + /* { dg-require-effective-target lp64 } */ + /* { dg-require-effective-target power10_ok } */ + /* { dg-require-effective-target powerpc_prefixed_addr } */ + /* { dg-options "-O2 -mdejagnu-cpu=power10 -fstack-protector" } */ + + /* PR target/105324. Test that power10 fusion does not generate an LWA/CMPDI + with a large offset that the assembler rejects. Instead it should a + PLWZ/CMPWI combination. + + Originally, the code was dying because the fusion load + compare -1/0/1 + patterns did not handle the possibility that the load might be prefixed. + The -fstack-protector option is needed to show the bug. */ + + struct Ath__array1D { + int _current; + int getCnt() { return _current; } + }; + struct extMeasure { + int _mapTable[10000]; + Ath__array1D _metRCTable; + }; + void measureRC() { + extMeasure m; + for (; m._metRCTable.getCnt();) + for (;;) + ; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.target/powerpc/pr110741.C gcc-11.5.0/gcc/testsuite/g++.target/powerpc/pr110741.C *** gcc-11.4.0/gcc/testsuite/g++.target/powerpc/pr110741.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.target/powerpc/pr110741.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,552 ---- + /* { dg-do run { target { power10_hw } } } */ + /* { dg-options "-O2 -mdejagnu-cpu=power10" } */ + + #include + + typedef unsigned char uint8_t; + + template + static inline vector unsigned long long + VSXTernaryLogic (vector unsigned long long a, vector unsigned long long b, + vector unsigned long long c) + { + return vec_ternarylogic (a, b, c, kTernLogOp); + } + + static vector unsigned long long + VSXTernaryLogic (vector unsigned long long a, vector unsigned long long b, + vector unsigned long long c, int ternary_logic_op) + { + switch (ternary_logic_op & 0xFF) + { + case 0: + return VSXTernaryLogic<0> (a, b, c); + case 1: + return VSXTernaryLogic<1> (a, b, c); + case 2: + return VSXTernaryLogic<2> (a, b, c); + case 3: + return VSXTernaryLogic<3> (a, b, c); + case 4: + return VSXTernaryLogic<4> (a, b, c); + case 5: + return VSXTernaryLogic<5> (a, b, c); + case 6: + return VSXTernaryLogic<6> (a, b, c); + case 7: + return VSXTernaryLogic<7> (a, b, c); + case 8: + return VSXTernaryLogic<8> (a, b, c); + case 9: + return VSXTernaryLogic<9> (a, b, c); + case 10: + return VSXTernaryLogic<10> (a, b, c); + case 11: + return VSXTernaryLogic<11> (a, b, c); + case 12: + return VSXTernaryLogic<12> (a, b, c); + case 13: + return VSXTernaryLogic<13> (a, b, c); + case 14: + return VSXTernaryLogic<14> (a, b, c); + case 15: + return VSXTernaryLogic<15> (a, b, c); + case 16: + return VSXTernaryLogic<16> (a, b, c); + case 17: + return VSXTernaryLogic<17> (a, b, c); + case 18: + return VSXTernaryLogic<18> (a, b, c); + case 19: + return VSXTernaryLogic<19> (a, b, c); + case 20: + return VSXTernaryLogic<20> (a, b, c); + case 21: + return VSXTernaryLogic<21> (a, b, c); + case 22: + return VSXTernaryLogic<22> (a, b, c); + case 23: + return VSXTernaryLogic<23> (a, b, c); + case 24: + return VSXTernaryLogic<24> (a, b, c); + case 25: + return VSXTernaryLogic<25> (a, b, c); + case 26: + return VSXTernaryLogic<26> (a, b, c); + case 27: + return VSXTernaryLogic<27> (a, b, c); + case 28: + return VSXTernaryLogic<28> (a, b, c); + case 29: + return VSXTernaryLogic<29> (a, b, c); + case 30: + return VSXTernaryLogic<30> (a, b, c); + case 31: + return VSXTernaryLogic<31> (a, b, c); + case 32: + return VSXTernaryLogic<32> (a, b, c); + case 33: + return VSXTernaryLogic<33> (a, b, c); + case 34: + return VSXTernaryLogic<34> (a, b, c); + case 35: + return VSXTernaryLogic<35> (a, b, c); + case 36: + return VSXTernaryLogic<36> (a, b, c); + case 37: + return VSXTernaryLogic<37> (a, b, c); + case 38: + return VSXTernaryLogic<38> (a, b, c); + case 39: + return VSXTernaryLogic<39> (a, b, c); + case 40: + return VSXTernaryLogic<40> (a, b, c); + case 41: + return VSXTernaryLogic<41> (a, b, c); + case 42: + return VSXTernaryLogic<42> (a, b, c); + case 43: + return VSXTernaryLogic<43> (a, b, c); + case 44: + return VSXTernaryLogic<44> (a, b, c); + case 45: + return VSXTernaryLogic<45> (a, b, c); + case 46: + return VSXTernaryLogic<46> (a, b, c); + case 47: + return VSXTernaryLogic<47> (a, b, c); + case 48: + return VSXTernaryLogic<48> (a, b, c); + case 49: + return VSXTernaryLogic<49> (a, b, c); + case 50: + return VSXTernaryLogic<50> (a, b, c); + case 51: + return VSXTernaryLogic<51> (a, b, c); + case 52: + return VSXTernaryLogic<52> (a, b, c); + case 53: + return VSXTernaryLogic<53> (a, b, c); + case 54: + return VSXTernaryLogic<54> (a, b, c); + case 55: + return VSXTernaryLogic<55> (a, b, c); + case 56: + return VSXTernaryLogic<56> (a, b, c); + case 57: + return VSXTernaryLogic<57> (a, b, c); + case 58: + return VSXTernaryLogic<58> (a, b, c); + case 59: + return VSXTernaryLogic<59> (a, b, c); + case 60: + return VSXTernaryLogic<60> (a, b, c); + case 61: + return VSXTernaryLogic<61> (a, b, c); + case 62: + return VSXTernaryLogic<62> (a, b, c); + case 63: + return VSXTernaryLogic<63> (a, b, c); + case 64: + return VSXTernaryLogic<64> (a, b, c); + case 65: + return VSXTernaryLogic<65> (a, b, c); + case 66: + return VSXTernaryLogic<66> (a, b, c); + case 67: + return VSXTernaryLogic<67> (a, b, c); + case 68: + return VSXTernaryLogic<68> (a, b, c); + case 69: + return VSXTernaryLogic<69> (a, b, c); + case 70: + return VSXTernaryLogic<70> (a, b, c); + case 71: + return VSXTernaryLogic<71> (a, b, c); + case 72: + return VSXTernaryLogic<72> (a, b, c); + case 73: + return VSXTernaryLogic<73> (a, b, c); + case 74: + return VSXTernaryLogic<74> (a, b, c); + case 75: + return VSXTernaryLogic<75> (a, b, c); + case 76: + return VSXTernaryLogic<76> (a, b, c); + case 77: + return VSXTernaryLogic<77> (a, b, c); + case 78: + return VSXTernaryLogic<78> (a, b, c); + case 79: + return VSXTernaryLogic<79> (a, b, c); + case 80: + return VSXTernaryLogic<80> (a, b, c); + case 81: + return VSXTernaryLogic<81> (a, b, c); + case 82: + return VSXTernaryLogic<82> (a, b, c); + case 83: + return VSXTernaryLogic<83> (a, b, c); + case 84: + return VSXTernaryLogic<84> (a, b, c); + case 85: + return VSXTernaryLogic<85> (a, b, c); + case 86: + return VSXTernaryLogic<86> (a, b, c); + case 87: + return VSXTernaryLogic<87> (a, b, c); + case 88: + return VSXTernaryLogic<88> (a, b, c); + case 89: + return VSXTernaryLogic<89> (a, b, c); + case 90: + return VSXTernaryLogic<90> (a, b, c); + case 91: + return VSXTernaryLogic<91> (a, b, c); + case 92: + return VSXTernaryLogic<92> (a, b, c); + case 93: + return VSXTernaryLogic<93> (a, b, c); + case 94: + return VSXTernaryLogic<94> (a, b, c); + case 95: + return VSXTernaryLogic<95> (a, b, c); + case 96: + return VSXTernaryLogic<96> (a, b, c); + case 97: + return VSXTernaryLogic<97> (a, b, c); + case 98: + return VSXTernaryLogic<98> (a, b, c); + case 99: + return VSXTernaryLogic<99> (a, b, c); + case 100: + return VSXTernaryLogic<100> (a, b, c); + case 101: + return VSXTernaryLogic<101> (a, b, c); + case 102: + return VSXTernaryLogic<102> (a, b, c); + case 103: + return VSXTernaryLogic<103> (a, b, c); + case 104: + return VSXTernaryLogic<104> (a, b, c); + case 105: + return VSXTernaryLogic<105> (a, b, c); + case 106: + return VSXTernaryLogic<106> (a, b, c); + case 107: + return VSXTernaryLogic<107> (a, b, c); + case 108: + return VSXTernaryLogic<108> (a, b, c); + case 109: + return VSXTernaryLogic<109> (a, b, c); + case 110: + return VSXTernaryLogic<110> (a, b, c); + case 111: + return VSXTernaryLogic<111> (a, b, c); + case 112: + return VSXTernaryLogic<112> (a, b, c); + case 113: + return VSXTernaryLogic<113> (a, b, c); + case 114: + return VSXTernaryLogic<114> (a, b, c); + case 115: + return VSXTernaryLogic<115> (a, b, c); + case 116: + return VSXTernaryLogic<116> (a, b, c); + case 117: + return VSXTernaryLogic<117> (a, b, c); + case 118: + return VSXTernaryLogic<118> (a, b, c); + case 119: + return VSXTernaryLogic<119> (a, b, c); + case 120: + return VSXTernaryLogic<120> (a, b, c); + case 121: + return VSXTernaryLogic<121> (a, b, c); + case 122: + return VSXTernaryLogic<122> (a, b, c); + case 123: + return VSXTernaryLogic<123> (a, b, c); + case 124: + return VSXTernaryLogic<124> (a, b, c); + case 125: + return VSXTernaryLogic<125> (a, b, c); + case 126: + return VSXTernaryLogic<126> (a, b, c); + case 127: + return VSXTernaryLogic<127> (a, b, c); + case 128: + return VSXTernaryLogic<128> (a, b, c); + case 129: + return VSXTernaryLogic<129> (a, b, c); + case 130: + return VSXTernaryLogic<130> (a, b, c); + case 131: + return VSXTernaryLogic<131> (a, b, c); + case 132: + return VSXTernaryLogic<132> (a, b, c); + case 133: + return VSXTernaryLogic<133> (a, b, c); + case 134: + return VSXTernaryLogic<134> (a, b, c); + case 135: + return VSXTernaryLogic<135> (a, b, c); + case 136: + return VSXTernaryLogic<136> (a, b, c); + case 137: + return VSXTernaryLogic<137> (a, b, c); + case 138: + return VSXTernaryLogic<138> (a, b, c); + case 139: + return VSXTernaryLogic<139> (a, b, c); + case 140: + return VSXTernaryLogic<140> (a, b, c); + case 141: + return VSXTernaryLogic<141> (a, b, c); + case 142: + return VSXTernaryLogic<142> (a, b, c); + case 143: + return VSXTernaryLogic<143> (a, b, c); + case 144: + return VSXTernaryLogic<144> (a, b, c); + case 145: + return VSXTernaryLogic<145> (a, b, c); + case 146: + return VSXTernaryLogic<146> (a, b, c); + case 147: + return VSXTernaryLogic<147> (a, b, c); + case 148: + return VSXTernaryLogic<148> (a, b, c); + case 149: + return VSXTernaryLogic<149> (a, b, c); + case 150: + return VSXTernaryLogic<150> (a, b, c); + case 151: + return VSXTernaryLogic<151> (a, b, c); + case 152: + return VSXTernaryLogic<152> (a, b, c); + case 153: + return VSXTernaryLogic<153> (a, b, c); + case 154: + return VSXTernaryLogic<154> (a, b, c); + case 155: + return VSXTernaryLogic<155> (a, b, c); + case 156: + return VSXTernaryLogic<156> (a, b, c); + case 157: + return VSXTernaryLogic<157> (a, b, c); + case 158: + return VSXTernaryLogic<158> (a, b, c); + case 159: + return VSXTernaryLogic<159> (a, b, c); + case 160: + return VSXTernaryLogic<160> (a, b, c); + case 161: + return VSXTernaryLogic<161> (a, b, c); + case 162: + return VSXTernaryLogic<162> (a, b, c); + case 163: + return VSXTernaryLogic<163> (a, b, c); + case 164: + return VSXTernaryLogic<164> (a, b, c); + case 165: + return VSXTernaryLogic<165> (a, b, c); + case 166: + return VSXTernaryLogic<166> (a, b, c); + case 167: + return VSXTernaryLogic<167> (a, b, c); + case 168: + return VSXTernaryLogic<168> (a, b, c); + case 169: + return VSXTernaryLogic<169> (a, b, c); + case 170: + return VSXTernaryLogic<170> (a, b, c); + case 171: + return VSXTernaryLogic<171> (a, b, c); + case 172: + return VSXTernaryLogic<172> (a, b, c); + case 173: + return VSXTernaryLogic<173> (a, b, c); + case 174: + return VSXTernaryLogic<174> (a, b, c); + case 175: + return VSXTernaryLogic<175> (a, b, c); + case 176: + return VSXTernaryLogic<176> (a, b, c); + case 177: + return VSXTernaryLogic<177> (a, b, c); + case 178: + return VSXTernaryLogic<178> (a, b, c); + case 179: + return VSXTernaryLogic<179> (a, b, c); + case 180: + return VSXTernaryLogic<180> (a, b, c); + case 181: + return VSXTernaryLogic<181> (a, b, c); + case 182: + return VSXTernaryLogic<182> (a, b, c); + case 183: + return VSXTernaryLogic<183> (a, b, c); + case 184: + return VSXTernaryLogic<184> (a, b, c); + case 185: + return VSXTernaryLogic<185> (a, b, c); + case 186: + return VSXTernaryLogic<186> (a, b, c); + case 187: + return VSXTernaryLogic<187> (a, b, c); + case 188: + return VSXTernaryLogic<188> (a, b, c); + case 189: + return VSXTernaryLogic<189> (a, b, c); + case 190: + return VSXTernaryLogic<190> (a, b, c); + case 191: + return VSXTernaryLogic<191> (a, b, c); + case 192: + return VSXTernaryLogic<192> (a, b, c); + case 193: + return VSXTernaryLogic<193> (a, b, c); + case 194: + return VSXTernaryLogic<194> (a, b, c); + case 195: + return VSXTernaryLogic<195> (a, b, c); + case 196: + return VSXTernaryLogic<196> (a, b, c); + case 197: + return VSXTernaryLogic<197> (a, b, c); + case 198: + return VSXTernaryLogic<198> (a, b, c); + case 199: + return VSXTernaryLogic<199> (a, b, c); + case 200: + return VSXTernaryLogic<200> (a, b, c); + case 201: + return VSXTernaryLogic<201> (a, b, c); + case 202: + return VSXTernaryLogic<202> (a, b, c); + case 203: + return VSXTernaryLogic<203> (a, b, c); + case 204: + return VSXTernaryLogic<204> (a, b, c); + case 205: + return VSXTernaryLogic<205> (a, b, c); + case 206: + return VSXTernaryLogic<206> (a, b, c); + case 207: + return VSXTernaryLogic<207> (a, b, c); + case 208: + return VSXTernaryLogic<208> (a, b, c); + case 209: + return VSXTernaryLogic<209> (a, b, c); + case 210: + return VSXTernaryLogic<210> (a, b, c); + case 211: + return VSXTernaryLogic<211> (a, b, c); + case 212: + return VSXTernaryLogic<212> (a, b, c); + case 213: + return VSXTernaryLogic<213> (a, b, c); + case 214: + return VSXTernaryLogic<214> (a, b, c); + case 215: + return VSXTernaryLogic<215> (a, b, c); + case 216: + return VSXTernaryLogic<216> (a, b, c); + case 217: + return VSXTernaryLogic<217> (a, b, c); + case 218: + return VSXTernaryLogic<218> (a, b, c); + case 219: + return VSXTernaryLogic<219> (a, b, c); + case 220: + return VSXTernaryLogic<220> (a, b, c); + case 221: + return VSXTernaryLogic<221> (a, b, c); + case 222: + return VSXTernaryLogic<222> (a, b, c); + case 223: + return VSXTernaryLogic<223> (a, b, c); + case 224: + return VSXTernaryLogic<224> (a, b, c); + case 225: + return VSXTernaryLogic<225> (a, b, c); + case 226: + return VSXTernaryLogic<226> (a, b, c); + case 227: + return VSXTernaryLogic<227> (a, b, c); + case 228: + return VSXTernaryLogic<228> (a, b, c); + case 229: + return VSXTernaryLogic<229> (a, b, c); + case 230: + return VSXTernaryLogic<230> (a, b, c); + case 231: + return VSXTernaryLogic<231> (a, b, c); + case 232: + return VSXTernaryLogic<232> (a, b, c); + case 233: + return VSXTernaryLogic<233> (a, b, c); + case 234: + return VSXTernaryLogic<234> (a, b, c); + case 235: + return VSXTernaryLogic<235> (a, b, c); + case 236: + return VSXTernaryLogic<236> (a, b, c); + case 237: + return VSXTernaryLogic<237> (a, b, c); + case 238: + return VSXTernaryLogic<238> (a, b, c); + case 239: + return VSXTernaryLogic<239> (a, b, c); + case 240: + return VSXTernaryLogic<240> (a, b, c); + case 241: + return VSXTernaryLogic<241> (a, b, c); + case 242: + return VSXTernaryLogic<242> (a, b, c); + case 243: + return VSXTernaryLogic<243> (a, b, c); + case 244: + return VSXTernaryLogic<244> (a, b, c); + case 245: + return VSXTernaryLogic<245> (a, b, c); + case 246: + return VSXTernaryLogic<246> (a, b, c); + case 247: + return VSXTernaryLogic<247> (a, b, c); + case 248: + return VSXTernaryLogic<248> (a, b, c); + case 249: + return VSXTernaryLogic<249> (a, b, c); + case 250: + return VSXTernaryLogic<250> (a, b, c); + case 251: + return VSXTernaryLogic<251> (a, b, c); + case 252: + return VSXTernaryLogic<252> (a, b, c); + case 253: + return VSXTernaryLogic<253> (a, b, c); + case 254: + return VSXTernaryLogic<254> (a, b, c); + case 255: + return VSXTernaryLogic<255> (a, b, c); + default: + return a; + } + } + + int + main (int argc, char **argv) + { + vector unsigned long long a = {0xD8, 0xDB}; + vector unsigned long long b = {0x6C, 0x6C}; + vector unsigned long long c = {0x56, 0x56}; + vector unsigned long long ternlog_result = VSXTernaryLogic (a, b, c, 0xB6); + + if (ternlog_result[0] != 0xffffffffffffff3dull + || ternlog_result[1] != 0xffffffffffffff3eull) + __builtin_abort (); + + return 0; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/g++.target/powerpc/pr111367.C gcc-11.5.0/gcc/testsuite/g++.target/powerpc/pr111367.C *** gcc-11.4.0/gcc/testsuite/g++.target/powerpc/pr111367.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/g++.target/powerpc/pr111367.C Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,22 ---- + /* { dg-do assemble } */ + /* { dg-require-effective-target power10_ok } */ + /* { dg-options "-mdejagnu-cpu=power10 -fstack-protector-strong" } */ + + /* Verify object file can be generated successfully. */ + + struct SortAscending + { + }; + + typedef unsigned long long size_t; + + void VQSort (long long *, size_t, SortAscending); + + void + BenchAllColdSort () + { + typedef long long T; + constexpr size_t kSize = 10 * 1000; + alignas (16) T items[kSize]; + VQSort (items, kSize, SortAscending ()); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.c-torture/compile/pr110386-1.c gcc-11.5.0/gcc/testsuite/gcc.c-torture/compile/pr110386-1.c *** gcc-11.4.0/gcc/testsuite/gcc.c-torture/compile/pr110386-1.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.c-torture/compile/pr110386-1.c Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,9 ---- + + int f(int a) + { + int c = c < 0 ? c : -c; + c = -c; + unsigned b = c; + unsigned t = b*a; + return t*t; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.c-torture/compile/pr110386-2.c gcc-11.5.0/gcc/testsuite/gcc.c-torture/compile/pr110386-2.c *** gcc-11.4.0/gcc/testsuite/gcc.c-torture/compile/pr110386-2.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.c-torture/compile/pr110386-2.c Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,11 ---- + /* { dg-do compile { target i?86-*-* x86_64-*-* } } */ + /* { dg-options "-mavx" } */ + + #include + + __m128i do_stuff(__m128i XMM0) { + __m128i ABS0 = _mm_abs_epi32(XMM0); + __m128i MUL0 = _mm_mullo_epi32(ABS0, XMM0); + __m128i MUL1 = _mm_mullo_epi32(MUL0, MUL0); + return MUL1; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.c-torture/compile/pr111699-1.c gcc-11.5.0/gcc/testsuite/gcc.c-torture/compile/pr111699-1.c *** gcc-11.4.0/gcc/testsuite/gcc.c-torture/compile/pr111699-1.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.c-torture/compile/pr111699-1.c Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,7 ---- + typedef unsigned char __attribute__((__vector_size__ (8))) V; + + void + foo (V *v) + { + *v = (V) 0x107B9A7FF >= (*v <= 0); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.c-torture/compile/pr113603.c gcc-11.5.0/gcc/testsuite/gcc.c-torture/compile/pr113603.c *** gcc-11.4.0/gcc/testsuite/gcc.c-torture/compile/pr113603.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.c-torture/compile/pr113603.c Fri Jul 19 05:52:44 2024 *************** *** 0 **** --- 1,40 ---- + /* PR tree-optimization/113603 */ + + int a, e; + signed char b; + int *c; + signed char *d; + short f; + signed char g[3]; + + int * + foo (void) + { + for (int i = 0; i < 3; i++) + g[i] = 2; + int j[100][100] = { {}, {4} }; + signed char *k = &g[1]; + do + { + for (;;) + { + if (c) + break; + return &a; + } + for (f = 0;; f++) + { + for (b = 0; b < 2; b++) + *c = j[b][f]; + if (e) + d = k; + *k = *d; + if (*c) + break; + if (f) + break; + } + } + while (f); + return 0; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.c-torture/execute/pr108789.c gcc-11.5.0/gcc/testsuite/gcc.c-torture/execute/pr108789.c *** gcc-11.4.0/gcc/testsuite/gcc.c-torture/execute/pr108789.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.c-torture/execute/pr108789.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,39 ---- + /* PR middle-end/108789 */ + + int + add (unsigned *r, const unsigned *a, const unsigned *b) + { + return __builtin_add_overflow (*a, *b, r); + } + + int + mul (unsigned *r, const unsigned *a, const unsigned *b) + { + return __builtin_mul_overflow (*a, *b, r); + } + + int + main () + { + unsigned x; + + /* 1073741824U + 1073741824U should not overflow. */ + x = (__INT_MAX__ + 1U) / 2; + if (add (&x, &x, &x)) + __builtin_abort (); + + /* 256U * 256U should not overflow */ + x = 1U << (sizeof (int) * __CHAR_BIT__ / 4); + if (mul (&x, &x, &x)) + __builtin_abort (); + + /* 2147483648U + 2147483648U should overflow */ + x = __INT_MAX__ + 1U; + if (!add (&x, &x, &x)) + __builtin_abort (); + + /* 65536U * 65536U should overflow */ + x = 1U << (sizeof (int) * __CHAR_BIT__ / 2); + if (!mul (&x, &x, &x)) + __builtin_abort (); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.c-torture/execute/pr110115.c gcc-11.5.0/gcc/testsuite/gcc.c-torture/execute/pr110115.c *** gcc-11.4.0/gcc/testsuite/gcc.c-torture/execute/pr110115.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.c-torture/execute/pr110115.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,45 ---- + /* PR middle-end/110115 */ + + int a; + signed char b; + + static int + foo (signed char *e, int f) + { + int d; + for (d = 0; d < f; d++) + e[d] = 0; + return d; + } + + int + bar (signed char e, int f) + { + signed char h[20]; + int i = foo (h, f); + return i; + } + + int + baz () + { + switch (a) + { + case 'f': + return 0; + default: + return ~0; + } + } + + int + main () + { + { + signed char *k[3]; + int d; + for (d = 0; bar (8, 15) - 15 + d < 1; d++) + k[baz () + 1] = &b; + *k[0] = -*k[0]; + } + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.c-torture/execute/pr110914.c gcc-11.5.0/gcc/testsuite/gcc.c-torture/execute/pr110914.c *** gcc-11.4.0/gcc/testsuite/gcc.c-torture/execute/pr110914.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.c-torture/execute/pr110914.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,22 ---- + /* PR tree-optimization/110914 */ + + __attribute__ ((noipa)) int + foo (const char *s, unsigned long l) + { + unsigned char r = 0; + __builtin_memcpy (&r, s, l != 0); + return r; + } + + int + main () + { + const char *p = "123456"; + int a = foo (p, __builtin_strlen (p) - 5); + int b = foo (p, __builtin_strlen (p) - 6); + if (a != '1') + __builtin_abort (); + if (b != 0) + __builtin_abort (); + return 0; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.c-torture/execute/pr111331-1.c gcc-11.5.0/gcc/testsuite/gcc.c-torture/execute/pr111331-1.c *** gcc-11.4.0/gcc/testsuite/gcc.c-torture/execute/pr111331-1.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.c-torture/execute/pr111331-1.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,17 ---- + int a; + int b; + int c(int d, int e, int f) { + if (d < e) + return e; + if (d > f) + return f; + return d; + } + int main() { + int g = -1; + a = c(b + 30, 29, g + 29); + volatile t = a; + if (t != 28) + __builtin_abort(); + return 0; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.c-torture/execute/pr111331-2.c gcc-11.5.0/gcc/testsuite/gcc.c-torture/execute/pr111331-2.c *** gcc-11.4.0/gcc/testsuite/gcc.c-torture/execute/pr111331-2.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.c-torture/execute/pr111331-2.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,19 ---- + + int a; + int b; + + int main() { + int d = b+30; + { + int t; + if (d < 29) + t = 29; + else + t = (d > 28) ? 28 : d; + a = t; + } + volatile int t = a; + if (a != 28) + __builtin_abort(); + return 0; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.c-torture/execute/pr111331-3.c gcc-11.5.0/gcc/testsuite/gcc.c-torture/execute/pr111331-3.c *** gcc-11.4.0/gcc/testsuite/gcc.c-torture/execute/pr111331-3.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.c-torture/execute/pr111331-3.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,15 ---- + int a; + int b; + + int main() { + int d = b+30; + { + int t; + t = d < 29 ? 29 : ((d > 28) ? 28 : d); + a = t; + } + volatile int t = a; + if (a != 28) + __builtin_abort(); + return 0; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.c-torture/execute/pr111408.c gcc-11.5.0/gcc/testsuite/gcc.c-torture/execute/pr111408.c *** gcc-11.4.0/gcc/testsuite/gcc.c-torture/execute/pr111408.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.c-torture/execute/pr111408.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,26 ---- + /* PR target/111408 */ + + int a, b, c, d; + short e; + + int + foo () + { + c = a % (sizeof (int) * 8); + if (b & 1 << c) + return -1; + return 0; + } + + int + main () + { + for (; e != 1; e++) + { + int g = foo (); + if (g + d - 9 + d) + continue; + for (;;) + __builtin_abort (); + } + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.c-torture/execute/pr111422.c gcc-11.5.0/gcc/testsuite/gcc.c-torture/execute/pr111422.c *** gcc-11.4.0/gcc/testsuite/gcc.c-torture/execute/pr111422.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.c-torture/execute/pr111422.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,39 ---- + /* PR middle-end/111422 */ + + int a, b; + int *c = &b; + unsigned d; + signed char e; + int f = 1; + + int + foo (int k, signed char *l) + { + if (k < 6) + return a; + l[0] = l[1] = l[k - 1] = 8; + return 0; + } + + int + bar (int k) + { + signed char g[11]; + int h = foo (k, g); + return h; + } + + int + main () + { + for (; b < 8; b = b + 1) + ; + int j; + int *n[8]; + for (j = 0; 18446744073709551608ULL + bar (*c) + *c + j < 2; j++) + n[j] = &f; + for (; e <= 4; e++) + d = *n[0] == f; + if (d != 1) + __builtin_abort (); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.c-torture/execute/pr90348.c gcc-11.5.0/gcc/testsuite/gcc.c-torture/execute/pr90348.c *** gcc-11.4.0/gcc/testsuite/gcc.c-torture/execute/pr90348.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.c-torture/execute/pr90348.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,38 ---- + /* PR middle-end/90348 */ + + void __attribute__ ((noipa)) + set_one (unsigned char *ptr) + { + *ptr = 1; + } + + void __attribute__ ((noipa)) + check_zero (unsigned char const *in, unsigned int len) + { + for (unsigned int i = 0; i < len; ++i) + if (in[i] != 0) + __builtin_abort (); + } + + static void + set_one_on_stack (void) + { + unsigned char buf[1]; + set_one (buf); + } + + int + main () + { + for (int i = 0; i <= 4; ++i) + { + unsigned char in[4]; + for (int j = 0; j < i; ++j) + { + in[j] = 0; + set_one_on_stack (); + } + check_zero (in, i); + } + return 0; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/analyzer/analyzer.exp gcc-11.5.0/gcc/testsuite/gcc.dg/analyzer/analyzer.exp *** gcc-11.4.0/gcc/testsuite/gcc.dg/analyzer/analyzer.exp Mon May 29 08:46:30 2023 --- gcc-11.5.0/gcc/testsuite/gcc.dg/analyzer/analyzer.exp Fri Jul 19 05:52:45 2024 *************** if [info exists DEFAULT_CFLAGS] then { *** 32,37 **** --- 32,45 ---- # If a testcase doesn't have special options, use these. set DEFAULT_CFLAGS "-fanalyzer -Wanalyzer-too-complex -fanalyzer-call-summaries" + if { [istarget "*-*-darwin*" ] } { + # On macOS, system headers redefine by default some macros (memcpy, + # memmove, etc) to checked versions, which defeats the analyzer. We + # want to turn this off. + # See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104042 + set DEFAULT_CFLAGS "$DEFAULT_CFLAGS -D_FORTIFY_SOURCE=0" + } + # Initialize `dg'. dg-init diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/asan/pr110027.c gcc-11.5.0/gcc/testsuite/gcc.dg/asan/pr110027.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/asan/pr110027.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/asan/pr110027.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,50 ---- + /* PR middle-end/110027 */ + /* { dg-do run } */ + /* { dg-additional-options "-fstack-protector-strong" { target fstack_protector } } */ + /* { dg-set-target-env-var ASAN_OPTIONS "detect_stack_use_after_return=1" } */ + + struct __attribute__((aligned (128))) S { char s[128]; }; + struct __attribute__((aligned (64))) T { char s[192]; }; + struct __attribute__((aligned (32))) U { char s[256]; }; + struct __attribute__((aligned (64))) V { char s[320]; }; + struct __attribute__((aligned (128))) W { char s[512]; }; + + __attribute__((noipa)) void + foo (void *p, void *q, void *r, void *s) + { + if (((__UINTPTR_TYPE__) p & 31) != 0 + || ((__UINTPTR_TYPE__) q & 127) != 0 + || ((__UINTPTR_TYPE__) r & 63) != 0) + __builtin_abort (); + (void *) s; + } + + __attribute__((noipa)) int + bar (void) + { + struct U u; + struct S s; + struct T t; + char p[4]; + foo (&u, &s, &t, &p); + return 42; + } + + __attribute__((noipa)) int + baz (void) + { + struct W w; + struct U u; + struct V v; + char p[4]; + foo (&u, &w, &v, &p); + return 42; + } + + int + main () + { + bar (); + baz (); + return 0; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/asan/pr114956.c gcc-11.5.0/gcc/testsuite/gcc.dg/asan/pr114956.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/asan/pr114956.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/asan/pr114956.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,26 ---- + /* PR sanitizer/114956 */ + /* { dg-do compile } */ + /* { dg-options "-O2 -fsanitize=address,null" } */ + + int **a; + void qux (int *); + + __attribute__((always_inline)) static inline int * + foo (void) + { + int b[1]; + qux (b); + return a[1]; + } + + __attribute__((no_sanitize_address)) void + bar (void) + { + *a = foo (); + } + + void + baz (void) + { + bar (); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/asan/pr115172.c gcc-11.5.0/gcc/testsuite/gcc.dg/asan/pr115172.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/asan/pr115172.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/asan/pr115172.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,20 ---- + /* PR sanitizer/115172 */ + /* { dg-do compile { target i?86-*-* x86_64-*-* } } */ + /* { dg-options "-O2 -fsanitize=address,bool -ffat-lto-objects -fdump-tree-asan1" } */ + /* { dg-final { scan-tree-dump-not "\.ASAN_CHECK " "asan1" } } */ + + #ifdef __x86_64__ + #define SEG __seg_gs + #else + #define SEG __seg_fs + #endif + + extern struct S { _Bool b; } s; + void bar (void); + + void + foo (void) + { + if (*(volatile _Bool SEG *) (__UINTPTR_TYPE__) &s.b) + bar (); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/c23-attr-syntax-8.c gcc-11.5.0/gcc/testsuite/gcc.dg/c23-attr-syntax-8.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/c23-attr-syntax-8.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/c23-attr-syntax-8.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,12 ---- + /* PR c/114007 */ + /* { dg-do compile } */ + /* { dg-options "-std=c11" } */ + + #if __has_c_attribute (gnu::unused) + [[gnu::unused]] + #endif + int i; + #if __has_cpp_attribute (gnu::unused) + [[gnu::unused]] + #endif + int j; diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/darwin-comm-1.c gcc-11.5.0/gcc/testsuite/gcc.dg/darwin-comm-1.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/darwin-comm-1.c Mon May 29 08:46:30 2023 --- gcc-11.5.0/gcc/testsuite/gcc.dg/darwin-comm-1.c Fri Jul 19 05:52:45 2024 *************** *** 1,5 **** ! /* { dg-do compile { target *-*-darwin[912]* } } */ /* { dg-options "-fcommon" } */ /* In all cases, common has a max alignment of 2^15. */ ! int badcommon __attribute__ ((aligned (65536))); /* { dg-error "common variables must have an alignment" } */ --- 1,6 ---- ! /* { dg-do compile { target *-*-darwin* } } */ /* { dg-options "-fcommon" } */ /* In all cases, common has a max alignment of 2^15. */ ! int badcommon __attribute__ ((aligned (65536))); /* { dg-error "common variables must have an alignment" "" { target { *-*-darwin1[1-9]* *-*-darwin2* } } } */ ! /* { dg-error "requested alignment .65536. exceeds object file maximum 32768" "" { target { *-*-darwin[4-9]* *-*-darwin10* } } .-1 } */ \ No newline at end of file diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/darwin-ld-2.c gcc-11.5.0/gcc/testsuite/gcc.dg/darwin-ld-2.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/darwin-ld-2.c Mon May 29 08:46:30 2023 --- gcc-11.5.0/gcc/testsuite/gcc.dg/darwin-ld-2.c Fri Jul 19 05:52:45 2024 *************** *** 3,8 **** --- 3,9 ---- /* { dg-options "-bind_at_load" } */ /* { dg-do link { target *-*-darwin* } } */ + /* { dg-prune-output "-bind_at_load is deprecated" } */ int main() { diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/darwin-minversion-link.c gcc-11.5.0/gcc/testsuite/gcc.dg/darwin-minversion-link.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/darwin-minversion-link.c Mon May 29 08:46:30 2023 --- gcc-11.5.0/gcc/testsuite/gcc.dg/darwin-minversion-link.c Fri Jul 19 05:52:45 2024 *************** *** 17,22 **** --- 17,24 ---- /* { dg-additional-options "-mmacosx-version-min=010.015.06 -DCHECK=101506" { target *-*-darwin19* } } */ /* { dg-additional-options "-mmacosx-version-min=011.000.00 -DCHECK=110000" { target *-*-darwin20* } } */ /* { dg-additional-options "-mmacosx-version-min=012.000.00 -DCHECK=120000" { target *-*-darwin21* } } */ + /* { dg-additional-options "-mmacosx-version-min=013.000.00 -DCHECK=130000" { target *-*-darwin22* } } */ + /* { dg-additional-options "-mmacosx-version-min=014.000.00 -DCHECK=140000" { target *-*-darwin23* } } */ int main () diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/darwin-segaddr.c gcc-11.5.0/gcc/testsuite/gcc.dg/darwin-segaddr.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/darwin-segaddr.c Mon May 29 08:46:30 2023 --- gcc-11.5.0/gcc/testsuite/gcc.dg/darwin-segaddr.c Fri Jul 19 05:52:45 2024 *************** *** 2,7 **** --- 2,8 ---- /* { dg-do run { target *-*-darwin* } } */ /* { dg-options "-O0 -segaddr __TEST 0x200000 -fno-pie" { target { *-*-darwin* && { ! lp64 } } } } */ /* { dg-options "-O0 -segaddr __TEST 0x110000000 -fno-pie" { target { *-*-darwin* && lp64 } } } */ + /* { dg-prune-output "-no_pie is deprecated when targeting new OS versions" } */ extern void abort (); diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/debug/dwarf2/inline4.c gcc-11.5.0/gcc/testsuite/gcc.dg/debug/dwarf2/inline4.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/debug/dwarf2/inline4.c Mon May 29 08:46:30 2023 --- gcc-11.5.0/gcc/testsuite/gcc.dg/debug/dwarf2/inline4.c Fri Jul 19 05:52:45 2024 *************** *** 2,8 **** the DW_TAG_inlined_subroutine and the DW_TAG_variable for the local. */ /* { dg-options "-O -gdwarf -dA" } */ /* { dg-do compile } */ ! /* { dg-final { scan-assembler "DW_TAG_inlined_subroutine\[^\\(\]*\\(\[^\\)\]*\\)\[^\\(\]*\\(DIE \\(0x\[0-9a-f\]*\\) DW_TAG_formal_parameter\[^\\(\]*\\(DIE \\(0x\[0-9a-f\]*\\) DW_TAG_variable" } } */ /* { dg-final { scan-assembler-times "DW_TAG_inlined_subroutine" 2 } } */ static int foo (int i) --- 2,8 ---- the DW_TAG_inlined_subroutine and the DW_TAG_variable for the local. */ /* { dg-options "-O -gdwarf -dA" } */ /* { dg-do compile } */ ! /* { dg-final { scan-assembler "DW_TAG_inlined_subroutine\[^\\(\]*\(\|\\(\[^\\)\]*\\)\)\[^\\(\]*\\(DIE \\(0x\[0-9a-f\]*\\) DW_TAG_formal_parameter\[^\\(\]*\\(DIE \\(0x\[0-9a-f\]*\\) DW_TAG_variable" } } */ /* { dg-final { scan-assembler-times "DW_TAG_inlined_subroutine" 2 } } */ static int foo (int i) diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/debug/dwarf2/pr111080.c gcc-11.5.0/gcc/testsuite/gcc.dg/debug/dwarf2/pr111080.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/debug/dwarf2/pr111080.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/debug/dwarf2/pr111080.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,18 ---- + /* { dg-do compile } */ + /* { dg-options "-save-temps -gdwarf-3 -dA" } */ + + struct foo { + int field_number_1; + int field_number_2; + int field_number_3; + int field_number_4; + int field_number_5; + }; + + typedef int fun_t(struct foo *restrict); + + int main() { + return 0; + } + + /* { dg-final { scan-assembler-not "DW_TAG_structure_type" } } */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/debug/pr112718.c gcc-11.5.0/gcc/testsuite/gcc.dg/debug/pr112718.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/debug/pr112718.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/debug/pr112718.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,12 ---- + /* { dg-do compile } */ + /* { dg-require-effective-target lto } */ + /* { dg-options "-g -fdebug-types-section -flto -ffat-lto-objects" } */ + + struct { + int h; + unsigned char data[20 + 24 * 6]; + } _EC_X9_62_PRIME_192V2; + struct { + int h; + unsigned char data[20 + 24 * 6]; + } _EC_X9_62_PRIME_192V3; diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/float_opposite_arm-1.c gcc-11.5.0/gcc/testsuite/gcc.dg/float_opposite_arm-1.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/float_opposite_arm-1.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/float_opposite_arm-1.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,17 ---- + /* { dg-do compile } */ + /* { dg-options "-O1 -fdump-tree-original -fdump-tree-optimized" } */ + /* { dg-add-options ieee } */ + /* PR middle-end/95351 */ + + int Foo(double possiblyNAN, double b, double c) + { + return (possiblyNAN <= 2.0) || ((possiblyNAN > 2.0) && (b > c)); + } + + /* Make sure we don't remove either >/<= */ + + /* { dg-final { scan-tree-dump "possiblyNAN > 2.0e.0" "original" } } */ + /* { dg-final { scan-tree-dump "possiblyNAN_\[0-9\]+.D. > 2.0e.0" "optimized" } } */ + + /* { dg-final { scan-tree-dump "possiblyNAN <= 2.0e.0" "original" } } */ + /* { dg-final { scan-tree-dump "possiblyNAN_\[0-9\]+.D. <= 2.0e.0" "optimized" } } */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/framework-1.c gcc-11.5.0/gcc/testsuite/gcc.dg/framework-1.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/framework-1.c Mon May 29 08:46:30 2023 --- gcc-11.5.0/gcc/testsuite/gcc.dg/framework-1.c Fri Jul 19 05:52:45 2024 *************** *** 1,4 **** /* { dg-do compile { target *-*-darwin* } } */ /* { dg-options "-F." } */ ! #include --- 1,10 ---- /* { dg-do compile { target *-*-darwin* } } */ /* { dg-options "-F." } */ ! /* The intent of the test is to show that we find a framework that ! is installed in /System/Library/Frameworks when the user has added ! a '-F' option. The trick is to choose some header that is present ! for all the Darwin versions we support and that does not contain any ! content we cannot parse. */ ! ! #include diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/ipa/ipa-icf-38.c gcc-11.5.0/gcc/testsuite/gcc.dg/ipa/ipa-icf-38.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/ipa/ipa-icf-38.c Mon May 29 08:46:30 2023 --- gcc-11.5.0/gcc/testsuite/gcc.dg/ipa/ipa-icf-38.c Fri Jul 19 05:52:45 2024 *************** *** 1,4 **** --- 1,5 ---- /* { dg-do link } */ + /* { dg-require-alias "" } */ /* { dg-options "-O2 -fdump-ipa-icf-optimized -flto -fdump-tree-optimized" } */ /* { dg-require-effective-target lto } */ /* { dg-additional-sources "ipa-icf-38a.c" }*/ diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/pie-2.c gcc-11.5.0/gcc/testsuite/gcc.dg/pie-2.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/pie-2.c Mon May 29 08:46:30 2023 --- gcc-11.5.0/gcc/testsuite/gcc.dg/pie-2.c Fri Jul 19 05:52:45 2024 *************** *** 2,7 **** --- 2,8 ---- /* { dg-options "-fPIE" } */ /* { dg-require-effective-target pie } */ /* { dg-skip-if "__PIC__ is always 1 for MIPS" { mips*-*-* } } */ + /* { dg-skip-if "__PIE__ is often not defined on darwin" { *-*-darwin* } } */ #if __PIC__ != 2 # error __PIC__ is not 2! diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/pie-7.c gcc-11.5.0/gcc/testsuite/gcc.dg/pie-7.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/pie-7.c Mon May 29 08:46:30 2023 --- gcc-11.5.0/gcc/testsuite/gcc.dg/pie-7.c Fri Jul 19 05:52:45 2024 *************** *** 1,5 **** --- 1,6 ---- /* { dg-do run { target pie } } */ /* { dg-options "-fno-pie -no-pie" } */ + /* { dg-prune-output "-no_pie is deprecated when targeting new OS versions" } */ int main(void) { diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/pr105522.c gcc-11.5.0/gcc/testsuite/gcc.dg/pr105522.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/pr105522.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/pr105522.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,17 ---- + /* { dg-do compile { target *-*-darwin* } } */ + typedef const struct __CFString * CFStringRef; + + /* This used to ICE on powerpc darwin, in decode_addr_const. */ + const void + * create_usage_match(const unsigned int page, const unsigned int usage, int + *okay) + { + + const void *keys[2] = + { (void *) ((CFStringRef) __builtin___CFStringMakeConstantString ("" + "DeviceUsagePage" "")) + , (void *) ((CFStringRef) __builtin___CFStringMakeConstantString ("" + "DeviceUsage" "")) + }; + return keys[1]; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/pr107385.c gcc-11.5.0/gcc/testsuite/gcc.dg/pr107385.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/pr107385.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/pr107385.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,20 ---- + /* PR middle-end/107385 */ + /* { dg-do run { target lra } } */ + /* { dg-options "-O2" } */ + + __attribute__((noipa)) int + foo (void) + { + int x; + asm goto ("": "=r" (x) : "0" (15) :: lab); + x = 6; + lab: + return x; + } + + int + main () + { + if (foo () != 6) + __builtin_abort (); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/pr110079.c gcc-11.5.0/gcc/testsuite/gcc.dg/pr110079.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/pr110079.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/pr110079.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,43 ---- + /* PR rtl-optimization/110079 */ + /* { dg-do compile { target lra } } */ + /* { dg-options "-O2" } */ + /* { dg-additional-options "-freorder-blocks-and-partition" { target freorder } } */ + + int a; + __attribute__((cold)) int bar (char *); + __attribute__((hot)) int baz (char *); + + void + foo (void) + { + l1: + while (a) + ; + bar (""); + asm goto ("" : : : : l2); + asm (""); + l2: + goto l1; + } + + void + qux (void) + { + asm goto ("" : : : : l1); + bar (""); + goto l1; + l1: + baz (""); + } + + void + corge (void) + { + asm goto ("" : : : : l1); + baz (""); + l2: + return; + l1: + bar (""); + goto l2; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/pr110731.c gcc-11.5.0/gcc/testsuite/gcc.dg/pr110731.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/pr110731.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/pr110731.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,17 ---- + /* PR tree-optimization/110731 */ + /* { dg-do run { target int128 } } */ + /* { dg-options "-O2" } */ + + __int128 + foo (void) + { + struct S { __int128 f : 119; } s = { ((__int128) -18014398509481984) << 64 }; + return s.f / 2; + } + + int + main () + { + if (foo () != (((__int128) -9007199254740992) << 64)) + __builtin_abort (); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/pr111015.c gcc-11.5.0/gcc/testsuite/gcc.dg/pr111015.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/pr111015.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/pr111015.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,28 ---- + /* PR tree-optimization/111015 */ + /* { dg-do run { target int128 } } */ + /* { dg-options "-O2" } */ + + struct S { unsigned a : 4, b : 4; unsigned __int128 c : 70; } d; + + __attribute__((noipa)) void + foo (unsigned __int128 x, unsigned char y, unsigned char z) + { + d.a = y; + d.b = z; + d.c = x; + } + + int + main () + { + foo (-1, 12, 5); + if (d.a != 12 + || d.b != 5 + || d.c != (-1ULL | (((unsigned __int128) 0x3f) << 64))) + __builtin_abort (); + foo (0x123456789abcdef0ULL | (((unsigned __int128) 26) << 64), 7, 11); + if (d.a != 7 + || d.b != 11 + || d.c != (0x123456789abcdef0ULL | (((unsigned __int128) 26) << 64))) + __builtin_abort (); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/pr111039.c gcc-11.5.0/gcc/testsuite/gcc.dg/pr111039.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/pr111039.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/pr111039.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,15 ---- + /* { dg-do compile } */ + /* { dg-options "-O" } */ + + int _setjmp (); + void abcd (); + void abcde (); + void compiler_corruption_function(int flags) + { + int nowait = flags & 1048576, isexpand = flags & 8388608; + abcd(); + _setjmp(flags); + if (nowait && isexpand) + flags &= 0; + abcde(); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/pr111070.c gcc-11.5.0/gcc/testsuite/gcc.dg/pr111070.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/pr111070.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/pr111070.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,20 ---- + /* { dg-do compile } */ + /* { dg-options "-O" } */ + + /* common */ + char c; + /* arrays must be 8 byte aligned, regardless of size */ + char c_ary[1]; + + /* data */ + char d = 1; + char d_ary[1] = {1}; + + int main () + { + if (((unsigned long)&c_ary[0] & 7) != 0) + return 1; + if (((unsigned long)&d_ary[0] & 7) != 0) + return 1; + return 0; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/pr111407.c gcc-11.5.0/gcc/testsuite/gcc.dg/pr111407.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/pr111407.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/pr111407.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,21 ---- + /* PR tree-optimization/111407*/ + /* { dg-do compile } */ + /* { dg-options "-O2" } */ + enum { SEND_TOFILE } __sigsetjmp(); + void fclose(); + void foldergets(); + void sendpart_stats(int *p1, int a1, int b1) { + int *a = p1; + fclose(); + p1 = 0; + long t = b1; + if (__sigsetjmp()) { + { + long t1 = a1; + a1+=1; + fclose(a1*(long)t1); + } + } + if (p1) + fclose(); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/pr112733.c gcc-11.5.0/gcc/testsuite/gcc.dg/pr112733.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/pr112733.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/pr112733.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,16 ---- + /* PR middle-end/112733 */ + /* { dg-do compile } */ + /* { dg-options "-O2" } */ + + signed char a, c; + short b; + + void + foo (void) + { + signed char *e = &a; + c = foo != 0; + *e &= c; + for (; b; --b) + *e &= -128; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/pr112837.c gcc-11.5.0/gcc/testsuite/gcc.dg/pr112837.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/pr112837.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/pr112837.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,11 ---- + /* PR target/112837 */ + /* { dg-do compile } */ + /* { dg-options "-fcompare-elim -fprofile" } */ + /* { dg-additional-options "-fpie" { target pie } } */ + /* { dg-require-profiling "-fprofile" } */ + + void + foo (int i) + { + foo (i); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/pr112845.c gcc-11.5.0/gcc/testsuite/gcc.dg/pr112845.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/pr112845.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/pr112845.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,9 ---- + /* PR target/112845 */ + /* { dg-do compile { target cet } } */ + /* { dg-options "-Os -fcf-protection" } */ + + unsigned long long + foo (void) + { + return 0xfa1e0ff3ULL << 3; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/pr113262.c gcc-11.5.0/gcc/testsuite/gcc.dg/pr113262.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/pr113262.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/pr113262.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,6 ---- + /* PR c/113262 */ + /* { dg-do compile } */ + /* { dg-options "" } */ + + int [[gnu::copy ("")]] a; /* { dg-error "'copy' attribute argument cannot be a string" } */ + diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/pr113907-1.c gcc-11.5.0/gcc/testsuite/gcc.dg/pr113907-1.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/pr113907-1.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/pr113907-1.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,49 ---- + /* PR middle-end/113907 */ + /* { dg-do run } */ + /* { dg-options "-O2" } */ + /* { dg-additional-options "-minline-all-stringops" { target i?86-*-* x86_64-*-* } } */ + + static inline int + foo (int len, void *indata, void *outdata) + { + if (len < 0 || (len & 7) != 0) + return 0; + if (len != 0 && indata != outdata) + __builtin_memcpy (outdata, indata, len); + return len; + } + + static inline int + bar (int len, void *indata, void *outdata) + { + if (len < 0 || (len & 1) != 0) + return 0; + if (len != 0 && indata != outdata) + __builtin_memcpy (outdata, indata, len); + return len; + } + + int (*volatile p1) (int, void *, void *) = foo; + int (*volatile p2) (int, void *, void *) = bar; + + __attribute__((noipa)) int + baz (int len, void *indata, void *outdata) + { + if ((len & 6) != 0) + bar (len, indata, outdata); + else + foo (len, indata, outdata); + } + + struct S { char buf[64]; } s __attribute__((aligned (8))); + + int + main () + { + for (int i = 0; i < 64; ++i) + s.buf[i] = ' ' + i; + p2 (2, s.buf, s.buf + 33); + for (int i = 0; i < 64; ++i) + if (s.buf[i] != ' ' + ((i >= 33 && i < 35) ? i - 33 : i)) + __builtin_abort (); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/pr114115.c gcc-11.5.0/gcc/testsuite/gcc.dg/pr114115.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/pr114115.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/pr114115.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,24 ---- + /* { dg-do compile } */ + /* { dg-options "-O0 -fprofile-generate -fdump-tree-optimized" } */ + /* { dg-require-profiling "-fprofile-generate" } */ + /* { dg-require-ifunc "" } */ + + void *foo_ifunc2() __attribute__((ifunc("foo_resolver"))); + + void bar(void) + { + } + + static int f3() + { + bar (); + return 5; + } + + void (*foo_resolver(void))(void) + { + f3(); + return bar; + } + + /* { dg-final { scan-tree-dump-not "__gcov_indirect_call_profiler_v" "optimized" } } */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/pr114310.c gcc-11.5.0/gcc/testsuite/gcc.dg/pr114310.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/pr114310.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/pr114310.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,20 ---- + /* PR target/114310 */ + /* { dg-do run { target int128 } } */ + + volatile __attribute__((aligned (sizeof (__int128_t)))) __int128_t v = 10; + + int + main () + { + #if __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 + if (__sync_val_compare_and_swap (&v, (__int128_t) 10, (__int128_t) 0) != 10) + __builtin_abort (); + if (__sync_val_compare_and_swap (&v, (__int128_t) 10, (__int128_t) 15) != 0) + __builtin_abort (); + if (__sync_val_compare_and_swap (&v, (__int128_t) 0, (__int128_t) 42) != 0) + __builtin_abort (); + if (__sync_val_compare_and_swap (&v, (__int128_t) 31, (__int128_t) 35) != 42) + __builtin_abort (); + #endif + return 0; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/pr114493-1.c gcc-11.5.0/gcc/testsuite/gcc.dg/pr114493-1.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/pr114493-1.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/pr114493-1.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,19 ---- + /* PR c/114493 */ + /* { dg-do compile { target lto } } */ + /* { dg-options "-O2 -flto" } */ + + void foo (void); + struct S; + struct S bar (struct S **); + struct S qux (const struct S **); + + struct __attribute__((__may_alias__)) S { + int s; + }; + + struct S + baz (void) + { + foo (); + return (struct S) {}; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/pr114493-2.c gcc-11.5.0/gcc/testsuite/gcc.dg/pr114493-2.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/pr114493-2.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/pr114493-2.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,26 ---- + /* PR c/114493 */ + /* { dg-do compile { target lto } } */ + /* { dg-options "-O2 -flto -std=c2x" } */ + + void foo (void); + struct S; + struct S bar (struct S **); + struct S qux (const struct S **); + + void + corge (void) + { + struct S { int s; } s; + s.s = 0; + } + + struct __attribute__((__may_alias__)) S { + int s; + }; + + struct S + baz (void) + { + foo (); + return (struct S) {}; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/pr114753.c gcc-11.5.0/gcc/testsuite/gcc.dg/pr114753.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/pr114753.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/pr114753.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,14 ---- + /* PR middle-end/114753 */ + /* { dg-do run } */ + /* { dg-options "-O2 -ftrapv" } */ + + int + main () + { + volatile long long i = __LONG_LONG_MAX__; + volatile long long j = 2; + long long k; + if (!__builtin_mul_overflow (i, j, &k) || k != -2LL) + __builtin_abort (); + return 0; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/pr114768.c gcc-11.5.0/gcc/testsuite/gcc.dg/pr114768.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/pr114768.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/pr114768.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,10 ---- + /* PR rtl-optimization/114768 */ + /* { dg-do compile } */ + /* { dg-options "-O2 -fdump-rtl-final" } */ + /* { dg-final { scan-rtl-dump "\\\(mem/v:" "final" } } */ + + void + foo (int *p) + { + *p = *(volatile int *) p; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/pr114876.c gcc-11.5.0/gcc/testsuite/gcc.dg/pr114876.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/pr114876.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/pr114876.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,34 ---- + /* PR tree-optimization/114876 */ + /* { dg-do compile } */ + /* { dg-options "-O2 -fdump-tree-optimized" } */ + /* { dg-final { scan-tree-dump-not "return \[01\];" "optimized" } } */ + /* { dg-final { scan-tree-dump "return 3;" "optimized" } } */ + /* { dg-final { scan-tree-dump "return 4;" "optimized" } } */ + + int + foo (void) + { + char buf[64]; + return __builtin_sprintf (buf, "%lc%lc%lc", (__WINT_TYPE__) 0, (__WINT_TYPE__) 0, (__WINT_TYPE__) 0); + } + + int + bar (void) + { + char buf[64]; + return __builtin_sprintf (buf, "%c%c%c", 0, 0, 0); + } + + int + baz (void) + { + char buf[64]; + return __builtin_sprintf (buf, "%lc%lc%lca", (__WINT_TYPE__) 0, (__WINT_TYPE__) 0, (__WINT_TYPE__) 0); + } + + int + qux (void) + { + char buf[64]; + return __builtin_sprintf (buf, "%c%c%ca", 0, 0, 0); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/pr114902.c gcc-11.5.0/gcc/testsuite/gcc.dg/pr114902.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/pr114902.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/pr114902.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,23 ---- + /* PR rtl-optimization/114902 */ + /* { dg-do run } */ + /* { dg-options "-O1 -fno-tree-fre -fno-tree-forwprop -fno-tree-ccp -fno-tree-dominator-opts" } */ + + __attribute__((noipa)) + int foo (int x) + { + int a = ~x; + int t = a & 1; + int e = -t; + int b = e >= -1; + if (b) + return 0; + __builtin_trap (); + } + + int + main () + { + foo (-1); + foo (0); + foo (1); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/pr115092.c gcc-11.5.0/gcc/testsuite/gcc.dg/pr115092.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/pr115092.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/pr115092.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,16 ---- + /* PR rtl-optimization/115092 */ + /* { dg-do run } */ + /* { dg-options "-O1 -fgcse -ftree-pre -fno-tree-dominator-opts -fno-tree-fre -fno-guess-branch-probability" } */ + + int a, b, c = 1, d, e; + + int + main () + { + int f, g = a; + b = -2; + f = -(1 >> ((c && b) & ~a)); + if (f <= b) + d = g / e; + return 0; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/pr83415.c gcc-11.5.0/gcc/testsuite/gcc.dg/pr83415.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/pr83415.c Mon May 29 08:46:30 2023 --- gcc-11.5.0/gcc/testsuite/gcc.dg/pr83415.c Fri Jul 19 05:52:45 2024 *************** int *** 7,12 **** main (int argc, short *argv[]) { int i = argc; ! y[i] = 7 - i; /* { dg-warning "read-only" } */ return 0; } --- 7,12 ---- main (int argc, short *argv[]) { int i = argc; ! y[i] = 7 - i; /* { dg-error "read-only" } */ return 0; } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/ssp-2.c gcc-11.5.0/gcc/testsuite/gcc.dg/ssp-2.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/ssp-2.c Mon May 29 08:46:30 2023 --- gcc-11.5.0/gcc/testsuite/gcc.dg/ssp-2.c Fri Jul 19 05:52:45 2024 *************** *** 1,6 **** --- 1,7 ---- /* { dg-do run { target native } } */ /* { dg-options "-fstack-protector" } */ /* { dg-options "-fstack-protector -Wl,-multiply_defined,suppress" { target *-*-darwin* } } */ + /* { dg-prune-output "-multiply_defined is obsolete" } */ /* { dg-require-effective-target fstack_protector } */ #include diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr100786.c gcc-11.5.0/gcc/testsuite/gcc.dg/torture/pr100786.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr100786.c Mon May 29 08:46:30 2023 --- gcc-11.5.0/gcc/testsuite/gcc.dg/torture/pr100786.c Fri Jul 19 05:52:45 2024 *************** *** 1,4 **** --- 1,5 ---- /* { dg-do compile } */ + /* { dg-require-alias "" } */ const double a = 0; extern int b __attribute__((alias("a"))); diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr110176.c gcc-11.5.0/gcc/testsuite/gcc.dg/torture/pr110176.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr110176.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/torture/pr110176.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,46 ---- + /* { dg-do run } */ + + int f(_Bool t) + { + int tt = t; + unsigned x = -1; + int xx = x; + return xx <= tt; + } + + int a, b; + void c() {} + __attribute__((noipa)) + void h() {__builtin_abort();} + int d() { + unsigned f[1]; + int i; + if (a) + goto h; + f[0] = -1; + while (1) { + c(); + for (; a < 1; a++) { + if (0) { + j: + continue; + } + i = f[0]; + if (a) + break; + b = i >= (b == 0); + } + if (!b) { + if (0) { + h: + goto j; + } + return 0; + } + h(); + } + } + int main() { + d(); + return 0; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr110298.c gcc-11.5.0/gcc/testsuite/gcc.dg/torture/pr110298.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr110298.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/torture/pr110298.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,20 ---- + /* { dg-do compile } */ + + int a, b, c, d, e; + int f() { + c = 0; + for (; c >= 0; c--) { + d = 0; + for (; d <= 0; d++) { + e = 0; + for (; d + c + e >= 0; e--) + ; + a = 1; + b = 0; + for (; a; ++b) + a *= 2; + for (; b + d >= 0;) + return 0; + } + } + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr110422.c gcc-11.5.0/gcc/testsuite/gcc.dg/torture/pr110422.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr110422.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/torture/pr110422.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,10 ---- + /* { dg-do compile } */ + + struct T { int x; }; + int foo(void) { + struct T v; + asm goto("" : "+r"(v.x) : : : lab); + return 0; + lab: + return -5; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr111445.c gcc-11.5.0/gcc/testsuite/gcc.dg/torture/pr111445.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr111445.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/torture/pr111445.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,29 ---- + /* { dg-do run } */ + + extern void abort (void); + short a, b; + unsigned char c = 255; + unsigned cnt; + void __attribute__((noipa)) + check (int x) + { + if (x != 0) + abort (); + cnt++; + } + int main() + { + int d; + unsigned char e; + d = 0; + for (; a >= 0; a--) { + int *f = &d; + *f = c; + } + e = 0; + for (; (unsigned char)(d - 255) + e <= 1; e++) + check (b); + if (cnt != 2) + abort (); + return 0; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr111614.c gcc-11.5.0/gcc/testsuite/gcc.dg/torture/pr111614.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr111614.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/torture/pr111614.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,23 ---- + /* { dg-do compile } */ + + int a, b, c, d, e; + static void f() { + int *g = &b; + b = 1; + for (; b >= 0; b--) { + c = 0; + for (; c <= 1; c++) + e = 0; + for (; e <= 1; e++) { + int h, i = h = 13; + for (; h; h--) + i = i << a; + d &= i + c + 9 + *g; + } + } + } + int main() { + f(); + for (;;) + ; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr111815.c gcc-11.5.0/gcc/testsuite/gcc.dg/torture/pr111815.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr111815.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/torture/pr111815.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,26 ---- + /* { dg-do run } */ + + char x[] = { + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + }; + + __attribute__ ((noinline)) char * + p (char *a, int o, int i) + { + return a + ++o + (1 << ++i); + } + + int + main (void) + { + if (*p (x, 0, 0) != 3) + return 1; + if (*p (x, 1, 2) != 10) + return 1; + if (*p (x, 2, 1) != 7) + return 1; + if (*p (x, 3, 3) != 20) + return 1; + return 0; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr111818.c gcc-11.5.0/gcc/testsuite/gcc.dg/torture/pr111818.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr111818.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/torture/pr111818.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,11 ---- + /* { dg-do compile } */ + + static void foo(const volatile unsigned int x, void *p) + { + __builtin_memcpy(p, (void *)&x, sizeof x); + } + + void bar(void *number) + { + foo(0, number); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr111917.c gcc-11.5.0/gcc/testsuite/gcc.dg/torture/pr111917.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/torture/pr111917.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/torture/pr111917.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,23 ---- + /* { dg-do compile } */ + /* { dg-additional-options "-funswitch-loops" } */ + + long t; + long a() { + long b = t, c = t; + for (; b < 31; b++) + c <<= 1; + return c; + } + long t1; + static + int d() { + if (!t1) + return 0; + e: + f: + for (; a();) + ; + goto f; + return 0; + } + int main() { d(); } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-1.c gcc-11.5.0/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-1.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-1.c Mon May 29 08:46:30 2023 --- gcc-11.5.0/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-1.c Fri Jul 19 05:52:45 2024 *************** void test_sprintf_chk_c_const (void) *** 200,210 **** T (3, "%c%c", '1', '2'); /* Wide characters. */ ! T (0, "%lc", (wint_t)0); /* { dg-warning "nul past the end" } */ ! T (1, "%lc", (wint_t)0); ! T (1, "%lc%lc", (wint_t)0, (wint_t)0); T (2, "%lc", (wint_t)0); ! T (2, "%lc%lc", (wint_t)0, (wint_t)0); /* The following could result in as few as no bytes and in as many as MB_CUR_MAX, but since the MB_CUR_MAX value is a runtime property --- 200,210 ---- T (3, "%c%c", '1', '2'); /* Wide characters. */ ! T (0, "%lc", (wint_t)0); /* { dg-warning ".%lc. directive writing up to 1 bytes into a region of size 0" } */ ! T (1, "%lc", (wint_t)0); /* { dg-warning "nul past the end" } */ ! T (1, "%lc%lc", (wint_t)0, (wint_t)0); /* { dg-warning ".%lc. directive writing up to 1 bytes into a region of size between 0 and 1" } */ T (2, "%lc", (wint_t)0); ! T (2, "%lc%lc", (wint_t)0, (wint_t)0); /* { dg-warning "nul past the end" } */ /* The following could result in as few as no bytes and in as many as MB_CUR_MAX, but since the MB_CUR_MAX value is a runtime property *************** void test_snprintf_c_const (char *d) *** 1550,1556 **** /* Wide characters. */ T (0, "%lc", (wint_t)0); ! T (1, "%lc", (wint_t)0); T (2, "%lc", (wint_t)0); /* The following could result in as few as a single byte and in as many --- 1550,1556 ---- /* Wide characters. */ T (0, "%lc", (wint_t)0); ! T (1, "%lc", (wint_t)0); /* { dg-warning "output may be truncated before the last format character" } */ T (2, "%lc", (wint_t)0); /* The following could result in as few as a single byte and in as many *************** void test_snprintf_chk_c_const (void) *** 1603,1609 **** /* Wide characters. */ T (0, "%lc", (wint_t)0); ! T (1, "%lc", (wint_t)0); T (2, "%lc", (wint_t)0); /* The following could result in as few as a single byte and in as many --- 1603,1609 ---- /* Wide characters. */ T (0, "%lc", (wint_t)0); ! T (1, "%lc", (wint_t)0); /* { dg-warning "output may be truncated before the last format character" } */ T (2, "%lc", (wint_t)0); /* The following could result in as few as a single byte and in as many diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/tsan/pr111736.c gcc-11.5.0/gcc/testsuite/gcc.dg/tsan/pr111736.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/tsan/pr111736.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/tsan/pr111736.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,17 ---- + /* PR sanitizer/111736 */ + /* { dg-do compile { target i?86-*-* x86_64-*-* } } */ + /* { dg-options "-fsanitize=thread -fdump-tree-optimized -ffat-lto-objects" } */ + /* { dg-final { scan-tree-dump-not "__tsan_read" "optimized" } } */ + /* { dg-final { scan-tree-dump-not "__tsan_write" "optimized" } } */ + + #ifdef __x86_64__ + #define SEG __seg_fs + #else + #define SEG __seg_gs + #endif + + void + foo (int SEG *p, int SEG *q) + { + *q = *p; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/ubsan/pr111736.c gcc-11.5.0/gcc/testsuite/gcc.dg/ubsan/pr111736.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/ubsan/pr111736.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/ubsan/pr111736.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,23 ---- + /* PR sanitizer/111736 */ + /* { dg-do compile { target i?86-*-* x86_64-*-* } } */ + /* { dg-options "-fsanitize=null,alignment -fdump-tree-optimized -ffat-lto-objects" } */ + /* { dg-final { scan-tree-dump-times "__ubsan_handle_type_mismatch" 1 "optimized" } } */ + /* { dg-final { scan-tree-dump-not "p_\[0-9]*.D. \[=!]= 0" "optimized" } } */ + + #ifdef __x86_64__ + #define SEG __seg_fs + #else + #define SEG __seg_gs + #endif + + int + foo (int SEG *p, int *q) + { + return *p; + } + + __attribute__((no_sanitize("alignment"))) int + bar (int SEG *p, int *q) + { + return *p; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr111764.c gcc-11.5.0/gcc/testsuite/gcc.dg/vect/pr111764.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr111764.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/vect/pr111764.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,16 ---- + #include "tree-vect.h" + + short b = 2; + + int main() + { + check_vect (); + + for (int a = 1; a <= 9; a++) + b = b * b; + if (b != 0) + __builtin_abort (); + + return 0; + } + diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr112505.c gcc-11.5.0/gcc/testsuite/gcc.dg/vect/pr112505.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr112505.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/vect/pr112505.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,14 ---- + /* { dg-do compile } */ + /* { dg-additional-options "-O3" } */ + + short int w9; + struct T { + short a : 14; + int b; + }; + struct T v; + void zc() + { + for(int i = 0; i < 4; i ++) + w9 *= v.b ? v.a-- < 0 : 0; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr113281-1.c gcc-11.5.0/gcc/testsuite/gcc.dg/vect/pr113281-1.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr113281-1.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/vect/pr113281-1.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,17 ---- + #include "tree-vect.h" + + unsigned char a; + + int main() { + check_vect (); + + short b = a = 0; + for (; a != 19; a++) + if (a) + b = 32872 >> a; + + if (b == 0) + return 0; + else + return 1; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr113281-2.c gcc-11.5.0/gcc/testsuite/gcc.dg/vect/pr113281-2.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr113281-2.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/vect/pr113281-2.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,50 ---- + /* { dg-do compile } */ + + #define N 128 + + short x[N]; + short y[N]; + + void + f1 (void) + { + for (int i = 0; i < N; ++i) + x[i] >>= y[i]; + } + + void + f2 (void) + { + for (int i = 0; i < N; ++i) + x[i] >>= (y[i] < 32 ? y[i] : 32); + } + + void + f3 (void) + { + for (int i = 0; i < N; ++i) + x[i] >>= (y[i] < 31 ? y[i] : 31); + } + + void + f4 (void) + { + for (int i = 0; i < N; ++i) + x[i] >>= (y[i] & 31); + } + + void + f5 (void) + { + for (int i = 0; i < N; ++i) + x[i] >>= 0x8000 >> y[i]; + } + + void + f6 (void) + { + for (int i = 0; i < N; ++i) + x[i] >>= 0x8000 >> (y[i] & 31); + } + + /* { dg-final { scan-tree-dump-not {can narrow[^\n]+>>} "vect" } } */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr113281-3.c gcc-11.5.0/gcc/testsuite/gcc.dg/vect/pr113281-3.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr113281-3.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/vect/pr113281-3.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,39 ---- + /* { dg-do compile } */ + + #define N 128 + + short x[N]; + short y[N]; + + void + f1 (void) + { + for (int i = 0; i < N; ++i) + x[i] >>= (y[i] < 30 ? y[i] : 30); + } + + void + f2 (void) + { + for (int i = 0; i < N; ++i) + x[i] >>= ((y[i] & 15) + 2); + } + + void + f3 (void) + { + for (int i = 0; i < N; ++i) + x[i] >>= (y[i] < 16 ? y[i] : 16); + } + + void + f4 (void) + { + for (int i = 0; i < N; ++i) + x[i] = 32768 >> ((y[i] & 15) + 3); + } + + /* { dg-final { scan-tree-dump {can narrow to signed:31 without loss [^\n]+>>} "vect" } } */ + /* { dg-final { scan-tree-dump {can narrow to signed:18 without loss [^\n]+>>} "vect" } } */ + /* { dg-final { scan-tree-dump {can narrow to signed:17 without loss [^\n]+>>} "vect" } } */ + /* { dg-final { scan-tree-dump {can narrow to unsigned:19 without loss [^\n]+>>} "vect" } } */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr113281-4.c gcc-11.5.0/gcc/testsuite/gcc.dg/vect/pr113281-4.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr113281-4.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/vect/pr113281-4.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,55 ---- + /* { dg-do compile } */ + + #define N 128 + + short x[N]; + short y[N]; + + void + f1 (void) + { + for (int i = 0; i < N; ++i) + x[i] >>= (y[i] & 15); + } + + void + f2 (void) + { + for (int i = 0; i < N; ++i) + x[i] >>= ((y[i] & 7) + 8); + } + + void + f3 (void) + { + for (int i = 0; i < N; ++i) + x[i] >>= ((y[i] & 7) ^ 11); + } + + void + f4 (void) + { + for (int i = 0; i < N; ++i) + x[i] >>= (y[i] < 15 ? y[i] : 15); + } + + void + f5 (void) + { + for (int i = 0; i < N; ++i) + x[i] >>= (y[i] < 15 ? y[i] : 1); + } + + void + f6 (void) + { + for (int i = 0; i < N; ++i) + x[i] = 32768 >> (y[i] & 15); + } + + /* { dg-final { scan-tree-dump {:11:[^\n]+can narrow to signed:16 without loss [^\n]+>>} "vect" } } */ + /* { dg-final { scan-tree-dump {:18:[^\n]+can narrow to signed:16 without loss [^\n]+>>} "vect" } } */ + /* { dg-final { scan-tree-dump {:25:[^\n]+can narrow to signed:16 without loss [^\n]+>>} "vect" } } */ + /* { dg-final { scan-tree-dump {:32:[^\n]+can narrow to signed:16 without loss [^\n]+>>} "vect" } } */ + /* { dg-final { scan-tree-dump {:39:[^\n]+can narrow to signed:16 without loss [^\n]+>>} "vect" } } */ + /* { dg-final { scan-tree-dump {can narrow to unsigned:16 without loss [^\n]+>>} "vect" } } */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr113281-5.c gcc-11.5.0/gcc/testsuite/gcc.dg/vect/pr113281-5.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr113281-5.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/vect/pr113281-5.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,66 ---- + /* { dg-do compile } */ + + #define N 128 + + short x[N]; + short y[N]; + + void + f1 (void) + { + for (int i = 0; i < N; ++i) + { + int a = y[i]; + int b = ~a; + x[i] = b; + } + } + + void + f2 (void) + { + for (int i = 0; i < N; ++i) + { + int a = y[i]; + int b = -a; + x[i] = b; + } + } + + void + f3 (void) + { + for (int i = 0; i < N; ++i) + { + int a = x[i]; + int b = a / y[i]; + x[i] = b; + } + } + + void + f4 (void) + { + for (int i = 0; i < N; ++i) + { + int a = x[i]; + int b = a < y[i] ? a : y[i]; + x[i] = b; + } + } + + void + f5 (void) + { + for (int i = 0; i < N; ++i) + { + int a = x[i]; + int b = a > y[i] ? a : y[i]; + x[i] = b; + } + } + + /* { dg-final { scan-tree-dump {can narrow to signed:17 without loss [^\n]+= -} "vect" } } */ + /* { dg-final { scan-tree-dump {can narrow to signed:16 without loss [^\n]+= ~} "vect" } } */ + /* { dg-final { scan-tree-dump {can narrow to signed:16 without loss [^\n]+ MIN_EXPR} "vect" } } */ + /* { dg-final { scan-tree-dump {can narrow to signed:16 without loss [^\n]+ MAX_EXPR} "vect" } } */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr114027.c gcc-11.5.0/gcc/testsuite/gcc.dg/vect/pr114027.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr114027.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/vect/pr114027.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,26 ---- + #include "tree-vect.h" + + int __attribute__((noipa)) + foo (int *f, int n) + { + int res = 0; + for (int i = 0; i < n; ++i) + { + if (f[2*i]) + res = 2; + if (f[2*i+1]) + res = -2; + } + return res; + } + + int f[] = { 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0 }; + + int + main () + { + if (foo (f, 8) != 2) + __builtin_abort (); + return 0; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr115192.c gcc-11.5.0/gcc/testsuite/gcc.dg/vect/pr115192.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr115192.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.dg/vect/pr115192.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,28 ---- + #include "tree-vect.h" + + int data[4 * 16 * 16] __attribute__((aligned(16))); + + __attribute__((noipa)) void + foo (__SIZE_TYPE__ n) + { + for (__SIZE_TYPE__ i = 1; i < n; ++i) + { + data[i * n * 4] = data[(i - 1) * n * 4] + 1; + data[i * n * 4 + 1] = data[(i - 1) * n * 4 + 1] + 2; + } + } + + int + main () + { + check_vect (); + + data[0] = 10; + data[1] = 20; + + foo (3); + + if (data[24] != 12 || data[25] != 24) + __builtin_abort (); + return 0; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr97428.c gcc-11.5.0/gcc/testsuite/gcc.dg/vect/pr97428.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/vect/pr97428.c Mon May 29 08:46:30 2023 --- gcc-11.5.0/gcc/testsuite/gcc.dg/vect/pr97428.c Fri Jul 19 05:52:45 2024 *************** *** 1,4 **** --- 1,5 ---- /* { dg-do compile } */ + /* { dg-require-effective-target vect_double } */ typedef struct { double re, im; } dcmlx_t; typedef struct { double re[4], im[4]; } dcmlx4_t; diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.dg/visibility-22.c gcc-11.5.0/gcc/testsuite/gcc.dg/visibility-22.c *** gcc-11.4.0/gcc/testsuite/gcc.dg/visibility-22.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/gcc.dg/visibility-22.c Fri Jul 19 05:52:45 2024 *************** *** 3,8 **** --- 3,9 ---- /* { dg-require-visibility "" } */ /* { dg-require-effective-target weak_undefined } */ /* { dg-options "-O2 -fPIC" { target fpic } } */ + /* { dg-add-options weak_undefined } */ extern void foo () __attribute__((weak,visibility("hidden"))); int diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.misc-tests/gcov-14.c gcc-11.5.0/gcc/testsuite/gcc.misc-tests/gcov-14.c *** gcc-11.4.0/gcc/testsuite/gcc.misc-tests/gcov-14.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/gcc.misc-tests/gcov-14.c Fri Jul 19 05:52:45 2024 *************** *** 3,9 **** /* { dg-do run { target native } } */ /* { dg-options "-O2 -fprofile-arcs -ftest-coverage -fgnu89-inline" } */ /* The following line arranges that Darwin has behavior like elf weak import. */ ! /* { dg-additional-options "-flat_namespace -undefined suppress" { target *-*-darwin* } } */ /* { dg-require-weak "" } */ /* { dg-skip-if "undefined weak not supported" { { hppa*-*-hpux* } && { ! lp64 } } } */ /* { dg-skip-if "undefined weak not supported" { powerpc-ibm-aix* } } */ --- 3,9 ---- /* { dg-do run { target native } } */ /* { dg-options "-O2 -fprofile-arcs -ftest-coverage -fgnu89-inline" } */ /* The following line arranges that Darwin has behavior like elf weak import. */ ! /* { dg-additional-options "-Wl,-U,_Foo" { target *-*-darwin* } } */ /* { dg-require-weak "" } */ /* { dg-skip-if "undefined weak not supported" { { hppa*-*-hpux* } && { ! lp64 } } } */ /* { dg-skip-if "undefined weak not supported" { powerpc-ibm-aix* } } */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/acle/bf16_feature.c gcc-11.5.0/gcc/testsuite/gcc.target/aarch64/acle/bf16_feature.c *** gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/acle/bf16_feature.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/aarch64/acle/bf16_feature.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,10 ---- + /* { dg-do compile } */ + + #pragma GCC target "+bf16" + #ifndef __ARM_FEATURE_BF16 + #error "__ARM_FEATURE_BF16 is not defined but should be!" + #endif + + void + foo (void) {} + diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/acle/bf16_sve_feature.c gcc-11.5.0/gcc/testsuite/gcc.target/aarch64/acle/bf16_sve_feature.c *** gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/acle/bf16_sve_feature.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/aarch64/acle/bf16_sve_feature.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,10 ---- + /* { dg-do compile } */ + + #pragma GCC target "+sve+bf16" + #ifndef __ARM_FEATURE_SVE_BF16 + #error "__ARM_FEATURE_SVE_BF16 is not defined but should be!" + #endif + + void + foo (void) {} + diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/pr113552.c gcc-11.5.0/gcc/testsuite/gcc.target/aarch64/pr113552.c *** gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/pr113552.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/aarch64/pr113552.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,17 ---- + /* { dg-do compile } */ + /* { dg-options "-Ofast -march=armv8-a" } */ + + __attribute__ ((__simd__ ("notinbranch"), const)) + double cos (double); + + void foo (float *a, double *b) + { + for (int i = 0; i < 12; i+=3) + { + b[i] = cos (5.0 * a[i]); + b[i+1] = cos (5.0 * a[i+1]); + b[i+2] = cos (5.0 * a[i+2]); + } + } + + /* { dg-final { scan-assembler-times {bl\t_ZGVnN2v_cos} 6 } } */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c gcc-11.5.0/gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c *** gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/gcc.target/aarch64/simd_pcs_attribute-3.c Fri Jul 19 05:52:45 2024 *************** double foo(double x) *** 18,24 **** } /* { dg-final { scan-assembler-not {\.variant_pcs\tfoo} } } */ ! /* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnM1v_foo} 1 } } */ /* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnM2v_foo} 1 } } */ ! /* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnN1v_foo} 1 } } */ /* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnN2v_foo} 1 } } */ --- 18,24 ---- } /* { dg-final { scan-assembler-not {\.variant_pcs\tfoo} } } */ ! /* { dg-final { scan-assembler-not {\.variant_pcs\t_ZGVnM1v_foo} } } */ /* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnM2v_foo} 1 } } */ ! /* { dg-final { scan-assembler-not {\.variant_pcs\t_ZGVnN1v_foo} } } */ /* { dg-final { scan-assembler-times {\.variant_pcs\t_ZGVnN2v_foo} 1 } } */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-17.c gcc-11.5.0/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-17.c *** gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-17.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-17.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,55 ---- + /* { dg-options "-O2 -fstack-clash-protection -fomit-frame-pointer --param stack-clash-protection-guard-size=12" } */ + /* { dg-final { check-function-bodies "**" "" } } */ + + void f(int, ...); + void g(); + + /* + ** test1: + ** ... + ** str x30, \[sp\] + ** sub sp, sp, #1024 + ** cbnz w0, .* + ** bl g + ** ... + */ + int test1(int z) { + __uint128_t x = 0; + int y[0x400]; + if (z) + { + f(0, 0, 0, 0, 0, 0, 0, &y, + x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, + x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, + x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, + x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x); + } + g(); + return 1; + } + + /* + ** test2: + ** ... + ** str x30, \[sp\] + ** sub sp, sp, #1040 + ** str xzr, \[sp, #?1024\] + ** cbnz w0, .* + ** bl g + ** ... + */ + int test2(int z) { + __uint128_t x = 0; + int y[0x400]; + if (z) + { + f(0, 0, 0, 0, 0, 0, 0, &y, + x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, + x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, + x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, + x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, + x); + } + g(); + return 1; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-18.c gcc-11.5.0/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-18.c *** gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-18.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/aarch64/stack-check-prologue-18.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,100 ---- + /* { dg-options "-O2 -fstack-clash-protection -fomit-frame-pointer --param stack-clash-protection-guard-size=12" } */ + /* { dg-final { check-function-bodies "**" "" } } */ + + void f(int, ...); + void g(); + + /* + ** test1: + ** ... + ** str x30, \[sp\] + ** sub sp, sp, #4064 + ** str xzr, \[sp, #?1024\] + ** cbnz w0, .* + ** bl g + ** ... + ** str x26, \[sp, #?4128\] + ** ... + */ + int test1(int z) { + __uint128_t x = 0; + int y[0x400]; + if (z) + { + asm volatile ("" ::: + "x19", "x20", "x21", "x22", "x23", "x24", "x25", "x26"); + f(0, 0, 0, 0, 0, 0, 0, &y, + x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, + x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, + x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, + x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, + x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, + x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, + x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, + x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, + x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, + x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, + x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, + x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, + x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, + x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, + x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, + x, x, x, x, x, x, x, x, x, x, x, x, x, x); + } + g(); + return 1; + } + + /* + ** test2: + ** ... + ** str x30, \[sp\] + ** sub sp, sp, #1040 + ** str xzr, \[sp, #?1024\] + ** cbnz w0, .* + ** bl g + ** ... + */ + int test2(int z) { + __uint128_t x = 0; + int y[0x400]; + if (z) + { + asm volatile ("" ::: + "x19", "x20", "x21", "x22", "x23", "x24", "x25", "x26"); + f(0, 0, 0, 0, 0, 0, 0, &y, + x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, + x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, + x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, + x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, + x); + } + g(); + return 1; + } + + /* + ** test3: + ** ... + ** str x30, \[sp\] + ** sub sp, sp, #1024 + ** cbnz w0, .* + ** bl g + ** ... + */ + int test3(int z) { + __uint128_t x = 0; + int y[0x400]; + if (z) + { + asm volatile ("" ::: + "x19", "x20", "x21", "x22", "x23", "x24", "x25", "x26"); + f(0, 0, 0, 0, 0, 0, 0, &y, + x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, + x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, + x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, + x, x, x, x, x, x, x, x, x, x, x, x, x, x, x, x); + } + g(); + return 1; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/stack-protector-8.c gcc-11.5.0/gcc/testsuite/gcc.target/aarch64/stack-protector-8.c *** gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/stack-protector-8.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/aarch64/stack-protector-8.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,95 ---- + /* { dg-options " -O -fstack-protector-strong -mstack-protector-guard=sysreg -mstack-protector-guard-reg=tpidr2_el0 -mstack-protector-guard-offset=16" } */ + /* { dg-final { check-function-bodies "**" "" } } */ + + void g(void *); + __SVBool_t *h(void *); + + /* + ** test1: + ** sub sp, sp, #288 + ** stp x29, x30, \[sp, #?272\] + ** add x29, sp, #?272 + ** mrs (x[0-9]+), tpidr2_el0 + ** ldr (x[0-9]+), \[\1, #?16\] + ** str \2, \[sp, #?264\] + ** mov \2, #?0 + ** add x0, sp, #?8 + ** bl g + ** ... + ** mrs .* + ** ... + ** bne .* + ** ... + ** ldp x29, x30, \[sp, #?272\] + ** add sp, sp, #?288 + ** ret + ** bl __stack_chk_fail + */ + int test1() { + int y[0x40]; + g(y); + return 1; + } + + /* + ** test2: + ** stp x29, x30, \[sp, #?-16\]! + ** mov x29, sp + ** sub sp, sp, #1040 + ** mrs (x[0-9]+), tpidr2_el0 + ** ldr (x[0-9]+), \[\1, #?16\] + ** str \2, \[sp, #?1032\] + ** mov \2, #?0 + ** add x0, sp, #?8 + ** bl g + ** ... + ** mrs .* + ** ... + ** bne .* + ** ... + ** add sp, sp, #?1040 + ** ldp x29, x30, \[sp\], #?16 + ** ret + ** bl __stack_chk_fail + */ + int test2() { + int y[0x100]; + g(y); + return 1; + } + + #pragma GCC target "+sve" + + /* + ** test3: + ** stp x29, x30, \[sp, #?-16\]! + ** mov x29, sp + ** addvl sp, sp, #-18 + ** ... + ** str p4, \[sp\] + ** ... + ** sub sp, sp, #272 + ** mrs (x[0-9]+), tpidr2_el0 + ** ldr (x[0-9]+), \[\1, #?16\] + ** str \2, \[sp, #?264\] + ** mov \2, #?0 + ** add x0, sp, #?8 + ** bl h + ** ... + ** mrs .* + ** ... + ** bne .* + ** ... + ** add sp, sp, #?272 + ** ... + ** ldr p4, \[sp\] + ** ... + ** addvl sp, sp, #18 + ** ldp x29, x30, \[sp\], #?16 + ** ret + ** bl __stack_chk_fail + */ + __SVBool_t test3() { + int y[0x40]; + return *h(y); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/stack-protector-9.c gcc-11.5.0/gcc/testsuite/gcc.target/aarch64/stack-protector-9.c *** gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/stack-protector-9.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/aarch64/stack-protector-9.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,33 ---- + /* { dg-options "-O2 -mcpu=neoverse-v1 -fstack-protector-all" } */ + /* { dg-final { check-function-bodies "**" "" } } */ + + /* + ** main: + ** ... + ** stp x29, x30, \[sp, #?-[0-9]+\]! + ** ... + ** sub sp, sp, #[0-9]+ + ** ... + ** str x[0-9]+, \[x29, #?-8\] + ** ... + */ + int f(const char *); + void g(void *); + int main(int argc, char* argv[]) + { + int a; + int b; + char c[2+f(argv[1])]; + int d[0x100]; + char y; + + y=42; a=4; b=10; + c[0] = 'h'; c[1] = '\0'; + + c[f(argv[2])] = '\0'; + + __builtin_printf("%d %d\n%s\n", a, b, c); + g(d); + + return 0; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_3.c gcc-11.5.0/gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_3.c *** gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_3.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/gcc.target/aarch64/sve/pcs/stack_clash_3.c Fri Jul 19 05:52:45 2024 *************** *** 11,21 **** ** mov x11, sp ** ... ** sub sp, sp, x13 - ** str p4, \[sp\] ** cbz w0, [^\n]* ** ... ** ptrue p0\.b, all - ** ldr p4, \[sp\] ** addvl sp, sp, #1 ** ldr x24, \[sp\], 32 ** ret --- 11,20 ---- ** mov x11, sp ** ... ** sub sp, sp, x13 ** cbz w0, [^\n]* + ** str p4, \[sp\] ** ... ** ptrue p0\.b, all ** addvl sp, sp, #1 ** ldr x24, \[sp\], 32 ** ret *************** test_1 (int n) *** 39,51 **** ** mov x11, sp ** ... ** sub sp, sp, x13 - ** str p4, \[sp\] ** cbz w0, [^\n]* ** str p5, \[sp, #1, mul vl\] ** str p6, \[sp, #2, mul vl\] ** ... ** ptrue p0\.b, all - ** ldr p4, \[sp\] ** addvl sp, sp, #1 ** ldr x24, \[sp\], 32 ** ret --- 38,49 ---- ** mov x11, sp ** ... ** sub sp, sp, x13 ** cbz w0, [^\n]* + ** str p4, \[sp\] ** str p5, \[sp, #1, mul vl\] ** str p6, \[sp, #2, mul vl\] ** ... ** ptrue p0\.b, all ** addvl sp, sp, #1 ** ldr x24, \[sp\], 32 ** ret diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/sve/pr109505.c gcc-11.5.0/gcc/testsuite/gcc.target/aarch64/sve/pr109505.c *** gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/sve/pr109505.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/aarch64/sve/pr109505.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,12 ---- + /* PR tree-optimization/109505 */ + /* { dg-do compile } */ + /* { dg-options "-O2 -march=armv8.2-a+sve" } */ + + #pragma GCC aarch64 "arm_sve.h" + + unsigned long + foo (unsigned long x) + { + unsigned long y = svcntb (); + return (x | 15) & y; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/sve/pr97696.c gcc-11.5.0/gcc/testsuite/gcc.target/aarch64/sve/pr97696.c *** gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/sve/pr97696.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/aarch64/sve/pr97696.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,29 ---- + /* { dg-skip-if "" { no_fsanitize_address } } */ + /* { dg-options "-fsanitize=address -fsanitize-address-use-after-scope" } */ + + #include + + __attribute__((noinline, noclone)) int + foo (char *a) + { + int i, j = 0; + asm volatile ("" : "+r" (a) : : "memory"); + for (i = 0; i < 12; i++) + j += a[i]; + return j; + } + + int + main () + { + int i, j = 0; + for (i = 0; i < 4; i++) + { + char a[12]; + __SVInt8_t freq; + __builtin_bcmp (&freq, a, 10); + __builtin_memset (a, 0, sizeof (a)); + j += foo (a); + } + return j; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/torture/pr111677.c gcc-11.5.0/gcc/testsuite/gcc.target/aarch64/torture/pr111677.c *** gcc-11.4.0/gcc/testsuite/gcc.target/aarch64/torture/pr111677.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/aarch64/torture/pr111677.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,28 ---- + /* { dg-do compile } */ + /* { dg-require-effective-target fopenmp } */ + /* { dg-options "-ffast-math -fstack-protector-strong -fopenmp" } */ + typedef struct { + long size_z; + int width; + } dt_bilateral_t; + typedef float dt_aligned_pixel_t[4]; + #pragma omp declare simd + void dt_bilateral_splat(dt_bilateral_t *b) { + float *buf; + long offsets[8]; + for (; b;) { + int firstrow; + for (int j = firstrow; j; j++) + for (int i; i < b->width; i++) { + dt_aligned_pixel_t contrib; + for (int k = 0; k < 4; k++) + buf[offsets[k]] += contrib[k]; + } + float *dest; + for (int j = (long)b; j; j++) { + float *src = (float *)b->size_z; + for (int i = 0; i < (long)b; i++) + dest[i] += src[i]; + } + } + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/alpha/pr115297.c gcc-11.5.0/gcc/testsuite/gcc.target/alpha/pr115297.c *** gcc-11.4.0/gcc/testsuite/gcc.target/alpha/pr115297.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/alpha/pr115297.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,13 ---- + /* PR target/115297 */ + /* { dg-do compile } */ + /* { dg-options "-O1" } */ + + enum { BPF_F_USER_BUILD_ID } __bpf_get_stack_size; + long __bpf_get_stack_flags, bpf_get_stack___trans_tmp_2; + + void bpf_get_stack() { + unsigned elem_size; + int err = elem_size = __bpf_get_stack_flags ?: sizeof(long); + if (__builtin_expect(__bpf_get_stack_size % elem_size, 0)) + bpf_get_stack___trans_tmp_2 = err; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/arm/cmse/extend-param.c gcc-11.5.0/gcc/testsuite/gcc.target/arm/cmse/extend-param.c *** gcc-11.4.0/gcc/testsuite/gcc.target/arm/cmse/extend-param.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/arm/cmse/extend-param.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,109 ---- + /* { dg-do compile } */ + /* { dg-options "-mcmse -fshort-enums" } */ + /* { dg-final { check-function-bodies "**" "" "" } } */ + + #include + #include + + #define ARRAY_SIZE (256) + char array[ARRAY_SIZE]; + + enum offset + { + zero = 0, + one = 1, + two = 2 + }; + + /* + **__acle_se_unsignSecureFunc: + ** ... + ** uxtb r0, r0 + ** ... + */ + __attribute__((cmse_nonsecure_entry)) char unsignSecureFunc (unsigned char index) { + if (index >= ARRAY_SIZE) + return 0; + return array[index]; + } + + /* + **__acle_se_signSecureFunc: + ** ... + ** sxtb r0, r0 + ** ... + */ + __attribute__((cmse_nonsecure_entry)) char signSecureFunc (signed char index) { + if (index >= ARRAY_SIZE) + return 0; + return array[index]; + } + + /* + **__acle_se_shortUnsignSecureFunc: + ** ... + ** uxth r0, r0 + ** ... + */ + __attribute__((cmse_nonsecure_entry)) char shortUnsignSecureFunc (unsigned short index) { + if (index >= ARRAY_SIZE) + return 0; + return array[index]; + } + + /* + **__acle_se_shortSignSecureFunc: + ** ... + ** sxth r0, r0 + ** ... + */ + __attribute__((cmse_nonsecure_entry)) char shortSignSecureFunc (signed short index) { + if (index >= ARRAY_SIZE) + return 0; + return array[index]; + } + + /* + **__acle_se_enumSecureFunc: + ** ... + ** uxtb r0, r0 + ** ... + */ + __attribute__((cmse_nonsecure_entry)) char enumSecureFunc (enum offset index) { + + // Compiler may optimize away bounds check as value is an unsigned char. + + // According to AAPCS caller will zero extend to ensure value is < 256. + + if (index >= ARRAY_SIZE) + return 0; + return array[index]; + } + + /* + **__acle_se_boolSecureFunc: + ** ... + ** uxtb r0, r0 + ** ... + */ + __attribute__((cmse_nonsecure_entry)) char boolSecureFunc (bool index) { + if (index >= ARRAY_SIZE) + return 0; + return array[index]; + } + + /* + **__acle_se_boolCharShortEnumSecureFunc: + ** ... + ** uxtb r0, r0 + ** uxtb r1, r1 + ** uxth r2, r2 + ** uxtb r3, r3 + ** ... + */ + __attribute__((cmse_nonsecure_entry,optimize(0))) char boolCharShortEnumSecureFunc (bool a, unsigned char b, unsigned short c, enum offset d) { + size_t index = a + b + c + d; + if (index >= ARRAY_SIZE) + return 0; + return array[index]; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/arm/cmse/extend-return.c gcc-11.5.0/gcc/testsuite/gcc.target/arm/cmse/extend-return.c *** gcc-11.4.0/gcc/testsuite/gcc.target/arm/cmse/extend-return.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/arm/cmse/extend-return.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,142 ---- + /* { dg-do compile } */ + /* { dg-options "-mcmse -fshort-enums" } */ + /* ARMv8-M expectation with target { ! arm_cmse_clear_ok }. */ + /* ARMv8.1-M expectation with target arm_cmse_clear_ok. */ + /* { dg-final { check-function-bodies "**" "" "" } } */ + + #include + #include + + enum offset + { + zero = 0, + one = 1, + two = 2 + }; + + typedef unsigned char __attribute__ ((cmse_nonsecure_call)) ns_unsign_foo_t (void); + typedef signed char __attribute__ ((cmse_nonsecure_call)) ns_sign_foo_t (void); + typedef unsigned short __attribute__ ((cmse_nonsecure_call)) ns_short_unsign_foo_t (void); + typedef signed short __attribute__ ((cmse_nonsecure_call)) ns_short_sign_foo_t (void); + typedef enum offset __attribute__ ((cmse_nonsecure_call)) ns_enum_foo_t (void); + typedef bool __attribute__ ((cmse_nonsecure_call)) ns_bool_foo_t (void); + + /* + **unsignNonsecure0: { target arm_cmse_clear_ok } + ** ... + ** blxns r[0-3] + ** ... + ** uxtb r0, r0 + ** ... + */ + /* + **unsignNonsecure0: { target { ! arm_cmse_clear_ok } } + ** ... + ** bl __gnu_cmse_nonsecure_call + ** uxtb r0, r0 + ** ... + */ + unsigned char unsignNonsecure0 (ns_unsign_foo_t * ns_foo_p) + { + return ns_foo_p (); + } + + /* + **signNonsecure0: { target arm_cmse_clear_ok } + ** ... + ** blxns r[0-3] + ** ... + ** sxtb r0, r0 + ** ... + */ + /* + **signNonsecure0: { target { ! arm_cmse_clear_ok } } + ** ... + ** bl __gnu_cmse_nonsecure_call + ** sxtb r0, r0 + ** ... + */ + signed char signNonsecure0 (ns_sign_foo_t * ns_foo_p) + { + return ns_foo_p (); + } + + /* + **shortUnsignNonsecure0: { target arm_cmse_clear_ok } + ** ... + ** blxns r[0-3] + ** ... + ** uxth r0, r0 + ** ... + */ + /* + **shortUnsignNonsecure0: { target { ! arm_cmse_clear_ok } } + ** ... + ** bl __gnu_cmse_nonsecure_call + ** uxth r0, r0 + ** ... + */ + unsigned short shortUnsignNonsecure0 (ns_short_unsign_foo_t * ns_foo_p) + { + return ns_foo_p (); + } + + /* + **shortSignNonsecure0: { target arm_cmse_clear_ok } + ** ... + ** blxns r[0-3] + ** ... + ** sxth r0, r0 + ** ... + */ + /* + **shortSignNonsecure0: { target { ! arm_cmse_clear_ok } } + ** ... + ** bl __gnu_cmse_nonsecure_call + ** sxth r0, r0 + ** ... + */ + signed short shortSignNonsecure0 (ns_short_sign_foo_t * ns_foo_p) + { + return ns_foo_p (); + } + + /* + **enumNonsecure0: { target arm_cmse_clear_ok } + ** ... + ** blxns r[0-3] + ** ... + ** uxtb r0, r0 + ** ... + */ + /* + **enumNonsecure0: { target { ! arm_cmse_clear_ok } } + ** ... + ** bl __gnu_cmse_nonsecure_call + ** uxtb r0, r0 + ** ... + */ + unsigned char __attribute__((noipa)) enumNonsecure0 (ns_enum_foo_t * ns_foo_p) + { + return ns_foo_p (); + } + + /* + **boolNonsecure0: { target arm_cmse_clear_ok } + ** ... + ** blxns r[0-3] + ** ... + ** uxtb r0, r0 + ** ... + */ + /* + **boolNonsecure0: { target { ! arm_cmse_clear_ok } } + ** ... + ** bl __gnu_cmse_nonsecure_call + ** uxtb r0, r0 + ** ... + */ + unsigned char boolNonsecure0 (ns_bool_foo_t * ns_foo_p) + { + return ns_foo_p (); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_su64.c gcc-11.5.0/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_su64.c *** gcc-11.4.0/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_su64.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/arm/mve/intrinsics/vsetq_lane_su64.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,63 ---- + /* { dg-require-effective-target arm_v8_1m_mve_ok } */ + /* { dg-add-options arm_v8_1m_mve } */ + /* { dg-require-effective-target arm_hard_ok } */ + /* { dg-additional-options "-mfloat-abi=hard -O2" } */ + /* { dg-final { check-function-bodies "**" "" } } */ + + #include "arm_mve.h" + + #ifdef __cplusplus + extern "C" { + #endif + + /* + **fn1: + ** vmov d0, r0, r1 + ** bx lr + */ + uint64x2_t + fn1 (uint64_t a, uint64x2_t b) + { + return vsetq_lane_u64 (a, b, 0); + } + + /* + **fn2: + ** vmov d1, r0, r1 + ** bx lr + */ + uint64x2_t + fn2 (uint64_t a, uint64x2_t b) + { + return vsetq_lane_u64 (a, b, 1); + } + + /* + **fn3: + ** vmov d0, r0, r1 + ** bx lr + */ + int64x2_t + fn3 (int64_t a, int64x2_t b) + { + return vsetq_lane_s64 (a, b, 0); + } + + /* + **fn4: + ** vmov d1, r0, r1 + ** bx lr + */ + int64x2_t + fn4 (int64_t a, int64x2_t b) + { + return vsetq_lane_s64 (a, b, 1); + } + + + #ifdef __cplusplus + } + #endif + + /* { dg-final { scan-assembler-not "__ARM_undef" } } */ + diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/arm/neon-recip-div-1.c gcc-11.5.0/gcc/testsuite/gcc.target/arm/neon-recip-div-1.c *** gcc-11.4.0/gcc/testsuite/gcc.target/arm/neon-recip-div-1.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/arm/neon-recip-div-1.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,16 ---- + /* { dg-do compile } */ + /* { dg-require-effective-target arm_neon_ok } */ + /* { dg-options "-O3 -freciprocal-math -fno-unsafe-math-optimizations -save-temps" } */ + /* { dg-add-options arm_neon } */ + + int *a; + int n; + void b() { + int c; + for (c = 0; c < 100000; c++) + a[c] = (float)c / n; + } + /* We should not ICE, or get a vectorized reciprocal instruction when unsafe + math optimizations are disabled. */ + /* { dg-final { scan-assembler-not "vrecpe\\.f32\\t\[qd\].*" } } */ + /* { dg-final { scan-assembler-not "vrecps\\.f32\\t\[qd\].*" } } */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/arm/pure-code/pr109800.c gcc-11.5.0/gcc/testsuite/gcc.target/arm/pure-code/pr109800.c *** gcc-11.4.0/gcc/testsuite/gcc.target/arm/pure-code/pr109800.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/arm/pure-code/pr109800.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,4 ---- + /* { dg-do compile } */ + /* { dg-require-effective-target arm_hard_ok } */ + /* { dg-options "-O2 -march=armv7-m -mfloat-abi=hard -mfpu=fpv4-sp-d16 -mbig-endian -mpure-code" } */ + double f() { return 5.0; } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/amxtile-4.c gcc-11.5.0/gcc/testsuite/gcc.target/i386/amxtile-4.c *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/amxtile-4.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/amxtile-4.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,52 ---- + /* PR target/114098 */ + /* { dg-do compile { target { ! ia32 } } } */ + /* { dg-options "-O2 -mamx-tile" } */ + + #include + #include + + #define MAX_ROWS 16 + #define MAX_COLS 64 + #define MAX 1024 + #define STRIDE 64 + + typedef struct __tile_config + { + uint8_t palette_id; + uint8_t start_row; + uint8_t reserved_0[14]; + uint16_t colsb[16]; + uint8_t rows[16]; + } __tilecfg __attribute__ ((aligned (64))); + + /* Initialize tile config */ + static void + init_tile_config (__tilecfg *tileinfo) + { + int i; + tileinfo->palette_id = 1; + tileinfo->start_row = 0; + + for (i = 0; i < 1; ++i) + { + tileinfo->colsb[i] = MAX_ROWS; + tileinfo->rows[i] = MAX_ROWS; + } + + for (i = 1; i < 4; ++i) + { + tileinfo->colsb[i] = MAX_COLS; + tileinfo->rows[i] = MAX_ROWS; + } + + _tile_loadconfig (tileinfo); + } + + void + enable_amx (void) + { + __tilecfg tile_data = {0}; + init_tile_config (&tile_data); + } + + /* { dg-final { scan-assembler-times "pxor\[^\n\]*%xmm" 1 } } */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/avx-vzeroupper-29.c gcc-11.5.0/gcc/testsuite/gcc.target/i386/avx-vzeroupper-29.c *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/avx-vzeroupper-29.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/avx-vzeroupper-29.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,14 ---- + /* { dg-do compile } */ + /* { dg-options "-O0 -mavx -mtune=generic -mvzeroupper -dp" } */ + + #include + + extern __m256 x, y; + + void + foo () + { + x = y; + } + + /* { dg-final { scan-assembler-times "avx_vzeroupper" 1 } } */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/avx2-gather-2.c gcc-11.5.0/gcc/testsuite/gcc.target/i386/avx2-gather-2.c *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/avx2-gather-2.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/avx2-gather-2.c Fri Jul 19 05:52:45 2024 *************** *** 1,5 **** /* { dg-do compile } */ ! /* { dg-options "-O3 -mavx2 -fdump-tree-vect-details -mtune=skylake" } */ #include "avx2-gather-1.c" --- 1,5 ---- /* { dg-do compile } */ ! /* { dg-options "-O3 -fdump-tree-vect-details -march=skylake -mtune=haswell" } */ #include "avx2-gather-1.c" diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/avx2-gather-6.c gcc-11.5.0/gcc/testsuite/gcc.target/i386/avx2-gather-6.c *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/avx2-gather-6.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/avx2-gather-6.c Fri Jul 19 05:52:45 2024 *************** *** 1,5 **** /* { dg-do compile } */ ! /* { dg-options "-O3 -mavx2 -fno-common -fdump-tree-vect-details -mtune=skylake" } */ #include "avx2-gather-5.c" --- 1,5 ---- /* { dg-do compile } */ ! /* { dg-options "-O3 -mavx2 -fno-common -fdump-tree-vect-details -mtune=haswell" } */ #include "avx2-gather-5.c" diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/avx512f-pr114566.c gcc-11.5.0/gcc/testsuite/gcc.target/i386/avx512f-pr114566.c *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/avx512f-pr114566.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/avx512f-pr114566.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,34 ---- + /* PR tree-optimization/114566 */ + /* { dg-do run } */ + /* { dg-options "-O3 -mavx512f" } */ + /* { dg-additional-options "-fstack-protector-strong" { target fstack_protector } } */ + /* { dg-require-effective-target avx512f } */ + + #define AVX512F + #include "avx512f-helper.h" + + __attribute__((noipa)) int + foo (float x, float y) + { + float a[8][56]; + __builtin_memset (a, 0, sizeof (a)); + + for (int j = 0; j < 8; j++) + for (int k = 0; k < 56; k++) + { + float b = k * y; + if (b < 0.) + b = 0.; + if (b > 0.) + b = 0.; + a[j][k] += b; + } + + return __builtin_log (x); + } + + void + TEST (void) + { + foo (86.25f, 0.625f); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/avx512f-pr88464-1.c gcc-11.5.0/gcc/testsuite/gcc.target/i386/avx512f-pr88464-1.c *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/avx512f-pr88464-1.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/avx512f-pr88464-1.c Fri Jul 19 05:52:45 2024 *************** *** 1,6 **** /* PR tree-optimization/88464 */ /* { dg-do compile } */ ! /* { dg-options "-O3 -mavx512f -mprefer-vector-width=512 -mtune=skylake-avx512 -fdump-tree-vect-details" } */ /* { dg-final { scan-tree-dump-times "loop vectorized using 64 byte vectors" 4 "vect" } } */ /* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 4 "vect" } } */ --- 1,6 ---- /* PR tree-optimization/88464 */ /* { dg-do compile } */ ! /* { dg-options "-O3 -mavx512f -mprefer-vector-width=512 -mtune=haswell -fdump-tree-vect-details" } */ /* { dg-final { scan-tree-dump-times "loop vectorized using 64 byte vectors" 4 "vect" } } */ /* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 4 "vect" } } */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/avx512f-pr88464-5.c gcc-11.5.0/gcc/testsuite/gcc.target/i386/avx512f-pr88464-5.c *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/avx512f-pr88464-5.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/avx512f-pr88464-5.c Fri Jul 19 05:52:45 2024 *************** *** 1,6 **** /* PR tree-optimization/88464 */ /* { dg-do compile } */ ! /* { dg-options "-O3 -mavx512f -mprefer-vector-width=512 -mtune=skylake-avx512 -fdump-tree-vect-details" } */ /* { dg-final { scan-tree-dump-times "loop vectorized using 64 byte vectors" 4 "vect" } } */ /* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 4 "vect" } } */ --- 1,6 ---- /* PR tree-optimization/88464 */ /* { dg-do compile } */ ! /* { dg-options "-O3 -mavx512f -mprefer-vector-width=512 -mtune=haswell -fdump-tree-vect-details" } */ /* { dg-final { scan-tree-dump-times "loop vectorized using 64 byte vectors" 4 "vect" } } */ /* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 4 "vect" } } */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-1.c gcc-11.5.0/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-1.c *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-1.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-1.c Fri Jul 19 05:52:45 2024 *************** *** 1,6 **** /* PR tree-optimization/88464 */ /* { dg-do compile } */ ! /* { dg-options "-O3 -mavx512vl -mprefer-vector-width=256 -mtune=skylake-avx512 -fdump-tree-vect-details" } */ /* { dg-final { scan-tree-dump-times "loop vectorized using 32 byte vectors" 4 "vect" } } */ /* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 4 "vect" } } */ --- 1,6 ---- /* PR tree-optimization/88464 */ /* { dg-do compile } */ ! /* { dg-options "-O3 -mavx512vl -mprefer-vector-width=256 -mtune=haswell -fdump-tree-vect-details" } */ /* { dg-final { scan-tree-dump-times "loop vectorized using 32 byte vectors" 4 "vect" } } */ /* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 4 "vect" } } */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-11.c gcc-11.5.0/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-11.c *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-11.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-11.c Fri Jul 19 05:52:45 2024 *************** *** 1,6 **** /* PR tree-optimization/88464 */ /* { dg-do compile } */ ! /* { dg-options "-O3 -mavx512vl -mprefer-vector-width=128 -mtune=skylake-avx512 -fdump-tree-vect-details" } */ /* { dg-final { scan-tree-dump-times "loop vectorized using 16 byte vectors" 4 "vect" } } */ /* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 4 "vect" } } */ --- 1,6 ---- /* PR tree-optimization/88464 */ /* { dg-do compile } */ ! /* { dg-options "-O3 -mavx512vl -mprefer-vector-width=128 -mtune=haswell -fdump-tree-vect-details" } */ /* { dg-final { scan-tree-dump-times "loop vectorized using 16 byte vectors" 4 "vect" } } */ /* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 4 "vect" } } */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-3.c gcc-11.5.0/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-3.c *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-3.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-3.c Fri Jul 19 05:52:45 2024 *************** *** 1,6 **** /* PR tree-optimization/88464 */ /* { dg-do compile } */ ! /* { dg-options "-O3 -mavx512vl -mprefer-vector-width=128 -mtune=skylake-avx512 -fdump-tree-vect-details" } */ /* { dg-final { scan-tree-dump-times "loop vectorized using 16 byte vectors" 4 "vect" } } */ /* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 4 "vect" } } */ --- 1,6 ---- /* PR tree-optimization/88464 */ /* { dg-do compile } */ ! /* { dg-options "-O3 -mavx512vl -mprefer-vector-width=128 -mtune=haswell -fdump-tree-vect-details" } */ /* { dg-final { scan-tree-dump-times "loop vectorized using 16 byte vectors" 4 "vect" } } */ /* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 4 "vect" } } */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-9.c gcc-11.5.0/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-9.c *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-9.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/avx512vl-pr88464-9.c Fri Jul 19 05:52:45 2024 *************** *** 1,6 **** /* PR tree-optimization/88464 */ /* { dg-do compile } */ ! /* { dg-options "-O3 -mavx512vl -mprefer-vector-width=256 -mtune=skylake-avx512 -fdump-tree-vect-details" } */ /* { dg-final { scan-tree-dump-times "loop vectorized using 32 byte vectors" 4 "vect" } } */ /* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 4 "vect" } } */ --- 1,6 ---- /* PR tree-optimization/88464 */ /* { dg-do compile } */ ! /* { dg-options "-O3 -mavx512vl -mprefer-vector-width=256 -mtune=haswell -fdump-tree-vect-details" } */ /* { dg-final { scan-tree-dump-times "loop vectorized using 32 byte vectors" 4 "vect" } } */ /* { dg-final { scan-tree-dump-times "vectorized 1 loops in function" 4 "vect" } } */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/funcspec-56.inc gcc-11.5.0/gcc/testsuite/gcc.target/i386/funcspec-56.inc *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/funcspec-56.inc Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/funcspec-56.inc Fri Jul 19 05:52:45 2024 *************** extern void test_arch_bdver3 (void) __a *** 197,202 **** --- 197,203 ---- extern void test_arch_znver1 (void) __attribute__((__target__("arch=znver1"))); extern void test_arch_znver2 (void) __attribute__((__target__("arch=znver2"))); extern void test_arch_znver3 (void) __attribute__((__target__("arch=znver3"))); + extern void test_arch_znver4 (void) __attribute__((__target__("arch=znver4"))); extern void test_tune_nocona (void) __attribute__((__target__("tune=nocona"))); extern void test_tune_core2 (void) __attribute__((__target__("tune=core2"))); *************** extern void test_tune_generic (void) __ *** 219,224 **** --- 220,226 ---- extern void test_tune_znver1 (void) __attribute__((__target__("tune=znver1"))); extern void test_tune_znver2 (void) __attribute__((__target__("tune=znver2"))); extern void test_tune_znver3 (void) __attribute__((__target__("tune=znver3"))); + extern void test_tune_znver4 (void) __attribute__((__target__("tune=znver4"))); extern void test_fpmath_sse (void) __attribute__((__target__("sse2,fpmath=sse"))); extern void test_fpmath_387 (void) __attribute__((__target__("sse2,fpmath=387"))); diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/memcpy-strategy-10.c gcc-11.5.0/gcc/testsuite/gcc.target/i386/memcpy-strategy-10.c *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/memcpy-strategy-10.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/memcpy-strategy-10.c Fri Jul 19 05:52:45 2024 *************** *** 1,7 **** /* { dg-do compile } */ /* { dg-options "-O2 -march=skylake -mno-sse" } */ ! /* { dg-final { scan-assembler "jmp\tmemcpy" { target { ! ia32 } } } } */ ! /* { dg-final { scan-assembler "call\tmemcpy" { target ia32 } } } */ /* { dg-final { scan-assembler-not "rep movsb" } } */ void --- 1,7 ---- /* { dg-do compile } */ /* { dg-options "-O2 -march=skylake -mno-sse" } */ ! /* { dg-final { scan-assembler "jmp\t_?memcpy" { target { ! ia32 } } } } */ ! /* { dg-final { scan-assembler "call\t_?memcpy" { target ia32 } } } */ /* { dg-final { scan-assembler-not "rep movsb" } } */ void diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/memcpy-strategy-5.c gcc-11.5.0/gcc/testsuite/gcc.target/i386/memcpy-strategy-5.c *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/memcpy-strategy-5.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/memcpy-strategy-5.c Fri Jul 19 05:52:45 2024 *************** *** 1,7 **** /* { dg-do compile } */ /* { dg-options "-O2 -march=tigerlake -mno-sse" } */ ! /* { dg-final { scan-assembler "jmp\tmemcpy" { target { ! ia32 } } } } */ ! /* { dg-final { scan-assembler "call\tmemcpy" { target ia32 } } } */ /* { dg-final { scan-assembler-not "rep movsb" } } */ void --- 1,7 ---- /* { dg-do compile } */ /* { dg-options "-O2 -march=tigerlake -mno-sse" } */ ! /* { dg-final { scan-assembler "jmp\t_?memcpy" { target { ! ia32 } } } } */ ! /* { dg-final { scan-assembler "call\t_?memcpy" { target ia32 } } } */ /* { dg-final { scan-assembler-not "rep movsb" } } */ void diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/memset-strategy-5.c gcc-11.5.0/gcc/testsuite/gcc.target/i386/memset-strategy-5.c *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/memset-strategy-5.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/memset-strategy-5.c Fri Jul 19 05:52:45 2024 *************** *** 1,7 **** /* { dg-do compile } */ /* { dg-options "-O2 -march=tigerlake -mno-sse" } */ ! /* { dg-final { scan-assembler "jmp\tmemset" { target { ! ia32 } } } } */ ! /* { dg-final { scan-assembler "call\tmemset" { target ia32 } } } */ /* { dg-final { scan-assembler-not "rep stosb" } } */ void --- 1,7 ---- /* { dg-do compile } */ /* { dg-options "-O2 -march=tigerlake -mno-sse" } */ ! /* { dg-final { scan-assembler "jmp\t_?memset" { target { ! ia32 } } } } */ ! /* { dg-final { scan-assembler "call\t_?memset" { target ia32 } } } */ /* { dg-final { scan-assembler-not "rep stosb" } } */ void diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/memset-strategy-7.c gcc-11.5.0/gcc/testsuite/gcc.target/i386/memset-strategy-7.c *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/memset-strategy-7.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/memset-strategy-7.c Fri Jul 19 05:52:45 2024 *************** *** 1,7 **** /* { dg-do compile } */ /* { dg-options "-O2 -march=skylake -mno-sse" } */ ! /* { dg-final { scan-assembler "jmp\tmemset" { target { ! ia32 } } } } */ ! /* { dg-final { scan-assembler "call\tmemset" { target ia32 } } } */ /* { dg-final { scan-assembler-not "rep stosb" } } */ void --- 1,7 ---- /* { dg-do compile } */ /* { dg-options "-O2 -march=skylake -mno-sse" } */ ! /* { dg-final { scan-assembler "jmp\t_?memset" { target { ! ia32 } } } } */ ! /* { dg-final { scan-assembler "call\t_?memset" { target ia32 } } } */ /* { dg-final { scan-assembler-not "rep stosb" } } */ void diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr105554.c gcc-11.5.0/gcc/testsuite/gcc.target/i386/pr105554.c *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr105554.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/pr105554.c Fri Jul 19 05:52:45 2024 *************** *** 1,5 **** --- 1,6 ---- /* PR target/105554 */ /* { dg-do compile } */ + /* { dg-require-ifunc "" } */ /* { dg-options "-O2 -Wno-psabi -mno-sse3" } */ typedef long long v4di __attribute__((__vector_size__(32))); diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr110170-3.c gcc-11.5.0/gcc/testsuite/gcc.target/i386/pr110170-3.c *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr110170-3.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/pr110170-3.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,11 ---- + /* { dg-do compile { target { ! ia32 } } } */ + /* { dg-options "-O2 -fno-if-conversion -fno-if-conversion2" } */ + /* { dg-final { scan-assembler-not {(?n)movq.*r} } } */ + + void __cond_swap(double* __x, double* __y) { + _Bool __r = (*__x < *__y); + double __tmp = __r ? *__x : *__y; + *__y = __r ? *__y : *__x; + *__x = __tmp; + } + diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr111340.c gcc-11.5.0/gcc/testsuite/gcc.target/i386/pr111340.c *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr111340.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/pr111340.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,9 ---- + /* PR target/111340 */ + /* { dg-do compile { target { fpic && int128 } } } */ + /* { dg-options "-O2 -fpic" } */ + + void + bar (void) + { + __asm ("# %0" : : "g" ((((unsigned __int128) 0x123456789abcdef0ULL) << 64) | 0x0fedcba987654321ULL)); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr111736.c gcc-11.5.0/gcc/testsuite/gcc.target/i386/pr111736.c *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr111736.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/pr111736.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,23 ---- + /* { dg-do compile } */ + /* { dg-options "-O2 -fsanitize=address" } */ + + int __seg_gs m; + + int foo (void) + { + return m; + } + + extern int __seg_gs n; + + int bar (void) + { + return n; + } + + int baz (int __seg_gs *o) + { + return *o; + } + + /* { dg-final { scan-assembler-not "asan_report_load" } } */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr112495.c gcc-11.5.0/gcc/testsuite/gcc.target/i386/pr112495.c *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr112495.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/pr112495.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,12 ---- + /* { dg-do compile } */ + /* { dg-options "-O3" } */ + + typedef struct { int v; } T1; + typedef struct { T1 v[32]; } T2; + + T1 s; + T1 f1() { return s; } + + void f2(__seg_gs T2 *p, int n) { + for (int i = 0; i < n; ++i) p->v[i] = f1(); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr112672.c gcc-11.5.0/gcc/testsuite/gcc.target/i386/pr112672.c *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr112672.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/pr112672.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,23 ---- + /* PR target/112672 */ + /* { dg-do run } */ + /* { dg-options "-O2" } */ + + typedef unsigned short u16; + + u16 g = 254; + + static inline u16 + foo (u16 u) + { + u *= g; + return u + __builtin_parityl (u); + } + + int + main (void) + { + u16 x = foo (4); + if (x != 4 * 254 + 1) + __builtin_abort (); + return 0; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr112891-2.c gcc-11.5.0/gcc/testsuite/gcc.target/i386/pr112891-2.c *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr112891-2.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/pr112891-2.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,30 ---- + /* { dg-do compile } */ + /* { dg-options "-mavx2 -O3" } */ + /* { dg-final { scan-assembler-times "vzeroupper" 1 } } */ + + void + __attribute__((noinline)) + bar (double* a) + { + a[0] = 1.0; + a[1] = 2.0; + } + + double + __attribute__((noinline)) + foo (double* __restrict a, double* b) + { + a[0] += b[0]; + a[1] += b[1]; + a[2] += b[2]; + a[3] += b[3]; + bar (b); + return a[5] + b[5]; + } + + double + foo1 (double* __restrict a, double* b) + { + double c = foo (a, b); + return __builtin_exp (c); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr112891.c gcc-11.5.0/gcc/testsuite/gcc.target/i386/pr112891.c *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr112891.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/pr112891.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,29 ---- + /* { dg-do compile } */ + /* { dg-options "-mavx2 -O3" } */ + /* { dg-final { scan-assembler-times "vzeroupper" 1 } } */ + + void + __attribute__((noinline)) + bar (double* a) + { + a[0] = 1.0; + a[1] = 2.0; + } + + void + __attribute__((noinline)) + foo (double* __restrict a, double* b) + { + a[0] += b[0]; + a[1] += b[1]; + a[2] += b[2]; + a[3] += b[3]; + bar (b); + } + + double + foo1 (double* __restrict a, double* b) + { + foo (a, b); + return __builtin_exp (b[1]); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr113122-1.c gcc-11.5.0/gcc/testsuite/gcc.target/i386/pr113122-1.c *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr113122-1.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/pr113122-1.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,10 ---- + /* PR target/113122 */ + /* { dg-do assemble { target { *-*-linux* && lp64 } } } */ + /* { dg-require-effective-target mfentry } */ + /* { dg-require-effective-target masm_intel } */ + /* { dg-options "-fprofile -mfentry -O2 -mcmodel=large -masm=intel" } */ + + void + func (void) + { + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr113122-2.c gcc-11.5.0/gcc/testsuite/gcc.target/i386/pr113122-2.c *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr113122-2.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/pr113122-2.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,11 ---- + /* PR target/113122 */ + /* { dg-do assemble { target { *-*-linux* && lp64 } } } */ + /* { dg-require-effective-target mfentry } */ + /* { dg-require-effective-target masm_intel } */ + /* { dg-require-effective-target fpic } */ + /* { dg-options "-fpic -fprofile -mfentry -O2 -mcmodel=large -masm=intel" } */ + + void + func (void) + { + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr113122-3.c gcc-11.5.0/gcc/testsuite/gcc.target/i386/pr113122-3.c *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr113122-3.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/pr113122-3.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,9 ---- + /* PR target/113122 */ + /* { dg-do assemble { target *-*-linux* } } */ + /* { dg-require-effective-target masm_intel } */ + /* { dg-options "-fprofile -O2 -masm=intel" } */ + + void + func (void) + { + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr113122-4.c gcc-11.5.0/gcc/testsuite/gcc.target/i386/pr113122-4.c *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr113122-4.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/pr113122-4.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,10 ---- + /* PR target/113122 */ + /* { dg-do assemble { target *-*-linux* } } */ + /* { dg-require-effective-target masm_intel } */ + /* { dg-require-effective-target fpic } */ + /* { dg-options "-fpic -fprofile -O2 -masm=intel" } */ + + void + func (void) + { + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr113921.c gcc-11.5.0/gcc/testsuite/gcc.target/i386/pr113921.c *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr113921.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/pr113921.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,20 ---- + /* PR middle-end/113921 */ + /* { dg-do run } */ + /* { dg-options "-O2" } */ + + __attribute__((noipa)) long + foo (void) + { + long v; + asm volatile goto ("jmp %l2" : "=r" (v) : "0" (27) : : lab); + return v; + lab: + return 42; + } + + int + main () + { + if (foo () != 42) + __builtin_abort (); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr114184.c gcc-11.5.0/gcc/testsuite/gcc.target/i386/pr114184.c *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/pr114184.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/pr114184.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,22 ---- + /* PR target/114184 */ + /* { dg-do compile } */ + /* { dg-options "-Og -mavx2" } */ + + typedef unsigned char V __attribute__((vector_size (32))); + typedef unsigned char W __attribute__((vector_size (16))); + + _Complex long double + foo (void) + { + _Complex long double d; + *(V *)&d = (V) { 149, 136, 89, 42, 38, 240, 196, 194 }; + return d; + } + + long double + bar (void) + { + long double d; + *(W *)&d = (W) { 149, 136, 89, 42, 38, 240, 196, 194 }; + return d; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/sse2-pr112816-2.c gcc-11.5.0/gcc/testsuite/gcc.target/i386/sse2-pr112816-2.c *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/sse2-pr112816-2.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/sse2-pr112816-2.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,16 ---- + /* PR target/112816 */ + /* { dg-do compile } */ + /* { dg-options "-O2 -msse2" } */ + + #define N 2 + struct S { float x[N]; }; + struct T { int x[N]; }; + + struct T + foo (struct S x) + { + struct T res; + for (int i = 0; i < N; ++i) + res.x[i] = __builtin_signbit (x.x[i]) ? -1 : 0; + return res; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/i386/sse2-pr112816.c gcc-11.5.0/gcc/testsuite/gcc.target/i386/sse2-pr112816.c *** gcc-11.4.0/gcc/testsuite/gcc.target/i386/sse2-pr112816.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/i386/sse2-pr112816.c Fri Jul 19 05:52:45 2024 *************** *** 0 **** --- 1,16 ---- + /* PR target/112816 */ + /* { dg-do compile } */ + /* { dg-options "-O2 -msse2" } */ + + #define N 4 + struct S { float x[N]; }; + struct T { int x[N]; }; + + struct T + foo (struct S x) + { + struct T res; + for (int i = 0; i < N; ++i) + res.x[i] = __builtin_signbit (x.x[i]) ? -1 : 0; + return res; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/clone1.c gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/clone1.c *** gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/clone1.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/clone1.c Fri Jul 19 05:52:46 2024 *************** long mod_func_or (long a, long b, long c *** 21,26 **** return mod_func (a, b) | c; } ! /* { dg-final { scan-assembler-times {\mdivd\M} 1 } } */ ! /* { dg-final { scan-assembler-times {\mmulld\M} 1 } } */ ! /* { dg-final { scan-assembler-times {\mmodsd\M} 1 } } */ --- 21,27 ---- return mod_func (a, b) | c; } ! /* { Fail due to RS6000_DISABLE_SCALAR_MODULO. */ ! /* { dg-final { scan-assembler-times {\mdivd\M} 1 { xfail *-*-* } } } */ ! /* { dg-final { scan-assembler-times {\mmulld\M} 1 { xfail *-*-* } } } */ ! /* { dg-final { scan-assembler-times {\mmodsd\M} 1 { xfail *-*-* } } } */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/clone3.c gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/clone3.c *** gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/clone3.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/clone3.c Fri Jul 19 05:52:46 2024 *************** long mod_func_or (long a, long b, long c *** 27,33 **** return mod_func (a, b) | c; } ! /* { dg-final { scan-assembler-times {\mdivd\M} 1 } } */ ! /* { dg-final { scan-assembler-times {\mmulld\M} 1 } } */ ! /* { dg-final { scan-assembler-times {\mmodsd\M} 2 } } */ /* { dg-final { scan-assembler-times {\mpld\M} 1 } } */ --- 27,34 ---- return mod_func (a, b) | c; } ! /* { Fail due to RS6000_DISABLE_SCALAR_MODULO. */ ! /* { dg-final { scan-assembler-times {\mdivd\M} 1 { xfail *-*-* } } } */ ! /* { dg-final { scan-assembler-times {\mmulld\M} 1 { xfail *-*-* } } } */ ! /* { dg-final { scan-assembler-times {\mmodsd\M} 2 { xfail *-*-* } } } */ /* { dg-final { scan-assembler-times {\mpld\M} 1 } } */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/darwin-abi-13-0.c gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/darwin-abi-13-0.c *** gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/darwin-abi-13-0.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/darwin-abi-13-0.c Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,23 ---- + /* { dg-do compile { target powerpc*-*-darwin* } } */ + /* { dg-require-effective-target ilp32 } */ + /* { dg-options "-Wno-long-long" } */ + + #include "darwin-structs-0.h" + + int tcd[sizeof(cd) != 12 ? -1 : 1]; + int acd[__alignof__(cd) != 4 ? -1 : 1]; + + int sdc[sizeof(dc) != 16 ? -1 : 1]; + int adc[__alignof__(dc) != 8 ? -1 : 1]; + + int scL[sizeof(cL) != 12 ? -1 : 1]; + int acL[__alignof__(cL) != 4 ? -1 : 1]; + + int sLc[sizeof(Lc) != 16 ? -1 : 1]; + int aLc[__alignof__(Lc) != 8 ? -1 : 1]; + + int scD[sizeof(cD) != 32 ? -1 : 1]; + int acD[__alignof__(cD) != 16 ? -1 : 1]; + + int sDc[sizeof(Dc) != 32 ? -1 : 1]; + int aDc[__alignof__(Dc) != 16 ? -1 : 1]; diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/darwin-abi-13-1.c gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/darwin-abi-13-1.c *** gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/darwin-abi-13-1.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/darwin-abi-13-1.c Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,27 ---- + /* { dg-do compile { target powerpc*-*-darwin* } } */ + /* { dg-require-effective-target ilp32 } */ + /* { dg-options "-Wno-long-long" } */ + + #pragma pack(push, 1) + + #include "darwin-structs-0.h" + + int tcd[sizeof(cd) != 9 ? -1 : 1]; + int acd[__alignof__(cd) != 1 ? -1 : 1]; + + int sdc[sizeof(dc) != 9 ? -1 : 1]; + int adc[__alignof__(dc) != 1 ? -1 : 1]; + + int scL[sizeof(cL) != 9 ? -1 : 1]; + int acL[__alignof__(cL) != 1 ? -1 : 1]; + + int sLc[sizeof(Lc) != 9 ? -1 : 1]; + int aLc[__alignof__(Lc) != 1 ? -1 : 1]; + + int scD[sizeof(cD) != 17 ? -1 : 1]; + int acD[__alignof__(cD) != 1 ? -1 : 1]; + + int sDc[sizeof(Dc) != 17 ? -1 : 1]; + int aDc[__alignof__(Dc) != 1 ? -1 : 1]; + + #pragma pack(pop) diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/darwin-abi-13-2.c gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/darwin-abi-13-2.c *** gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/darwin-abi-13-2.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/darwin-abi-13-2.c Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,27 ---- + /* { dg-do compile { target powerpc*-*-darwin* } } */ + /* { dg-require-effective-target ilp32 } */ + /* { dg-options "-Wno-long-long" } */ + + #pragma pack(push, 2) + + #include "darwin-structs-0.h" + + int tcd[sizeof(cd) != 10 ? -1 : 1]; + int acd[__alignof__(cd) != 2 ? -1 : 1]; + + int sdc[sizeof(dc) != 10 ? -1 : 1]; + int adc[__alignof__(dc) != 2 ? -1 : 1]; + + int scL[sizeof(cL) != 10 ? -1 : 1]; + int acL[__alignof__(cL) != 2 ? -1 : 1]; + + int sLc[sizeof(Lc) != 10 ? -1 : 1]; + int aLc[__alignof__(Lc) != 2 ? -1 : 1]; + + int scD[sizeof(cD) != 18 ? -1 : 1]; + int acD[__alignof__(cD) != 2 ? -1 : 1]; + + int sDc[sizeof(Dc) != 18 ? -1 : 1]; + int aDc[__alignof__(Dc) != 2 ? -1 : 1]; + + #pragma pack(pop) diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/darwin-structs-0.h gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/darwin-structs-0.h *** gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/darwin-structs-0.h Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/darwin-structs-0.h Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,29 ---- + typedef struct _cd { + char c; + double d; + } cd; + + typedef struct _dc { + double d; + char c; + } dc; + + typedef struct _cL { + char c; + long long L; + } cL; + + typedef struct _Lc { + long long L; + char c; + } Lc; + + typedef struct _cD { + char c; + long double D; + } cD; + + typedef struct _Dc { + long double D; + char c; + } Dc; diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/fusion-p10-ldcmpi.c gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/fusion-p10-ldcmpi.c *** gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/fusion-p10-ldcmpi.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/fusion-p10-ldcmpi.c Fri Jul 19 05:52:46 2024 *************** TEST(uint8_t) *** 54,68 **** TEST(int8_t) /* { dg-final { scan-assembler-times "lbz_cmpldi_cr0_QI_clobber_CCUNS_zero" 4 { target lp64 } } } */ ! /* { dg-final { scan-assembler-times "ld_cmpdi_cr0_DI_DI_CC_none" 4 { target lp64 } } } */ ! /* { dg-final { scan-assembler-times "ld_cmpdi_cr0_DI_clobber_CC_none" 4 { target lp64 } } } */ ! /* { dg-final { scan-assembler-times "ld_cmpldi_cr0_DI_DI_CCUNS_none" 1 { target lp64 } } } */ ! /* { dg-final { scan-assembler-times "ld_cmpldi_cr0_DI_clobber_CCUNS_none" 1 { target lp64 } } } */ /* { dg-final { scan-assembler-times "lha_cmpdi_cr0_HI_clobber_CC_sign" 16 { target lp64 } } } */ /* { dg-final { scan-assembler-times "lhz_cmpldi_cr0_HI_clobber_CCUNS_zero" 4 { target lp64 } } } */ /* { dg-final { scan-assembler-times "lwa_cmpdi_cr0_SI_EXTSI_CC_sign" 0 { target lp64 } } } */ ! /* { dg-final { scan-assembler-times "lwa_cmpdi_cr0_SI_clobber_CC_none" 4 { target lp64 } } } */ /* { dg-final { scan-assembler-times "lwz_cmpldi_cr0_SI_EXTSI_CCUNS_zero" 0 { target lp64 } } } */ /* { dg-final { scan-assembler-times "lwz_cmpldi_cr0_SI_clobber_CCUNS_none" 2 { target lp64 } } } */ /* { dg-final { scan-assembler-times "lbz_cmpldi_cr0_QI_clobber_CCUNS_zero" 2 { target ilp32 } } } */ --- 54,70 ---- TEST(int8_t) /* { dg-final { scan-assembler-times "lbz_cmpldi_cr0_QI_clobber_CCUNS_zero" 4 { target lp64 } } } */ ! /* { dg-final { scan-assembler-times "ld_cmpdi_cr0_DI_DI_CC_none" 24 { target lp64 } } } */ ! /* { dg-final { scan-assembler-times "ld_cmpdi_cr0_DI_clobber_CC_none" 8 { target lp64 } } } */ ! /* { dg-final { scan-assembler-times "ld_cmpldi_cr0_DI_DI_CCUNS_none" 2 { target lp64 } } } */ ! /* { dg-final { scan-assembler-times "ld_cmpldi_cr0_DI_clobber_CCUNS_none" 2 { target lp64 } } } */ /* { dg-final { scan-assembler-times "lha_cmpdi_cr0_HI_clobber_CC_sign" 16 { target lp64 } } } */ /* { dg-final { scan-assembler-times "lhz_cmpldi_cr0_HI_clobber_CCUNS_zero" 4 { target lp64 } } } */ /* { dg-final { scan-assembler-times "lwa_cmpdi_cr0_SI_EXTSI_CC_sign" 0 { target lp64 } } } */ ! /* { dg-final { scan-assembler-times "lwz_cmpwi_cr0_SI_clobber_CC_none" 8 { target lp64 } } } */ ! /* { dg-final { scan-assembler-times "lwz_cmpwi_cr0_SI_SI_CC_none" 8 { target lp64 } } } */ /* { dg-final { scan-assembler-times "lwz_cmpldi_cr0_SI_EXTSI_CCUNS_zero" 0 { target lp64 } } } */ + /* { dg-final { scan-assembler-times "lwz_cmpldi_cr0_SI_SI_CCUNS_none" 2 { target lp64 } } } */ /* { dg-final { scan-assembler-times "lwz_cmpldi_cr0_SI_clobber_CCUNS_none" 2 { target lp64 } } } */ /* { dg-final { scan-assembler-times "lbz_cmpldi_cr0_QI_clobber_CCUNS_zero" 2 { target ilp32 } } } */ *************** TEST(int8_t) *** 73,78 **** /* { dg-final { scan-assembler-times "lha_cmpdi_cr0_HI_clobber_CC_sign" 8 { target ilp32 } } } */ /* { dg-final { scan-assembler-times "lhz_cmpldi_cr0_HI_clobber_CCUNS_zero" 2 { target ilp32 } } } */ /* { dg-final { scan-assembler-times "lwa_cmpdi_cr0_SI_EXTSI_CC_sign" 0 { target ilp32 } } } */ ! /* { dg-final { scan-assembler-times "lwa_cmpdi_cr0_SI_clobber_CC_none" 9 { target ilp32 } } } */ /* { dg-final { scan-assembler-times "lwz_cmpldi_cr0_SI_EXTSI_CCUNS_zero" 0 { target ilp32 } } } */ /* { dg-final { scan-assembler-times "lwz_cmpldi_cr0_SI_clobber_CCUNS_none" 6 { target ilp32 } } } */ --- 75,82 ---- /* { dg-final { scan-assembler-times "lha_cmpdi_cr0_HI_clobber_CC_sign" 8 { target ilp32 } } } */ /* { dg-final { scan-assembler-times "lhz_cmpldi_cr0_HI_clobber_CCUNS_zero" 2 { target ilp32 } } } */ /* { dg-final { scan-assembler-times "lwa_cmpdi_cr0_SI_EXTSI_CC_sign" 0 { target ilp32 } } } */ ! /* { dg-final { scan-assembler-times "lwz_cmpwi_cr0_SI_SI_CC_none" 36 { target ilp32 } } } */ ! /* { dg-final { scan-assembler-times "lwz_cmpwi_cr0_SI_clobber_CC_none" 16 { target ilp32 } } } */ /* { dg-final { scan-assembler-times "lwz_cmpldi_cr0_SI_EXTSI_CCUNS_zero" 0 { target ilp32 } } } */ /* { dg-final { scan-assembler-times "lwz_cmpldi_cr0_SI_clobber_CCUNS_none" 6 { target ilp32 } } } */ + /* { dg-final { scan-assembler-times "lwz_cmpldi_cr0_SI_SI_CCUNS_none" 2 { target ilp32 } } } */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/mod-1.c gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/mod-1.c *** gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/mod-1.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/mod-1.c Fri Jul 19 05:52:46 2024 *************** long lsmod (long a, long b) { return a%b *** 7,19 **** unsigned int iumod (unsigned int a, unsigned int b) { return a%b; } unsigned long lumod (unsigned long a, unsigned long b) { return a%b; } ! /* { dg-final { scan-assembler-times "modsw " 1 } } */ ! /* { dg-final { scan-assembler-times "modsd " 1 } } */ ! /* { dg-final { scan-assembler-times "moduw " 1 } } */ ! /* { dg-final { scan-assembler-times "modud " 1 } } */ ! /* { dg-final { scan-assembler-not "mullw " } } */ ! /* { dg-final { scan-assembler-not "mulld " } } */ ! /* { dg-final { scan-assembler-not "divw " } } */ ! /* { dg-final { scan-assembler-not "divd " } } */ ! /* { dg-final { scan-assembler-not "divwu " } } */ ! /* { dg-final { scan-assembler-not "divdu " } } */ --- 7,20 ---- unsigned int iumod (unsigned int a, unsigned int b) { return a%b; } unsigned long lumod (unsigned long a, unsigned long b) { return a%b; } ! /* { Fail due to RS6000_DISABLE_SCALAR_MODULO. */ ! /* { dg-final { scan-assembler-times {\mmodsw\M} 1 { xfail *-*-* } } } */ ! /* { dg-final { scan-assembler-times {\mmodsd\M} 1 { xfail *-*-* } } } */ ! /* { dg-final { scan-assembler-times {\mmoduw\M} 1 { xfail *-*-* } } } */ ! /* { dg-final { scan-assembler-times {\mmodud\M} 1 { xfail *-*-* } } } */ ! /* { dg-final { scan-assembler-not {\mmullw\M} { xfail *-*-* } } } */ ! /* { dg-final { scan-assembler-not {\mmulld\M} { xfail *-*-* } } } */ ! /* { dg-final { scan-assembler-not {\mdivw\M} { xfail *-*-* } } } */ ! /* { dg-final { scan-assembler-not {\mdivd\M} { xfail *-*-* } } } */ ! /* { dg-final { scan-assembler-not {\mdivwu\M} { xfail *-*-* } } } */ ! /* { dg-final { scan-assembler-not {\mdivdu\M} { xfail *-*-* } } } */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/mod-2.c gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/mod-2.c *** gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/mod-2.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/mod-2.c Fri Jul 19 05:52:46 2024 *************** *** 5,12 **** int ismod (int a, int b) { return a%b; } unsigned int iumod (unsigned int a, unsigned int b) { return a%b; } ! /* { dg-final { scan-assembler-times "modsw " 1 } } */ ! /* { dg-final { scan-assembler-times "moduw " 1 } } */ ! /* { dg-final { scan-assembler-not "mullw " } } */ ! /* { dg-final { scan-assembler-not "divw " } } */ ! /* { dg-final { scan-assembler-not "divwu " } } */ --- 5,13 ---- int ismod (int a, int b) { return a%b; } unsigned int iumod (unsigned int a, unsigned int b) { return a%b; } ! /* { Fail due to RS6000_DISABLE_SCALAR_MODULO. */ ! /* { dg-final { scan-assembler-times {\mmodsw\M} 1 { xfail *-*-* } } } */ ! /* { dg-final { scan-assembler-times {\mmoduw\M} 1 { xfail *-*-* } } } */ ! /* { dg-final { scan-assembler-not {\mmullw\M} { xfail *-*-* } } } */ ! /* { dg-final { scan-assembler-not {\mdivw\M} { xfail *-*-* } } } */ ! /* { dg-final { scan-assembler-not {\mdivwu\M} { xfail *-*-* } } } */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p10-vdivq-vmodq.c gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/p10-vdivq-vmodq.c *** gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/p10-vdivq-vmodq.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/p10-vdivq-vmodq.c Fri Jul 19 05:52:46 2024 *************** __int128 s_mod(__int128 a, __int128 b) *** 23,27 **** /* { dg-final { scan-assembler {\mvdivsq\M} } } */ /* { dg-final { scan-assembler {\mvdivuq\M} } } */ ! /* { dg-final { scan-assembler {\mvmodsq\M} } } */ ! /* { dg-final { scan-assembler {\mvmoduq\M} } } */ --- 23,28 ---- /* { dg-final { scan-assembler {\mvdivsq\M} } } */ /* { dg-final { scan-assembler {\mvdivuq\M} } } */ ! /* { Fail due to RS6000_DISABLE_SCALAR_MODULO. */ ! /* { dg-final { scan-assembler {\mvmodsq\M} { xfail *-*-* } } } */ ! /* { dg-final { scan-assembler {\mvmoduq\M} { xfail *-*-* } } } */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr109932-1.c gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/pr109932-1.c *** gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr109932-1.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/pr109932-1.c Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,17 ---- + /* { dg-require-effective-target int128 } */ + /* { dg-require-effective-target powerpc_altivec_ok } */ + /* { dg-options "-maltivec -mno-vsx" } */ + + /* Verify there is no ICE but one expected error message instead. */ + + #include + + extern vector signed __int128 res_vslll; + extern unsigned long long aull[2]; + + void + testVectorInt128Pack () + { + res_vslll = __builtin_pack_vector_int128 (aull[0], aull[1]); /* { dg-error "'__builtin_pack_vector_int128' requires the '-mvsx' option" } */ + } + diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr109932-2.c gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/pr109932-2.c *** gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr109932-2.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/pr109932-2.c Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,17 ---- + /* { dg-require-effective-target int128 } */ + /* { dg-require-effective-target powerpc_altivec_ok } */ + /* { dg-options "-maltivec -mno-vsx" } */ + + /* Verify there is no ICE but one expected error message instead. */ + + #include + + extern vector signed __int128 res_vslll; + extern unsigned long long aull[2]; + + void + testVectorInt128Pack () + { + res_vslll = __builtin_pack_vector_int128 (aull[0], aull[1]); /* { dg-error "'__builtin_pack_vector_int128' requires the '-mvsx' option" } */ + } + diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr110011.c gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/pr110011.c *** gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr110011.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/pr110011.c Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,42 ---- + /* { dg-do run } */ + /* { dg-require-effective-target float128_runtime } */ + /* Force long double to be with IBM format here, to verify + _Float128 constant still uses its own format (IEEE) for + encoding rather than IBM format. */ + /* { dg-options "-mfp-in-toc -mabi=ibmlongdouble" } */ + /* { dg-add-options float128 } */ + + #define MPFR_FLOAT128_MAX 0x1.ffffffffffffffffffffffffffffp+16383f128 + + __attribute__ ((noipa)) + _Float128 f128_max () + { + return MPFR_FLOAT128_MAX; + } + + typedef union + { + int w[4]; + _Float128 f128; + } U; + + int main () + { + + U umax; + umax.f128 = f128_max (); + /* ieee float128 max: + 7ffeffff ffffffff ffffffff ffffffff. */ + if (umax.w[1] != 0xffffffff || umax.w[2] != 0xffffffff) + __builtin_abort (); + #ifdef __LITTLE_ENDIAN__ + if (umax.w[0] != 0xffffffff || umax.w[3] != 0x7ffeffff) + __builtin_abort (); + #else + if (umax.w[3] != 0xffffffff || umax.w[0] != 0x7ffeffff) + __builtin_abort (); + #endif + + return 0; + } + diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr110411-1.c gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/pr110411-1.c *** gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr110411-1.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/pr110411-1.c Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,21 ---- + /* PR target/110411 */ + /* { dg-options "-O2 -mdejagnu-cpu=power10 -mblock-ops-vector-pair" } */ + + /* Verify we do not ICE on the following. */ + + #include + + struct s { + long a; + long b; + long c; + long d: 1; + }; + unsigned long ptr; + + void + bug (struct s *dst) + { + struct s *src = (struct s *)(ptr & ~0xFUL); + memcpy (dst, src, sizeof(struct s)); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr110411-2.c gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/pr110411-2.c *** gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr110411-2.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/pr110411-2.c Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,12 ---- + /* PR target/110411 */ + /* { dg-require-effective-target power10_ok } */ + /* { dg-options "-O2 -mdejagnu-cpu=power10" } */ + + /* Verify we do not ICE on the following. */ + + void + bug (__vector_quad *dst) + { + dst = (__vector_quad *)((unsigned long)dst & ~0xFUL); + __builtin_mma_xxsetaccz (dst); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr114846.c gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/pr114846.c *** gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr114846.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/pr114846.c Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,20 ---- + /* { dg-do run } */ + /* { dg-require-effective-target builtin_eh_return } */ + + /* Ensure it runs successfully. */ + + __attribute__ ((noipa)) + int f (int *a, long offset, void *handler) + { + if (*a == 5) + return 5; + __builtin_eh_return (offset, handler); + } + + int main () + { + int t = 5; + if (f (&t, 0, 0) != 5) + __builtin_abort (); + return 0; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr88309.c gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/pr88309.c *** gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr88309.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/pr88309.c Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,27 ---- + /* { dg-require-effective-target powerpc_vsx_ok } */ + /* { dg-options "-mvsx -O2 -fprefetch-loop-arrays" } */ + + /* Verify there is no ICE or hanging. */ + + #include + + void b(float *c, vector float a, vector float, vector float) + { + vector float d; + vector char ahbc; + vec_xst(vec_perm(a, d, ahbc), 0, c); + } + + vector float e(vector unsigned); + + void f() { + float *dst; + int g = 0; + for (;; g += 16) { + vector unsigned m, i; + vector unsigned n, j; + vector unsigned k, l; + b(dst + g * 3, e(m), e(n), e(k)); + b(dst + (g + 4) * 3, e(i), e(j), e(l)); + } + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr96762.c gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/pr96762.c *** gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/pr96762.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/pr96762.c Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,13 ---- + /* { dg-do compile } */ + /* { dg-options "-O2 -mdejagnu-cpu=power10" } */ + + /* Verify there is no ICE on ilp32 env. */ + + extern void foo (char *); + + void + bar (void) + { + char zj[] = "XXXXXXXXXXXXXXXX"; + foo (zj); + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/predefine-p7-novsx.c gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/predefine-p7-novsx.c *** gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/predefine-p7-novsx.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/predefine-p7-novsx.c Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,22 ---- + /* PR target/101865 */ + /* { dg-do preprocess } */ + /* { dg-options "-mdejagnu-cpu=power7 -mno-vsx" } */ + + /* Verify we correctly set the correct set of predefined macros + for the given set of options. */ + + #ifndef _ARCH_PWR7 + #error "_ARCH_PWR7 should be defined for this test" + #endif + + #ifndef __ALTIVEC__ + #error "__ALTIVEC__ should be defined for this test" + #endif + + #ifdef _ARCH_PWR8 + #error "_ARCH_PWR8 should not be defined for this test" + #endif + + #ifdef __VSX__ + #error "__VSX__ should not be defined for this test" + #endif diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/predefine-p8-noaltivec-novsx.c gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/predefine-p8-noaltivec-novsx.c *** gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/predefine-p8-noaltivec-novsx.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/predefine-p8-noaltivec-novsx.c Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,26 ---- + /* PR target/101865 */ + /* { dg-do preprocess } */ + /* { dg-options "-mdejagnu-cpu=power8 -mno-altivec -mno-vsx" } */ + + /* Verify _ARCH_PWR8 is defined for -mcpu=power8 and after disabling + both altivec and vsx. */ + + #ifndef _ARCH_PWR7 + #error "_ARCH_PWR7 should be defined for this test" + #endif + + #ifndef _ARCH_PWR8 + #error "_ARCH_PWR8 should be defined for this test" + #endif + + #ifdef _ARCH_PWR9 + #error "_ARCH_PWR9 should not be defined for this test" + #endif + + #ifdef __ALTIVEC__ + #error "__ALTIVEC__ should not be defined for this test" + #endif + + #ifdef __VSX__ + #error "__VSX__ should not be defined for this test" + #endif diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/predefine-p8-noaltivec.c gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/predefine-p8-noaltivec.c *** gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/predefine-p8-noaltivec.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/predefine-p8-noaltivec.c Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,26 ---- + /* PR target/101865 */ + /* { dg-do preprocess } */ + /* { dg-options "-mdejagnu-cpu=power8 -mno-altivec -w" } */ + + /* Verify _ARCH_PWR8 is defined for -mcpu=power8 and after disabling altivec. + The -w option is used to silence the -mno-altivec disables -mvsx warning. */ + + #ifndef _ARCH_PWR7 + #error "_ARCH_PWR7 should be defined for this test" + #endif + + #ifndef _ARCH_PWR8 + #error "_ARCH_PWR8 should be defined for this test" + #endif + + #ifdef _ARCH_PWR9 + #error "_ARCH_PWR9 should not be defined for this test" + #endif + + #ifdef __ALTIVEC__ + #error "__ALTIVEC__ should not be defined for this test" + #endif + + #ifdef __VSX__ + #error "__VSX__ should not be defined for this test" + #endif diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/predefine-p8-novsx.c gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/predefine-p8-novsx.c *** gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/predefine-p8-novsx.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/predefine-p8-novsx.c Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,26 ---- + /* PR target/101865 */ + /* { dg-do preprocess } */ + /* { dg-options "-mdejagnu-cpu=power8 -mno-vsx" } */ + + /* Verify _ARCH_PWR8 is defined for -mcpu=power8 and after disabling vsx. + This also confirms __ALTIVEC__ remains set when VSX is disabled. */ + + #ifndef _ARCH_PWR7 + #error "_ARCH_PWR7 should be defined for this test" + #endif + + #ifndef _ARCH_PWR8 + #error "_ARCH_PWR8 should be defined for this test" + #endif + + #ifndef __ALTIVEC__ + #error "__ALTIVEC__ should be defined for this test" + #endif + + #ifdef _ARCH_PWR9 + #error "_ARCH_PWR9 should not be defined for this test" + #endif + + #ifdef __VSX__ + #error "__VSX__ should not be defined for this test" + #endif diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/predefine-p8-pragma-vsx.c gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/predefine-p8-pragma-vsx.c *** gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/predefine-p8-pragma-vsx.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/predefine-p8-pragma-vsx.c Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,101 ---- + /* PR target/101865 */ + /* { dg-do run } */ + /* { dg-require-effective-target p8vector_hw } */ + /* { dg-options "-mdejagnu-cpu=power8 -mvsx" } */ + + /* Verify we correctly set our predefined macros in the face of #pragma usage. */ + + #include + #include + + volatile int power8_set; + volatile int vsx_set; + + void + test_default (void) + { + #ifdef _ARCH_PWR8 + power8_set=1; + #else + power8_set=0; + #endif + #ifdef __VSX__ + vsx_set=1; + #else + vsx_set=0; + #endif + } + + #pragma GCC target "no-vsx" + void + test_no_vsx (void) + { + #ifdef _ARCH_PWR8 + power8_set=1; + #else + power8_set=0; + #endif + #ifdef __VSX__ + vsx_set=1; + #else + vsx_set=0; + #endif + } + + #pragma GCC reset_options + void + test_reset_options (void) + { + #ifdef _ARCH_PWR8 + power8_set=1; + #else + power8_set=0; + #endif + #ifdef __VSX__ + vsx_set=1; + #else + vsx_set=0; + #endif + } + + int + main (void) + { + test_default (); + if (!power8_set) + { + printf ("_ARCH_PWR8 is not set.\n"); + abort (); + } + if (!vsx_set) + { + printf ("__VSX__ is not set.\n"); + abort (); + } + + test_no_vsx (); + if (!power8_set) + { + printf ("_ARCH_PWR8 is not set.\n"); + abort (); + } + if (vsx_set) + { + printf ("__VSX__ is unexpectedly set.\n"); + abort (); + } + + test_reset_options (); + if (!power8_set) + { + printf ("_ARCH_PWR8 is not set.\n"); + abort (); + } + if (!vsx_set) + { + printf ("__VSX__ is not set.\n"); + abort (); + } + + return 0; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/predefine-p9-novsx.c gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/predefine-p9-novsx.c *** gcc-11.4.0/gcc/testsuite/gcc.target/powerpc/predefine-p9-novsx.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/powerpc/predefine-p9-novsx.c Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,26 ---- + /* PR target/101865 */ + /* { dg-do preprocess } */ + /* { dg-options "-mdejagnu-cpu=power9 -mno-vsx" } */ + + /* Verify _ARCH_PWR8 is defined for -mcpu=power9 and after disabling vsx. + This also confirms __ALTIVEC__ remains set when VSX is disabled. */ + + #ifndef _ARCH_PWR7 + #error "_ARCH_PWR7 should be defined for this test" + #endif + + #ifndef _ARCH_PWR8 + #error "_ARCH_PWR8 should be defined for this test" + #endif + + #ifndef _ARCH_PWR9 + #error "_ARCH_PWR9 should be defined for this test" + #endif + + #ifndef __ALTIVEC__ + #error "__ALTIVEC__ should be defined for this test" + #endif + + #ifdef __VSX__ + #error "__VSX__ should not be defined for this test" + #endif diff -Nrcpad gcc-11.4.0/gcc/testsuite/gcc.target/riscv/pr114130.c gcc-11.5.0/gcc/testsuite/gcc.target/riscv/pr114130.c *** gcc-11.4.0/gcc/testsuite/gcc.target/riscv/pr114130.c Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gcc.target/riscv/pr114130.c Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,12 ---- + /* { dg-do compile } */ + /* { dg-options "-march=rv64gc -mabi=lp64 -O" } */ + #include + + void foo(uint32_t *p) { + uintptr_t x = *(uintptr_t *)p; + uint32_t e = !p ? 0 : (uintptr_t)p >> 1; + uint32_t d = (uintptr_t)x; + __atomic_compare_exchange(p, &e, &d, 0, __ATOMIC_RELAXED, __ATOMIC_RELAXED); + } + + /* { dg-final { scan-assembler-times "sext.w\t" 1 } } */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/gdc.dg/imports/pr113125.d gcc-11.5.0/gcc/testsuite/gdc.dg/imports/pr113125.d *** gcc-11.4.0/gcc/testsuite/gdc.dg/imports/pr113125.d Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gdc.dg/imports/pr113125.d Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,2 ---- + module imports.pr113125; + struct S113125; diff -Nrcpad gcc-11.4.0/gcc/testsuite/gdc.dg/pr108842.d gcc-11.5.0/gcc/testsuite/gdc.dg/pr108842.d *** gcc-11.4.0/gcc/testsuite/gdc.dg/pr108842.d Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gdc.dg/pr108842.d Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,4 ---- + // { dg-do compile } + // { dg-options "-fno-rtti" } + module object; + enum int[] x = [0, 1, 2]; diff -Nrcpad gcc-11.4.0/gcc/testsuite/gdc.dg/pr110359.d gcc-11.5.0/gcc/testsuite/gdc.dg/pr110359.d *** gcc-11.4.0/gcc/testsuite/gdc.dg/pr110359.d Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gdc.dg/pr110359.d Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,22 ---- + // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110359 + // { dg-do compile } + // { dg-options "-fdump-tree-original" } + double pow(in double x, in ulong p) + { + import gcc.builtins : __builtin_expect; + if (__builtin_expect(p == 0, false)) + return 1; + if (__builtin_expect(p == 1, false)) + return x; + + double s = x; + double v = 1; + for (ulong i = p; i > 1; i >>= 1) + { + v = (i & 0x1) ? s * v : v; + s = s * s; + } + return v * s; + } + // { dg-final { scan-tree-dump "if \\(__builtin_expect \\(p == 0, 0\\) != 0\\)" "original" } } + // { dg-final { scan-tree-dump "if \\(__builtin_expect \\(p == 1, 0\\) != 0\\)" "original" } } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gdc.dg/pr113125.d gcc-11.5.0/gcc/testsuite/gdc.dg/pr113125.d *** gcc-11.4.0/gcc/testsuite/gdc.dg/pr113125.d Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gdc.dg/pr113125.d Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,4 ---- + // { dg-do compile } + // { dg-options "-I $srcdir/gdc.dg" } + module pr113125; + import imports.pr113125: S113125; diff -Nrcpad gcc-11.4.0/gcc/testsuite/gdc.dg/pr98277.d gcc-11.5.0/gcc/testsuite/gdc.dg/pr98277.d *** gcc-11.4.0/gcc/testsuite/gdc.dg/pr98277.d Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/gdc.dg/pr98277.d Fri Jul 19 05:52:46 2024 *************** ref int getSide(Side side, ref int left, *** 11,13 **** --- 11,24 ---- { return side == Side.left ? left : right; } + + enum SideA : int[] + { + left = [0], + right = [1], + } + + int getSideA(SideA side, ref int left, ref int right) + { + return side == SideA.left ? left : right; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gdc.dg/torture/pr110516a.d gcc-11.5.0/gcc/testsuite/gdc.dg/torture/pr110516a.d *** gcc-11.4.0/gcc/testsuite/gdc.dg/torture/pr110516a.d Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gdc.dg/torture/pr110516a.d Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,12 ---- + // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110516 + // { dg-do compile } + // { dg-options "-fno-moduleinfo -fdump-tree-optimized" } + void fn110516(ubyte* ptr) + { + import core.volatile : volatileLoad; + volatileLoad(ptr); + volatileLoad(ptr); + volatileLoad(ptr); + volatileLoad(ptr); + } + // { dg-final { scan-tree-dump-times " ={v} " 4 "optimized" } } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gdc.dg/torture/pr110516b.d gcc-11.5.0/gcc/testsuite/gdc.dg/torture/pr110516b.d *** gcc-11.4.0/gcc/testsuite/gdc.dg/torture/pr110516b.d Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gdc.dg/torture/pr110516b.d Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,12 ---- + // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110516 + // { dg-do compile } + // { dg-options "-fno-moduleinfo -fdump-tree-optimized" } + void fn110516(ubyte* ptr) + { + import core.volatile : volatileStore; + volatileStore(ptr, 0); + volatileStore(ptr, 0); + volatileStore(ptr, 0); + volatileStore(ptr, 0); + } + // { dg-final { scan-tree-dump-times " ={v} " 4 "optimized" } } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gdc.dg/torture/pr113758.d gcc-11.5.0/gcc/testsuite/gdc.dg/torture/pr113758.d *** gcc-11.4.0/gcc/testsuite/gdc.dg/torture/pr113758.d Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gdc.dg/torture/pr113758.d Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,19 ---- + // { dg-do run } + // { dg-skip-if "needs gcc/config.d" { ! d_runtime } } + struct S113758 + { + int field; + ~this() { field = 0; } + } + + void main() + { + auto var = S113758(1); + f113758d(var); + assert(var.field == 1); + f113758cxx(var); + assert(var.field == 1); + } + + extern (D) void f113758d(S113758 arg) { } + extern (C++) void f113758cxx(S113758 arg) { } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gdc.dg/torture/pr114171.d gcc-11.5.0/gcc/testsuite/gdc.dg/torture/pr114171.d *** gcc-11.4.0/gcc/testsuite/gdc.dg/torture/pr114171.d Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gdc.dg/torture/pr114171.d Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,29 ---- + // { dg-do run } + // { dg-additional-options "-mavx" { target avx_runtime } } + // { dg-skip-if "needs gcc/config.d" { ! d_runtime } } + import gcc.builtins; + + struct S1 + { + string label; + } + + struct S2 + { + ulong pad; + S1 label; + } + + pragma(inline, false) + auto newitem() + { + void *p = __builtin_malloc(S2.sizeof); + __builtin_memset(p, 0, S2.sizeof); + return cast(S2*) p; + } + + int main() + { + auto bn = newitem(); + return bn.label is S1.init ? 0 : 1; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gdc.test/compilable/test21794.d gcc-11.5.0/gcc/testsuite/gdc.test/compilable/test21794.d *** gcc-11.4.0/gcc/testsuite/gdc.test/compilable/test21794.d Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gdc.test/compilable/test21794.d Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,52 ---- + // https://issues.dlang.org/show_bug.cgi?id=21794 + /* + TEST_OUTPUT: + --- + 0 + 0u + 0L + 0LU + 0.0F + 0.0 + 0.0L + --- + */ + + bool fun(void* p) { + const x = cast(ulong)p; + return 1; + } + + static assert(fun(null)); + + T fun2(T)(void* p) { + const x = cast(T)p; + return x; + } + + // These were an error before, they were returning a NullExp instead of IntegerExp/RealExp + + static assert(fun2!int(null) == 0); + static assert(fun2!uint(null) == 0); + static assert(fun2!long(null) == 0); + static assert(fun2!ulong(null) == 0); + static assert(fun2!float(null) == 0); + static assert(fun2!double(null) == 0); + static assert(fun2!real(null) == 0); + + // These were printing 'null' instead of the corresponding number + + const i = cast(int)null; + const ui = cast(uint)null; + const l = cast(long)null; + const ul = cast(ulong)null; + const f = cast(float)null; + const d = cast(double)null; + const r = cast(real)null; + pragma(msg, i); + pragma(msg, ui); + pragma(msg, l); + pragma(msg, ul); + pragma(msg, f); + pragma(msg, d); + pragma(msg, r); diff -Nrcpad gcc-11.4.0/gcc/testsuite/gfortran.dg/allocate_with_mold_4.f90 gcc-11.5.0/gcc/testsuite/gfortran.dg/allocate_with_mold_4.f90 *** gcc-11.4.0/gcc/testsuite/gfortran.dg/allocate_with_mold_4.f90 Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gfortran.dg/allocate_with_mold_4.f90 Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,24 ---- + program A_M + implicit none + real, parameter :: C(5:10) = 5.0 + real, dimension (:), allocatable :: A, B + allocate (A(6)) + call Init (A) + contains + subroutine Init ( A ) + real, dimension ( -1 : ), intent ( in ) :: A + integer, dimension ( 1 ) :: lb_B + + allocate (B, mold = A) + if (any (lbound (B) /= lbound (A))) stop 1 + if (any (ubound (B) /= ubound (A))) stop 2 + if (any (shape (B) /= shape (A))) stop 3 + if (size (B) /= size (A)) stop 4 + deallocate (B) + allocate (B, mold = C) + if (any (lbound (B) /= lbound (C))) stop 5 + if (any (ubound (B) /= ubound (C))) stop 6 + if (any (shape (B) /= shape (C))) stop 7 + if (size (B) /= size (C)) stop 8 + end + end diff -Nrcpad gcc-11.4.0/gcc/testsuite/gfortran.dg/allocate_with_source_26.f90 gcc-11.5.0/gcc/testsuite/gfortran.dg/allocate_with_source_26.f90 *** gcc-11.4.0/gcc/testsuite/gfortran.dg/allocate_with_source_26.f90 Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/gfortran.dg/allocate_with_source_26.f90 Fri Jul 19 05:52:46 2024 *************** program p *** 34,56 **** if (lbound(p1, 1) /= 3 .or. ubound(p1, 1) /= 4 & .or. lbound(p2, 1) /= 3 .or. ubound(p2, 1) /= 4 & .or. lbound(p3, 1) /= 1 .or. ubound(p3, 1) /= 2 & ! .or. lbound(p4, 1) /= 7 .or. ubound(p4, 1) /= 8 & .or. p1(3)%i /= 43 .or. p1(4)%i /= 56 & .or. p2(3)%i /= 43 .or. p2(4)%i /= 56 & .or. p3(1)%i /= 43 .or. p3(2)%i /= 56 & ! .or. p4(7)%i /= 11 .or. p4(8)%i /= 12) then call abort() endif !write(*,*) lbound(a,1), ubound(a,1) ! prints 1 3 !write(*,*) lbound(b,1), ubound(b,1) ! prints 1 3 ! !write(*,*) lbound(c,1), ubound(c,1) ! prints 3 5 !write(*,*) lbound(d,1), ubound(d,1) ! prints 1 5 !write(*,*) lbound(e,1), ubound(e,1) ! prints 1 6 if (lbound(a,1) /= 1 .or. ubound(a,1) /= 3 & .or. lbound(b,1) /= 1 .or. ubound(b,1) /= 3 & ! .or. lbound(c,1) /= 3 .or. ubound(c,1) /= 5 & .or. lbound(d,1) /= 1 .or. ubound(d,1) /= 5 & .or. lbound(e,1) /= 1 .or. ubound(e,1) /= 6) then call abort() --- 34,56 ---- if (lbound(p1, 1) /= 3 .or. ubound(p1, 1) /= 4 & .or. lbound(p2, 1) /= 3 .or. ubound(p2, 1) /= 4 & .or. lbound(p3, 1) /= 1 .or. ubound(p3, 1) /= 2 & ! .or. lbound(p4, 1) /= 1 .or. ubound(p4, 1) /= 2 & .or. p1(3)%i /= 43 .or. p1(4)%i /= 56 & .or. p2(3)%i /= 43 .or. p2(4)%i /= 56 & .or. p3(1)%i /= 43 .or. p3(2)%i /= 56 & ! .or. p4(1)%i /= 11 .or. p4(2)%i /= 12) then call abort() endif !write(*,*) lbound(a,1), ubound(a,1) ! prints 1 3 !write(*,*) lbound(b,1), ubound(b,1) ! prints 1 3 ! !write(*,*) lbound(c,1), ubound(c,1) ! prints 1 3 !write(*,*) lbound(d,1), ubound(d,1) ! prints 1 5 !write(*,*) lbound(e,1), ubound(e,1) ! prints 1 6 if (lbound(a,1) /= 1 .or. ubound(a,1) /= 3 & .or. lbound(b,1) /= 1 .or. ubound(b,1) /= 3 & ! .or. lbound(c,1) /= 1 .or. ubound(c,1) /= 3 & .or. lbound(d,1) /= 1 .or. ubound(d,1) /= 5 & .or. lbound(e,1) /= 1 .or. ubound(e,1) /= 6) then call abort() diff -Nrcpad gcc-11.4.0/gcc/testsuite/gfortran.dg/data_initialized_4.f90 gcc-11.5.0/gcc/testsuite/gfortran.dg/data_initialized_4.f90 *** gcc-11.4.0/gcc/testsuite/gfortran.dg/data_initialized_4.f90 Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gfortran.dg/data_initialized_4.f90 Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,16 ---- + ! { dg-do compile } + ! { dg-additional-options "-std=legacy" } + ! + ! PR fortran/50410 + ! + ! Silently allow overlapping initialization in legacy mode (used to ICE) + + program p + implicit none + type t + integer :: g = 1 + end type t + type(t) :: u = t(2) + data u%g /3/ + print *, u ! this might print "2" + end diff -Nrcpad gcc-11.4.0/gcc/testsuite/gfortran.dg/data_pointer_3.f90 gcc-11.5.0/gcc/testsuite/gfortran.dg/data_pointer_3.f90 *** gcc-11.4.0/gcc/testsuite/gfortran.dg/data_pointer_3.f90 Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gfortran.dg/data_pointer_3.f90 Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,77 ---- + ! { dg-do compile } + ! PR fortran/114474 - DATA and derived types with pointer components + + program pr114474 + implicit none + integer, target :: ii = 42 ! initial data target + + integer, target :: jj = 24 + integer, pointer :: qq => jj + ! ii and jj resolve slightly differently when the data statement below + ! is reached, as jj is resolved outside the structure constructor first + + type t + integer, pointer :: h + end type t + + integer, target :: kk(7) = 23 + integer, pointer :: ll(:) => kk + + type t1 + integer :: m(7) + end type t1 + + type(t) :: x1, x2, x3, x4, x5 + type(t), parameter :: z1 = t(null()) + + type(t1), target :: tt = t1([1,2,3,4,5,6,7]) + type(t1), parameter :: vv = t1(22) + type(t1) :: w1, w2 + integer, pointer :: p1(:) => tt% m + + data x1 / t(null()) / + data x2 / t(ii) / ! ii is initial data target + data x3 / t(jj) / ! jj is resolved differently... + data x4 / t(tt%m(3)) / ! pointer association with 3rd element + + data w1 / t1(12) / + data w2 / t1(vv%m) / + + if ( associated (x1% h)) stop 1 + if (.not. associated (x2% h)) stop 2 + if (.not. associated (x3% h)) stop 3 + if (.not. associated (x4% h)) stop 4 + if (x2% h /= 42) stop 5 + if (x3% h /= 24) stop 6 + if (x4% h /= 3) stop 7 + + if (any (w1%m /= 12 )) stop 8 + if (any (w2%m /= vv%m)) stop 9 + end + + + subroutine sub + implicit none + + interface + real function myfun (x) + real, intent(in) :: x + end function myfun + end interface + + type u + procedure(myfun), pointer, nopass :: p + end type u + + type(u) :: u3 = u(null()) + type(u), parameter :: u4 = u(null()) + type(u) :: u1, u2 + + data u1 / u(null()) / + data u2 / u(myfun) / + end + + real function myfun (x) + real, intent(in) :: x + myfun = x + end function myfun diff -Nrcpad gcc-11.4.0/gcc/testsuite/gfortran.dg/deferred_character_37.f90 gcc-11.5.0/gcc/testsuite/gfortran.dg/deferred_character_37.f90 *** gcc-11.4.0/gcc/testsuite/gfortran.dg/deferred_character_37.f90 Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gfortran.dg/deferred_character_37.f90 Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,88 ---- + ! { dg-do run } + ! PR fortran/95947 + ! PR fortran/110658 + ! + ! Test deferred-length character arguments to selected intrinsics + ! that may return a character result of same length as first argument: + ! CSHIFT, EOSHIFT, MAXVAL, MERGE, MINVAL, PACK, SPREAD, TRANSPOSE, UNPACK + + program p + implicit none + call pr95947 () + call pr110658 () + call s () + + contains + + subroutine pr95947 + character(len=:), allocatable :: m(:) + + m = [ character(len=10) :: 'ape','bat','cat','dog','eel','fly','gnu'] + m = pack (m, mask=(m(:)(2:2) == 'a')) + + ! print *, "m = '", m,"' ", "; expected is ['bat','cat']" + if (.not. all (m == ['bat','cat'])) stop 1 + + ! print *, "size(m) = ", size(m), "; expected is 2" + if (size (m) /= 2) stop 2 + + ! print *, "len(m) = ", len(m), "; expected is 10" + if (len (m) /= 10) stop 3 + + ! print *, "len_trim(m) = ", len_trim(m), "; expected is 3 3" + if (.not. all (len_trim(m) == [3,3])) stop 4 + end + + subroutine pr110658 + character(len=:), allocatable :: array(:), array2(:,:) + character(len=:), allocatable :: res, res1(:), res2(:) + + array = ["bb", "aa", "cc"] + + res = minval (array) + if (res /= "aa") stop 11 + + res = maxval (array, mask=[.true.,.true.,.false.]) + if (res /= "bb") stop 12 + + res1 = cshift (array, 1) + if (any (res1 /= ["aa","cc","bb"])) stop 13 + + res2 = eoshift (res1, -1) + if (any (res2 /= [" ", "aa", "cc"])) stop 14 + + res2 = pack (array, mask=[.true.,.false.,.true.]) + if (any (res2 /= ["bb","cc"])) stop 15 + + res2 = unpack (res2, mask=[.true.,.false.,.true.], field="aa") + if (any (res2 /= array)) stop 16 + + res2 = merge (res2, array, [.true.,.false.,.true.]) + if (any (res2 /= array)) stop 17 + + array2 = spread (array, dim=2, ncopies=2) + array2 = transpose (array2) + if (any (shape (array2) /= [2,3])) stop 18 + if (any (array2(2,:) /= array)) stop 19 + end + + subroutine s + character(:), allocatable :: array1(:), array2(:) + array1 = ["aa","cc","bb"] + array2 = copy (array1) + if (any (array1 /= array2)) stop 20 + end + + function copy (arg) result (res) + character(:), allocatable :: res(:) + character(*), intent(in) :: arg(:) + integer :: i, k, n + k = len (arg) + n = size (arg) + allocate (character(k) :: res(n)) + do i = 1, n + res(i) = arg(i) + end do + end + + end diff -Nrcpad gcc-11.4.0/gcc/testsuite/gfortran.dg/findloc_10.f90 gcc-11.5.0/gcc/testsuite/gfortran.dg/findloc_10.f90 *** gcc-11.4.0/gcc/testsuite/gfortran.dg/findloc_10.f90 Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gfortran.dg/findloc_10.f90 Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,13 ---- + ! { dg-do run } + ! { dg-options "-fdump-tree-original" } + ! PR fortran/110288 - FINDLOC and deferred-length character arguments + + program test + character(len=:), allocatable :: array(:) + character(len=:), allocatable :: value + array = ["bb", "aa"] + value = "aa" + if (findloc (array, value, dim=1) /= 2) stop 1 + end program test + + ! { dg-final { scan-tree-dump "_gfortran_findloc2_s1 \\(.*, \\.array, \\.value\\)" "original" } } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gfortran.dg/findloc_9.f90 gcc-11.5.0/gcc/testsuite/gfortran.dg/findloc_9.f90 *** gcc-11.4.0/gcc/testsuite/gfortran.dg/findloc_9.f90 Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gfortran.dg/findloc_9.f90 Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,19 ---- + ! { dg-do compile } + ! { dg-options "-fdump-tree-original" } + ! PR fortran/110585 - simplification of FINDLOC for constant complex arguments + + program mvce + implicit none + integer, parameter :: a(*) = findloc([(1.,0.),(2.,1.)], (2.,0.)) + integer, parameter :: b(*) = findloc([(1.,0.),(2.,1.)], (2.,0.), back=.true.) + integer, parameter :: c(*) = findloc([(1.,0.),(2.,1.)], (2.,1.)) + integer, parameter :: d(*) = findloc([(1.,0.),(2.,1.)], (2.,1.), back=.true.) + integer, parameter :: e = findloc([(1.,0.),(2.,1.)], (2.,1.), dim=1) + if (a(1) /= 0) stop 1 + if (b(1) /= 0) stop 2 + if (c(1) /= 2) stop 3 + if (d(1) /= 2) stop 4 + if (e /= 2) stop 5 + end + + ! { dg-final { scan-tree-dump-not "_gfortran_stop_numeric" "original" } } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gfortran.dg/gomp/pr114825.f90 gcc-11.5.0/gcc/testsuite/gfortran.dg/gomp/pr114825.f90 *** gcc-11.4.0/gcc/testsuite/gfortran.dg/gomp/pr114825.f90 Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gfortran.dg/gomp/pr114825.f90 Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,16 ---- + ! PR fortran/114825 + + subroutine pr114825(b) + type t + real, allocatable :: m(:) + end type t + type(t), allocatable, target :: b(:) + type(t), pointer :: d + !$omp parallel private(d) + d => b(1) + !$omp end parallel + contains + subroutine sub + d => b(1) + end subroutine sub + end subroutine pr114825 diff -Nrcpad gcc-11.4.0/gcc/testsuite/gfortran.dg/implied_do_io_8.f90 gcc-11.5.0/gcc/testsuite/gfortran.dg/implied_do_io_8.f90 *** gcc-11.4.0/gcc/testsuite/gfortran.dg/implied_do_io_8.f90 Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gfortran.dg/implied_do_io_8.f90 Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,18 ---- + ! { dg-do run } + ! { dg-additional-options "-fcheck=bounds" } + ! PR fortran/111837 - out of bounds access with front-end optimization + + program implied_do_bug + implicit none + integer :: i,j,k + real :: arr(1,1,1) + integer :: ni(1) + ni(1) = 1 + arr = 1 + write(*,*) (((arr(i,j,k), i=1,ni(k)), k=1,1), j=1,1) + write(*,*) (((arr(i,j,k), i=1,ni(k)), j=1,1), k=1,1) + write(*,*) (((arr(k,i,j), i=1,ni(k)), k=1,1), j=1,1) + write(*,*) (((arr(k,i,j), i=1,ni(k)), j=1,1), k=1,1) + write(*,*) (((arr(j,k,i), i=1,ni(k)), k=1,1), j=1,1) + write(*,*) (((arr(j,k,i), i=1,ni(k)), j=1,1), k=1,1) + end diff -Nrcpad gcc-11.4.0/gcc/testsuite/gfortran.dg/pr103506_1.f90 gcc-11.5.0/gcc/testsuite/gfortran.dg/pr103506_1.f90 *** gcc-11.4.0/gcc/testsuite/gfortran.dg/pr103506_1.f90 Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gfortran.dg/pr103506_1.f90 Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,9 ---- + ! { dg-do compile } + ! PR103506 ICE in gfc_free_namespace. ice-on-invalid + ! Test case from the PR. + module m ! { dg-error "is already being used as a MODULE" } + stop ! { dg-error "Unexpected STOP statement in MODULE" } + end + program p + call m ! { dg-error "is already being used as a MODULE" } + end diff -Nrcpad gcc-11.4.0/gcc/testsuite/gfortran.dg/pr103715.f90 gcc-11.5.0/gcc/testsuite/gfortran.dg/pr103715.f90 *** gcc-11.4.0/gcc/testsuite/gfortran.dg/pr103715.f90 Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gfortran.dg/pr103715.f90 Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,12 ---- + ! { dg-do compile } + ! PR fortran/103715 - ICE in gfc_find_gsymbol + ! + ! valgrind did report an invalid read in check_externals_procedure + + program p + select type (y => g()) ! { dg-error "Selector shall be polymorphic" } + end select + call g() + end + + ! { dg-prune-output "already being used as a FUNCTION" } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gfortran.dg/pr104908.f90 gcc-11.5.0/gcc/testsuite/gfortran.dg/pr104908.f90 *** gcc-11.4.0/gcc/testsuite/gfortran.dg/pr104908.f90 Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gfortran.dg/pr104908.f90 Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,32 ---- + ! { dg-do compile } + ! { dg-additional-options "-fcheck=bounds -fdump-tree-original" } + ! + ! PR fortran/104908 - incorrect out-of-bounds runtime error + + program test + implicit none + type vec + integer :: x(3) = [2,4,6] + end type vec + type(vec) :: w(2) + call sub(w) + contains + subroutine sub (v) + class(vec), intent(in) :: v(:) + integer :: k, q(3) + q = [ (v(1)%x(k), k = 1, 3) ] ! <-- was failing here after r11-1235 + print *, q + end + end + + subroutine sub2 (zz) + implicit none + type vec + integer :: x(2,1) + end type vec + class(vec), intent(in) :: zz(:) ! used to ICE after r11-1235 + integer :: k + k = zz(1)%x(2,1) + end + + ! { dg-final { scan-tree-dump-times " above upper bound " 4 "original" } } diff -Nrcpad gcc-11.4.0/gcc/testsuite/gfortran.dg/pr107397.f90 gcc-11.5.0/gcc/testsuite/gfortran.dg/pr107397.f90 *** gcc-11.4.0/gcc/testsuite/gfortran.dg/pr107397.f90 Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gfortran.dg/pr107397.f90 Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,9 ---- + !{ dg-do compile } + ! + program p + type t + real :: a = 1.0 + end type + type(t), parameter :: x = z'1' ! { dg-error "incompatible with a BOZ" } + x%a = x%a + 2 ! { dg-error "has no IMPLICIT type" } + end diff -Nrcpad gcc-11.4.0/gcc/testsuite/gfortran.dg/pr111880.f90 gcc-11.5.0/gcc/testsuite/gfortran.dg/pr111880.f90 *** gcc-11.4.0/gcc/testsuite/gfortran.dg/pr111880.f90 Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gfortran.dg/pr111880.f90 Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,22 ---- + ! { dg-do compile } + ! { dg-options "-std=f2018" } + ! PR fortran/111880 - redundant warning of obsolescent COMMON with submodule + + module third_party_module + integer :: some_param + common /not_my_code/ some_param ! { dg-warning "COMMON block" } + end module third_party_module + + module foo + use third_party_module + interface + module subroutine bar() + end subroutine bar + end interface + end module foo + + submodule (foo) foo_submod ! We do not need a warning here! + contains + module procedure bar + end procedure bar + end submodule foo_submod diff -Nrcpad gcc-11.4.0/gcc/testsuite/gfortran.dg/pr89943_3.f90 gcc-11.5.0/gcc/testsuite/gfortran.dg/pr89943_3.f90 *** gcc-11.4.0/gcc/testsuite/gfortran.dg/pr89943_3.f90 Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/gfortran.dg/pr89943_3.f90 Fri Jul 19 05:52:46 2024 *************** submodule(Foo_mod) Foo_smod *** 22,28 **** module subroutine runFoo4C(ndim) bind(C, name="runFu") ! { dg-error "Mismatch in BIND" } use, intrinsic :: iso_c_binding ! { dg-error "Unexpected USE statement" } implicit none ! { dg-error "Unexpected IMPLICIT NONE statement" } ! integer(c_int32_t) , intent(in) :: ndim ! { dg-error "Unexpected data declaration" } end subroutine runFoo4C ! { dg-error " Expecting END SUBMODULE" } end submodule Foo_smod --- 22,28 ---- module subroutine runFoo4C(ndim) bind(C, name="runFu") ! { dg-error "Mismatch in BIND" } use, intrinsic :: iso_c_binding ! { dg-error "Unexpected USE statement" } implicit none ! { dg-error "Unexpected IMPLICIT NONE statement" } ! integer(c_int32_t) , intent(in) :: ndim ! { dg-error "Symbol 'c_int32_t' at .1. has no IMPLICIT type" } end subroutine runFoo4C ! { dg-error " Expecting END SUBMODULE" } end submodule Foo_smod diff -Nrcpad gcc-11.4.0/gcc/testsuite/gfortran.dg/pr89943_4.f90 gcc-11.5.0/gcc/testsuite/gfortran.dg/pr89943_4.f90 *** gcc-11.4.0/gcc/testsuite/gfortran.dg/pr89943_4.f90 Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/gfortran.dg/pr89943_4.f90 Fri Jul 19 05:52:46 2024 *************** submodule(Foo_mod) Foo_smod *** 23,29 **** module function runFoo4C(ndim) bind(C, name="runFu") ! { dg-error "Mismatch in BIND" } use, intrinsic :: iso_c_binding ! { dg-error "Unexpected USE statement in" } implicit none ! { dg-error "Unexpected IMPLICIT NONE statement" } ! integer(c_int32_t) , intent(in) :: ndim ! { dg-error "Unexpected data declaration" } end function runFoo4C ! { dg-error "Expecting END SUBMODULE" } end submodule Foo_smod --- 23,29 ---- module function runFoo4C(ndim) bind(C, name="runFu") ! { dg-error "Mismatch in BIND" } use, intrinsic :: iso_c_binding ! { dg-error "Unexpected USE statement in" } implicit none ! { dg-error "Unexpected IMPLICIT NONE statement" } ! integer(c_int32_t) , intent(in) :: ndim ! { dg-error "Symbol 'c_int32_t' at .1. has no IMPLICIT type" } end function runFoo4C ! { dg-error "Expecting END SUBMODULE" } end submodule Foo_smod diff -Nrcpad gcc-11.4.0/gcc/testsuite/gfortran.dg/select_rank_6.f90 gcc-11.5.0/gcc/testsuite/gfortran.dg/select_rank_6.f90 *** gcc-11.4.0/gcc/testsuite/gfortran.dg/select_rank_6.f90 Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gfortran.dg/select_rank_6.f90 Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,48 ---- + ! { dg-do compile } + ! PR fortran/100607 - fix diagnostics for SELECT RANK + ! Contributed by T.Burnus + + program p + implicit none + integer, allocatable :: A(:,:,:) + + allocate(a(5:6,-2:2, 99:100)) + call foo(a) + call bar(a) + + contains + + subroutine foo(x) + integer, allocatable :: x(..) + if (rank(x) /= 3) stop 1 + if (any (lbound(x) /= [5, -2, 99])) stop 2 + + select rank (x) + rank(3) + if (any (lbound(x) /= [5, -2, 99])) stop 3 + end select + + select rank (x) ! { dg-error "pointer or allocatable selector at .2." } + rank(*) ! { dg-error "pointer or allocatable selector at .2." } + if (rank(x) /= 1) stop 4 + if (lbound(x, 1) /= 1) stop 5 + end select + end + + subroutine bar(x) + integer :: x(..) + if (rank(x) /= 3) stop 6 + if (any (lbound(x) /= 1)) stop 7 + + select rank (x) + rank(3) + if (any (lbound(x) /= 1)) stop 8 + end select + + select rank (x) + rank(*) + if (rank(x) /= 1) stop 9 + if (lbound(x, 1) /= 1) stop 10 + end select + end + end diff -Nrcpad gcc-11.4.0/gcc/testsuite/gfortran.dg/use_31.f90 gcc-11.5.0/gcc/testsuite/gfortran.dg/use_31.f90 *** gcc-11.4.0/gcc/testsuite/gfortran.dg/use_31.f90 Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gfortran.dg/use_31.f90 Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,26 ---- + ! { dg-do compile } + ! + ! PR fortran/107426 + ! This example used to generate an ICE, caused by the use stmt from the nested + ! procedure declaration setting the result of the C_LOC global intrinsic symbol + ! to the symbol of C_PTR from ISO_C_BINDING being imported, before freeing the + ! latter symbol because of the rejection of the use statement. + ! + ! Contributed by Gerhard Steinmetz + + module m + contains + subroutine p() bind(c) + use, intrinsic :: iso_c_binding + integer, target :: a = 1 + type(c_ptr) :: z + interface + subroutine s(x) bind(cc) ! { dg-error "Missing closing paren" } + use, intrinsic :: iso_c_binding ! { dg-error "Unexpected USE statement in INTERFACE block" } + integer(c_int), value :: x ! { dg-error "Parameter 'c_int' at .1. has not been declared" } + end ! { dg-error "END INTERFACE statement expected" } + end interface + z = c_loc(a) + call s(z) + end + end diff -Nrcpad gcc-11.4.0/gcc/testsuite/gnat.dg/access10.adb gcc-11.5.0/gcc/testsuite/gnat.dg/access10.adb *** gcc-11.4.0/gcc/testsuite/gnat.dg/access10.adb Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gnat.dg/access10.adb Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,58 ---- + -- PR ada/113893 + -- Testcase by Pascal Pignard + + -- { dg-do run } + + with Ada.Text_IO; + with Ada.Finalization; + + procedure Access10 is + + generic + type Element_Type is private; + with function Image (Item : Element_Type) return String is <>; + package Sanitize is + type Container is new Ada.Finalization.Controlled with record + Data : Element_Type; + end record; + overriding procedure Finalize (Object : in out Container); + end Sanitize; + + package body Sanitize is + overriding procedure Finalize (Object : in out Container) is + begin + Ada.Text_IO.Put_Line ("Current:" & Image (Object.Data)); + end Finalize; + end Sanitize; + + procedure Test01 is + package Float_Sanitized is new Sanitize (Float, Float'Image); + V : Float_Sanitized.Container; + C : constant Float_Sanitized.Container := + (Ada.Finalization.Controlled with 8.8); + A : access Float_Sanitized.Container := + new Float_Sanitized.Container'(Ada.Finalization.Controlled with 7.7); -- { dg-warning "not be finalized|named" } + AC : access constant Float_Sanitized.Container := + new Float_Sanitized.Container'(Ada.Finalization.Controlled with 6.6); -- { dg-warning "not be finalized|named" } + begin + V.Data := 9.9 + C.Data + A.Data; + Ada.Text_IO.Put_Line ("Value:" & Float'Image (V.Data)); + end Test01; + + procedure Test02 is + type Float_Sanitized is new Float; + V : Float_Sanitized; + C : constant Float_Sanitized := (8.8); + A : access Float_Sanitized := new Float_Sanitized'(7.7); + AC : access constant Float_Sanitized := new Float_Sanitized'(6.6); + begin + V := 9.9 + C + A.all; + Ada.Text_IO.Put_Line ("Value:" & Float_Sanitized'Image (V)); + end Test02; + + begin + Ada.Text_IO.Put_Line ("Test01:"); + Test01; + Ada.Text_IO.Put_Line ("Test02:"); + Test02; + end; diff -Nrcpad gcc-11.4.0/gcc/testsuite/gnat.dg/predicate15.adb gcc-11.5.0/gcc/testsuite/gnat.dg/predicate15.adb *** gcc-11.4.0/gcc/testsuite/gnat.dg/predicate15.adb Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/gnat.dg/predicate15.adb Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,15 ---- + -- { dg-do compile } + -- { dg-options "-gnata" } + + procedure Predicate15 is + + type Grid is array (Positive range <>) of Integer with + Dynamic_Predicate => Grid'First = 1; + + type Grid_Ptr is access Grid; + + Data : Grid_Ptr := new Grid (1 .. 10); + + begin + null; + end; diff -Nrcpad gcc-11.4.0/gcc/testsuite/lib/asan-dg.exp gcc-11.5.0/gcc/testsuite/lib/asan-dg.exp *** gcc-11.4.0/gcc/testsuite/lib/asan-dg.exp Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/lib/asan-dg.exp Fri Jul 19 05:52:46 2024 *************** proc asan_init { args } { *** 111,116 **** --- 111,118 ---- global asan_saved_TEST_ALWAYS_FLAGS global asan_saved_ALWAYS_CXXFLAGS + setenv ASAN_OPTIONS "color=never" + set link_flags "" if ![is_remote host] { if [info exists TOOL_OPTIONS] { diff -Nrcpad gcc-11.4.0/gcc/testsuite/lib/g++.exp gcc-11.5.0/gcc/testsuite/lib/g++.exp *** gcc-11.4.0/gcc/testsuite/lib/g++.exp Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/lib/g++.exp Fri Jul 19 05:52:46 2024 *************** proc g++_init { args } { *** 277,286 **** set gcc_warning_prefix "warning:" set gcc_error_prefix "(fatal )?error:" - if { [istarget *-*-darwin*] } { - lappend ALWAYS_CXXFLAGS "ldflags=-multiply_defined suppress" - } - verbose -log "ALWAYS_CXXFLAGS set to $ALWAYS_CXXFLAGS" verbose "g++ is initialized" 3 --- 277,282 ---- diff -Nrcpad gcc-11.4.0/gcc/testsuite/lib/obj-c++.exp gcc-11.5.0/gcc/testsuite/lib/obj-c++.exp *** gcc-11.4.0/gcc/testsuite/lib/obj-c++.exp Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/lib/obj-c++.exp Fri Jul 19 05:52:46 2024 *************** proc obj-c++_init { args } { *** 277,286 **** set gcc_warning_prefix "warning:" set gcc_error_prefix "(fatal )?error:" - if { [istarget *-*-darwin*] } { - lappend ALWAYS_OBJCXXFLAGS "ldflags=-multiply_defined suppress" - } - verbose -log "ALWAYS_OBJCXXFLAGS set to $ALWAYS_OBJCXXFLAGS" verbose "obj-c++ is initialized" 3 --- 277,282 ---- diff -Nrcpad gcc-11.4.0/gcc/testsuite/lib/target-supports.exp gcc-11.5.0/gcc/testsuite/lib/target-supports.exp *** gcc-11.4.0/gcc/testsuite/lib/target-supports.exp Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/lib/target-supports.exp Fri Jul 19 05:52:46 2024 *************** proc check_weak_available { } { *** 348,353 **** --- 348,365 ---- } } + # return options to add to enable weak undefined symbols. + + proc add_options_for_weak_undefined { flags } { + if { [istarget *-*-darwin*] } { + lappend flags "-Wl,-undefined,dynamic_lookup" + if { [istarget *-*-darwin\[89\]*] } { + lappend flags "-Wl,-flat_namespace" + } + } + return $flags + } + # return 1 if weak undefined symbols are supported. proc check_effective_target_weak_undefined { } { *************** proc check_effective_target_aarch64_tlsl *** 1253,1265 **** # emitted, 0 otherwise. proc check_effective_target_shared { } { # Note that M68K has a multilib that supports -fpic but not # -fPIC, so we need to check both. We test with a program that # requires GOT references. return [check_no_compiler_messages shared executable { extern int foo (void); extern int bar; int baz (void) { return foo () + bar; } ! } "-shared -fpic"] } # Return 1 if -pie, -fpie and -fPIE are supported, 0 otherwise. --- 1265,1284 ---- # emitted, 0 otherwise. proc check_effective_target_shared { } { + # Darwin's linker defaults to error on undefined (which makes it look as + # if we do not support shared) but we can tell it to allow the symbols used + # here to be undefined. + set extra_flags "" + if { [istarget *-*-darwin\[912\]*] } { + set extra_flags "-Wl,-U,_foo,-U,_bar,-U,__Z3foov" + } # Note that M68K has a multilib that supports -fpic but not # -fPIC, so we need to check both. We test with a program that # requires GOT references. return [check_no_compiler_messages shared executable { extern int foo (void); extern int bar; int baz (void) { return foo () + bar; } ! } "-shared -fpic $extra_flags"] } # Return 1 if -pie, -fpie and -fPIE are supported, 0 otherwise. *************** proc check_effective_target_gas { } { *** 9564,9570 **** set status [remote_exec host "$gcc_as" "-v /dev/null"] set as_output [lindex $status 1] if { [ string first "GNU" $as_output ] >= 0 } { ! set use_gas_saved 1 } else { set use_gas_saved 0 } --- 9583,9596 ---- set status [remote_exec host "$gcc_as" "-v /dev/null"] set as_output [lindex $status 1] if { [ string first "GNU" $as_output ] >= 0 } { ! # Some Darwin versions have an assembler which is based on an old ! # version of GAS (and reports GNU assembler in its -v output) but ! # but doesn't support many of the modern GAS features. ! if { [ string first "cctools" $as_output ] >= 0 } { ! set use_gas_saved 0 ! } else { ! set use_gas_saved 1 ! } } else { set use_gas_saved 0 } diff -Nrcpad gcc-11.4.0/gcc/testsuite/obj-c++.dg/encode-10.mm gcc-11.5.0/gcc/testsuite/obj-c++.dg/encode-10.mm *** gcc-11.4.0/gcc/testsuite/obj-c++.dg/encode-10.mm Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/obj-c++.dg/encode-10.mm Fri Jul 19 05:52:46 2024 *************** *** 1,5 **** /* Test for @encode in templates. */ - /* { dg-options "-lobjc" } */ /* { dg-do run } */ #include #include --- 1,4 ---- diff -Nrcpad gcc-11.4.0/gcc/testsuite/obj-c++.dg/encode-9.mm gcc-11.5.0/gcc/testsuite/obj-c++.dg/encode-9.mm *** gcc-11.4.0/gcc/testsuite/obj-c++.dg/encode-9.mm Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/obj-c++.dg/encode-9.mm Fri Jul 19 05:52:46 2024 *************** *** 1,5 **** /* Test than @encode is properly instantiated. */ - /* { dg-options "-lobjc" } */ /* { dg-do run } */ #include --- 1,4 ---- diff -Nrcpad gcc-11.4.0/gcc/testsuite/obj-c++.dg/pr101666-0.mm gcc-11.5.0/gcc/testsuite/obj-c++.dg/pr101666-0.mm *** gcc-11.4.0/gcc/testsuite/obj-c++.dg/pr101666-0.mm Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/obj-c++.dg/pr101666-0.mm Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,7 ---- + /* { dg-do run } */ + /* { dg-skip-if "NeXT only" { *-*-* } { "-fgnu-runtime" } { "" } } */ + /* { dg-skip-if "ABI 2 only" { *-*-* && { ! objc2 } } { "*" } { "" } } */ + /* { dg-additional-options "-fobjc-nilcheck -Wno-objc-root-class" } */ + + #include "pr101666.inc" + diff -Nrcpad gcc-11.4.0/gcc/testsuite/obj-c++.dg/pr101666-1.mm gcc-11.5.0/gcc/testsuite/obj-c++.dg/pr101666-1.mm *** gcc-11.4.0/gcc/testsuite/obj-c++.dg/pr101666-1.mm Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/obj-c++.dg/pr101666-1.mm Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,10 ---- + /* Later versions of Darwin can compile for 10.5, but cannot link it so we + can only run this test up to 10.13. */ + /* { dg-do compile { target *-*-darwin* } } */ + /* { dg-do run { target *-*-darwin[89]* *-*-darwin1[0-7]* } } */ + /* { dg-skip-if "NeXT only" { *-*-* } { "-fgnu-runtime" } { "" } } */ + /* { dg-skip-if "ABI 2 only" { *-*-* && { ! objc2 } } { "*" } { "" } } */ + /* { dg-additional-options "-fobjc-nilcheck -mmacosx-version-min=10.5 " } */ + /* { dg-additional-options "-Wno-objc-root-class" } */ + + #include "pr101666.inc" diff -Nrcpad gcc-11.4.0/gcc/testsuite/obj-c++.dg/pr101666.inc gcc-11.5.0/gcc/testsuite/obj-c++.dg/pr101666.inc *** gcc-11.4.0/gcc/testsuite/obj-c++.dg/pr101666.inc Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/obj-c++.dg/pr101666.inc Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,29 ---- + #include + struct point { double x, y, z; }; + + @interface Foo + - (struct point)bar; + - (struct point)baz; + @end + + @implementation Foo + - (struct point)bar { struct point q = { 1.0, 2.0, 3.0 }; return q; }; + - (struct point)baz { struct point q = { 4.0, 5.0, 6.0 }; return q; }; + @end + + /* Cases where a check for nil should be inserted by the compiler, when + -fobjc-nilcheck is in force. We should not attempt the calls, and the + result should be 0-filled. */ + + Foo *f; + + int main(void) { + struct point p = [f bar]; + if (p.x != 0.0 || p.y != 0.0 || p.z != 0.0) + abort (); + id nilobj = (id)0; + p = [nilobj baz]; + if (p.x != 0.0 || p.y != 0.0 || p.z != 0.0) + abort (); + return 0; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/obj-c++.dg/proto-lossage-4.mm gcc-11.5.0/gcc/testsuite/obj-c++.dg/proto-lossage-4.mm *** gcc-11.4.0/gcc/testsuite/obj-c++.dg/proto-lossage-4.mm Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/obj-c++.dg/proto-lossage-4.mm Fri Jul 19 05:52:46 2024 *************** *** 6,29 **** /* One-line substitute for objc/objc.h */ typedef struct objc_object { struct objc_class *class_pointer; } *id; @protocol Proto ! - (long)someValue; @end @interface Obj ! - (long)anotherValue; @end ! long foo(void) { ! long receiver = 2; Obj *objrcvr; Obj *objrcvr2; /* NB: Since 'receiver' is an invalid ObjC message receiver, the compiler should warn but then search for methods as if we were messaging 'id'. */ ! receiver += [receiver someValue]; /* { dg-warning "invalid receiver type .long int." } */ ! receiver += [receiver anotherValue]; /* { dg-warning "invalid receiver type .long int." } */ receiver += [(Obj *)receiver someValue]; /* { dg-warning ".Obj. may not respond to .\\-someValue." } */ /* { dg-error "invalid conversion" "" { target *-*-* } .-1 } */ --- 6,31 ---- /* One-line substitute for objc/objc.h */ typedef struct objc_object { struct objc_class *class_pointer; } *id; + typedef __UINTPTR_TYPE__ uintptr_t; + @protocol Proto ! - (uintptr_t)someValue; @end @interface Obj ! - (uintptr_t)anotherValue; @end ! uintptr_t foo(void) { ! uintptr_t receiver = 2; Obj *objrcvr; Obj *objrcvr2; /* NB: Since 'receiver' is an invalid ObjC message receiver, the compiler should warn but then search for methods as if we were messaging 'id'. */ ! receiver += [receiver someValue]; /* { dg-warning "invalid receiver type .uintptr_t." } */ ! receiver += [receiver anotherValue]; /* { dg-warning "invalid receiver type .uintptr_t." } */ receiver += [(Obj *)receiver someValue]; /* { dg-warning ".Obj. may not respond to .\\-someValue." } */ /* { dg-error "invalid conversion" "" { target *-*-* } .-1 } */ diff -Nrcpad gcc-11.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSObjCRuntime.h gcc-11.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSObjCRuntime.h *** gcc-11.4.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSObjCRuntime.h Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/objc-obj-c++-shared/GNUStep/Foundation/NSObjCRuntime.h Fri Jul 19 05:52:46 2024 *************** *** 29,34 **** --- 29,37 ---- #ifndef __NSObjCRuntime_h_GNUSTEP_BASE_INCLUDE #define __NSObjCRuntime_h_GNUSTEP_BASE_INCLUDE + /* Allow the elaborated enum use in _GS_NAMED_ENUM. */ + #pragma GCC system_header + #ifdef __cplusplus #ifndef __STDC_LIMIT_MACROS #define __STDC_LIMIT_MACROS 1 diff -Nrcpad gcc-11.4.0/gcc/testsuite/objc.dg/pr101666-0.m gcc-11.5.0/gcc/testsuite/objc.dg/pr101666-0.m *** gcc-11.4.0/gcc/testsuite/objc.dg/pr101666-0.m Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/objc.dg/pr101666-0.m Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,7 ---- + /* { dg-do run } */ + /* { dg-skip-if "NeXT only" { *-*-* } { "-fgnu-runtime" } { "" } } */ + /* { dg-skip-if "ABI 2 only" { *-*-* && { ! objc2 } } { "*" } { "" } } */ + /* { dg-additional-options "-fobjc-nilcheck -Wno-objc-root-class" } */ + + #include "pr101666.inc" + diff -Nrcpad gcc-11.4.0/gcc/testsuite/objc.dg/pr101666-1.m gcc-11.5.0/gcc/testsuite/objc.dg/pr101666-1.m *** gcc-11.4.0/gcc/testsuite/objc.dg/pr101666-1.m Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/objc.dg/pr101666-1.m Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,10 ---- + /* Later versions of Darwin can compile for 10.5, but cannot link it so we + can only run this test up to 10.13. */ + /* { dg-do compile { target *-*-darwin* } } */ + /* { dg-do run { target *-*-darwin[89]* *-*-darwin1[0-7]* } } */ + /* { dg-skip-if "NeXT only" { *-*-* } { "-fgnu-runtime" } { "" } } */ + /* { dg-skip-if "ABI 2 only" { *-*-* && { ! objc2 } } { "*" } { "" } } */ + /* { dg-additional-options "-fobjc-nilcheck -mmacosx-version-min=10.5 " } */ + /* { dg-additional-options "-Wno-objc-root-class" } */ + + #include "pr101666.inc" diff -Nrcpad gcc-11.4.0/gcc/testsuite/objc.dg/pr101666.inc gcc-11.5.0/gcc/testsuite/objc.dg/pr101666.inc *** gcc-11.4.0/gcc/testsuite/objc.dg/pr101666.inc Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/gcc/testsuite/objc.dg/pr101666.inc Fri Jul 19 05:52:46 2024 *************** *** 0 **** --- 1,29 ---- + #include + struct point { double x, y, z; }; + + @interface Foo + - (struct point)bar; + - (struct point)baz; + @end + + @implementation Foo + - (struct point)bar { struct point q = { 1.0, 2.0, 3.0 }; return q; }; + - (struct point)baz { struct point q = { 4.0, 5.0, 6.0 }; return q; }; + @end + + /* Cases where a check for nil should be inserted by the compiler, when + -fobjc-nilcheck is in force. We should not attempt the calls, and the + result should be 0-filled. */ + + Foo *f; + + int main(void) { + struct point p = [f bar]; + if (p.x != 0.0 || p.y != 0.0 || p.z != 0.0) + abort (); + id nilobj = (id)0; + p = [nilobj baz]; + if (p.x != 0.0 || p.y != 0.0 || p.z != 0.0) + abort (); + return 0; + } diff -Nrcpad gcc-11.4.0/gcc/testsuite/objc.dg/proto-lossage-4.m gcc-11.5.0/gcc/testsuite/objc.dg/proto-lossage-4.m *** gcc-11.4.0/gcc/testsuite/objc.dg/proto-lossage-4.m Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/testsuite/objc.dg/proto-lossage-4.m Fri Jul 19 05:52:46 2024 *************** long foo(void) { *** 28,40 **** receiver += [receiver anotherValue]; /* { dg-warning "invalid receiver type .intptr_t." } */ receiver += [(Obj *)receiver someValue]; /* { dg-warning ".Obj. may not respond to .\\-someValue." } */ ! /* { dg-warning "assignment to 'intptr_t' {aka '(long )?int'} from 'id' makes integer from pointer without a cast" "" { target *-*-* } .-1 } */ receiver += [(Obj *)receiver anotherValue]; receiver += [(Obj *)receiver someValue]; receiver += [(Obj *)receiver anotherValue]; receiver += [objrcvr someValue]; /* { dg-warning ".Obj. may not respond to .\\-someValue." } */ ! /* { dg-warning "assignment to 'intptr_t' {aka '(long )?int'} from 'id' makes integer from pointer without a cast" "" { target *-*-* } .-1 } */ receiver += [objrcvr anotherValue]; receiver += [(Obj *)objrcvr someValue]; --- 28,40 ---- receiver += [receiver anotherValue]; /* { dg-warning "invalid receiver type .intptr_t." } */ receiver += [(Obj *)receiver someValue]; /* { dg-warning ".Obj. may not respond to .\\-someValue." } */ ! /* { dg-warning "assignment to 'intptr_t' {aka '(long )*int'} from 'id' makes integer from pointer without a cast" "" { target *-*-* } .-1 } */ receiver += [(Obj *)receiver anotherValue]; receiver += [(Obj *)receiver someValue]; receiver += [(Obj *)receiver anotherValue]; receiver += [objrcvr someValue]; /* { dg-warning ".Obj. may not respond to .\\-someValue." } */ ! /* { dg-warning "assignment to 'intptr_t' {aka '(long )*int'} from 'id' makes integer from pointer without a cast" "" { target *-*-* } .-1 } */ receiver += [objrcvr anotherValue]; receiver += [(Obj *)objrcvr someValue]; *************** long foo(void) { *** 42,48 **** receiver += [objrcvr2 someValue]; receiver += [objrcvr2 anotherValue]; receiver += [(Obj *)objrcvr2 someValue]; /* { dg-warning ".Obj. may not respond to .\\-someValue." } */ ! /* { dg-warning "assignment to 'intptr_t' {aka '(long )?int'} from 'id' makes integer from pointer without a cast" "" { target *-*-* } .-1 } */ receiver += [(Obj *)objrcvr2 anotherValue]; --- 42,48 ---- receiver += [objrcvr2 someValue]; receiver += [objrcvr2 anotherValue]; receiver += [(Obj *)objrcvr2 someValue]; /* { dg-warning ".Obj. may not respond to .\\-someValue." } */ ! /* { dg-warning "assignment to 'intptr_t' {aka '(long )*int'} from 'id' makes integer from pointer without a cast" "" { target *-*-* } .-1 } */ receiver += [(Obj *)objrcvr2 anotherValue]; diff -Nrcpad gcc-11.4.0/gcc/tree-data-ref.c gcc-11.5.0/gcc/tree-data-ref.c *** gcc-11.4.0/gcc/tree-data-ref.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/tree-data-ref.c Fri Jul 19 05:52:46 2024 *************** along with GCC; see the file COPYING3. *** 73,78 **** --- 73,79 ---- */ + #define INCLUDE_ALGORITHM #include "config.h" #include "system.h" #include "coretypes.h" *************** runtime_alias_check_p (ddr_p ddr, class *** 1641,1646 **** --- 1642,1654 ---- "runtime alias check not supported for" " outer loop.\n"); + /* FORNOW: We don't support handling different address spaces. */ + if (TYPE_ADDR_SPACE (TREE_TYPE (TREE_TYPE (DR_BASE_ADDRESS (DDR_A (ddr))))) + != TYPE_ADDR_SPACE (TREE_TYPE (TREE_TYPE (DR_BASE_ADDRESS (DDR_B (ddr)))))) + return opt_result::failure_at (DR_STMT (DDR_A (ddr)), + "runtime alias check between different " + "address spaces not supported.\n"); + return opt_result::success (); } *************** create_intersect_range_checks (class loo *** 2629,2635 **** Because the maximum values are inclusive, there is an alias if the maximum value of one segment is equal to the minimum value of the other. */ ! min_align = MIN (dr_a.align, dr_b.align); cmp_code = LT_EXPR; } --- 2637,2645 ---- Because the maximum values are inclusive, there is an alias if the maximum value of one segment is equal to the minimum value of the other. */ ! min_align = std::min (dr_a.align, dr_b.align); ! min_align = std::min (min_align, known_alignment (dr_a.access_size)); ! min_align = std::min (min_align, known_alignment (dr_b.access_size)); cmp_code = LT_EXPR; } diff -Nrcpad gcc-11.4.0/gcc/tree-inline.c gcc-11.5.0/gcc/tree-inline.c *** gcc-11.4.0/gcc/tree-inline.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/tree-inline.c Fri Jul 19 05:52:46 2024 *************** along with GCC; see the file COPYING3. *** 65,70 **** --- 65,71 ---- #include "symbol-summary.h" #include "symtab-thunks.h" #include "symtab-clones.h" + #include "asan.h" /* I'm not real happy about this, but we need to handle gimple and non-gimple trees. */ *************** copy_bb (copy_body_data *id, basic_block *** 2179,2191 **** } else if (call_stmt && id->call_stmt ! && gimple_call_internal_p (stmt) ! && gimple_call_internal_fn (stmt) == IFN_TSAN_FUNC_EXIT) ! { ! /* Drop TSAN_FUNC_EXIT () internal calls during inlining. */ ! gsi_remove (©_gsi, false); ! continue; ! } /* Statements produced by inlining can be unfolded, especially when we constant propagated some operands. We can't fold --- 2180,2205 ---- } else if (call_stmt && id->call_stmt ! && gimple_call_internal_p (stmt)) ! switch (gimple_call_internal_fn (stmt)) ! { ! case IFN_TSAN_FUNC_EXIT: ! /* Drop .TSAN_FUNC_EXIT () internal calls during inlining. */ ! gsi_remove (©_gsi, false); ! continue; ! case IFN_ASAN_MARK: ! /* Drop .ASAN_MARK internal calls during inlining into ! no_sanitize functions. */ ! if (!sanitize_flags_p (SANITIZE_ADDRESS, id->dst_fn) ! && !sanitize_flags_p (SANITIZE_HWADDRESS, id->dst_fn)) ! { ! gsi_remove (©_gsi, false); ! continue; ! } ! break; ! default: ! break; ! } /* Statements produced by inlining can be unfolded, especially when we constant propagated some operands. We can't fold diff -Nrcpad gcc-11.4.0/gcc/tree-nested.c gcc-11.5.0/gcc/tree-nested.c *** gcc-11.4.0/gcc/tree-nested.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/tree-nested.c Fri Jul 19 05:52:46 2024 *************** get_frame_field (struct nesting_info *in *** 1039,1044 **** --- 1039,1075 ---- static void note_nonlocal_vla_type (struct nesting_info *info, tree type); + /* Helper for get_nonlocal_debug_decl and get_local_debug_decl. */ + + static tree + get_debug_decl (tree decl) + { + tree new_decl + = build_decl (DECL_SOURCE_LOCATION (decl), + VAR_DECL, DECL_NAME (decl), TREE_TYPE (decl)); + DECL_ARTIFICIAL (new_decl) = DECL_ARTIFICIAL (decl); + DECL_IGNORED_P (new_decl) = DECL_IGNORED_P (decl); + TREE_THIS_VOLATILE (new_decl) = TREE_THIS_VOLATILE (decl); + TREE_SIDE_EFFECTS (new_decl) = TREE_SIDE_EFFECTS (decl); + TREE_READONLY (new_decl) = TREE_READONLY (decl); + TREE_ADDRESSABLE (new_decl) = TREE_ADDRESSABLE (decl); + DECL_SEEN_IN_BIND_EXPR_P (new_decl) = 1; + if ((TREE_CODE (decl) == PARM_DECL + || TREE_CODE (decl) == RESULT_DECL + || VAR_P (decl)) + && DECL_BY_REFERENCE (decl)) + DECL_BY_REFERENCE (new_decl) = 1; + /* Copy DECL_LANG_SPECIFIC and DECL_LANG_FLAG_* for OpenMP langhook + purposes. */ + DECL_LANG_SPECIFIC (new_decl) = DECL_LANG_SPECIFIC (decl); + #define COPY_DLF(n) DECL_LANG_FLAG_##n (new_decl) = DECL_LANG_FLAG_##n (decl) + COPY_DLF (0); COPY_DLF (1); COPY_DLF (2); COPY_DLF (3); + COPY_DLF (4); COPY_DLF (5); COPY_DLF (6); COPY_DLF (7); + COPY_DLF (8); + #undef COPY_DLF + return new_decl; + } + /* A subroutine of convert_nonlocal_reference_op. Create a local variable in the nested function with DECL_VALUE_EXPR set to reference the true variable in the parent function. This is used both for debug info *************** get_nonlocal_debug_decl (struct nesting_ *** 1086,1106 **** x = build_simple_mem_ref_notrap (x); /* ??? We should be remapping types as well, surely. */ ! new_decl = build_decl (DECL_SOURCE_LOCATION (decl), ! VAR_DECL, DECL_NAME (decl), TREE_TYPE (decl)); DECL_CONTEXT (new_decl) = info->context; - DECL_ARTIFICIAL (new_decl) = DECL_ARTIFICIAL (decl); - DECL_IGNORED_P (new_decl) = DECL_IGNORED_P (decl); - TREE_THIS_VOLATILE (new_decl) = TREE_THIS_VOLATILE (decl); - TREE_SIDE_EFFECTS (new_decl) = TREE_SIDE_EFFECTS (decl); - TREE_READONLY (new_decl) = TREE_READONLY (decl); - TREE_ADDRESSABLE (new_decl) = TREE_ADDRESSABLE (decl); - DECL_SEEN_IN_BIND_EXPR_P (new_decl) = 1; - if ((TREE_CODE (decl) == PARM_DECL - || TREE_CODE (decl) == RESULT_DECL - || VAR_P (decl)) - && DECL_BY_REFERENCE (decl)) - DECL_BY_REFERENCE (new_decl) = 1; SET_DECL_VALUE_EXPR (new_decl, x); DECL_HAS_VALUE_EXPR_P (new_decl) = 1; --- 1117,1124 ---- x = build_simple_mem_ref_notrap (x); /* ??? We should be remapping types as well, surely. */ ! new_decl = get_debug_decl (decl); DECL_CONTEXT (new_decl) = info->context; SET_DECL_VALUE_EXPR (new_decl, x); DECL_HAS_VALUE_EXPR_P (new_decl) = 1; *************** get_local_debug_decl (struct nesting_inf *** 1866,1886 **** x = info->frame_decl; x = build3 (COMPONENT_REF, TREE_TYPE (field), x, field, NULL_TREE); ! new_decl = build_decl (DECL_SOURCE_LOCATION (decl), ! VAR_DECL, DECL_NAME (decl), TREE_TYPE (decl)); DECL_CONTEXT (new_decl) = info->context; - DECL_ARTIFICIAL (new_decl) = DECL_ARTIFICIAL (decl); - DECL_IGNORED_P (new_decl) = DECL_IGNORED_P (decl); - TREE_THIS_VOLATILE (new_decl) = TREE_THIS_VOLATILE (decl); - TREE_SIDE_EFFECTS (new_decl) = TREE_SIDE_EFFECTS (decl); - TREE_READONLY (new_decl) = TREE_READONLY (decl); - TREE_ADDRESSABLE (new_decl) = TREE_ADDRESSABLE (decl); - DECL_SEEN_IN_BIND_EXPR_P (new_decl) = 1; - if ((TREE_CODE (decl) == PARM_DECL - || TREE_CODE (decl) == RESULT_DECL - || VAR_P (decl)) - && DECL_BY_REFERENCE (decl)) - DECL_BY_REFERENCE (new_decl) = 1; SET_DECL_VALUE_EXPR (new_decl, x); DECL_HAS_VALUE_EXPR_P (new_decl) = 1; --- 1884,1891 ---- x = info->frame_decl; x = build3 (COMPONENT_REF, TREE_TYPE (field), x, field, NULL_TREE); ! new_decl = get_debug_decl (decl); DECL_CONTEXT (new_decl) = info->context; SET_DECL_VALUE_EXPR (new_decl, x); DECL_HAS_VALUE_EXPR_P (new_decl) = 1; diff -Nrcpad gcc-11.4.0/gcc/tree-profile.c gcc-11.5.0/gcc/tree-profile.c *** gcc-11.4.0/gcc/tree-profile.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/tree-profile.c Fri Jul 19 05:52:46 2024 *************** gimple_gen_ic_func_profiler (void) *** 418,424 **** gcall *stmt1; tree tree_uid, cur_func, void0; ! if (c_node->only_called_directly_p ()) return; gimple_init_gcov_profiler (); --- 418,430 ---- gcall *stmt1; tree tree_uid, cur_func, void0; ! /* Disable indirect call profiling for an IFUNC resolver and its ! callees since it requires TLS which hasn't been set up yet when ! the dynamic linker is resolving IFUNC symbols. See ! https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114115 ! */ ! if (c_node->only_called_directly_p () ! || c_node->called_by_ifunc_resolver) return; gimple_init_gcov_profiler (); diff -Nrcpad gcc-11.4.0/gcc/tree-scalar-evolution.c gcc-11.5.0/gcc/tree-scalar-evolution.c *** gcc-11.4.0/gcc/tree-scalar-evolution.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/tree-scalar-evolution.c Fri Jul 19 05:52:46 2024 *************** simple_iv_with_niters (class loop *wrto_ *** 3281,3287 **** type = TREE_TYPE (iv->base); e = TREE_OPERAND (iv->base, 0); ! if (TREE_CODE (e) != PLUS_EXPR || TREE_CODE (TREE_OPERAND (e, 1)) != INTEGER_CST || !tree_int_cst_equal (iv->step, fold_convert (type, TREE_OPERAND (e, 1)))) --- 3281,3288 ---- type = TREE_TYPE (iv->base); e = TREE_OPERAND (iv->base, 0); ! if (!tree_nop_conversion_p (type, TREE_TYPE (e)) ! || TREE_CODE (e) != PLUS_EXPR || TREE_CODE (TREE_OPERAND (e, 1)) != INTEGER_CST || !tree_int_cst_equal (iv->step, fold_convert (type, TREE_OPERAND (e, 1)))) diff -Nrcpad gcc-11.4.0/gcc/tree-sra.c gcc-11.5.0/gcc/tree-sra.c *** gcc-11.4.0/gcc/tree-sra.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/tree-sra.c Fri Jul 19 05:52:46 2024 *************** scan_function (void) *** 1390,1404 **** gasm *asm_stmt = as_a (stmt); walk_stmt_load_store_addr_ops (asm_stmt, NULL, NULL, NULL, asm_visit_addr); ! for (i = 0; i < gimple_asm_ninputs (asm_stmt); i++) { ! t = TREE_VALUE (gimple_asm_input_op (asm_stmt, i)); ! ret |= build_access_from_expr (t, asm_stmt, false); } ! for (i = 0; i < gimple_asm_noutputs (asm_stmt); i++) { ! t = TREE_VALUE (gimple_asm_output_op (asm_stmt, i)); ! ret |= build_access_from_expr (t, asm_stmt, true); } } break; --- 1390,1421 ---- gasm *asm_stmt = as_a (stmt); walk_stmt_load_store_addr_ops (asm_stmt, NULL, NULL, NULL, asm_visit_addr); ! if (stmt_ends_bb_p (asm_stmt) ! && !single_succ_p (gimple_bb (asm_stmt))) { ! for (i = 0; i < gimple_asm_ninputs (asm_stmt); i++) ! { ! t = TREE_VALUE (gimple_asm_input_op (asm_stmt, i)); ! disqualify_base_of_expr (t, "OP of asm goto."); ! } ! for (i = 0; i < gimple_asm_noutputs (asm_stmt); i++) ! { ! t = TREE_VALUE (gimple_asm_output_op (asm_stmt, i)); ! disqualify_base_of_expr (t, "OP of asm goto."); ! } } ! else { ! for (i = 0; i < gimple_asm_ninputs (asm_stmt); i++) ! { ! t = TREE_VALUE (gimple_asm_input_op (asm_stmt, i)); ! ret |= build_access_from_expr (t, asm_stmt, false); ! } ! for (i = 0; i < gimple_asm_noutputs (asm_stmt); i++) ! { ! t = TREE_VALUE (gimple_asm_output_op (asm_stmt, i)); ! ret |= build_access_from_expr (t, asm_stmt, true); ! } } } break; diff -Nrcpad gcc-11.4.0/gcc/tree-ssa-ifcombine.c gcc-11.5.0/gcc/tree-ssa-ifcombine.c *** gcc-11.4.0/gcc/tree-ssa-ifcombine.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/tree-ssa-ifcombine.c Fri Jul 19 05:52:46 2024 *************** ifcombine_ifandif (basic_block inner_con *** 413,418 **** --- 413,422 ---- { tree t, t2; + if (TREE_CODE (name1) == SSA_NAME + && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (name1)) + return false; + /* Do it. */ gsi = gsi_for_stmt (inner_cond); t = fold_build2 (LSHIFT_EXPR, TREE_TYPE (name1), *************** ifcombine_ifandif (basic_block inner_con *** 463,468 **** --- 467,478 ---- gimple_stmt_iterator gsi; tree t; + if ((TREE_CODE (name1) == SSA_NAME + && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (name1)) + || (TREE_CODE (name2) == SSA_NAME + && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (name2))) + return false; + /* Find the common name which is bit-tested. */ if (name1 == name2) ; diff -Nrcpad gcc-11.4.0/gcc/tree-ssa-loop-ivcanon.c gcc-11.5.0/gcc/tree-ssa-loop-ivcanon.c *** gcc-11.4.0/gcc/tree-ssa-loop-ivcanon.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/tree-ssa-loop-ivcanon.c Fri Jul 19 05:52:46 2024 *************** tree_unroll_loops_completely (bool may_i *** 1487,1501 **** } BITMAP_FREE (fathers); /* This will take care of removing completely unrolled loops from the loop structures so we can continue unrolling now innermost loops. */ if (cleanup_tree_cfg ()) update_ssa (TODO_update_ssa_only_virtuals); - /* Clean up the information about numbers of iterations, since - complete unrolling might have invalidated it. */ - scev_reset (); if (flag_checking && loops_state_satisfies_p (LOOP_CLOSED_SSA)) verify_loop_closed_ssa (true); } --- 1487,1502 ---- } BITMAP_FREE (fathers); + /* Clean up the information about numbers of iterations, since + complete unrolling might have invalidated it. */ + scev_reset (); + /* This will take care of removing completely unrolled loops from the loop structures so we can continue unrolling now innermost loops. */ if (cleanup_tree_cfg ()) update_ssa (TODO_update_ssa_only_virtuals); if (flag_checking && loops_state_satisfies_p (LOOP_CLOSED_SSA)) verify_loop_closed_ssa (true); } diff -Nrcpad gcc-11.4.0/gcc/tree-ssa-loop-prefetch.c gcc-11.5.0/gcc/tree-ssa-loop-prefetch.c *** gcc-11.4.0/gcc/tree-ssa-loop-prefetch.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/tree-ssa-loop-prefetch.c Fri Jul 19 05:52:46 2024 *************** is_miss_rate_acceptable (unsigned HOST_W *** 739,744 **** --- 739,746 ---- if (delta >= (HOST_WIDE_INT) cache_line_size) return false; + gcc_assert (align_unit > 0); + miss_positions = 0; total_positions = (cache_line_size / align_unit) * distinct_iters; max_allowed_miss_positions = (ACCEPTABLE_MISS_RATE * total_positions) / 1000; diff -Nrcpad gcc-11.4.0/gcc/tree-ssa-loop-unswitch.c gcc-11.5.0/gcc/tree-ssa-loop-unswitch.c *** gcc-11.4.0/gcc/tree-ssa-loop-unswitch.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/tree-ssa-loop-unswitch.c Fri Jul 19 05:52:46 2024 *************** hoist_guard (class loop *loop, edge guar *** 805,814 **** cond_stmt = as_a (stmt); extract_true_false_edges_from_block (guard_bb, &te, &fe); /* Insert guard to PRE_HEADER. */ ! if (!empty_block_p (pre_header)) ! gsi = gsi_last_bb (pre_header); ! else ! gsi = gsi_start_bb (pre_header); /* Create copy of COND_STMT. */ new_cond_stmt = gimple_build_cond (gimple_cond_code (cond_stmt), gimple_cond_lhs (cond_stmt), --- 805,811 ---- cond_stmt = as_a (stmt); extract_true_false_edges_from_block (guard_bb, &te, &fe); /* Insert guard to PRE_HEADER. */ ! gsi = gsi_last_bb (pre_header); /* Create copy of COND_STMT. */ new_cond_stmt = gimple_build_cond (gimple_cond_code (cond_stmt), gimple_cond_lhs (cond_stmt), diff -Nrcpad gcc-11.4.0/gcc/tree-ssa-math-opts.c gcc-11.5.0/gcc/tree-ssa-math-opts.c *** gcc-11.4.0/gcc/tree-ssa-math-opts.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/tree-ssa-math-opts.c Fri Jul 19 05:52:46 2024 *************** convert_mult_to_widen (gimple *stmt, gim *** 2678,2683 **** --- 2678,2691 ---- if (!is_widening_mult_p (stmt, &type1, &rhs1, &type2, &rhs2)) return false; + /* if any one of rhs1 and rhs2 is subject to abnormal coalescing, + avoid the tranform. */ + if ((TREE_CODE (rhs1) == SSA_NAME + && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (rhs1)) + || (TREE_CODE (rhs2) == SSA_NAME + && SSA_NAME_OCCURS_IN_ABNORMAL_PHI (rhs2))) + return false; + to_mode = SCALAR_INT_TYPE_MODE (type); from_mode = SCALAR_INT_TYPE_MODE (type1); if (to_mode == from_mode) diff -Nrcpad gcc-11.4.0/gcc/tree-ssa-phiopt.c gcc-11.5.0/gcc/tree-ssa-phiopt.c *** gcc-11.4.0/gcc/tree-ssa-phiopt.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/tree-ssa-phiopt.c Fri Jul 19 05:52:46 2024 *************** minmax_replacement (basic_block cond_bb, *** 1676,1682 **** /* We need BOUND <= LARGER. */ if (!integer_nonzerop (fold_build2 (LE_EXPR, boolean_type_node, ! bound, larger))) return false; } else if (operand_equal_for_phi_arg_p (arg_false, smaller) --- 1676,1682 ---- /* We need BOUND <= LARGER. */ if (!integer_nonzerop (fold_build2 (LE_EXPR, boolean_type_node, ! bound, arg_false))) return false; } else if (operand_equal_for_phi_arg_p (arg_false, smaller) *************** minmax_replacement (basic_block cond_bb, *** 1707,1713 **** /* We need BOUND >= SMALLER. */ if (!integer_nonzerop (fold_build2 (GE_EXPR, boolean_type_node, ! bound, smaller))) return false; } else --- 1707,1713 ---- /* We need BOUND >= SMALLER. */ if (!integer_nonzerop (fold_build2 (GE_EXPR, boolean_type_node, ! bound, arg_false))) return false; } else *************** minmax_replacement (basic_block cond_bb, *** 1747,1753 **** /* We need BOUND >= LARGER. */ if (!integer_nonzerop (fold_build2 (GE_EXPR, boolean_type_node, ! bound, larger))) return false; } else if (operand_equal_for_phi_arg_p (arg_true, smaller) --- 1747,1753 ---- /* We need BOUND >= LARGER. */ if (!integer_nonzerop (fold_build2 (GE_EXPR, boolean_type_node, ! bound, arg_true))) return false; } else if (operand_equal_for_phi_arg_p (arg_true, smaller) *************** minmax_replacement (basic_block cond_bb, *** 1774,1780 **** /* We need BOUND <= SMALLER. */ if (!integer_nonzerop (fold_build2 (LE_EXPR, boolean_type_node, ! bound, smaller))) return false; } else --- 1774,1780 ---- /* We need BOUND <= SMALLER. */ if (!integer_nonzerop (fold_build2 (LE_EXPR, boolean_type_node, ! bound, arg_true))) return false; } else diff -Nrcpad gcc-11.4.0/gcc/tree-ssa-reassoc.c gcc-11.5.0/gcc/tree-ssa-reassoc.c *** gcc-11.4.0/gcc/tree-ssa-reassoc.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/tree-ssa-reassoc.c Fri Jul 19 05:52:46 2024 *************** undistribute_bitref_for_vector (enum tre *** 2057,2068 **** { sum = build_and_add_sum (vec_type, sum_vec, valid_vecs[i + 1], opcode); if (!useless_type_conversion_p (vec_type, TREE_TYPE (valid_vecs[i + 1]))) { - /* Update the operands only after build_and_add_sum, - so that we don't have to repeat the placement algorithm - of build_and_add_sum. */ gimple_stmt_iterator gsi = gsi_for_stmt (sum); tree vce = build1 (VIEW_CONVERT_EXPR, vec_type, valid_vecs[i + 1]); --- 2057,2080 ---- { sum = build_and_add_sum (vec_type, sum_vec, valid_vecs[i + 1], opcode); + /* Update the operands only after build_and_add_sum, + so that we don't have to repeat the placement algorithm + of build_and_add_sum. */ + if (sum_vec == tvec + && !useless_type_conversion_p (vec_type, TREE_TYPE (sum_vec))) + { + gimple_stmt_iterator gsi = gsi_for_stmt (sum); + tree vce = build1 (VIEW_CONVERT_EXPR, vec_type, sum_vec); + tree lhs = make_ssa_name (vec_type); + gimple *g = gimple_build_assign (lhs, VIEW_CONVERT_EXPR, vce); + gimple_set_uid (g, gimple_uid (sum)); + gsi_insert_before (&gsi, g, GSI_NEW_STMT); + gimple_assign_set_rhs1 (sum, lhs); + update_stmt (sum); + } if (!useless_type_conversion_p (vec_type, TREE_TYPE (valid_vecs[i + 1]))) { gimple_stmt_iterator gsi = gsi_for_stmt (sum); tree vce = build1 (VIEW_CONVERT_EXPR, vec_type, valid_vecs[i + 1]); *************** undistribute_bitref_for_vector (enum tre *** 2071,2085 **** gimple_set_uid (g, gimple_uid (sum)); gsi_insert_before (&gsi, g, GSI_NEW_STMT); gimple_assign_set_rhs2 (sum, lhs); - if (sum_vec == tvec) - { - vce = build1 (VIEW_CONVERT_EXPR, vec_type, sum_vec); - lhs = make_ssa_name (vec_type); - g = gimple_build_assign (lhs, VIEW_CONVERT_EXPR, vce); - gimple_set_uid (g, gimple_uid (sum)); - gsi_insert_before (&gsi, g, GSI_NEW_STMT); - gimple_assign_set_rhs1 (sum, lhs); - } update_stmt (sum); } sum_vec = gimple_get_lhs (sum); --- 2083,2088 ---- diff -Nrcpad gcc-11.4.0/gcc/tree-ssa-strlen.c gcc-11.5.0/gcc/tree-ssa-strlen.c *** gcc-11.4.0/gcc/tree-ssa-strlen.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/tree-ssa-strlen.c Fri Jul 19 05:52:46 2024 *************** handle_builtin_memcpy (enum built_in_fun *** 3231,3237 **** && !integer_zerop (len)) { maybe_warn_overflow (stmt, len, ptr_qry, olddsi, false, true); ! adjust_last_stmt (olddsi, stmt, false, ptr_qry); } int idx = get_stridx (src); --- 3231,3238 ---- && !integer_zerop (len)) { maybe_warn_overflow (stmt, len, ptr_qry, olddsi, false, true); ! if (tree_fits_uhwi_p (len)) ! adjust_last_stmt (olddsi, stmt, false, ptr_qry); } int idx = get_stridx (src); *************** handle_store (gimple_stmt_iterator *gsi, *** 4801,4806 **** --- 4802,4810 ---- if (si != NULL) { + /* The count_nonzero_bytes call above might have unshared si. + Fetch it again from the vector. */ + si = get_strinfo (idx); /* The corresponding element is set to 1 if the first and last element, respectively, of the sequence of characters being written over the string described by SI ends before diff -Nrcpad gcc-11.4.0/gcc/tree-ssa.c gcc-11.5.0/gcc/tree-ssa.c *** gcc-11.4.0/gcc/tree-ssa.c Mon May 29 08:46:31 2023 --- gcc-11.5.0/gcc/tree-ssa.c Fri Jul 19 05:52:46 2024 *************** maybe_optimize_var (tree var, bitmap add *** 1644,1658 **** maybe_reg = true; DECL_NOT_GIMPLE_REG_P (var) = 0; } ! if (maybe_reg && is_gimple_reg (var)) { ! if (dump_file) { ! fprintf (dump_file, "Now a gimple register: "); ! print_generic_expr (dump_file, var); ! fprintf (dump_file, "\n"); } ! bitmap_set_bit (suitable_for_renaming, DECL_UID (var)); } } } --- 1644,1663 ---- maybe_reg = true; DECL_NOT_GIMPLE_REG_P (var) = 0; } ! if (maybe_reg) { ! if (is_gimple_reg (var)) { ! if (dump_file) ! { ! fprintf (dump_file, "Now a gimple register: "); ! print_generic_expr (dump_file, var); ! fprintf (dump_file, "\n"); ! } ! bitmap_set_bit (suitable_for_renaming, DECL_UID (var)); } ! else ! DECL_NOT_GIMPLE_REG_P (var) = 1; } } } diff -Nrcpad gcc-11.4.0/gcc/tree-vect-loop.c gcc-11.5.0/gcc/tree-vect-loop.c *** gcc-11.4.0/gcc/tree-vect-loop.c Mon May 29 08:46:32 2023 --- gcc-11.5.0/gcc/tree-vect-loop.c Fri Jul 19 05:52:46 2024 *************** pop: *** 3466,3489 **** ??? We could relax this and handle arbitrary live stmts by forcing a scalar epilogue for example. */ imm_use_iterator imm_iter; gimple *op_use_stmt; unsigned cnt = 0; FOR_EACH_IMM_USE_STMT (op_use_stmt, imm_iter, op) if (!is_gimple_debug (op_use_stmt) && (*code != ERROR_MARK || flow_bb_inside_loop_p (loop, gimple_bb (op_use_stmt)))) ! { ! /* We want to allow x + x but not x < 1 ? x : 2. */ ! if (is_gimple_assign (op_use_stmt) ! && gimple_assign_rhs_code (op_use_stmt) == COND_EXPR) ! { ! use_operand_p use_p; ! FOR_EACH_IMM_USE_ON_STMT (use_p, imm_iter) ! cnt++; ! } ! else ! cnt++; ! } if (cnt != 1) { fail = true; --- 3466,3480 ---- ??? We could relax this and handle arbitrary live stmts by forcing a scalar epilogue for example. */ imm_use_iterator imm_iter; + use_operand_p use_p; gimple *op_use_stmt; unsigned cnt = 0; FOR_EACH_IMM_USE_STMT (op_use_stmt, imm_iter, op) if (!is_gimple_debug (op_use_stmt) && (*code != ERROR_MARK || flow_bb_inside_loop_p (loop, gimple_bb (op_use_stmt)))) ! FOR_EACH_IMM_USE_ON_STMT (use_p, imm_iter) ! cnt++; if (cnt != 1) { fail = true; *************** vectorizable_reduction (loop_vec_info lo *** 6771,6787 **** < GET_MODE_SIZE (SCALAR_TYPE_MODE (TREE_TYPE (vectype_op[i])))))) vectype_in = vectype_op[i]; ! if (code == COND_EXPR) { - /* Record how the non-reduction-def value of COND_EXPR is defined. */ if (dt == vect_constant_def) { cond_reduc_dt = dt; cond_reduc_val = op; } ! if (dt == vect_induction_def ! && def_stmt_info ! && is_nonwrapping_integer_induction (def_stmt_info, loop)) { cond_reduc_dt = dt; cond_stmt_vinfo = def_stmt_info; --- 6762,6779 ---- < GET_MODE_SIZE (SCALAR_TYPE_MODE (TREE_TYPE (vectype_op[i])))))) vectype_in = vectype_op[i]; ! /* Record how the non-reduction-def value of COND_EXPR is defined. ! ??? For a chain of multiple CONDs we'd have to match them up all. */ ! if (code == COND_EXPR && reduc_chain_length == 1) { if (dt == vect_constant_def) { cond_reduc_dt = dt; cond_reduc_val = op; } ! else if (dt == vect_induction_def ! && def_stmt_info ! && is_nonwrapping_integer_induction (def_stmt_info, loop)) { cond_reduc_dt = dt; cond_stmt_vinfo = def_stmt_info; *************** vectorizable_induction (loop_vec_info lo *** 8040,8045 **** --- 8032,8046 ---- step_expr = STMT_VINFO_LOOP_PHI_EVOLUTION_PART (stmt_info); gcc_assert (step_expr != NULL_TREE); + if (INTEGRAL_TYPE_P (TREE_TYPE (step_expr)) + && !type_has_mode_precision_p (TREE_TYPE (step_expr))) + { + if (dump_enabled_p ()) + dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location, + "bit-precision induction vectorization not " + "supported.\n"); + return false; + } tree step_vectype = get_same_sized_vectype (TREE_TYPE (step_expr), vectype); /* Check for backend support of PLUS/MINUS_EXPR. */ *************** find_in_mapping (tree t, void *context) *** 9305,9313 **** corresponding dr_vec_info need to be reconnected to the EPILOGUE's stmt_vec_infos, their statements need to point to their corresponding copy, if they are gather loads or scatter stores then their reference needs to be ! updated to point to its corresponding copy and finally we set ! 'base_misaligned' to false as we have already peeled for alignment in the ! prologue of the main loop. */ static void update_epilogue_loop_vinfo (class loop *epilogue, tree advance) --- 9306,9312 ---- corresponding dr_vec_info need to be reconnected to the EPILOGUE's stmt_vec_infos, their statements need to point to their corresponding copy, if they are gather loads or scatter stores then their reference needs to be ! updated to point to its corresponding copy. */ static void update_epilogue_loop_vinfo (class loop *epilogue, tree advance) *************** update_epilogue_loop_vinfo (class loop * *** 9448,9457 **** } DR_STMT (dr) = STMT_VINFO_STMT (stmt_vinfo); stmt_vinfo->dr_aux.stmt = stmt_vinfo; - /* The vector size of the epilogue is smaller than that of the main loop - so the alignment is either the same or lower. This means the dr will - thus by definition be aligned. */ - STMT_VINFO_DR_INFO (stmt_vinfo)->base_misaligned = false; } epilogue_vinfo->shared->datarefs_copy.release (); --- 9447,9452 ---- diff -Nrcpad gcc-11.4.0/gcc/tree-vect-patterns.c gcc-11.5.0/gcc/tree-vect-patterns.c *** gcc-11.4.0/gcc/tree-vect-patterns.c Mon May 29 08:46:32 2023 --- gcc-11.5.0/gcc/tree-vect-patterns.c Fri Jul 19 05:52:46 2024 *************** vect_truncatable_operation_p (tree_code *** 4745,4753 **** --- 4745,4755 ---- { switch (code) { + case NEGATE_EXPR: case PLUS_EXPR: case MINUS_EXPR: case MULT_EXPR: + case BIT_NOT_EXPR: case BIT_AND_EXPR: case BIT_IOR_EXPR: case BIT_XOR_EXPR: *************** vect_determine_precisions_from_range (st *** 4906,4943 **** unsigned int nops = gimple_num_ops (stmt); if (!vect_truncatable_operation_p (code)) ! /* Check that all relevant input operands are compatible, and update ! [MIN_VALUE, MAX_VALUE] to include their ranges. */ ! for (unsigned int i = 1; i < nops; ++i) ! { ! tree op = gimple_op (stmt, i); ! if (TREE_CODE (op) == INTEGER_CST) ! { ! /* Don't require the integer to have RHS_TYPE (which it might ! not for things like shift amounts, etc.), but do require it ! to fit the type. */ ! if (!int_fits_type_p (op, type)) ! return; ! ! min_value = wi::min (min_value, wi::to_wide (op, precision), sign); ! max_value = wi::max (max_value, wi::to_wide (op, precision), sign); ! } ! else if (TREE_CODE (op) == SSA_NAME) ! { ! /* Ignore codes that don't take uniform arguments. */ ! if (!types_compatible_p (TREE_TYPE (op), type)) ! return; ! wide_int op_min_value, op_max_value; ! if (!vect_get_range_info (op, &op_min_value, &op_max_value)) ! return; ! min_value = wi::min (min_value, op_min_value, sign); ! max_value = wi::max (max_value, op_max_value, sign); ! } ! else return; ! } /* Try to switch signed types for unsigned types if we can. This is better for two reasons. First, unsigned ops tend --- 4908,4992 ---- unsigned int nops = gimple_num_ops (stmt); if (!vect_truncatable_operation_p (code)) ! { ! /* Handle operations that can be computed in type T if all inputs ! and outputs can be represented in type T. Also handle left and ! right shifts, where (in addition) the maximum shift amount must ! be less than the number of bits in T. */ ! bool is_shift; ! switch (code) ! { ! case LSHIFT_EXPR: ! case RSHIFT_EXPR: ! is_shift = true; ! break; ! case ABS_EXPR: ! case MIN_EXPR: ! case MAX_EXPR: ! case TRUNC_DIV_EXPR: ! case CEIL_DIV_EXPR: ! case FLOOR_DIV_EXPR: ! case ROUND_DIV_EXPR: ! case EXACT_DIV_EXPR: ! /* Modulus is excluded because it is typically calculated by doing ! a division, for which minimum signed / -1 isn't representable in ! the original signed type. We could take the division range into ! account instead, if handling modulus ever becomes important. */ ! is_shift = false; ! break; ! default: return; ! } ! for (unsigned int i = 1; i < nops; ++i) ! { ! tree op = gimple_op (stmt, i); ! wide_int op_min_value, op_max_value; ! if (TREE_CODE (op) == INTEGER_CST) ! { ! unsigned int op_precision = TYPE_PRECISION (TREE_TYPE (op)); ! op_min_value = op_max_value = wi::to_wide (op, op_precision); ! } ! else if (TREE_CODE (op) == SSA_NAME) ! { ! if (!vect_get_range_info (op, &op_min_value, &op_max_value)) ! return; ! } ! else ! return; ! ! if (is_shift && i == 2) ! { ! /* There needs to be one more bit than the maximum shift amount. ! ! If the maximum shift amount is already 1 less than PRECISION ! then we can't narrow the shift further. Dealing with that ! case first ensures that we can safely use an unsigned range ! below. ! ! op_min_value isn't relevant, since shifts by negative amounts ! are UB. */ ! if (wi::geu_p (op_max_value, precision - 1)) ! return; ! unsigned int min_bits = op_max_value.to_uhwi () + 1; ! ! /* As explained below, we can convert a signed shift into an ! unsigned shift if the sign bit is always clear. At this ! point we've already processed the ranges of the output and ! the first input. */ ! auto op_sign = sign; ! if (sign == SIGNED && !wi::neg_p (min_value)) ! op_sign = UNSIGNED; ! op_min_value = wide_int::from (wi::min_value (min_bits, op_sign), ! precision, op_sign); ! op_max_value = wide_int::from (wi::max_value (min_bits, op_sign), ! precision, op_sign); ! } ! min_value = wi::min (min_value, op_min_value, sign); ! max_value = wi::max (max_value, op_max_value, sign); ! } ! } /* Try to switch signed types for unsigned types if we can. This is better for two reasons. First, unsigned ops tend diff -Nrcpad gcc-11.4.0/gcc/tree-vect-slp.c gcc-11.5.0/gcc/tree-vect-slp.c *** gcc-11.4.0/gcc/tree-vect-slp.c Mon May 29 08:46:32 2023 --- gcc-11.5.0/gcc/tree-vect-slp.c Fri Jul 19 05:52:46 2024 *************** vect_schedule_slp_node (vec_info *vinfo, *** 6202,6213 **** int i; slp_tree child; - /* For existing vectors there's nothing to do. */ - if (SLP_TREE_VEC_DEFS (node).exists ()) - return; - - gcc_assert (SLP_TREE_VEC_STMTS (node).is_empty ()); - /* Vectorize externals and constants. */ if (SLP_TREE_DEF_TYPE (node) == vect_constant_def || SLP_TREE_DEF_TYPE (node) == vect_external_def) --- 6202,6207 ---- *************** vect_schedule_slp_node (vec_info *vinfo, *** 6218,6227 **** if (!SLP_TREE_VECTYPE (node)) return; ! vect_create_constant_vectors (vinfo, node); return; } stmt_vec_info stmt_info = SLP_TREE_REPRESENTATIVE (node); gcc_assert (SLP_TREE_NUMBER_OF_VEC_STMTS (node) != 0); --- 6212,6229 ---- if (!SLP_TREE_VECTYPE (node)) return; ! /* There are two reasons vector defs might already exist. The first ! is that we are vectorizing an existing vector def. The second is ! when performing BB vectorization shared constant/external nodes ! are not split apart during partitioning so during the code-gen ! DFS walk we can end up visiting them twice. */ ! if (! SLP_TREE_VEC_DEFS (node).exists ()) ! vect_create_constant_vectors (vinfo, node); return; } + gcc_assert (SLP_TREE_VEC_DEFS (node).is_empty ()); + stmt_vec_info stmt_info = SLP_TREE_REPRESENTATIVE (node); gcc_assert (SLP_TREE_NUMBER_OF_VEC_STMTS (node) != 0); diff -Nrcpad gcc-11.4.0/gcc/tree.c gcc-11.5.0/gcc/tree.c *** gcc-11.4.0/gcc/tree.c Mon May 29 08:46:32 2023 --- gcc-11.5.0/gcc/tree.c Fri Jul 19 05:52:46 2024 *************** build_qualified_type (tree type, int typ *** 6711,6717 **** return t; } ! /* Create a variant of type T with alignment ALIGN. */ tree build_aligned_type (tree type, unsigned int align) --- 6711,6718 ---- return t; } ! /* Create a variant of type T with alignment ALIGN which ! is measured in bits. */ tree build_aligned_type (tree type, unsigned int align) *************** build_opaque_vector_type (tree innertype *** 11097,11102 **** --- 11098,11105 ---- TYPE_NEXT_VARIANT (cand) = TYPE_NEXT_VARIANT (t); TYPE_NEXT_VARIANT (t) = cand; TYPE_MAIN_VARIANT (cand) = TYPE_MAIN_VARIANT (t); + /* Type variants have no alias set defined. */ + TYPE_ALIAS_SET (cand) = -1; return cand; } diff -Nrcpad gcc-11.4.0/gcc/tsan.c gcc-11.5.0/gcc/tsan.c *** gcc-11.4.0/gcc/tsan.c Mon May 29 08:46:32 2023 --- gcc-11.5.0/gcc/tsan.c Fri Jul 19 05:52:46 2024 *************** instrument_expr (gimple_stmt_iterator gs *** 139,144 **** --- 139,147 ---- if (TREE_READONLY (base) || (VAR_P (base) && DECL_HARD_REGISTER (base))) return false; + if (!ADDR_SPACE_GENERIC_P (TYPE_ADDR_SPACE (TREE_TYPE (base)))) + return false; + stmt = gsi_stmt (gsi); loc = gimple_location (stmt); rhs = is_vptr_store (stmt, expr, is_write); diff -Nrcpad gcc-11.4.0/gcc/ubsan.c gcc-11.5.0/gcc/ubsan.c *** gcc-11.4.0/gcc/ubsan.c Mon May 29 08:46:32 2023 --- gcc-11.5.0/gcc/ubsan.c Fri Jul 19 05:52:46 2024 *************** along with GCC; see the file COPYING3. *** 49,54 **** --- 49,55 ---- #include "tree-cfg.h" #include "gimple-fold.h" #include "varasm.h" + #include "target.h" /* Map from a tree to a VAR_DECL tree. */ *************** ubsan_expand_null_ifn (gimple_stmt_itera *** 784,789 **** --- 785,797 ---- } } check_null = sanitize_flags_p (SANITIZE_NULL); + if (check_null && POINTER_TYPE_P (TREE_TYPE (ptr))) + { + addr_space_t as = TYPE_ADDR_SPACE (TREE_TYPE (TREE_TYPE (ptr))); + if (!ADDR_SPACE_GENERIC_P (as) + && targetm.addr_space.zero_address_valid (as)) + check_null = false; + } if (check_align == NULL_TREE && !check_null) { *************** instrument_mem_ref (tree mem, tree base, *** 1375,1382 **** if (align <= 1) align = 0; } ! if (align == 0 && !sanitize_flags_p (SANITIZE_NULL)) ! return; tree t = TREE_OPERAND (base, 0); if (!POINTER_TYPE_P (TREE_TYPE (t))) return; --- 1383,1397 ---- if (align <= 1) align = 0; } ! if (align == 0) ! { ! if (!sanitize_flags_p (SANITIZE_NULL)) ! return; ! addr_space_t as = TYPE_ADDR_SPACE (TREE_TYPE (base)); ! if (!ADDR_SPACE_GENERIC_P (as) ! && targetm.addr_space.zero_address_valid (as)) ! return; ! } tree t = TREE_OPERAND (base, 0); if (!POINTER_TYPE_P (TREE_TYPE (t))) return; *************** instrument_bool_enum_load (gimple_stmt_i *** 1688,1700 **** || TREE_CODE (gimple_assign_lhs (stmt)) != SSA_NAME) return; bool ends_bb = stmt_ends_bb_p (stmt); location_t loc = gimple_location (stmt); tree lhs = gimple_assign_lhs (stmt); tree ptype = build_pointer_type (TREE_TYPE (rhs)); tree atype = reference_alias_ptr_type (rhs); gimple *g = gimple_build_assign (make_ssa_name (ptype), ! build_fold_addr_expr (rhs)); gimple_set_location (g, loc); gsi_insert_before (gsi, g, GSI_SAME_STMT); tree mem = build2 (MEM_REF, utype, gimple_assign_lhs (g), --- 1703,1719 ---- || TREE_CODE (gimple_assign_lhs (stmt)) != SSA_NAME) return; + addr_space_t as = TYPE_ADDR_SPACE (TREE_TYPE (rhs)); + if (as != TYPE_ADDR_SPACE (utype)) + utype = build_qualified_type (utype, TYPE_QUALS (utype) + | ENCODE_QUAL_ADDR_SPACE (as)); bool ends_bb = stmt_ends_bb_p (stmt); location_t loc = gimple_location (stmt); tree lhs = gimple_assign_lhs (stmt); tree ptype = build_pointer_type (TREE_TYPE (rhs)); tree atype = reference_alias_ptr_type (rhs); gimple *g = gimple_build_assign (make_ssa_name (ptype), ! build_fold_addr_expr (rhs)); gimple_set_location (g, loc); gsi_insert_before (gsi, g, GSI_SAME_STMT); tree mem = build2 (MEM_REF, utype, gimple_assign_lhs (g), diff -Nrcpad gcc-11.4.0/gcc/wide-int.cc gcc-11.5.0/gcc/wide-int.cc *** gcc-11.4.0/gcc/wide-int.cc Mon May 29 08:46:32 2023 --- gcc-11.5.0/gcc/wide-int.cc Fri Jul 19 05:52:46 2024 *************** wi::divmod_internal (HOST_WIDE_INT *quot *** 1888,1896 **** } wi_unpack (b_dividend, dividend.get_val (), dividend.get_len (), ! dividend_blocks_needed, dividend_prec, sgn); wi_unpack (b_divisor, divisor.get_val (), divisor.get_len (), ! divisor_blocks_needed, divisor_prec, sgn); m = dividend_blocks_needed; b_dividend[m] = 0; --- 1888,1896 ---- } wi_unpack (b_dividend, dividend.get_val (), dividend.get_len (), ! dividend_blocks_needed, dividend_prec, UNSIGNED); wi_unpack (b_divisor, divisor.get_val (), divisor.get_len (), ! divisor_blocks_needed, divisor_prec, UNSIGNED); m = dividend_blocks_needed; b_dividend[m] = 0; diff -Nrcpad gcc-11.4.0/gnattools/ChangeLog gcc-11.5.0/gnattools/ChangeLog *** gcc-11.4.0/gnattools/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/gnattools/ChangeLog Fri Jul 19 05:53:33 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/gotools/ChangeLog gcc-11.5.0/gotools/ChangeLog *** gcc-11.4.0/gotools/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/gotools/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/include/ChangeLog gcc-11.5.0/include/ChangeLog *** gcc-11.4.0/include/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/include/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/intl/ChangeLog gcc-11.5.0/intl/ChangeLog *** gcc-11.4.0/intl/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/intl/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/libada/ChangeLog gcc-11.5.0/libada/ChangeLog *** gcc-11.4.0/libada/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/libada/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/libatomic/ChangeLog gcc-11.5.0/libatomic/ChangeLog *** gcc-11.4.0/libatomic/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/libatomic/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/libbacktrace/ChangeLog gcc-11.5.0/libbacktrace/ChangeLog *** gcc-11.4.0/libbacktrace/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/libbacktrace/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/libcc1/ChangeLog gcc-11.5.0/libcc1/ChangeLog *** gcc-11.4.0/libcc1/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/libcc1/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,16 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + + 2024-06-29 Francois-Xavier Coudert + + Backported from master: + 2024-03-16 Francois-Xavier Coudert + + PR middle-end/111632 + * libcc1plugin.cc: Fix include. + * libcp1plugin.cc: Fix include. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/libcc1/libcc1plugin.cc gcc-11.5.0/libcc1/libcc1plugin.cc *** gcc-11.4.0/libcc1/libcc1plugin.cc Mon May 29 08:46:32 2023 --- gcc-11.5.0/libcc1/libcc1plugin.cc Fri Jul 19 05:52:46 2024 *************** *** 31,36 **** --- 31,38 ---- #undef PACKAGE_TARNAME #undef PACKAGE_VERSION + #define INCLUDE_MEMORY + #define INCLUDE_VECTOR #include "gcc-plugin.h" #include "system.h" #include "coretypes.h" diff -Nrcpad gcc-11.4.0/libcc1/libcp1plugin.cc gcc-11.5.0/libcc1/libcp1plugin.cc *** gcc-11.4.0/libcc1/libcp1plugin.cc Mon May 29 08:46:32 2023 --- gcc-11.5.0/libcc1/libcp1plugin.cc Fri Jul 19 05:52:46 2024 *************** *** 32,37 **** --- 32,39 ---- #undef PACKAGE_TARNAME #undef PACKAGE_VERSION + #define INCLUDE_MEMORY + #define INCLUDE_VECTOR #include "gcc-plugin.h" #include "system.h" #include "coretypes.h" diff -Nrcpad gcc-11.4.0/libcody/ChangeLog gcc-11.5.0/libcody/ChangeLog *** gcc-11.4.0/libcody/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/libcody/ChangeLog Fri Jul 19 05:53:33 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/libcpp/ChangeLog gcc-11.5.0/libcpp/ChangeLog *** gcc-11.4.0/libcpp/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/libcpp/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,18 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-02-22 Jakub Jelinek + + PR c/114007 + * include/cpplib.h (COLON_SCOPE): Define to PURE_ZERO. + * lex.c (_cpp_lex_direct): When lexing CPP_COLON with another + colon after it, if !CPP_OPTION (pfile, scope) set COLON_SCOPE + flag on the first CPP_COLON token. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/libcpp/include/cpplib.h gcc-11.5.0/libcpp/include/cpplib.h *** gcc-11.4.0/libcpp/include/cpplib.h Mon May 29 08:46:32 2023 --- gcc-11.5.0/libcpp/include/cpplib.h Fri Jul 19 05:52:46 2024 *************** struct GTY(()) cpp_string { *** 193,198 **** --- 193,199 ---- #define BOL (1 << 6) /* Token at beginning of line. */ #define PURE_ZERO (1 << 7) /* Single 0 digit, used by the C++ frontend, set in c-lex.c. */ + #define COLON_SCOPE PURE_ZERO /* Adjacent colons in C < 23. */ #define SP_DIGRAPH (1 << 8) /* # or ## token was a digraph. */ #define SP_PREV_WHITE (1 << 9) /* If whitespace before a ## operator, or before this token diff -Nrcpad gcc-11.4.0/libcpp/lex.c gcc-11.5.0/libcpp/lex.c *** gcc-11.4.0/libcpp/lex.c Mon May 29 08:46:32 2023 --- gcc-11.5.0/libcpp/lex.c Fri Jul 19 05:52:46 2024 *************** _cpp_lex_direct (cpp_reader *pfile) *** 3344,3351 **** case ':': result->type = CPP_COLON; ! if (*buffer->cur == ':' && CPP_OPTION (pfile, scope)) ! buffer->cur++, result->type = CPP_SCOPE; else if (*buffer->cur == '>' && CPP_OPTION (pfile, digraphs)) { buffer->cur++; --- 3344,3356 ---- case ':': result->type = CPP_COLON; ! if (*buffer->cur == ':') ! { ! if (CPP_OPTION (pfile, scope)) ! buffer->cur++, result->type = CPP_SCOPE; ! else ! result->flags |= COLON_SCOPE; ! } else if (*buffer->cur == '>' && CPP_OPTION (pfile, digraphs)) { buffer->cur++; diff -Nrcpad gcc-11.4.0/libcpp/po/ChangeLog gcc-11.5.0/libcpp/po/ChangeLog *** gcc-11.4.0/libcpp/po/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/libcpp/po/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/libdecnumber/ChangeLog gcc-11.5.0/libdecnumber/ChangeLog *** gcc-11.4.0/libdecnumber/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/libdecnumber/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/libffi/ChangeLog gcc-11.5.0/libffi/ChangeLog *** gcc-11.4.0/libffi/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/libffi/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/libgcc/ChangeLog gcc-11.5.0/libgcc/ChangeLog *** gcc-11.4.0/libgcc/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/libgcc/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,15 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + + 2024-06-12 Andre Vieira + + Backported from master: + 2024-06-06 Andre Vieira + + PR target/115360 + * config/arm/cmse_nonsecure_call.S: Add .type and .size directives. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/libgcc/config/arm/cmse_nonsecure_call.S gcc-11.5.0/libgcc/config/arm/cmse_nonsecure_call.S *** gcc-11.4.0/libgcc/config/arm/cmse_nonsecure_call.S Mon May 29 08:46:32 2023 --- gcc-11.5.0/libgcc/config/arm/cmse_nonsecure_call.S Fri Jul 19 05:52:46 2024 *************** *** 33,38 **** --- 33,39 ---- #endif .thumb + .type __gnu_cmse_nonsecure_call, %function .global __gnu_cmse_nonsecure_call __gnu_cmse_nonsecure_call: #if defined(__ARM_ARCH_8M_MAIN__) *************** pop {r5-r7, pc} *** 142,144 **** --- 143,146 ---- #else #error "This should only be used for armv8-m base- and mainline." #endif + .size __gnu_cmse_nonsecure_call, .-__gnu_cmse_nonsecure_call diff -Nrcpad gcc-11.4.0/libgcc/config/avr/libf7/ChangeLog gcc-11.5.0/libgcc/config/avr/libf7/ChangeLog *** gcc-11.4.0/libgcc/config/avr/libf7/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/libgcc/config/avr/libf7/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/libgcc/config/libbid/ChangeLog gcc-11.5.0/libgcc/config/libbid/ChangeLog *** gcc-11.4.0/libgcc/config/libbid/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/libgcc/config/libbid/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/libgfortran/ChangeLog gcc-11.5.0/libgfortran/ChangeLog *** gcc-11.4.0/libgfortran/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/libgfortran/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,12 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + + 2024-02-11 Francois-Xavier Coudert + + PR libfortran/110651 + * libgfortran.spec.in: Remove duplicate libraries. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/libgfortran/libgfortran.spec.in gcc-11.5.0/libgfortran/libgfortran.spec.in *** gcc-11.4.0/libgfortran/libgfortran.spec.in Mon May 29 08:46:32 2023 --- gcc-11.5.0/libgfortran/libgfortran.spec.in Fri Jul 19 05:52:46 2024 *************** *** 5,8 **** # %rename lib liborig ! *lib: @LIBQUADSPEC@ -lm %(libgcc) %(liborig) --- 5,8 ---- # %rename lib liborig ! *lib: @LIBQUADSPEC@ -lm %(liborig) diff -Nrcpad gcc-11.4.0/libgomp/ChangeLog gcc-11.5.0/libgomp/ChangeLog *** gcc-11.4.0/libgomp/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/libgomp/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,74 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-04-05 Jakub Jelinek + + PR c++/114572 + * testsuite/libgomp.c++/pr114572.C: New test. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-01-10 Jakub Jelinek + + PR libgomp/113192 + * configure.ac (FLOCK): Use $libgomp_abs_srcdir/testsuite/flock + instead of \$(abs_top_srcdir)/testsuite/flock. + * configure: Regenerated. + + 2023-06-28 Thomas Schwinge + + Backported from master: + 2023-06-02 Thomas Schwinge + + PR testsuite/66005 + * testsuite/lib/libgomp.exp: 'flock' through stdout. + * testsuite/flock: New. + * configure.ac (FLOCK): Point to that if no 'flock' available, but + 'perl' is. + * configure: Regenerate. + + 2023-06-28 Thomas Schwinge + + Backported from master: + 2023-05-15 Thomas Schwinge + + PR testsuite/66005 + * configure.ac: Look for 'flock'. + * testsuite/Makefile.am (gcc_test_parallel_slots): Enable parallel testing. + * testsuite/config/default.exp: Don't 'load_lib "standard.exp"' here... + * testsuite/lib/libgomp.exp: ... but here, instead. + (libgomp_load): Override for parallel testing. + * testsuite/libgomp-site-extra.exp.in (FLOCK): Set. + * configure: Regenerate. + * Makefile.in: Regenerate. + * testsuite/Makefile.in: Regenerate. + + 2023-06-28 Rainer Orth + + Backported from master: + 2023-05-15 Rainer Orth + Thomas Schwinge + + PR testsuite/66005 + * testsuite/Makefile.am (PWD_COMMAND): New variable. + (%/site.exp): New target. + (check_p_numbers0, check_p_numbers1, check_p_numbers2) + (check_p_numbers3, check_p_numbers4, check_p_numbers5) + (check_p_numbers6, check_p_numbers, gcc_test_parallel_slots) + (check_p_subdirs) + (check_DEJAGNU_libgomp_targets): New variables. + ($(check_DEJAGNU_libgomp_targets)): New target. + ($(check_DEJAGNU_libgomp_targets)): New dependency. + (check-DEJAGNU $(check_DEJAGNU_libgomp_targets)): New targets. + * testsuite/Makefile.in: Regenerate. + * testsuite/lib/libgomp.exp: For parallel testing, + 'load_file ../libgomp-test-support.exp'. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/libgomp/Makefile.in gcc-11.5.0/libgomp/Makefile.in *** gcc-11.4.0/libgomp/Makefile.in Mon May 29 08:49:47 2023 --- gcc-11.5.0/libgomp/Makefile.in Fri Jul 19 05:53:51 2024 *************** EXEEXT = @EXEEXT@ *** 384,389 **** --- 384,390 ---- FC = @FC@ FCFLAGS = @FCFLAGS@ FGREP = @FGREP@ + FLOCK = @FLOCK@ GREP = @GREP@ HSA_RUNTIME_INCLUDE = @HSA_RUNTIME_INCLUDE@ HSA_RUNTIME_LIB = @HSA_RUNTIME_LIB@ diff -Nrcpad gcc-11.4.0/libgomp/configure gcc-11.5.0/libgomp/configure *** gcc-11.4.0/libgomp/configure Mon May 29 08:49:47 2023 --- gcc-11.5.0/libgomp/configure Fri Jul 19 05:53:51 2024 *************** tmake_file *** 656,661 **** --- 656,662 ---- XLDFLAGS XCFLAGS config_path + FLOCK CPU_COUNT LIBGOMP_BUILD_VERSIONED_SHLIB_SUN_FALSE LIBGOMP_BUILD_VERSIONED_SHLIB_SUN_TRUE *************** else *** 11421,11427 **** lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 11424 "configure" #include "confdefs.h" #if HAVE_DLFCN_H --- 11422,11428 ---- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 11425 "configure" #include "confdefs.h" #if HAVE_DLFCN_H *************** else *** 11527,11533 **** lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 11530 "configure" #include "confdefs.h" #if HAVE_DLFCN_H --- 11528,11534 ---- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 11531 "configure" #include "confdefs.h" #if HAVE_DLFCN_H *************** $as_echo "unable to detect (assuming 1)" *** 16643,16648 **** --- 16644,16741 ---- fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for flock implementation" >&5 + $as_echo "$as_me: checking for flock implementation" >&6;} + for ac_prog in flock + 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_FLOCK+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$FLOCK"; then + ac_cv_prog_FLOCK="$FLOCK" # 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_FLOCK="$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 + FLOCK=$ac_cv_prog_FLOCK + if test -n "$FLOCK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FLOCK" >&5 + $as_echo "$FLOCK" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + + + test -n "$FLOCK" && break + done + + # Fallback if 'perl' is available. + if test -z "$FLOCK"; then + # These need to be absolute paths, yet at the same time need to + # canonicalize only relative paths, because then amd will not unmount + # drives. Thus the use of PWDCMD: set it to 'pawd' or 'amq -w' if using amd. + case $srcdir in + [\\/$]* | ?:[\\/]*) libgomp_abs_srcdir=${srcdir} ;; + *) libgomp_abs_srcdir=`cd "$srcdir" && ${PWDCMD-pwd} || echo "$srcdir"` ;; + esac + # Extract the first word of "perl", so it can be a program name with args. + set dummy perl; 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_FLOCK+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test -n "$FLOCK"; then + ac_cv_prog_FLOCK="$FLOCK" # 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_FLOCK="$libgomp_abs_srcdir/testsuite/flock" + $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 + FLOCK=$ac_cv_prog_FLOCK + if test -n "$FLOCK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FLOCK" >&5 + $as_echo "$FLOCK" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi + + + fi + # Get target configury. . ${srcdir}/configure.tgt CFLAGS="$save_CFLAGS $XCFLAGS" diff -Nrcpad gcc-11.4.0/libgomp/configure.ac gcc-11.5.0/libgomp/configure.ac *** gcc-11.4.0/libgomp/configure.ac Mon May 29 08:49:47 2023 --- gcc-11.5.0/libgomp/configure.ac Fri Jul 19 05:53:51 2024 *************** fi *** 331,336 **** --- 331,352 ---- AX_COUNT_CPUS AC_SUBST(CPU_COUNT) + AC_MSG_NOTICE([checking for flock implementation]) + AC_CHECK_PROGS(FLOCK, flock) + # Fallback if 'perl' is available. + if test -z "$FLOCK"; then + # These need to be absolute paths, yet at the same time need to + # canonicalize only relative paths, because then amd will not unmount + # drives. Thus the use of PWDCMD: set it to 'pawd' or 'amq -w' if using amd. + case $srcdir in + changequote(,)dnl + [\\/$]* | ?:[\\/]*) libgomp_abs_srcdir=${srcdir} ;; + changequote([,])dnl + *) libgomp_abs_srcdir=`cd "$srcdir" && ${PWDCMD-pwd} || echo "$srcdir"` ;; + esac + AC_CHECK_PROG(FLOCK, perl, $libgomp_abs_srcdir/testsuite/flock) + fi + # Get target configury. . ${srcdir}/configure.tgt CFLAGS="$save_CFLAGS $XCFLAGS" diff -Nrcpad gcc-11.4.0/libgomp/libgomp.info gcc-11.5.0/libgomp/libgomp.info *** gcc-11.4.0/libgomp/libgomp.info Mon May 29 09:05:54 2023 --- gcc-11.5.0/libgomp/libgomp.info Fri Jul 19 06:09:43 2024 *************** *** 1,4 **** ! This is libgomp.info, produced by makeinfo version 6.8 from libgomp.texi. Copyright (C) 2006-2021 Free Software Foundation, Inc. --- 1,4 ---- ! This is libgomp.info, produced by makeinfo version 6.5 from libgomp.texi. Copyright (C) 2006-2021 Free Software Foundation, Inc. *************** software. Copies published by the Free *** 54,60 **** for GNU development.  ! File: libgomp.info, Node: Top, Next: Enabling OpenMP, Up: (dir) Introduction ************ --- 54,60 ---- for GNU development.  ! File: libgomp.info, Node: Top, Next: Enabling OpenMP Introduction ************ *************** Library Index *** 5114,5266 ****  Tag Table: Node: Top2083 ! Node: Enabling OpenMP4645 ! Node: Runtime Library Routines5421 ! Node: omp_get_active_level8742 ! Node: omp_get_ancestor_thread_num9442 ! Node: omp_get_cancellation10372 ! Node: omp_get_default_device11186 ! Node: omp_get_dynamic11862 ! Node: omp_get_initial_device12746 ! Node: omp_get_level13490 ! Node: omp_get_max_active_levels14117 ! Node: omp_get_max_task_priority14838 ! Node: omp_get_max_threads15458 ! Node: omp_get_nested16217 ! Node: omp_get_num_devices17825 ! Node: omp_get_num_procs18346 ! Node: omp_get_num_teams18885 ! Node: omp_get_num_threads19401 ! Node: omp_get_proc_bind20490 ! Node: omp_get_schedule21413 ! Node: omp_get_supported_active_levels22382 ! Node: omp_get_team_num23168 ! Node: omp_get_team_size23682 ! Node: omp_get_thread_limit24642 ! Node: omp_get_thread_num25261 ! Node: omp_in_parallel26132 ! Node: omp_in_final26781 ! Node: omp_is_initial_device27455 ! Node: omp_set_default_device28148 ! Node: omp_set_dynamic28939 ! Node: omp_set_max_active_levels29825 ! Node: omp_set_nested30747 ! Node: omp_set_num_threads31944 ! Node: omp_set_schedule32812 ! Node: omp_init_lock33893 ! Node: omp_set_lock34546 ! Node: omp_test_lock35401 ! Node: omp_unset_lock36377 ! Node: omp_destroy_lock37308 ! Node: omp_init_nest_lock37985 ! Node: omp_set_nest_lock38720 ! Node: omp_test_nest_lock39635 ! Node: omp_unset_nest_lock40662 ! Node: omp_destroy_nest_lock41677 ! Node: omp_get_wtick42428 ! Node: omp_get_wtime43020 ! Node: omp_fulfill_event43822 ! Node: Environment Variables44843 ! Node: OMP_CANCELLATION46472 ! Node: OMP_DISPLAY_ENV47005 ! Node: OMP_DEFAULT_DEVICE47708 ! Node: OMP_DYNAMIC48488 ! Node: OMP_MAX_ACTIVE_LEVELS49084 ! Node: OMP_MAX_TASK_PRIORITY50011 ! Node: OMP_NESTED50669 ! Node: OMP_NUM_THREADS51698 ! Node: OMP_PROC_BIND52500 ! Node: OMP_PLACES53814 ! Node: OMP_STACKSIZE55993 ! Node: OMP_SCHEDULE56817 ! Node: OMP_TARGET_OFFLOAD57517 ! Node: OMP_THREAD_LIMIT58473 ! Node: OMP_WAIT_POLICY59079 ! Node: GOMP_CPU_AFFINITY59771 ! Node: GOMP_DEBUG61501 ! Node: GOMP_STACKSIZE62008 ! Node: GOMP_SPINCOUNT62839 ! Node: GOMP_RTEMS_THREAD_POOLS64043 ! Node: Enabling OpenACC66221 ! Node: OpenACC Runtime Library Routines67122 ! Node: acc_get_num_devices71403 ! Node: acc_set_device_type72129 ! Node: acc_get_device_type72893 ! Node: acc_set_device_num73906 ! Node: acc_get_device_num74723 ! Node: acc_get_property75522 ! Node: acc_async_test77745 ! Node: acc_async_test_all78733 ! Node: acc_wait79633 ! Node: acc_wait_all80496 ! Node: acc_wait_all_async81257 ! Node: acc_wait_async82009 ! Node: acc_init82717 ! Node: acc_shutdown83362 ! Node: acc_on_device84029 ! Node: acc_malloc85033 ! Node: acc_free85532 ! Node: acc_copyin85959 ! Node: acc_present_or_copyin87546 ! Node: acc_create89324 ! Node: acc_present_or_create90956 ! Node: acc_copyout92742 ! Node: acc_delete95046 ! Node: acc_update_device97293 ! Node: acc_update_self98867 ! Node: acc_map_data100457 ! Node: acc_unmap_data101142 ! Node: acc_deviceptr101663 ! Node: acc_hostptr102233 ! Node: acc_is_present102797 ! Node: acc_memcpy_to_device104324 ! Node: acc_memcpy_from_device104987 ! Node: acc_attach105654 ! Node: acc_detach106301 ! Node: acc_get_current_cuda_device107080 ! Node: acc_get_current_cuda_context107665 ! Node: acc_get_cuda_stream108265 ! Node: acc_set_cuda_stream108856 ! Node: acc_prof_register109527 ! Node: acc_prof_unregister110086 ! Node: acc_prof_lookup110653 ! Node: acc_register_library111174 ! Node: OpenACC Environment Variables111740 ! Node: ACC_DEVICE_TYPE112312 ! Node: ACC_DEVICE_NUM112548 ! Node: ACC_PROFLIB112802 ! Node: GCC_ACC_NOTIFY113133 ! Node: CUDA Streams Usage113353 ! Ref: CUDA Streams Usage-Footnote-1115254 ! Node: OpenACC Library Interoperability115363 ! Ref: OpenACC Library Interoperability-Footnote-1121731 ! Ref: OpenACC Library Interoperability-Footnote-2121983 ! Node: OpenACC Profiling Interface122191 ! Node: The libgomp ABI132215 ! Node: Implementing MASTER construct133068 ! Node: Implementing CRITICAL construct133484 ! Node: Implementing ATOMIC construct134225 ! Node: Implementing FLUSH construct134708 ! Node: Implementing BARRIER construct134981 ! Node: Implementing THREADPRIVATE construct135252 ! Node: Implementing PRIVATE clause135907 ! Node: Implementing FIRSTPRIVATE LASTPRIVATE COPYIN and COPYPRIVATE clauses136490 ! Node: Implementing REDUCTION clause137816 ! Node: Implementing PARALLEL construct138375 ! Node: Implementing FOR construct139634 ! Node: Implementing ORDERED construct141634 ! Node: Implementing SECTIONS construct141942 ! Node: Implementing SINGLE construct142710 ! Node: Implementing OpenACC's PARALLEL construct143424 ! Node: Reporting Bugs143684 ! Node: Copying144047 ! Node: GNU Free Documentation License181593 ! Node: Funding206716 ! Node: Library Index209242  End Tag Table - -  - Local Variables: - coding: utf-8 - End: --- 5114,5261 ----  Tag Table: Node: Top2083 ! Node: Enabling OpenMP4633 ! Node: Runtime Library Routines5409 ! Node: omp_get_active_level8730 ! Node: omp_get_ancestor_thread_num9430 ! Node: omp_get_cancellation10360 ! Node: omp_get_default_device11174 ! Node: omp_get_dynamic11850 ! Node: omp_get_initial_device12734 ! Node: omp_get_level13478 ! Node: omp_get_max_active_levels14105 ! Node: omp_get_max_task_priority14826 ! Node: omp_get_max_threads15446 ! Node: omp_get_nested16205 ! Node: omp_get_num_devices17813 ! Node: omp_get_num_procs18334 ! Node: omp_get_num_teams18873 ! Node: omp_get_num_threads19389 ! Node: omp_get_proc_bind20478 ! Node: omp_get_schedule21401 ! Node: omp_get_supported_active_levels22370 ! Node: omp_get_team_num23156 ! Node: omp_get_team_size23670 ! Node: omp_get_thread_limit24630 ! Node: omp_get_thread_num25249 ! Node: omp_in_parallel26120 ! Node: omp_in_final26769 ! Node: omp_is_initial_device27443 ! Node: omp_set_default_device28136 ! Node: omp_set_dynamic28927 ! Node: omp_set_max_active_levels29813 ! Node: omp_set_nested30735 ! Node: omp_set_num_threads31932 ! Node: omp_set_schedule32800 ! Node: omp_init_lock33881 ! Node: omp_set_lock34534 ! Node: omp_test_lock35389 ! Node: omp_unset_lock36365 ! Node: omp_destroy_lock37296 ! Node: omp_init_nest_lock37973 ! Node: omp_set_nest_lock38708 ! Node: omp_test_nest_lock39623 ! Node: omp_unset_nest_lock40650 ! Node: omp_destroy_nest_lock41665 ! Node: omp_get_wtick42416 ! Node: omp_get_wtime43008 ! Node: omp_fulfill_event43810 ! Node: Environment Variables44831 ! Node: OMP_CANCELLATION46460 ! Node: OMP_DISPLAY_ENV46993 ! Node: OMP_DEFAULT_DEVICE47696 ! Node: OMP_DYNAMIC48476 ! Node: OMP_MAX_ACTIVE_LEVELS49072 ! Node: OMP_MAX_TASK_PRIORITY49999 ! Node: OMP_NESTED50657 ! Node: OMP_NUM_THREADS51686 ! Node: OMP_PROC_BIND52488 ! Node: OMP_PLACES53802 ! Node: OMP_STACKSIZE55981 ! Node: OMP_SCHEDULE56805 ! Node: OMP_TARGET_OFFLOAD57505 ! Node: OMP_THREAD_LIMIT58461 ! Node: OMP_WAIT_POLICY59067 ! Node: GOMP_CPU_AFFINITY59759 ! Node: GOMP_DEBUG61489 ! Node: GOMP_STACKSIZE61996 ! Node: GOMP_SPINCOUNT62827 ! Node: GOMP_RTEMS_THREAD_POOLS64031 ! Node: Enabling OpenACC66209 ! Node: OpenACC Runtime Library Routines67110 ! Node: acc_get_num_devices71391 ! Node: acc_set_device_type72117 ! Node: acc_get_device_type72881 ! Node: acc_set_device_num73894 ! Node: acc_get_device_num74711 ! Node: acc_get_property75510 ! Node: acc_async_test77733 ! Node: acc_async_test_all78721 ! Node: acc_wait79621 ! Node: acc_wait_all80484 ! Node: acc_wait_all_async81245 ! Node: acc_wait_async81997 ! Node: acc_init82705 ! Node: acc_shutdown83350 ! Node: acc_on_device84017 ! Node: acc_malloc85021 ! Node: acc_free85520 ! Node: acc_copyin85947 ! Node: acc_present_or_copyin87534 ! Node: acc_create89312 ! Node: acc_present_or_create90944 ! Node: acc_copyout92730 ! Node: acc_delete95034 ! Node: acc_update_device97281 ! Node: acc_update_self98855 ! Node: acc_map_data100445 ! Node: acc_unmap_data101130 ! Node: acc_deviceptr101651 ! Node: acc_hostptr102221 ! Node: acc_is_present102785 ! Node: acc_memcpy_to_device104312 ! Node: acc_memcpy_from_device104975 ! Node: acc_attach105642 ! Node: acc_detach106289 ! Node: acc_get_current_cuda_device107068 ! Node: acc_get_current_cuda_context107653 ! Node: acc_get_cuda_stream108253 ! Node: acc_set_cuda_stream108844 ! Node: acc_prof_register109515 ! Node: acc_prof_unregister110074 ! Node: acc_prof_lookup110641 ! Node: acc_register_library111162 ! Node: OpenACC Environment Variables111728 ! Node: ACC_DEVICE_TYPE112300 ! Node: ACC_DEVICE_NUM112536 ! Node: ACC_PROFLIB112790 ! Node: GCC_ACC_NOTIFY113121 ! Node: CUDA Streams Usage113341 ! Ref: CUDA Streams Usage-Footnote-1115242 ! Node: OpenACC Library Interoperability115351 ! Ref: OpenACC Library Interoperability-Footnote-1121719 ! Ref: OpenACC Library Interoperability-Footnote-2121971 ! Node: OpenACC Profiling Interface122179 ! Node: The libgomp ABI132203 ! Node: Implementing MASTER construct133056 ! Node: Implementing CRITICAL construct133472 ! Node: Implementing ATOMIC construct134213 ! Node: Implementing FLUSH construct134696 ! Node: Implementing BARRIER construct134969 ! Node: Implementing THREADPRIVATE construct135240 ! Node: Implementing PRIVATE clause135895 ! Node: Implementing FIRSTPRIVATE LASTPRIVATE COPYIN and COPYPRIVATE clauses136478 ! Node: Implementing REDUCTION clause137804 ! Node: Implementing PARALLEL construct138363 ! Node: Implementing FOR construct139622 ! Node: Implementing ORDERED construct141622 ! Node: Implementing SECTIONS construct141930 ! Node: Implementing SINGLE construct142698 ! Node: Implementing OpenACC's PARALLEL construct143412 ! Node: Reporting Bugs143672 ! Node: Copying144035 ! Node: GNU Free Documentation License181581 ! Node: Funding206704 ! Node: Library Index209230  End Tag Table diff -Nrcpad gcc-11.4.0/libgomp/testsuite/Makefile.am gcc-11.5.0/libgomp/testsuite/Makefile.am *** gcc-11.4.0/libgomp/testsuite/Makefile.am Mon May 29 08:46:32 2023 --- gcc-11.5.0/libgomp/testsuite/Makefile.am Fri Jul 19 05:52:47 2024 *************** _RUNTEST = $(shell if test -f $(top_srcd *** 12,17 **** --- 12,19 ---- echo $(top_srcdir)/../dejagnu/runtest; else echo runtest; fi) RUNTESTDEFAULTFLAGS = --tool $$tool --srcdir $$srcdir + PWD_COMMAND = $${PWDCMD-pwd} + EXTRA_DEJAGNU_SITE_CONFIG = libgomp-site-extra.exp # Instead of directly in ../testsuite/libgomp-test-support.exp.in, the *************** libgomp-test-support.exp: libgomp-test-s *** 25,41 **** 'set offload_additional_lib_paths "$(offload_additional_lib_paths)"' mv $@.tmp $@ - check-DEJAGNU: site.exp - srcdir='$(srcdir)'; export srcdir; \ - EXPECT=$(EXPECT); export EXPECT; \ - if $(SHELL) -c "$(_RUNTEST) --version" > /dev/null 2>&1; then \ - exit_status=0; l='$(PACKAGE)'; for tool in $$l; do \ - if $(_RUNTEST) $(AM_RUNTESTFLAGS) $(RUNTESTDEFAULTFLAGS) $(RUNTESTFLAGS); \ - then :; else exit_status=1; fi; \ - done; \ - else echo "WARNING: could not find '$(_RUNTEST)'" 1>&2; :;\ - fi; \ - exit $$exit_status site.exp: Makefile $(EXTRA_DEJAGNU_SITE_CONFIG) @echo 'Making a new site.exp file ...' @echo '## these variables are automatically generated by make ##' >site.tmp --- 27,32 ---- *************** site.exp: Makefile $(EXTRA_DEJAGNU_SITE_ *** 63,68 **** --- 54,125 ---- @test ! -f site.exp || mv site.exp site.bak @mv site.tmp site.exp + %/site.exp: site.exp + -@test -d $* || mkdir $* + @srcdir=`cd $(srcdir); ${PWD_COMMAND}`; + @objdir=`${PWD_COMMAND}`/$*; \ + sed -e "s|^set srcdir .*$$|set srcdir $$srcdir|" \ + -e "s|^set objdir .*$$|set objdir $$objdir|" \ + site.exp > $*/site.exp.tmp + @-rm -f $*/site.bak + @test ! -f $*/site.exp || mv $*/site.exp $*/site.bak + @mv $*/site.exp.tmp $*/site.exp + + check_p_numbers0:=1 2 3 4 5 6 7 8 9 + check_p_numbers1:=0 $(check_p_numbers0) + check_p_numbers2:=$(foreach i,$(check_p_numbers0),$(addprefix $(i),$(check_p_numbers1))) + check_p_numbers3:=$(addprefix 0,$(check_p_numbers1)) $(check_p_numbers2) + check_p_numbers4:=$(foreach i,$(check_p_numbers0),$(addprefix $(i),$(check_p_numbers3))) + check_p_numbers5:=$(addprefix 0,$(check_p_numbers3)) $(check_p_numbers4) + check_p_numbers6:=$(foreach i,$(check_p_numbers0),$(addprefix $(i),$(check_p_numbers5))) + check_p_numbers:=$(check_p_numbers0) $(check_p_numbers2) $(check_p_numbers4) $(check_p_numbers6) + # If unable to serialize execution testing, use just one parallel slot. + gcc_test_parallel_slots:=$(if $(FLOCK),$(if $(GCC_TEST_PARALLEL_SLOTS),$(GCC_TEST_PARALLEL_SLOTS),19),1) + check_p_subdirs=$(wordlist 1,$(gcc_test_parallel_slots),$(check_p_numbers)) + check_DEJAGNU_libgomp_targets = $(addprefix check-DEJAGNUlibgomp,$(check_p_subdirs)) + $(check_DEJAGNU_libgomp_targets): check-DEJAGNUlibgomp%: libgomp%/site.exp + + check-DEJAGNU $(check_DEJAGNU_libgomp_targets): check-DEJAGNU%: site.exp + $(if $*,@)AR="$(AR)"; export AR; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + if [ -z "$*" ] && [ -n "$(filter -j%, $(MFLAGS))" ]; then \ + rm -rf libgomp-parallel || true; \ + mkdir libgomp-parallel; \ + $(MAKE) $(AM_MAKEFLAGS) $(check_DEJAGNU_libgomp_targets); \ + rm -rf libgomp-parallel || true; \ + for idx in $(check_p_subdirs); do \ + if [ -d libgomp$$idx ]; then \ + mv -f libgomp$$idx/libgomp.sum libgomp$$idx/libgomp.sum.sep; \ + mv -f libgomp$$idx/libgomp.log libgomp$$idx/libgomp.log.sep; \ + fi; \ + done; \ + $(SHELL) $(srcdir)/../../contrib/dg-extract-results.sh \ + libgomp[0-9]*/libgomp.sum.sep > libgomp.sum; \ + $(SHELL) $(srcdir)/../../contrib/dg-extract-results.sh -L \ + libgomp[0-9]*/libgomp.log.sep > libgomp.log; \ + exit 0; \ + fi; \ + srcdir=`$(am__cd) $(srcdir) && pwd`; export srcdir; \ + EXPECT=$(EXPECT); export EXPECT; \ + runtest=$(_RUNTEST); \ + if [ -z "$$runtest" ]; then runtest=runtest; fi; \ + tool=libgomp; \ + if [ -n "$*" ]; then \ + if [ -f libgomp-parallel/finished ]; then rm -rf "$*"; exit 0; fi; \ + GCC_RUNTEST_PARALLELIZE_DIR=`${PWD_COMMAND}`/libgomp-parallel; \ + export GCC_RUNTEST_PARALLELIZE_DIR; \ + cd "$*"; \ + fi; \ + if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \ + $$runtest $(AM_RUNTESTFLAGS) $(RUNTESTDEFAULTFLAGS) \ + $(RUNTESTFLAGS); \ + if [ -n "$*" ]; then \ + touch $$GCC_RUNTEST_PARALLELIZE_DIR/finished; \ + fi; \ + else \ + echo "WARNING: could not find \`runtest'" 1>&2; :;\ + fi + distclean-DEJAGNU: -rm -f site.exp site.bak -l='$(PACKAGE)'; for tool in $$l; do \ diff -Nrcpad gcc-11.4.0/libgomp/testsuite/Makefile.in gcc-11.5.0/libgomp/testsuite/Makefile.in *** gcc-11.4.0/libgomp/testsuite/Makefile.in Mon May 29 08:49:47 2023 --- gcc-11.5.0/libgomp/testsuite/Makefile.in Fri Jul 19 05:53:51 2024 *************** EXEEXT = @EXEEXT@ *** 162,167 **** --- 162,168 ---- FC = @FC@ FCFLAGS = @FCFLAGS@ FGREP = @FGREP@ + FLOCK = @FLOCK@ GREP = @GREP@ HSA_RUNTIME_INCLUDE = @HSA_RUNTIME_INCLUDE@ HSA_RUNTIME_LIB = @HSA_RUNTIME_LIB@ *************** _RUNTEST = $(shell if test -f $(top_srcd *** 310,316 **** --- 311,330 ---- echo $(top_srcdir)/../dejagnu/runtest; else echo runtest; fi) RUNTESTDEFAULTFLAGS = --tool $$tool --srcdir $$srcdir + PWD_COMMAND = $${PWDCMD-pwd} EXTRA_DEJAGNU_SITE_CONFIG = libgomp-site-extra.exp + check_p_numbers0 := 1 2 3 4 5 6 7 8 9 + check_p_numbers1 := 0 $(check_p_numbers0) + check_p_numbers2 := $(foreach i,$(check_p_numbers0),$(addprefix $(i),$(check_p_numbers1))) + check_p_numbers3 := $(addprefix 0,$(check_p_numbers1)) $(check_p_numbers2) + check_p_numbers4 := $(foreach i,$(check_p_numbers0),$(addprefix $(i),$(check_p_numbers3))) + check_p_numbers5 := $(addprefix 0,$(check_p_numbers3)) $(check_p_numbers4) + check_p_numbers6 := $(foreach i,$(check_p_numbers0),$(addprefix $(i),$(check_p_numbers5))) + check_p_numbers := $(check_p_numbers0) $(check_p_numbers2) $(check_p_numbers4) $(check_p_numbers6) + # If unable to serialize execution testing, use just one parallel slot. + gcc_test_parallel_slots := $(if $(FLOCK),$(if $(GCC_TEST_PARALLEL_SLOTS),$(GCC_TEST_PARALLEL_SLOTS),19),1) + check_p_subdirs = $(wordlist 1,$(gcc_test_parallel_slots),$(check_p_numbers)) + check_DEJAGNU_libgomp_targets = $(addprefix check-DEJAGNUlibgomp,$(check_p_subdirs)) all: all-am .SUFFIXES: *************** libgomp-test-support.exp: libgomp-test-s *** 485,501 **** 'set offload_additional_lib_paths "$(offload_additional_lib_paths)"' mv $@.tmp $@ - check-DEJAGNU: site.exp - srcdir='$(srcdir)'; export srcdir; \ - EXPECT=$(EXPECT); export EXPECT; \ - if $(SHELL) -c "$(_RUNTEST) --version" > /dev/null 2>&1; then \ - exit_status=0; l='$(PACKAGE)'; for tool in $$l; do \ - if $(_RUNTEST) $(AM_RUNTESTFLAGS) $(RUNTESTDEFAULTFLAGS) $(RUNTESTFLAGS); \ - then :; else exit_status=1; fi; \ - done; \ - else echo "WARNING: could not find '$(_RUNTEST)'" 1>&2; :;\ - fi; \ - exit $$exit_status site.exp: Makefile $(EXTRA_DEJAGNU_SITE_CONFIG) @echo 'Making a new site.exp file ...' @echo '## these variables are automatically generated by make ##' >site.tmp --- 499,504 ---- *************** site.exp: Makefile $(EXTRA_DEJAGNU_SITE_ *** 523,528 **** --- 526,584 ---- @test ! -f site.exp || mv site.exp site.bak @mv site.tmp site.exp + %/site.exp: site.exp + -@test -d $* || mkdir $* + @srcdir=`cd $(srcdir); ${PWD_COMMAND}`; + @objdir=`${PWD_COMMAND}`/$*; \ + sed -e "s|^set srcdir .*$$|set srcdir $$srcdir|" \ + -e "s|^set objdir .*$$|set objdir $$objdir|" \ + site.exp > $*/site.exp.tmp + @-rm -f $*/site.bak + @test ! -f $*/site.exp || mv $*/site.exp $*/site.bak + @mv $*/site.exp.tmp $*/site.exp + $(check_DEJAGNU_libgomp_targets): check-DEJAGNUlibgomp%: libgomp%/site.exp + + check-DEJAGNU $(check_DEJAGNU_libgomp_targets): check-DEJAGNU%: site.exp + $(if $*,@)AR="$(AR)"; export AR; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + if [ -z "$*" ] && [ -n "$(filter -j%, $(MFLAGS))" ]; then \ + rm -rf libgomp-parallel || true; \ + mkdir libgomp-parallel; \ + $(MAKE) $(AM_MAKEFLAGS) $(check_DEJAGNU_libgomp_targets); \ + rm -rf libgomp-parallel || true; \ + for idx in $(check_p_subdirs); do \ + if [ -d libgomp$$idx ]; then \ + mv -f libgomp$$idx/libgomp.sum libgomp$$idx/libgomp.sum.sep; \ + mv -f libgomp$$idx/libgomp.log libgomp$$idx/libgomp.log.sep; \ + fi; \ + done; \ + $(SHELL) $(srcdir)/../../contrib/dg-extract-results.sh \ + libgomp[0-9]*/libgomp.sum.sep > libgomp.sum; \ + $(SHELL) $(srcdir)/../../contrib/dg-extract-results.sh -L \ + libgomp[0-9]*/libgomp.log.sep > libgomp.log; \ + exit 0; \ + fi; \ + srcdir=`$(am__cd) $(srcdir) && pwd`; export srcdir; \ + EXPECT=$(EXPECT); export EXPECT; \ + runtest=$(_RUNTEST); \ + if [ -z "$$runtest" ]; then runtest=runtest; fi; \ + tool=libgomp; \ + if [ -n "$*" ]; then \ + if [ -f libgomp-parallel/finished ]; then rm -rf "$*"; exit 0; fi; \ + GCC_RUNTEST_PARALLELIZE_DIR=`${PWD_COMMAND}`/libgomp-parallel; \ + export GCC_RUNTEST_PARALLELIZE_DIR; \ + cd "$*"; \ + fi; \ + if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \ + $$runtest $(AM_RUNTESTFLAGS) $(RUNTESTDEFAULTFLAGS) \ + $(RUNTESTFLAGS); \ + if [ -n "$*" ]; then \ + touch $$GCC_RUNTEST_PARALLELIZE_DIR/finished; \ + fi; \ + else \ + echo "WARNING: could not find \`runtest'" 1>&2; :;\ + fi + distclean-DEJAGNU: -rm -f site.exp site.bak -l='$(PACKAGE)'; for tool in $$l; do \ diff -Nrcpad gcc-11.4.0/libgomp/testsuite/config/default.exp gcc-11.5.0/libgomp/testsuite/config/default.exp *** gcc-11.4.0/libgomp/testsuite/config/default.exp Mon May 29 08:46:32 2023 --- gcc-11.5.0/libgomp/testsuite/config/default.exp Fri Jul 19 05:52:47 2024 *************** *** 13,17 **** # You should have received a copy of the GNU General Public License # along with this program; see the file COPYING3. If not see # . - - load_lib "standard.exp" --- 13,15 ---- diff -Nrcpad gcc-11.4.0/libgomp/testsuite/flock gcc-11.5.0/libgomp/testsuite/flock *** gcc-11.4.0/libgomp/testsuite/flock Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/libgomp/testsuite/flock Fri Jul 19 05:52:47 2024 *************** *** 0 **** --- 1,17 ---- + #!/usr/bin/env perl + + use strict; + use warnings; + + # Only arguments '--exclusive 1' exactly are supported. + (@ARGV == 2) or die; + my $mode = shift; + ($mode eq "--exclusive") or die; + my $fd = shift; + ($fd eq "1") or die; + + use Fcntl ':flock'; + + open(my $fh, '>&=', 1) or die "open: $!"; + + flock($fh, LOCK_EX) or die "flock: $!"; diff -Nrcpad gcc-11.4.0/libgomp/testsuite/lib/libgomp.exp gcc-11.5.0/libgomp/testsuite/lib/libgomp.exp *** gcc-11.4.0/libgomp/testsuite/lib/libgomp.exp Mon May 29 08:46:32 2023 --- gcc-11.5.0/libgomp/testsuite/lib/libgomp.exp Fri Jul 19 05:52:47 2024 *************** proc load_gcc_lib { filename } { *** 9,14 **** --- 9,15 ---- } load_lib dg.exp + load_lib standard.exp # Required to use gcc-dg.exp - however, the latter should NOT be # loaded until ${tool}_target_compile is defined since it uses that *************** load_gcc_lib torture-options.exp *** 40,46 **** load_gcc_lib fortran-modules.exp # Try to load a test support file, built during libgomp configuration. ! load_file libgomp-test-support.exp set dg-do-what-default run --- 41,52 ---- load_gcc_lib fortran-modules.exp # Try to load a test support file, built during libgomp configuration. ! # Search in '..' vs. '.' to support parallel vs. sequential testing. ! if [info exists ::env(GCC_RUNTEST_PARALLELIZE_DIR)] { ! load_file ../libgomp-test-support.exp ! } else { ! load_file libgomp-test-support.exp ! } set dg-do-what-default run *************** proc libgomp_option_proc { option } { *** 318,323 **** --- 324,359 ---- } } + if ![info exists ::env(GCC_RUNTEST_PARALLELIZE_DIR)] { + # No parallel testing. + } elseif { $FLOCK == "" } { + # Using just one parallel slot. + } else { + # Using several parallel slots. Override DejaGnu + # 'standard.exp:${tool}_load'... + rename libgomp_load standard_libgomp_load + proc libgomp_load { program args } { + # ... in order to serialize execution testing via an exclusive lock. + # We use stdout, as per + # "[...] FILEHANDLE [...] be open with write intent to use LOCK_EX". + set lock_file ../lock + set lock_kind --exclusive + set lock_fd [open $lock_file a+] + set lock_clock_begin [clock seconds] + global FLOCK + exec $FLOCK $lock_kind 1 >@ $lock_fd + set lock_clock_end [clock seconds] + verbose -log "Got ${FLOCK}('$lock_file', '$lock_kind') at [clock format $lock_clock_end] after [expr $lock_clock_end - $lock_clock_begin] s" 2 + + set result [standard_libgomp_load $program $args] + + # Unlock (implicit with 'close'). + close $lock_fd + + return $result + } + } + # Translate offload target to OpenACC device type. Return the empty string if # not supported, and 'host' for offload target 'disable'. proc offload_target_to_openacc_device_type { offload_target } { diff -Nrcpad gcc-11.4.0/libgomp/testsuite/libgomp-site-extra.exp.in gcc-11.5.0/libgomp/testsuite/libgomp-site-extra.exp.in *** gcc-11.4.0/libgomp/testsuite/libgomp-site-extra.exp.in Mon May 29 08:46:32 2023 --- gcc-11.5.0/libgomp/testsuite/libgomp-site-extra.exp.in Fri Jul 19 05:52:47 2024 *************** *** 1 **** --- 1,2 ---- + set FLOCK {@FLOCK@} set GCC_UNDER_TEST {@CC@} diff -Nrcpad gcc-11.4.0/libgomp/testsuite/libgomp.c++/pr114572.C gcc-11.5.0/libgomp/testsuite/libgomp.c++/pr114572.C *** gcc-11.4.0/libgomp/testsuite/libgomp.c++/pr114572.C Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/libgomp/testsuite/libgomp.c++/pr114572.C Fri Jul 19 05:52:47 2024 *************** *** 0 **** --- 1,24 ---- + // PR c++/114572 + // { dg-do run } + // { dg-options "-fopenmp -O0" } + + #include + + struct S + { + S () : s (0) {} + ~S () {} + S operator= (const S &x) { s = x.s; return *this; } + int s; + }; + + int + main () + { + S s; + #pragma omp parallel for lastprivate(s) + for (int i = 0; i < 10; ++i) + s.s = i; + if (s.s != 9) + abort (); + } diff -Nrcpad gcc-11.4.0/libhsail-rt/ChangeLog gcc-11.5.0/libhsail-rt/ChangeLog *** gcc-11.4.0/libhsail-rt/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/libhsail-rt/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/libiberty/ChangeLog gcc-11.5.0/libiberty/ChangeLog *** gcc-11.4.0/libiberty/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/libiberty/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,15 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + + 2023-12-02 Iain Sandoe + + Backported from master: + 2021-08-23 Iain Sandoe + + * simple-object-mach-o.c (simple_object_mach_o_write_segment): + Cast the first argument to set_32 as needed. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/libiberty/simple-object-mach-o.c gcc-11.5.0/libiberty/simple-object-mach-o.c *** gcc-11.4.0/libiberty/simple-object-mach-o.c Mon May 29 08:46:32 2023 --- gcc-11.5.0/libiberty/simple-object-mach-o.c Fri Jul 19 05:52:47 2024 *************** simple_object_mach_o_write_segment (simp *** 1228,1234 **** /* Swap the indices, if required. */ for (i = 0; i < (nsects_in * 4); ++i) ! set_32 (&index[i], index[i]); sechdr_offset += sechdrsize; --- 1228,1234 ---- /* Swap the indices, if required. */ for (i = 0; i < (nsects_in * 4); ++i) ! set_32 ((unsigned char *) &index[i], index[i]); sechdr_offset += sechdrsize; diff -Nrcpad gcc-11.4.0/libitm/ChangeLog gcc-11.5.0/libitm/ChangeLog *** gcc-11.4.0/libitm/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/libitm/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/libitm/libitm.info gcc-11.5.0/libitm/libitm.info *** gcc-11.4.0/libitm/libitm.info Mon May 29 09:07:36 2023 --- gcc-11.5.0/libitm/libitm.info Fri Jul 19 06:11:21 2024 *************** *** 1,4 **** ! This is libitm.info, produced by makeinfo version 6.8 from libitm.texi. Copyright (C) 2011-2021 Free Software Foundation, Inc. --- 1,4 ---- ! This is libitm.info, produced by makeinfo version 6.5 from libitm.texi. Copyright (C) 2011-2021 Free Software Foundation, Inc. *************** Node: GNU Free Documentation License358 *** 1306,1313 **** Node: Library Index61021  End Tag Table - -  - Local Variables: - coding: utf-8 - End: --- 1306,1308 ---- diff -Nrcpad gcc-11.4.0/libobjc/ChangeLog gcc-11.5.0/libobjc/ChangeLog *** gcc-11.4.0/libobjc/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/libobjc/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/liboffloadmic/ChangeLog gcc-11.5.0/liboffloadmic/ChangeLog *** gcc-11.4.0/liboffloadmic/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/liboffloadmic/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/libphobos/ChangeLog gcc-11.5.0/libphobos/ChangeLog *** gcc-11.4.0/libphobos/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/libphobos/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,23 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + + 2024-04-23 Iain Sandoe + + Backported from master: + 2021-11-19 Iain Sandoe + + * testsuite/lib/libphobos.exp: Prune warnings from external + tool bugs. + + 2023-11-07 Iain Buclaw + + Backported from master: + 2023-11-07 Iain Buclaw + + * libdruntime/core/cpuid.d (getCpuInfo0B): Limit number of times loop + runs. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/libphobos/libdruntime/core/cpuid.d gcc-11.5.0/libphobos/libdruntime/core/cpuid.d *** gcc-11.4.0/libphobos/libdruntime/core/cpuid.d Mon May 29 08:46:32 2023 --- gcc-11.5.0/libphobos/libdruntime/core/cpuid.d Fri Jul 19 05:52:47 2024 *************** void getAMDcacheinfo() *** 651,660 **** // to determine number of processors. void getCpuInfo0B() { - int level=0; int threadsPerCore; uint a, b, c, d; ! do { version (GNU_OR_LDC) asm pure nothrow @nogc { "cpuid" : "=a" (a), "=b" (b), "=c" (c), "=d" (d) : "a" (0x0B), "c" (level); } else asm pure nothrow @nogc { --- 651,662 ---- // to determine number of processors. void getCpuInfo0B() { int threadsPerCore; uint a, b, c, d; ! // I'm not sure about this. The docs state that there ! // are 2 hyperthreads per core if HT is factory enabled. ! for (int level = 0; level < 2; level++) ! { version (GNU_OR_LDC) asm pure nothrow @nogc { "cpuid" : "=a" (a), "=b" (b), "=c" (c), "=d" (d) : "a" (0x0B), "c" (level); } else asm pure nothrow @nogc { *************** void getCpuInfo0B() *** 666,684 **** mov c, ECX; mov d, EDX; } ! if (b!=0) { ! // I'm not sure about this. The docs state that there ! // are 2 hyperthreads per core if HT is factory enabled. ! if (level==0) threadsPerCore = b & 0xFFFF; ! else if (level==1) { cpuFeatures.maxThreads = b & 0xFFFF; cpuFeatures.maxCores = cpuFeatures.maxThreads / threadsPerCore; } - } ! ++level; ! } while (a!=0 || b!=0); } void cpuidX86() --- 668,687 ---- mov c, ECX; mov d, EDX; } ! if (b != 0) ! { ! if (level == 0) threadsPerCore = b & 0xFFFF; ! else if (level == 1) ! { cpuFeatures.maxThreads = b & 0xFFFF; cpuFeatures.maxCores = cpuFeatures.maxThreads / threadsPerCore; } } ! // Got "invalid domain" returned from cpuid ! if (a == 0 && b == 0) ! break; ! } } void cpuidX86() diff -Nrcpad gcc-11.4.0/libphobos/testsuite/lib/libphobos.exp gcc-11.5.0/libphobos/testsuite/lib/libphobos.exp *** gcc-11.4.0/libphobos/testsuite/lib/libphobos.exp Mon May 29 08:46:33 2023 --- gcc-11.5.0/libphobos/testsuite/lib/libphobos.exp Fri Jul 19 05:52:47 2024 *************** proc libphobos-dg-test { prog do_what ex *** 90,95 **** --- 90,102 ---- } proc libphobos-dg-prune { system text } { + + # Ignore harmless warnings from Xcode. + regsub -all "(^|\n)\[^\n\]*ld: warning: could not create compact unwind for\[^\n\]*" $text "" text + + # Ignore dsymutil warning (tool bug is actually linker) + regsub -all "(^|\n)\[^\n\]*could not find object file symbol for symbol\[^\n\]*" $text "" text + return $text } diff -Nrcpad gcc-11.4.0/libquadmath/ChangeLog gcc-11.5.0/libquadmath/ChangeLog *** gcc-11.4.0/libquadmath/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/libquadmath/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,18 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + + 2024-06-20 Jakub Jelinek + + Backported from master: + 2024-04-03 Simon Chopin + Jakub Jelinek + + PR libquadmath/114533 + * printf/printf_fp.c (__quadmath_printf_fp): Use memcpy to copy + __float128 out of args. + * printf/printf_fphex.c (__quadmath_printf_fphex): Likewise. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/libquadmath/libquadmath.info gcc-11.5.0/libquadmath/libquadmath.info *** gcc-11.4.0/libquadmath/libquadmath.info Mon May 29 09:07:34 2023 --- gcc-11.5.0/libquadmath/libquadmath.info Fri Jul 19 06:11:19 2024 *************** *** 1,4 **** ! This is libquadmath.info, produced by makeinfo version 6.8 from libquadmath.texi. Copyright (C) 2010-2021 Free Software Foundation, Inc. --- 1,4 ---- ! This is libquadmath.info, produced by makeinfo version 6.5 from libquadmath.texi. Copyright (C) 2010-2021 Free Software Foundation, Inc. *************** Node: GNU Free Documentation License109 *** 809,816 **** Node: Reporting Bugs36065  End Tag Table - -  - Local Variables: - coding: utf-8 - End: --- 809,811 ---- diff -Nrcpad gcc-11.4.0/libquadmath/printf/printf_fp.c gcc-11.5.0/libquadmath/printf/printf_fp.c *** gcc-11.4.0/libquadmath/printf/printf_fp.c Mon May 29 08:46:33 2023 --- gcc-11.5.0/libquadmath/printf/printf_fp.c Fri Jul 19 05:52:47 2024 *************** __quadmath_printf_fp (struct __quadmath_ *** 363,369 **** /* Fetch the argument value. */ { ! fpnum = **(const __float128 **) args[0]; /* Check for special values: not a number or infinity. */ if (isnanq (fpnum)) --- 363,369 ---- /* Fetch the argument value. */ { ! memcpy (&fpnum, *(const void *const *) args[0], sizeof (fpnum)); /* Check for special values: not a number or infinity. */ if (isnanq (fpnum)) diff -Nrcpad gcc-11.4.0/libquadmath/printf/printf_fphex.c gcc-11.5.0/libquadmath/printf/printf_fphex.c *** gcc-11.4.0/libquadmath/printf/printf_fphex.c Mon May 29 08:46:33 2023 --- gcc-11.5.0/libquadmath/printf/printf_fphex.c Fri Jul 19 05:52:47 2024 *************** __quadmath_printf_fphex (struct __quadma *** 163,169 **** /* Fetch the argument value. */ { ! fpnum.value = **(const __float128 **) args[0]; /* Check for special values: not a number or infinity. */ if (isnanq (fpnum.value)) --- 163,170 ---- /* Fetch the argument value. */ { ! memcpy (&fpnum.value, *(const void *const *) args[0], ! sizeof (fpnum.value)); /* Check for special values: not a number or infinity. */ if (isnanq (fpnum.value)) diff -Nrcpad gcc-11.4.0/libsanitizer/ChangeLog gcc-11.5.0/libsanitizer/ChangeLog *** gcc-11.4.0/libsanitizer/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/libsanitizer/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/libssp/ChangeLog gcc-11.5.0/libssp/ChangeLog *** gcc-11.4.0/libssp/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/libssp/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/libstdc++-v3/ChangeLog gcc-11.5.0/libstdc++-v3/ChangeLog *** gcc-11.4.0/libstdc++-v3/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/libstdc++-v3/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,750 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + + 2024-07-12 Jonathan Wakely + + Backported from master: + 2022-04-29 Jonathan Wakely + + PR libstdc++/105417 + * config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt: + Regenerate. + * src/c++11/compatibility-ldbl-alt128.cc [_GLIBCXX_USE_DUAL_ABI]: + Define __gnu_ieee128::num_get::_M_extract_int[abi:cxx11] + symbols as aliases for corresponding symbols without abi-tag. + + 2024-07-11 Jonathan Wakely + + Backported from master: + 2024-04-03 Jonathan Wakely + + PR libstdc++/104606 + * include/std/optional (operator<=>(const optional&, const U&)): + Reverse order of three_way_comparable_with template arguments. + * testsuite/20_util/optional/relops/104606.cc: New test. + + 2024-07-10 Jonathan Wakely + + Backported from master: + 2024-03-22 Jonathan Wakely + + PR libstdc++/114401 + * include/bits/hashtable.h (_Hashtable::_M_reinsert_node): Call + release() on node handle instead of just zeroing its pointer. + (_Hashtable::_M_reinsert_node_multi): Likewise. + (_Hashtable::_M_merge_unique): Likewise. + * include/bits/node_handle.h (_Node_handle_common::release()): + New member function. + (_Node_handle_common::_Optional_alloc::_M_empty): Remove + unnecessary union member. + (_Node_handle_common): Declare _Hashtable as a friend. + * include/bits/stl_tree.h (_Rb_tree::_M_reinsert_node_unique): + Call release() on node handle instead of just zeroing its + pointer. + (_Rb_tree::_M_reinsert_node_equal): Likewise. + (_Rb_tree::_M_reinsert_node_hint_unique): Likewise. + (_Rb_tree::_M_reinsert_node_hint_equal): Likewise. + * testsuite/23_containers/multiset/modifiers/114401.cc: New test. + * testsuite/23_containers/set/modifiers/114401.cc: New test. + * testsuite/23_containers/unordered_multiset/modifiers/114401.cc: New test. + * testsuite/23_containers/unordered_set/modifiers/114401.cc: New test. + + 2024-06-27 Martin Liska + + Backported from master: + 2022-01-27 Martin Liska + + PR libstdc++/104259 + * acinclude.m4: Fix typo. + * configure: Regenerate. + + 2024-06-25 Jonathan Wakely + + * doc/xml/manual/status_cxx2023.xml: Change reference from + mainline GCC to the release branch. + * doc/html/manual/status.html: Regenerate. + + 2024-06-21 Matthias Kretz + + Backported from master: + 2024-06-21 Matthias Kretz + + PR libstdc++/115575 + * testsuite/experimental/simd/pr115454_find_last_set.cc: Require + avx512f_runtime. Don't memcpy fixed_size masks. + + 2024-06-20 Matthias Kretz + + Backported from master: + 2024-06-20 Matthias Kretz + + PR libstdc++/115454 + * include/experimental/bits/simd_x86.h (_S_not_equal_to): Use + neq comparison instead of bitwise negation after eq. + (_S_find_last_set): Clear unused high bits before computing + bit_width. + * testsuite/experimental/simd/pr115454_find_last_set.cc: New + test. + + 2024-06-01 Jonathan Wakely + + Backported from master: + 2024-06-01 Jonathan Wakely + + PR libstdc++/115269 + * doc/xml/manual/using.xml: Replace link to gcc-4.3.2 docs. + Replace list of -std=... options with a single entry for -std. + * doc/html/manual/using.html: Regenerate. + + 2024-05-10 Matthias Kretz + + Backported from master: + 2024-04-22 Matthias Kretz + + PR libstdc++/114803 + * include/experimental/bits/simd_builtin.h + (_SimdBase2::operator __vector_type_t): There is no __builtin() + function in _SimdWrapper, instead use its conversion operator. + * testsuite/experimental/simd/pr114803_vecbuiltin_cvt.cc: New + test. + + 2024-05-10 Matthias Kretz + + Backported from master: + 2024-04-22 Matthias Kretz + + * include/experimental/bits/simd.h: Ignore -Wnarrowing for + arm_neon.h. + (__int_for_sizeof): Replace tautological compare with checking + for invalid template parameter value. + * include/experimental/bits/simd_builtin.h (__extract_part): + Remove tautological compare by combining two static_assert. + + 2024-05-10 Matthias Kretz + + Backported from master: + 2024-04-17 Matthias Kretz + + * include/experimental/bits/numeric_traits.h: Add include guard. + + 2024-05-10 Matthias Kretz + + Backported from master: + 2024-04-17 Matthias Kretz + + PR libstdc++/114750 + * include/experimental/bits/simd_builtin.h + (_SimdImplBuiltin::_S_load, _S_store): Fall back to copying + scalars if the memory type cannot be vectorized for the target. + + 2024-05-10 Matthias Kretz + + Backported from master: + 2024-03-27 Matthias Kretz + + * include/experimental/bits/simd_x86.h (_S_masked_unary): + Cast inputs < 16 bytes to 16 byte vectors before calling the + right subtraction builtin. Before returning, truncate to the + return vector type. + + 2024-05-10 Matthias Kretz + + Backported from master: + 2024-03-27 Matthias Kretz + + * include/experimental/bits/simd_x86.h (_S_masked_unary): Call + the 4- and 8-byte variants of __builtin_ia32_subp[ds] without + rounding direction argument. + + 2024-05-10 Matthias Kretz + + Backported from master: + 2023-06-06 Matthias Kretz + + PR libstdc++/109822 + * include/experimental/bits/simd_builtin.h (_S_store): Rewrite + to avoid casts to other vector types. Implement store as + succession of power-of-2 sized memcpy to avoid PR90424. + + 2024-05-10 Matthias Kretz + + Backported from master: + 2023-06-06 Matthias Kretz + + PR libstdc++/110054 + * include/experimental/bits/simd_builtin.h (_S_masked_store): + Call into deduced ABI's SimdImpl after conversion. + * include/experimental/bits/simd_x86.h (_S_masked_store_nocvt): + Don't use _mm_maskmoveu_si128. Use the generic fall-back + implementation. Also fix masked stores without SSE2, which + were not doing anything before. + + 2024-05-10 Matthias Kretz + + Backported from master: + 2023-06-06 Matthias Kretz + + * include/experimental/bits/simd.h (__bit_cast): Use + __gnu__::__vector_size__ instead of gnu::vector_size. + + 2024-05-02 Jonathan Wakely + + Backported from master: + 2024-03-04 Jonathan Wakely + + PR libstdc++/114147 + * include/std/tuple (tuple::tuple(allocator_arg_t, const Alloc&)): + Add missing overload of allocator-extended default constructor. + (tuple::tuple(allocator_arg_t, const Alloc&)): Likewise. + * testsuite/20_util/tuple/cons/114147.cc: New test. + + 2024-04-29 Iain Sandoe + + Backported from master: + 2024-02-19 Iain Sandoe + Jonathan Wakely + + PR target/112397 + * configure: Regenerate. + * configure.ac: Detect if we are building for Darwin. + * libsupc++/Makefile.am: If we are building for Darwin, then + suppress hot/cold partitioning for the array allocators. + * libsupc++/Makefile.in: Regenerated. + + 2024-04-29 Iain Sandoe + + Backported from master: + 2024-03-19 Iain Sandoe + + * testsuite/lib/dg-options.exp (atomic_link_flags): Emit a -B + option for the path to the uninstalled libatomic. + + 2024-04-29 Iain Sandoe + + Backported from master: + 2024-03-19 Iain Sandoe + + * testsuite/lib/libstdc++.exp (v3_target_compile): Instead of + /dev/null, use a temporary file for test executables on Darwin. + + 2024-04-24 Iain Sandoe + + Backported from master: + 2022-12-04 Iain Sandoe + + * config/os/bsd/darwin/os_defines.h + (_GTHREAD_USE_RECURSIVE_MUTEX_INIT_FUNC): Limit use of this macro + to OS versions that need it. + + 2024-04-22 Iain Sandoe + + Backported from master: + 2023-07-03 Iain Sandoe + + * testsuite/lib/libstdc++.exp: Remove additional flag handled + by Darwin specs. + + 2024-01-11 Ken Matsui + + Backported from master: + 2024-01-11 Ken Matsui + + PR libstdc++/113250 + * src/c++17/fs_ops.cc (fs::equivalent): Use || instead of &&. + * src/filesystem/ops.cc (fs::equivalent): Likewise. + * testsuite/27_io/filesystem/operations/equivalent.cc: Handle + error codes. + * testsuite/experimental/filesystem/operations/equivalent.cc: + Likewise. + + 2024-01-03 Patrick Palka + + Backported from master: + 2024-01-03 Patrick Palka + + PR testsuite/113175 + * testsuite/std/ranges/iota/max_size_type.cc (test02): Reduce + 'limit' to 100 from 1000 and adjust 'log2_limit' accordingly. + (test03): Likewise. + + 2023-12-17 Jakub Jelinek + + Backported from master: + 2023-10-13 Jakub Jelinek + + * testsuite/tr1/8_c_compatibility/cstdio/functions.cc (test01): + Initialize stream to va_arg(ap, FILE*) rather than 0. + * testsuite/tr1/8_c_compatibility/cwchar/functions.cc (test01): + Likewise. + + 2023-12-06 Jonathan Wakely + + Backported from master: + 2021-11-01 Jonathan Wakely + + * include/debug/stl_iterator.h (__valid_range): Add constexpr + for C++20. Qualify call to avoid ADL. + (__get_distance, __can_advance, __unsafe, __base): Likewise. + * testsuite/25_algorithms/move/constexpr.cc: Also check with + std::reverse_iterator arguments. + + 2023-12-06 Jonathan Wakely + + Backported from master: + 2023-11-02 Jonathan Wakely + + PR libstdc++/112314 + * include/std/string_view (string_view::remove_suffix): Add + debug assertion. + * testsuite/21_strings/basic_string_view/modifiers/remove_prefix/debug.cc: + New test. + * testsuite/21_strings/basic_string_view/modifiers/remove_suffix/debug.cc: + New test. + + 2023-12-06 Jonathan Wakely + + Backported from master: + 2023-11-17 Jonathan Wakely + + * include/std/utility (in_range): Rename _Up parameter to _Res. + + 2023-11-15 Jonathan Wakely + + Backported from master: + 2023-11-15 Jonathan Wakely + + PR libstdc++/112491 + * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.index): + Correctly handle unused capacity at the start of the first node. + * testsuite/libstdc++-xmethods/deque.cc: Check index operator + when elements have been removed from the front. + + 2023-11-14 Jonathan Wakely + + Backported from master: + 2023-11-14 Jonathan Wakely + + PR libstdc++/112491 + * python/libstdcxx/v6/xmethods.py (DequeWorkerBase.size): Fix + calculation to use _M_start._M_cur. + * testsuite/libstdc++-xmethods/deque.cc: Check failing cases. + + 2023-11-13 Jonathan Wakely + + Backported from master: + 2023-09-28 Jonathan Wakely + + * python/libstdcxx/v6/printers.py: Break long lines. Use raw + strings for regular expressions. Add whitespace around + operators. + (is_member_of_namespace): Use isinstance to check type. + (is_specialization_of): Likewise. Adjust template_name + for versioned namespace instead of duplicating the re.match + call. + (StdExpAnyPrinter._string_types): New static method. + (StdExpAnyPrinter.to_string): Use _string_types. + + 2023-10-04 Jonathan Wakely + + * testsuite/20_util/integer_comparisons/greater_equal_neg.cc: + Add -O2 to dg-options. + * testsuite/20_util/integer_comparisons/greater_neg.cc: + Likewise. + * testsuite/20_util/integer_comparisons/less_equal_neg.cc: + Likewise. + * testsuite/lib/prune.exp: Prune 'in constexpr expansion'. + + 2023-10-04 Jonathan Wakely + + Backported from master: + 2022-02-01 Jonathan Wakely + + * testsuite/27_io/filesystem/iterators/97731.cc: New test. + * testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc: + Check follow_directory_symlink option. + * testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc: + Likewise. + + 2023-10-04 Jonathan Wakely + + Backported from master: + 2023-06-06 Jonathan Wakely + + PR libstdc++/108178 + * src/filesystem/ops-common.h (do_copy_file): Check for empty + files by trying to read a character. + * testsuite/27_io/filesystem/operations/copy_file_108178.cc: + New test. + + 2023-10-04 Jonathan Wakely + + Backported from master: + 2023-06-06 Jonathan Wakely + + * src/filesystem/ops-common.h (do_copy_file) [O_CLOEXEC]: Set + close-on-exec flag on file descriptors. + + 2023-10-04 Jonathan Wakely + + Backported from master: + 2023-03-20 Jonathan Wakely + + * src/filesystem/ops-common.h (get_temp_directory_from_env): Fix + formatting. + + 2023-10-04 Jonathan Wakely + + Backported from master: + 2023-02-02 Jonathan Wakely + + * src/filesystem/ops-common.h [AVR] (__unsupported): Always use + errc::function_not_supported instead of errc::not_supported. + + 2023-10-04 Jonathan Wakely + + Backported from master: + 2022-06-28 Jonathan Wakely + + * src/c++17/fs_dir.cc (_Dir::_Dir) [!_GLIBCXX_HAVE_OPENAT]: + Always store pathname if we don't have openat or unlinkat, + because the full path is needed to open sub-directories and + remove entries. + + 2023-10-04 Alexandre Oliva + + Backported from master: + 2022-06-27 Alexandre Oliva + + * src/c++17/fs_dir.cc (dir_and_pathname): Use dirfd if + _GLIBCXX_HAVE_OPENAT. + + 2023-10-04 Alexandre Oliva + + Backported from master: + 2022-06-24 Alexandre Oliva + + * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for + openat. + * configure, config.h.in: Rebuilt. + * src/filesystem/dir-common.h (openat): Use ::openat if + _GLIBCXX_HAVE_OPENAT. + * src/filesystem/dir.cc (dir_and_pathname): Use dirfd if + _GLIBCXX_HAVE_OPENAT. + + 2023-10-04 Jonathan Wakely + + Backported from master: + 2022-02-10 Jonathan Wakely + + * src/filesystem/dir-common.h (_GLIBCXX_HAVE_DIRFD): Undefine + when is not available. + (_GLIBCXX_HAVE_UNLINKAT): Likewise. + + 2023-10-04 Jonathan Wakely + + Backported from master: + 2022-02-08 Jonathan Wakely + + * src/c++17/fs_dir.cc (_Dir(DIR*, const path&)): Change first + parameter to _Dir_base&&. + * src/filesystem/dir-common.h (_Dir_base(DIR*)): Remove. + * src/filesystem/dir.cc (_Dir(DIR*, const path&)): Change first + parameter to _Dir_base&&. + + 2023-10-04 Jonathan Wakely + + Backported from master: + 2022-02-08 Jonathan Wakely + + PR libstdc++/104161 + * src/c++17/fs_dir.cc (fs::recursive_directory_iterator::__erase): + [i_GLIBCXX_FILESYSTEM_IS_WINDOWS]: Refresh entry._M_type member, + instead of checking for errno values indicating a directory. + * src/c++17/fs_ops.cc (fs::remove_all(const path&)): Use similar + logic to non-throwing overload. + (fs::remove_all(const path&, error_code&)): Add comments. + * src/filesystem/ops-common.h: Likewise. + + 2023-10-04 Jonathan Wakely + + Backported from master: + 2022-02-04 Jonathan Wakely + + * src/filesystem/dir-common.h (_Dir_base::openat): Change return + type to use portable posix::DIR alias. + + 2023-10-04 Jonathan Wakely + + Backported from master: + 2022-02-04 Jonathan Wakely + + PR libstdc++/104161 + * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for dirfd + and unlinkat. + * config.h.in: Regenerate. + * configure: Regenerate. + * include/bits/fs_dir.h (recursive_directory_iterator): Declare + remove_all overloads as friends. + (recursive_directory_iterator::__erase): Declare new member + function. + * include/bits/fs_fwd.h (remove, remove_all): Declare. + * src/c++17/fs_dir.cc (_Dir): Add filename_only parameter to + constructor. Pass file descriptor argument to base constructor. + (_Dir::dir_and_pathname, _Dir::open_subdir, _Dir::do_unlink) + (_Dir::unlink, _Dir::rmdir): Define new member functions. + (directory_iterator): Pass filename_only argument to _Dir + constructor. + (recursive_directory_iterator::_Dir_stack): Adjust constructor + parameters to take a _Dir rvalue instead of creating one. + (_Dir_stack::orig): Add data member for storing original path. + (_Dir_stack::report_error): Define new member function. + (__directory_iterator_nofollow): Move here from dir-common.h and + fix value to be a power of two. + (__directory_iterator_filename_only): Define new constant. + (recursive_directory_iterator): Construct _Dir object and move + into _M_dirs stack. Pass skip_permission_denied argument to first + advance call. + (recursive_directory_iterator::increment): Use _Dir::open_subdir. + (recursive_directory_iterator::__erase): Define new member + function. + * src/c++17/fs_ops.cc (ErrorReporter, do_remove_all): Remove. + (fs::remove_all): Use new recursive_directory_iterator::__erase + member function. + * src/filesystem/dir-common.h (_Dir_base): Add int parameter to + constructor and use openat to implement nofollow semantics. + (_Dir_base::fdcwd, _Dir_base::set_close_on_exec, _Dir_base::openat): + Define new member functions. + (__directory_iterator_nofollow): Move to fs_dir.cc. + * src/filesystem/dir.cc (_Dir): Pass file descriptor argument to + base constructor. + (_Dir::dir_and_pathname, _Dir::open_subdir): Define new member + functions. + (recursive_directory_iterator::_Dir_stack): Adjust constructor + parameters to take a _Dir rvalue instead of creating one. + (recursive_directory_iterator): Check for new nofollow option. + Construct _Dir object and move into _M_dirs stack. Pass + skip_permission_denied argument to first advance call. + (recursive_directory_iterator::increment): Use _Dir::open_subdir. + * src/filesystem/ops.cc (fs::remove_all): Use C++17 remove_all. + + 2023-10-04 Jonathan Wakely + + Backported from master: + 2022-01-25 Jonathan Wakely + + PR libstdc++/104161 + * acinclude.m4 (GLIBCXX_CHECK_FILESYSTEM_DEPS): Check for + fdopendir. + * config.h.in: Regenerate. + * configure: Regenerate. + * src/c++17/fs_dir.cc (_Dir): Add nofollow flag to constructor + and pass it to base class constructor. + (directory_iterator): Pass nofollow flag to _Dir constructor. + (fs::recursive_directory_iterator::increment): Likewise. + * src/c++17/fs_ops.cc (do_remove_all): Use nofollow option for + directory_iterator constructor. Move error check outside loop. + * src/filesystem/dir-common.h (_Dir_base): Add nofollow flag to + constructor and when it's set use ::open with O_NOFOLLOW and + O_DIRECTORY. + * src/filesystem/dir.cc (_Dir): Add nofollow flag to constructor + and pass it to base class constructor. + (directory_iterator): Pass nofollow flag to _Dir constructor. + (fs::recursive_directory_iterator::increment): Likewise. + * src/filesystem/ops.cc (remove_all): Use nofollow option for + directory_iterator constructor. Move error check outside loop. + + 2023-10-04 Jonathan Wakely + + Backported from master: + 2021-10-02 Jonathan Wakely + + * src/c++17/fs_ops.cc (create_directory): Fix typo in enum name. + * src/filesystem/ops-common.h (__last_system_error): Add + explicit cast to avoid narrowing conversion. + (do_space): Fix type in function name. + + 2023-10-04 Jonathan Wakely + + Backported from master: + 2021-10-01 Jonathan Wakely + + PR libstdc++/99327 + * src/filesystem/ops-common.h (__unsupported): New function to + return a suitable error code for missing functionality. + (posix::off_t): New typedef. + (posix::*): Set errno to ENOSYS instead of ENOTSUP for no-op + fallback implementations. + (do_copy_file): Replace uses of errc::not_supported. + * src/c++17/fs_ops.cc (fs::copy, fs::copy_file, create_dir) + (fs::create_directory, fs::create_directory_symlink) + (fs::create_hard_link, fs::create_symlink, fs::current_path) + (fs::equivalent, do_stat, fs::file_size, fs::hard_link_count) + (fs::last_write_time, fs::permissions, fs::read_symlink): + Replace uses of errc::not_supported. + (fs::resize_file): Qualify off_t. + * src/filesystem/ops.cc (fs::copy, fs::copy_file, create_dir) + (fs::create_directory, fs::create_directory_symlink) + (fs::create_hard_link, fs::create_symlink, fs::current_path) + (fs::equivalent, do_stat, fs::file_size, fs::last_write_time) + (fs::permissions, fs::read_symlink, fs::system_complete): + Replace uses of errc::not_supported. + (fs::resize_file): Qualify off_t and enable unconditionally. + * testsuite/19_diagnostics/system_error/cons-1.cc: Likewise. + + 2023-10-04 Jonathan Wakely + + Backported from master: + 2021-10-01 Jonathan Wakely + + * src/filesystem/ops-common.h (last_error): New helper function. + (filesystem::do_space): Use last_error(). + * src/c++17/fs_ops.cc (fs::absolute, fs::create_hard_link) + (fs::equivalent, fs::remove, fs::temp_directory_path): Use + last_error(). + * src/filesystem/ops.cc (fs::create_hard_link) + (fs::remove, fs::temp_directory_path): Likewise. + + 2023-10-04 Jonathan Wakely + + Revert: + 2023-03-16 Jonathan Wakely + + * src/c++17/fs_ops.cc [AVR] (not_supported): Define as a macro + for function_not_supported. + * src/filesystem/ops-common.h [AVR] (ENOTSUP): Define as a macro + for ENOSYS. + + 2023-10-02 Tim Song + + Backported from master: + 2023-09-28 Tim Song + + PR libstdc++/111050 + * include/bits/hashtable_policy.h + (_Hash_node_value_base<>::_M_valptr(), _Hash_node_value_base<>::_M_v()) + Add [[__gnu__::__always_inline__]]. + + 2023-09-27 Jonathan Wakely + + Backported from master: + 2023-08-09 Jonathan Wakely + + * include/experimental/bits/fs_path.h (path::string): Use + _GLIBCXX17_CONSTEXPR not _GLIBCXX_CONSTEXPR for 'if constexpr'. + * include/std/charconv (__to_chars_8): Initialize variable for + C++17 constexpr rules. + + 2023-09-26 Jonathan Wakely + + Backported from master: + 2023-09-25 Jonathan Wakely + + PR libstdc++/111511 + PR c++/111512 + * include/std/array (to_array): Qualify calls to __to_array. + * testsuite/23_containers/array/creation/111512.cc: New test. + + 2023-09-14 Jonathan Wakely + + Backported from master: + 2023-09-14 Jonathan Wakely + + PR c++/111357 + * include/std/utility (make_integer_sequence): Add cast. + * testsuite/20_util/integer_sequence/pr111357.cc: New test. + + 2023-07-12 Jonathan Wakely + + Backported from master: + 2023-07-12 Jonathan Wakely + + PR libstdc++/95048 + * testsuite/27_io/filesystem/path/construct/95048.cc: Check + conversions to wide strings. + * testsuite/experimental/filesystem/path/construct/95048.cc: + Likewise. + + 2023-07-10 Jonathan Wakely + + Backported from master: + 2022-11-11 Jonathan Wakely + + PR libstdc++/95048 + * include/bits/fs_path.h (path::_Codecvt): New class template + that selects the kind of code conversion done. + (path::_Codecvt): Select based on sizeof(wchar_t). + (_GLIBCXX_CONV_FROM_UTF8): New macro to allow the same code to + be used for Windows and POSIX. + (path::_S_convert(const EcharT*, const EcharT*)): Simplify by + using _Codecvt and _GLIBCXX_CONV_FROM_UTF8 abstractions. + (path::_S_str_convert(basic_string_view, const A&)): + Simplify nested conditions. + * include/experimental/bits/fs_path.h (path::_Cvt): Define + nested typedef controlling type of code conversion done. + (path::_Cvt::_S_wconvert): Use new typedef. + (path::string(const A&)): Likewise. + * testsuite/27_io/filesystem/path/construct/95048.cc: New test. + * testsuite/experimental/filesystem/path/construct/95048.cc: New + test. + + 2023-06-23 Jonathan Wakely + + Backported from master: + 2023-06-01 Jonathan Wakely + + * doc/xml/manual/evolution.xml: Document removal of implicit + allocator rebinding extensions in strict mode and for C++20. + * doc/html/*: Regenerate. + + 2023-06-23 Jonathan Wakely + + Backported from master: + 2022-03-18 Jonathan Wakely + + PR libstdc++/104242 + * include/std/any (any(T&&)): Revert change to constraints. + * testsuite/20_util/any/cons/104242.cc: New test. + + 2023-05-30 Matthias Kretz + + Backported from master: + 2023-05-30 Matthias Kretz + + PR libstdc++/109822 + * include/experimental/bits/simd.h (to_native): Use int NTTP + as specified in PTS2. + (to_compatible): Likewise. Add missing tag to call mask + generator ctor. + * testsuite/experimental/simd/pr109822_cast_functions.cc: New + test. + + 2023-05-30 Matthias Kretz + + Backported from master: + 2023-05-30 Matthias Kretz + + * testsuite/experimental/simd/tests/integer_operators.cc: + Compute expected value differently to avoid getting turned into + a vector shift. + + 2023-05-30 Matthias Kretz + + Backported from master: + 2023-05-30 Matthias Kretz + + * testsuite/experimental/simd/tests/operator_cvt.cc: Make long + double <-> (u)long conversion tests conditional on sizeof(long + double) and sizeof(long). + + 2023-05-30 Matthias Kretz + + Backported from master: + 2023-05-26 Matthias Kretz + + * include/experimental/bits/simd_ppc.h (_S_bit_shift_left): + Negative __y is UB, so prefer signed compare. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/libstdc++-v3/acinclude.m4 gcc-11.5.0/libstdc++-v3/acinclude.m4 *** gcc-11.4.0/libstdc++-v3/acinclude.m4 Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/acinclude.m4 Fri Jul 19 05:52:47 2024 *************** dnl *** 4826,4831 **** --- 4826,4880 ---- fi AC_MSG_RESULT($glibcxx_cv_truncate) dnl + AC_CACHE_CHECK([for fdopendir], + glibcxx_cv_fdopendir, [dnl + GCC_TRY_COMPILE_OR_LINK( + [#include ], + [::DIR* dir = ::fdopendir(1);], + [glibcxx_cv_fdopendir=yes], + [glibcxx_cv_fdopendir=no]) + ]) + if test $glibcxx_cv_fdopendir = yes; then + AC_DEFINE(HAVE_FDOPENDIR, 1, [Define if fdopendir is available in .]) + fi + dnl + AC_CACHE_CHECK([for dirfd], + glibcxx_cv_dirfd, [dnl + GCC_TRY_COMPILE_OR_LINK( + [#include ], + [int fd = ::dirfd((::DIR*)0);], + [glibcxx_cv_dirfd=yes], + [glibcxx_cv_dirfd=no]) + ]) + if test $glibcxx_cv_dirfd = yes; then + AC_DEFINE(HAVE_DIRFD, 1, [Define if dirfd is available in .]) + fi + dnl + AC_CACHE_CHECK([for openat], + glibcxx_cv_openat, [dnl + GCC_TRY_COMPILE_OR_LINK( + [#include ], + [int fd = ::openat(AT_FDCWD, "", 0);], + [glibcxx_cv_openat=yes], + [glibcxx_cv_openat=no]) + ]) + if test $glibcxx_cv_openat = yes; then + AC_DEFINE(HAVE_OPENAT, 1, [Define if openat is available in .]) + fi + dnl + AC_CACHE_CHECK([for unlinkat], + glibcxx_cv_unlinkat, [dnl + GCC_TRY_COMPILE_OR_LINK( + [#include + #include ], + [::unlinkat(AT_FDCWD, "", AT_REMOVEDIR);], + [glibcxx_cv_unlinkat=yes], + [glibcxx_cv_unlinkat=no]) + ]) + if test $glibcxx_cv_unlinkat = yes; then + AC_DEFINE(HAVE_UNLINKAT, 1, [Define if unlinkat is available in .]) + fi + dnl CXXFLAGS="$ac_save_CXXFLAGS" AC_LANG_RESTORE ]) diff -Nrcpad gcc-11.4.0/libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt gcc-11.5.0/libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt *** gcc-11.4.0/libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/config/abi/post/powerpc64-linux-gnu/baseline_symbols.txt Fri Jul 19 05:52:47 2024 *************** FUNC:_ZNKSt15basic_streambufIwSt11char_t *** 548,553 **** --- 548,559 ---- FUNC:_ZNKSt15basic_stringbufIcSt11char_traitsIcESaIcEE3strEv@@GLIBCXX_3.4 FUNC:_ZNKSt15basic_stringbufIwSt11char_traitsIwESaIwEE3strEv@@GLIBCXX_3.4 FUNC:_ZNKSt16bad_array_length4whatEv@@CXXABI_1.3.8 + FUNC:_ZNKSt17__gnu_cxx_ieee1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intB5cxx11IjEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_IEEE128_3.4.29 + FUNC:_ZNKSt17__gnu_cxx_ieee1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intB5cxx11IlEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_IEEE128_3.4.29 + FUNC:_ZNKSt17__gnu_cxx_ieee1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intB5cxx11ImEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_IEEE128_3.4.29 + FUNC:_ZNKSt17__gnu_cxx_ieee1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intB5cxx11ItEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_IEEE128_3.4.29 + FUNC:_ZNKSt17__gnu_cxx_ieee1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intB5cxx11IxEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_IEEE128_3.4.29 + FUNC:_ZNKSt17__gnu_cxx_ieee1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intB5cxx11IyEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_IEEE128_3.4.29 FUNC:_ZNKSt17__gnu_cxx_ieee1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIjEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_IEEE128_3.4.29 FUNC:_ZNKSt17__gnu_cxx_ieee1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intIlEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_IEEE128_3.4.29 FUNC:_ZNKSt17__gnu_cxx_ieee1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE14_M_extract_intImEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_IEEE128_3.4.29 *************** FUNC:_ZNKSt17__gnu_cxx_ieee1287num_getIc *** 579,584 **** --- 585,596 ---- FUNC:_ZNKSt17__gnu_cxx_ieee1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE6do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRy@@GLIBCXX_IEEE128_3.4.29 FUNC:_ZNKSt17__gnu_cxx_ieee1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8__do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRd@@GLIBCXX_IEEE128_3.4.29 FUNC:_ZNKSt17__gnu_cxx_ieee1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE8__do_getES4_S4_RSt8ios_baseRSt12_Ios_IostateRg@@GLIBCXX_IEEE128_3.4.29 + FUNC:_ZNKSt17__gnu_cxx_ieee1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intB5cxx11IjEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_IEEE128_3.4.29 + FUNC:_ZNKSt17__gnu_cxx_ieee1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intB5cxx11IlEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_IEEE128_3.4.29 + FUNC:_ZNKSt17__gnu_cxx_ieee1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intB5cxx11ImEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_IEEE128_3.4.29 + FUNC:_ZNKSt17__gnu_cxx_ieee1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intB5cxx11ItEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_IEEE128_3.4.29 + FUNC:_ZNKSt17__gnu_cxx_ieee1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intB5cxx11IxEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_IEEE128_3.4.29 + FUNC:_ZNKSt17__gnu_cxx_ieee1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intB5cxx11IyEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_IEEE128_3.4.29 FUNC:_ZNKSt17__gnu_cxx_ieee1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIjEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_IEEE128_3.4.29 FUNC:_ZNKSt17__gnu_cxx_ieee1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intIlEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_IEEE128_3.4.29 FUNC:_ZNKSt17__gnu_cxx_ieee1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE14_M_extract_intImEES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_@@GLIBCXX_IEEE128_3.4.29 diff -Nrcpad gcc-11.4.0/libstdc++-v3/config/os/bsd/darwin/os_defines.h gcc-11.5.0/libstdc++-v3/config/os/bsd/darwin/os_defines.h *** gcc-11.4.0/libstdc++-v3/config/os/bsd/darwin/os_defines.h Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/config/os/bsd/darwin/os_defines.h Fri Jul 19 05:52:47 2024 *************** *** 39,46 **** // -flat_namespace to work around the way that it doesn't. #define _GLIBCXX_WEAK_DEFINITION __attribute__ ((weak)) ! // Static initializer macro is buggy in darwin, see libstdc++/51906 #define _GTHREAD_USE_RECURSIVE_MUTEX_INIT_FUNC // Configure checks for nanosleep fail on Darwin, but nanosleep and // sched_yield are always available, so use them. --- 39,50 ---- // -flat_namespace to work around the way that it doesn't. #define _GLIBCXX_WEAK_DEFINITION __attribute__ ((weak)) ! #if defined (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) \ ! && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1080) ! // Static initializer macro is absent for Darwin < 11 and buggy in Darwin 11, ! // see libstdc++/51906. Fixed in Darwin 12 (OS X 10.8). #define _GTHREAD_USE_RECURSIVE_MUTEX_INIT_FUNC + #endif // Configure checks for nanosleep fail on Darwin, but nanosleep and // sched_yield are always available, so use them. diff -Nrcpad gcc-11.4.0/libstdc++-v3/config.h.in gcc-11.5.0/libstdc++-v3/config.h.in *** gcc-11.4.0/libstdc++-v3/config.h.in Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/config.h.in Fri Jul 19 05:52:47 2024 *************** *** 66,71 **** --- 66,74 ---- /* Define to 1 if you have the header file. */ #undef HAVE_DIRENT_H + /* Define if dirfd is available in . */ + #undef HAVE_DIRFD + /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H *************** *** 93,98 **** --- 96,104 ---- /* Define to 1 if you have the header file. */ #undef HAVE_FCNTL_H + /* Define if fdopendir is available in . */ + #undef HAVE_FDOPENDIR + /* Define to 1 if you have the header file. */ #undef HAVE_FENV_H *************** *** 282,287 **** --- 288,296 ---- /* Define if defines obsolete isnan function. */ #undef HAVE_OBSOLETE_ISNAN + /* Define if openat is available in . */ + #undef HAVE_OPENAT + /* Define if poll is available in . */ #undef HAVE_POLL *************** *** 476,481 **** --- 485,493 ---- /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H + /* Define if unlinkat is available in . */ + #undef HAVE_UNLINKAT + /* Define to 1 if you have the `uselocale' function. */ #undef HAVE_USELOCALE diff -Nrcpad gcc-11.4.0/libstdc++-v3/configure gcc-11.5.0/libstdc++-v3/configure *** gcc-11.4.0/libstdc++-v3/configure Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/configure Fri Jul 19 05:52:47 2024 *************** GLIBCXX_HOSTED_TRUE *** 776,781 **** --- 776,783 ---- glibcxx_compiler_shared_flag glibcxx_compiler_pic_flag glibcxx_lt_pic_flag + OS_IS_DARWIN_FALSE + OS_IS_DARWIN_TRUE enable_static enable_shared lt_host_flags *************** else *** 12176,12182 **** lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 12179 "configure" #include "confdefs.h" #if HAVE_DLFCN_H --- 12178,12184 ---- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 12181 "configure" #include "confdefs.h" #if HAVE_DLFCN_H *************** else *** 12282,12288 **** lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 12285 "configure" #include "confdefs.h" #if HAVE_DLFCN_H --- 12284,12290 ---- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 12287 "configure" #include "confdefs.h" #if HAVE_DLFCN_H *************** esac *** 15564,15569 **** --- 15566,15585 ---- + os_is_darwin=no + case ${host_os} in + darwin*) os_is_darwin=yes ;; + *) ;; + esac + if test x${os_is_darwin} = xyes; then + OS_IS_DARWIN_TRUE= + OS_IS_DARWIN_FALSE='#' + else + OS_IS_DARWIN_TRUE='#' + OS_IS_DARWIN_FALSE= + fi + + if test "$enable_vtable_verify" = yes; then predep_objects_CXX="${predep_objects_CXX} ${glibcxx_builddir}/../libgcc/vtv_start.o" postdep_objects_CXX="${postdep_objects_CXX} ${glibcxx_builddir}/../libgcc/vtv_end.o" *************** $as_echo "$glibcxx_cv_atomic_long_long" *** 15964,15970 **** # Fake what AC_TRY_COMPILE does. cat > conftest.$ac_ext << EOF ! #line 15967 "configure" int main() { typedef bool atomic_type; --- 15980,15986 ---- # Fake what AC_TRY_COMPILE does. cat > conftest.$ac_ext << EOF ! #line 15983 "configure" int main() { typedef bool atomic_type; *************** $as_echo "$glibcxx_cv_atomic_bool" >&6; *** 15999,16005 **** rm -f conftest* cat > conftest.$ac_ext << EOF ! #line 16002 "configure" int main() { typedef short atomic_type; --- 16015,16021 ---- rm -f conftest* cat > conftest.$ac_ext << EOF ! #line 16018 "configure" int main() { typedef short atomic_type; *************** $as_echo "$glibcxx_cv_atomic_short" >&6; *** 16034,16040 **** rm -f conftest* cat > conftest.$ac_ext << EOF ! #line 16037 "configure" int main() { // NB: _Atomic_word not necessarily int. --- 16050,16056 ---- rm -f conftest* cat > conftest.$ac_ext << EOF ! #line 16053 "configure" int main() { // NB: _Atomic_word not necessarily int. *************** $as_echo "$glibcxx_cv_atomic_int" >&6; } *** 16070,16076 **** rm -f conftest* cat > conftest.$ac_ext << EOF ! #line 16073 "configure" int main() { typedef long long atomic_type; --- 16086,16092 ---- rm -f conftest* cat > conftest.$ac_ext << EOF ! #line 16089 "configure" int main() { typedef long long atomic_type; *************** $as_echo "mutex" >&6; } *** 16223,16229 **** # unnecessary for this test. cat > conftest.$ac_ext << EOF ! #line 16226 "configure" int main() { _Decimal32 d1; --- 16239,16245 ---- # unnecessary for this test. cat > conftest.$ac_ext << EOF ! #line 16242 "configure" int main() { _Decimal32 d1; *************** ac_compiler_gnu=$ac_cv_cxx_compiler_gnu *** 16265,16271 **** # unnecessary for this test. cat > conftest.$ac_ext << EOF ! #line 16268 "configure" template struct same { typedef T2 type; }; --- 16281,16287 ---- # unnecessary for this test. cat > conftest.$ac_ext << EOF ! #line 16284 "configure" template struct same { typedef T2 type; }; *************** $as_echo "$enable_int128" >&6; } *** 16299,16305 **** rm -f conftest* cat > conftest.$ac_ext << EOF ! #line 16302 "configure" template struct same { typedef T2 type; }; --- 16315,16321 ---- rm -f conftest* cat > conftest.$ac_ext << EOF ! #line 16318 "configure" template struct same { typedef T2 type; }; *************** $as_echo "#define HAVE_TRUNCATE 1" >>con *** 76785,76790 **** --- 76801,77028 ---- fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_truncate" >&5 $as_echo "$glibcxx_cv_truncate" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fdopendir" >&5 + $as_echo_n "checking for fdopendir... " >&6; } + if ${glibcxx_cv_fdopendir+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test x$gcc_no_link = xyes; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include + int + main () + { + ::DIR* dir = ::fdopendir(1); + ; + return 0; + } + _ACEOF + if ac_fn_cxx_try_compile "$LINENO"; then : + glibcxx_cv_fdopendir=yes + else + glibcxx_cv_fdopendir=no + fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + else + if test x$gcc_no_link = xyes; then + as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5 + fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include + int + main () + { + ::DIR* dir = ::fdopendir(1); + ; + return 0; + } + _ACEOF + if ac_fn_cxx_try_link "$LINENO"; then : + glibcxx_cv_fdopendir=yes + else + glibcxx_cv_fdopendir=no + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_fdopendir" >&5 + $as_echo "$glibcxx_cv_fdopendir" >&6; } + if test $glibcxx_cv_fdopendir = yes; then + + $as_echo "#define HAVE_FDOPENDIR 1" >>confdefs.h + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dirfd" >&5 + $as_echo_n "checking for dirfd... " >&6; } + if ${glibcxx_cv_dirfd+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test x$gcc_no_link = xyes; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include + int + main () + { + int fd = ::dirfd((::DIR*)0); + ; + return 0; + } + _ACEOF + if ac_fn_cxx_try_compile "$LINENO"; then : + glibcxx_cv_dirfd=yes + else + glibcxx_cv_dirfd=no + fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + else + if test x$gcc_no_link = xyes; then + as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5 + fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include + int + main () + { + int fd = ::dirfd((::DIR*)0); + ; + return 0; + } + _ACEOF + if ac_fn_cxx_try_link "$LINENO"; then : + glibcxx_cv_dirfd=yes + else + glibcxx_cv_dirfd=no + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_dirfd" >&5 + $as_echo "$glibcxx_cv_dirfd" >&6; } + if test $glibcxx_cv_dirfd = yes; then + + $as_echo "#define HAVE_DIRFD 1" >>confdefs.h + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for openat" >&5 + $as_echo_n "checking for openat... " >&6; } + if ${glibcxx_cv_openat+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test x$gcc_no_link = xyes; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include + int + main () + { + int fd = ::openat(AT_FDCWD, "", 0); + ; + return 0; + } + _ACEOF + if ac_fn_cxx_try_compile "$LINENO"; then : + glibcxx_cv_openat=yes + else + glibcxx_cv_openat=no + fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + else + if test x$gcc_no_link = xyes; then + as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5 + fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include + int + main () + { + int fd = ::openat(AT_FDCWD, "", 0); + ; + return 0; + } + _ACEOF + if ac_fn_cxx_try_link "$LINENO"; then : + glibcxx_cv_openat=yes + else + glibcxx_cv_openat=no + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_openat" >&5 + $as_echo "$glibcxx_cv_openat" >&6; } + if test $glibcxx_cv_openat = yes; then + + $as_echo "#define HAVE_OPENAT 1" >>confdefs.h + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unlinkat" >&5 + $as_echo_n "checking for unlinkat... " >&6; } + if ${glibcxx_cv_unlinkat+:} false; then : + $as_echo_n "(cached) " >&6 + else + if test x$gcc_no_link = xyes; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include + #include + int + main () + { + ::unlinkat(AT_FDCWD, "", AT_REMOVEDIR); + ; + return 0; + } + _ACEOF + if ac_fn_cxx_try_compile "$LINENO"; then : + glibcxx_cv_unlinkat=yes + else + glibcxx_cv_unlinkat=no + fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + else + if test x$gcc_no_link = xyes; then + as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5 + fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include + #include + int + main () + { + ::unlinkat(AT_FDCWD, "", AT_REMOVEDIR); + ; + return 0; + } + _ACEOF + if ac_fn_cxx_try_link "$LINENO"; then : + glibcxx_cv_unlinkat=yes + else + glibcxx_cv_unlinkat=no + fi + rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_cv_unlinkat" >&5 + $as_echo "$glibcxx_cv_unlinkat" >&6; } + if test $glibcxx_cv_unlinkat = yes; then + + $as_echo "#define HAVE_UNLINKAT 1" >>confdefs.h + + fi CXXFLAGS="$ac_save_CXXFLAGS" ac_ext=c ac_cpp='$CPP $CPPFLAGS' *************** if test -z "${MAINTAINER_MODE_TRUE}" && *** 78222,78227 **** --- 78460,78469 ---- as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi + if test -z "${OS_IS_DARWIN_TRUE}" && test -z "${OS_IS_DARWIN_FALSE}"; then + as_fn_error $? "conditional \"OS_IS_DARWIN\" was never defined. + Usually this means the macro was only invoked conditionally." "$LINENO" 5 + fi if test -z "${GLIBCXX_HOSTED_TRUE}" && test -z "${GLIBCXX_HOSTED_FALSE}"; then as_fn_error $? "conditional \"GLIBCXX_HOSTED\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 diff -Nrcpad gcc-11.4.0/libstdc++-v3/configure.ac gcc-11.5.0/libstdc++-v3/configure.ac *** gcc-11.4.0/libstdc++-v3/configure.ac Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/configure.ac Fri Jul 19 05:52:47 2024 *************** ACX_LT_HOST_FLAGS *** 98,103 **** --- 98,110 ---- AC_SUBST(enable_shared) AC_SUBST(enable_static) + os_is_darwin=no + case ${host_os} in + darwin*) os_is_darwin=yes ;; + *) ;; + esac + AM_CONDITIONAL([OS_IS_DARWIN], [test x${os_is_darwin} = xyes]) + if test "$enable_vtable_verify" = yes; then predep_objects_CXX="${predep_objects_CXX} ${glibcxx_builddir}/../libgcc/vtv_start.o" postdep_objects_CXX="${postdep_objects_CXX} ${glibcxx_builddir}/../libgcc/vtv_end.o" diff -Nrcpad gcc-11.4.0/libstdc++-v3/doc/html/manual/api.html gcc-11.5.0/libstdc++-v3/doc/html/manual/api.html *** gcc-11.4.0/libstdc++-v3/doc/html/manual/api.html Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/doc/html/manual/api.html Fri Jul 19 05:52:47 2024 *************** now defaults to zero. *** 368,373 **** --- 368,378 ---- For the non-default --enable-symvers=gnu-versioned-namespace configuration, the shared library SONAME has been changed to libstdc++.so.8. +

+ The extension allowing containers to be instantiated with an allocator + that doesn't match the container's value type is no longer allowed in + strict (-std=c++NN) modes, only in + -std=gnu++NN modes.

9

C++17 header <memory_resource> *************** now defaults to zero. *** 423,428 **** --- 428,437 ---- and <stop_token> added. +

+ The extension allowing containers to be instantiated with an allocator + that doesn't match the container's value type is no longer allowed in + C++20 mode, even in non-strict -std=gnu++20 mode.

11

The --enable-cheaders=c_std configuration was deprecated. diff -Nrcpad gcc-11.4.0/libstdc++-v3/doc/html/manual/status.html gcc-11.5.0/libstdc++-v3/doc/html/manual/status.html *** gcc-11.4.0/libstdc++-v3/doc/html/manual/status.html Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/doc/html/manual/status.html Fri Jul 19 05:52:47 2024 *************** options. The pre-defined symbol *** 1702,1709 **** __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 --- 1702,1708 ---- __cplusplus is used to check for the presence of the required flag.

! This section describes the C++23 and library TS support in the GCC 11 release series.

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 diff -Nrcpad gcc-11.4.0/libstdc++-v3/doc/html/manual/using.html gcc-11.5.0/libstdc++-v3/doc/html/manual/using.html *** gcc-11.4.0/libstdc++-v3/doc/html/manual/using.html Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/doc/html/manual/using.html Fri Jul 19 05:52:47 2024 *************** *** 4,10 ****  Next


Chapter 3. Using

Command Options

The set of features available in the GNU C++ library is shaped by ! several GCC Command Options. Options that impact libstdc++ are enumerated and detailed in the table below.

--- 4,10 ----  Next


Chapter 3. Using

Command Options

The set of features available in the GNU C++ library is shaped by ! several GCC Command Options. Options that impact libstdc++ are enumerated and detailed in the table below.

*************** *** 14,22 **** g++ -std=gnu++17 since GCC 11, and g++ -std=gnu++14 in GCC 6, 7, 8, 9, and 10, and g++ -std=gnu++98 for older releases. !

Table 3.1. C++ Command Options

Option FlagsDescription
-std=c++98 or -std=c++03 ! Use the 1998 ISO C++ standard plus amendments.
-std=gnu++98 or -std=gnu++03 ! As directly above, with GNU extensions.
-std=c++11Use the 2011 ISO C++ standard.
-std=gnu++11As directly above, with GNU extensions.
-std=c++14Use the 2014 ISO C++ standard.
-std=gnu++14As directly above, with GNU extensions.
-fexceptionsSee exception-free dialect
-frttiAs above, but RTTI-free dialect.
-pthreadFor ISO C++11 <thread>, <future>, <mutex>, --- 14,24 ---- g++ -std=gnu++17 since GCC 11, and g++ -std=gnu++14 in GCC 6, 7, 8, 9, and 10, and g++ -std=gnu++98 for older releases. !

Table 3.1. C++ Command Options

! -std=c++98 or -std=c++03 ! Use the 1998 ISO C++ standard plus amendments. ! ! ! ! -std=gnu++98 or -std=gnu++03 - As directly above, with GNU extensions. - - - - -std=c++11 - Use the 2011 ISO C++ standard. - - - - -std=gnu++11 - As directly above, with GNU extensions. - - - - -std=c++14 - Use the 2014 ISO C++ standard. - - - - -std=gnu++14 - As directly above, with GNU extensions. --- 37,48 ---- ! -std ! ! Select the C++ standard, and whether to use the base standard ! or GNU dialect. diff -Nrcpad gcc-11.4.0/libstdc++-v3/include/bits/fs_dir.h gcc-11.5.0/libstdc++-v3/include/bits/fs_dir.h *** gcc-11.4.0/libstdc++-v3/include/bits/fs_dir.h Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/include/bits/fs_dir.h Fri Jul 19 05:52:47 2024 *************** _GLIBCXX_BEGIN_NAMESPACE_CXX11 *** 537,542 **** --- 537,550 ---- struct _Dir_stack; std::__shared_ptr<_Dir_stack> _M_dirs; + + recursive_directory_iterator& + __erase(error_code* = nullptr); + + friend uintmax_t + filesystem::remove_all(const path&, error_code&); + friend uintmax_t + filesystem::remove_all(const path&); }; /// @relates std::filesystem::recursive_directory_iterator @{ diff -Nrcpad gcc-11.4.0/libstdc++-v3/include/bits/fs_fwd.h gcc-11.5.0/libstdc++-v3/include/bits/fs_fwd.h *** gcc-11.4.0/libstdc++-v3/include/bits/fs_fwd.h Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/include/bits/fs_fwd.h Fri Jul 19 05:52:47 2024 *************** _GLIBCXX_END_NAMESPACE_CXX11 *** 354,359 **** --- 354,363 ---- bool is_regular_file(file_status) noexcept; bool is_symlink(file_status) noexcept; + bool remove(const path&, error_code&) noexcept; + uintmax_t remove_all(const path&); + uintmax_t remove_all(const path&, error_code&); + /// @} } // namespace filesystem _GLIBCXX_END_NAMESPACE_VERSION diff -Nrcpad gcc-11.4.0/libstdc++-v3/include/bits/fs_path.h gcc-11.5.0/libstdc++-v3/include/bits/fs_path.h *** gcc-11.4.0/libstdc++-v3/include/bits/fs_path.h Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/include/bits/fs_path.h Fri Jul 19 05:52:47 2024 *************** namespace __detail *** 684,689 **** --- 684,691 ---- _List _M_cmpts; struct _Parser; + + template struct _Codecvt; }; /// @{ *************** namespace __detail *** 811,865 **** size_t _M_pos; }; template auto path::_S_convert(const _EcharT* __f, const _EcharT* __l) { static_assert(__detail::__is_encoded_char<_EcharT>); if constexpr (is_same_v<_EcharT, value_type>) return basic_string_view(__f, __l - __f); ! #if !defined _GLIBCXX_FILESYSTEM_IS_WINDOWS && defined _GLIBCXX_USE_CHAR8_T else if constexpr (is_same_v<_EcharT, char8_t>) - // For POSIX converting from char8_t to char is also 'noconv' - return string_view(reinterpret_cast(__f), __l - __f); - #endif - else { #ifdef _GLIBCXX_FILESYSTEM_IS_WINDOWS std::wstring __wstr; ! if constexpr (is_same_v<_EcharT, char>) ! { ! struct _UCvt : std::codecvt ! { } __cvt; ! if (__str_codecvt_in_all(__f, __l, __wstr, __cvt)) ! return __wstr; ! } ! #ifdef _GLIBCXX_USE_CHAR8_T ! else if constexpr (is_same_v<_EcharT, char8_t>) ! { ! const auto __f2 = reinterpret_cast(__f); ! return __detail::__wstr_from_utf8(string_view(__f2, __l - __f)); ! } #endif ! else // char16_t or char32_t ! { ! struct _UCvt : std::codecvt<_EcharT, char, std::mbstate_t> ! { } __cvt; ! std::string __str; ! if (__str_codecvt_out_all(__f, __l, __str, __cvt)) ! return __detail::__wstr_from_utf8(__str); ! } ! #else // ! windows ! struct _UCvt : std::codecvt<_EcharT, char, std::mbstate_t> ! { } __cvt; std::string __str; if (__str_codecvt_out_all(__f, __l, __str, __cvt)) ! return __str; ! #endif ! __detail::__throw_conversion_error(); } } /// @endcond --- 813,884 ---- size_t _M_pos; }; + // path::_Codecvt Performs conversions between C and path::string_type. + // The native encoding of char strings is the OS-dependent current + // encoding for pathnames. FIXME: We assume this is UTF-8 everywhere, + // but should use a Windows API to query it. + + // Converts between native pathname encoding and char16_t or char32_t. + template + struct path::_Codecvt + // Need derived class here because std::codecvt has protected destructor. + : std::codecvt<_EcharT, char, mbstate_t> + { }; + + // Converts between native pathname encoding and native wide encoding. + // The native encoding for wide strings is the execution wide-character + // set encoding. FIXME: We assume that this is either UTF-32 or UTF-16 + // (depending on the width of wchar_t). That matches GCC's default, + // but can be changed with -fwide-exec-charset. + // We need a custom codecvt converting the native pathname encoding + // to/from the native wide encoding. + template<> + struct path::_Codecvt + : conditional_t, // UTF-8 <-> UTF-32 + std::codecvt_utf8_utf16> // UTF-8 <-> UTF-16 + { }; + template auto path::_S_convert(const _EcharT* __f, const _EcharT* __l) { static_assert(__detail::__is_encoded_char<_EcharT>); + #ifdef _GLIBCXX_FILESYSTEM_IS_WINDOWS + # define _GLIBCXX_CONV_FROM_UTF8(S) __detail::__wstr_from_utf8(S) + #else + # define _GLIBCXX_CONV_FROM_UTF8(S) S + #endif + if constexpr (is_same_v<_EcharT, value_type>) return basic_string_view(__f, __l - __f); ! #ifdef _GLIBCXX_USE_CHAR8_T else if constexpr (is_same_v<_EcharT, char8_t>) { + string_view __str(reinterpret_cast(__f), __l - __f); + return _GLIBCXX_CONV_FROM_UTF8(__str); + } + #endif #ifdef _GLIBCXX_FILESYSTEM_IS_WINDOWS + else if constexpr (is_same_v<_EcharT, char>) + { std::wstring __wstr; ! path::_Codecvt __cvt; ! if (__str_codecvt_in_all(__f, __l, __wstr, __cvt)) ! return __wstr; ! } #endif ! else ! { ! path::_Codecvt<_EcharT> __cvt; std::string __str; if (__str_codecvt_out_all(__f, __l, __str, __cvt)) ! return _GLIBCXX_CONV_FROM_UTF8(__str); } + __detail::__throw_conversion_error(); } + #undef _GLIBCXX_CONV_FROM_UTF8 /// @endcond *************** namespace __detail *** 1028,1034 **** if (__str.size() == 0) return _WString(__a); ! #ifdef _GLIBCXX_FILESYSTEM_IS_WINDOWS // First convert native string from UTF-16 to to UTF-8. // XXX This assumes that the execution wide-character set is UTF-16. std::codecvt_utf8_utf16 __cvt; --- 1047,1055 ---- if (__str.size() == 0) return _WString(__a); ! #ifndef _GLIBCXX_FILESYSTEM_IS_WINDOWS ! string_view __u8str = __str; ! #else // First convert native string from UTF-16 to to UTF-8. // XXX This assumes that the execution wide-character set is UTF-16. std::codecvt_utf8_utf16 __cvt; *************** namespace __detail *** 1038,1072 **** _String __u8str{_CharAlloc{__a}}; const value_type* __wfirst = __str.data(); const value_type* __wlast = __wfirst + __str.size(); ! if (__str_codecvt_out_all(__wfirst, __wlast, __u8str, __cvt)) { if constexpr (is_same_v<_CharT, char>) return __u8str; // XXX assumes native ordinary encoding is UTF-8. - else { - - const char* __first = __u8str.data(); - const char* __last = __first + __u8str.size(); - #else - const value_type* __first = __str.data(); - const value_type* __last = __first + __str.size(); - #endif - - // Convert UTF-8 string to requested format. - #ifdef _GLIBCXX_USE_CHAR8_T - if constexpr (is_same_v<_CharT, char8_t>) - return _WString(__first, __last, __a); else #endif { ! // Convert UTF-8 to wide string. ! _WString __wstr(__a); ! struct _UCvt : std::codecvt<_CharT, char, std::mbstate_t> { } __cvt; ! if (__str_codecvt_in_all(__first, __last, __wstr, __cvt)) ! return __wstr; ! } ! #ifdef _GLIBCXX_FILESYSTEM_IS_WINDOWS ! } } #endif __detail::__throw_conversion_error(); } /// @endcond --- 1059,1088 ---- _String __u8str{_CharAlloc{__a}}; const value_type* __wfirst = __str.data(); const value_type* __wlast = __wfirst + __str.size(); ! if (!__str_codecvt_out_all(__wfirst, __wlast, __u8str, __cvt)) ! __detail::__throw_conversion_error(); if constexpr (is_same_v<_CharT, char>) return __u8str; // XXX assumes native ordinary encoding is UTF-8. else #endif { ! const char* __first = __u8str.data(); ! const char* __last = __first + __u8str.size(); ! // Convert UTF-8 string to requested format. ! #ifdef _GLIBCXX_USE_CHAR8_T ! if constexpr (is_same_v<_CharT, char8_t>) ! return _WString(__first, __last, __a); ! else #endif + { + // Convert UTF-8 to wide string. + _WString __wstr(__a); + path::_Codecvt<_CharT> __cvt; + if (__str_codecvt_in_all(__first, __last, __wstr, __cvt)) + return __wstr; + } + } __detail::__throw_conversion_error(); } /// @endcond diff -Nrcpad gcc-11.4.0/libstdc++-v3/include/bits/hashtable.h gcc-11.5.0/libstdc++-v3/include/bits/hashtable.h *** gcc-11.4.0/libstdc++-v3/include/bits/hashtable.h Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/include/bits/hashtable.h Fri Jul 19 05:52:47 2024 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 950,956 **** // DR 1189. // reserve, if present, comes from _Rehash_base. ! #if __cplusplus > 201402L /// Re-insert an extracted node into a container with unique keys. insert_return_type _M_reinsert_node(node_type&& __nh) --- 950,956 ---- // DR 1189. // reserve, if present, comes from _Rehash_base. ! #if __cplusplus > 201404L /// Re-insert an extracted node into a container with unique keys. insert_return_type _M_reinsert_node(node_type&& __nh) *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 975,981 **** { __ret.position = _M_insert_unique_node(__bkt, __code, __nh._M_ptr); ! __nh._M_ptr = nullptr; __ret.inserted = true; } } --- 975,981 ---- { __ret.position = _M_insert_unique_node(__bkt, __code, __nh._M_ptr); ! __nh.release(); __ret.inserted = true; } } *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 995,1001 **** auto __code = this->_M_hash_code(__k); auto __ret = _M_insert_multi_node(__hint._M_cur, __code, __nh._M_ptr); ! __nh._M_ptr = nullptr; return __ret; } --- 995,1001 ---- auto __code = this->_M_hash_code(__k); auto __ret = _M_insert_multi_node(__hint._M_cur, __code, __nh._M_ptr); ! __nh.release(); return __ret; } *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 1062,1068 **** { auto __nh = __src.extract(__pos); _M_insert_unique_node(__bkt, __code, __nh._M_ptr, __n_elt); ! __nh._M_ptr = nullptr; __n_elt = 1; } else if (__n_elt != 1) --- 1062,1068 ---- { auto __nh = __src.extract(__pos); _M_insert_unique_node(__bkt, __code, __nh._M_ptr, __n_elt); ! __nh.release(); __n_elt = 1; } else if (__n_elt != 1) diff -Nrcpad gcc-11.4.0/libstdc++-v3/include/bits/hashtable_policy.h gcc-11.5.0/libstdc++-v3/include/bits/hashtable_policy.h *** gcc-11.4.0/libstdc++-v3/include/bits/hashtable_policy.h Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/include/bits/hashtable_policy.h Fri Jul 19 05:52:47 2024 *************** namespace __detail *** 233,250 **** --- 233,254 ---- __gnu_cxx::__aligned_buffer<_Value> _M_storage; + [[__gnu__::__always_inline__]] _Value* _M_valptr() noexcept { return _M_storage._M_ptr(); } + [[__gnu__::__always_inline__]] const _Value* _M_valptr() const noexcept { return _M_storage._M_ptr(); } + [[__gnu__::__always_inline__]] _Value& _M_v() noexcept { return *_M_valptr(); } + [[__gnu__::__always_inline__]] const _Value& _M_v() const noexcept { return *_M_valptr(); } diff -Nrcpad gcc-11.4.0/libstdc++-v3/include/bits/node_handle.h gcc-11.5.0/libstdc++-v3/include/bits/node_handle.h *** gcc-11.4.0/libstdc++-v3/include/bits/node_handle.h Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/include/bits/node_handle.h Fri Jul 19 05:52:47 2024 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 168,173 **** --- 168,183 ---- _M_ptr = nullptr; } + // Destroys the allocator. Does not deallocate or destroy the node. + // Precondition: !empty() + // Postcondition: empty() + void + release() noexcept + { + _M_alloc.release(); + _M_ptr = nullptr; + } + protected: typename _AllocTraits::pointer _M_ptr; *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 219,227 **** return __tmp; } - struct _Empty { }; - - [[__no_unique_address__]] _Empty _M_empty; [[__no_unique_address__]] _NodeAlloc _M_alloc; }; --- 229,234 ---- *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 231,236 **** --- 238,249 ---- typename _Compare, typename _ValueAlloc> friend class _Rb_tree; + template + friend class _Hashtable; + /// @endcond }; diff -Nrcpad gcc-11.4.0/libstdc++-v3/include/bits/stl_tree.h gcc-11.5.0/libstdc++-v3/include/bits/stl_tree.h *** gcc-11.4.0/libstdc++-v3/include/bits/stl_tree.h Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/include/bits/stl_tree.h Fri Jul 19 05:52:47 2024 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 1434,1440 **** _M_move_assign(_Rb_tree&, false_type); #endif ! #if __cplusplus > 201402L public: /// Re-insert an extracted node. insert_return_type --- 1434,1440 ---- _M_move_assign(_Rb_tree&, false_type); #endif ! #if __cplusplus > 201404L public: /// Re-insert an extracted node. insert_return_type *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 1452,1458 **** { __ret.position = _M_insert_node(__res.first, __res.second, __nh._M_ptr); ! __nh._M_ptr = nullptr; __ret.inserted = true; } else --- 1452,1458 ---- { __ret.position = _M_insert_node(__res.first, __res.second, __nh._M_ptr); ! __nh.release(); __ret.inserted = true; } else *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 1480,1486 **** __ret = _M_insert_node(__res.first, __res.second, __nh._M_ptr); else __ret = _M_insert_equal_lower_node(__nh._M_ptr); ! __nh._M_ptr = nullptr; } return __ret; } --- 1480,1486 ---- __ret = _M_insert_node(__res.first, __res.second, __nh._M_ptr); else __ret = _M_insert_equal_lower_node(__nh._M_ptr); ! __nh.release(); } return __ret; } *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 1499,1505 **** if (__res.second) { __ret = _M_insert_node(__res.first, __res.second, __nh._M_ptr); ! __nh._M_ptr = nullptr; } else __ret = iterator(__res.first); --- 1499,1505 ---- if (__res.second) { __ret = _M_insert_node(__res.first, __res.second, __nh._M_ptr); ! __nh.release(); } else __ret = iterator(__res.first); *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 1522,1528 **** __ret = _M_insert_node(__res.first, __res.second, __nh._M_ptr); else __ret = _M_insert_equal_lower_node(__nh._M_ptr); ! __nh._M_ptr = nullptr; } return __ret; } --- 1522,1528 ---- __ret = _M_insert_node(__res.first, __res.second, __nh._M_ptr); else __ret = _M_insert_equal_lower_node(__nh._M_ptr); ! __nh.release(); } return __ret; } diff -Nrcpad gcc-11.4.0/libstdc++-v3/include/debug/stl_iterator.h gcc-11.5.0/libstdc++-v3/include/debug/stl_iterator.h *** gcc-11.4.0/libstdc++-v3/include/debug/stl_iterator.h Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/include/debug/stl_iterator.h Fri Jul 19 05:52:47 2024 *************** namespace __gnu_debug *** 35,65 **** { // Help Debug mode to see through reverse_iterator. template inline bool __valid_range(const std::reverse_iterator<_Iterator>& __first, const std::reverse_iterator<_Iterator>& __last, typename _Distance_traits<_Iterator>::__type& __dist) ! { return __valid_range(__last.base(), __first.base(), __dist); } template inline typename _Distance_traits<_Iterator>::__type __get_distance(const std::reverse_iterator<_Iterator>& __first, const std::reverse_iterator<_Iterator>& __last) ! { return __get_distance(__last.base(), __first.base()); } template inline bool __can_advance(const std::reverse_iterator<_Iterator>& __it, _Size __n) ! { return __can_advance(__it.base(), -__n); } template inline bool __can_advance(const std::reverse_iterator<_Iterator>& __it, const std::pair<_Diff, _Distance_precision>& __dist, int __way) ! { return __can_advance(__it.base(), __dist, -__way); } template inline std::reverse_iterator<_Iterator> __base(const std::reverse_iterator<_Safe_iterator< _Iterator, _Sequence, std::random_access_iterator_tag> >& __it) --- 35,72 ---- { // Help Debug mode to see through reverse_iterator. template + _GLIBCXX20_CONSTEXPR inline bool __valid_range(const std::reverse_iterator<_Iterator>& __first, const std::reverse_iterator<_Iterator>& __last, typename _Distance_traits<_Iterator>::__type& __dist) ! { ! return __gnu_debug::__valid_range(__last.base(), __first.base(), __dist); ! } template + _GLIBCXX20_CONSTEXPR inline typename _Distance_traits<_Iterator>::__type __get_distance(const std::reverse_iterator<_Iterator>& __first, const std::reverse_iterator<_Iterator>& __last) ! { return __gnu_debug::__get_distance(__last.base(), __first.base()); } template + _GLIBCXX20_CONSTEXPR inline bool __can_advance(const std::reverse_iterator<_Iterator>& __it, _Size __n) ! { return __gnu_debug::__can_advance(__it.base(), -__n); } template + _GLIBCXX20_CONSTEXPR inline bool __can_advance(const std::reverse_iterator<_Iterator>& __it, const std::pair<_Diff, _Distance_precision>& __dist, int __way) ! { return __gnu_debug::__can_advance(__it.base(), __dist, -__way); } template + _GLIBCXX20_CONSTEXPR inline std::reverse_iterator<_Iterator> __base(const std::reverse_iterator<_Safe_iterator< _Iterator, _Sequence, std::random_access_iterator_tag> >& __it) *************** namespace __gnu_debug *** 82,87 **** --- 89,95 ---- } #else template + _GLIBCXX20_CONSTEXPR inline auto __unsafe(const std::reverse_iterator<_Iterator>& __it) -> decltype(std::__make_reverse_iterator(__unsafe(__it.base()))) *************** namespace __gnu_debug *** 91,127 **** #if __cplusplus >= 201103L // Help Debug mode to see through move_iterator. template inline bool __valid_range(const std::move_iterator<_Iterator>& __first, const std::move_iterator<_Iterator>& __last, typename _Distance_traits<_Iterator>::__type& __dist) ! { return __valid_range(__first.base(), __last.base(), __dist); } template inline typename _Distance_traits<_Iterator>::__type __get_distance(const std::move_iterator<_Iterator>& __first, const std::move_iterator<_Iterator>& __last) ! { return __get_distance(__first.base(), __last.base()); } template inline bool __can_advance(const std::move_iterator<_Iterator>& __it, _Size __n) ! { return __can_advance(__it.base(), __n); } template inline bool __can_advance(const std::move_iterator<_Iterator>& __it, const std::pair<_Diff, _Distance_precision>& __dist, int __way) ! { return __can_advance(__it.base(), __dist, __way); } template inline auto __unsafe(const std::move_iterator<_Iterator>& __it) -> decltype(std::make_move_iterator(__unsafe(__it.base()))) { return std::make_move_iterator(__unsafe(__it.base())); } template inline auto __base(const std::move_iterator<_Iterator>& __it) -> decltype(std::make_move_iterator(__base(__it.base()))) --- 99,143 ---- #if __cplusplus >= 201103L // Help Debug mode to see through move_iterator. template + _GLIBCXX20_CONSTEXPR inline bool __valid_range(const std::move_iterator<_Iterator>& __first, const std::move_iterator<_Iterator>& __last, typename _Distance_traits<_Iterator>::__type& __dist) ! { ! return __gnu_debug::__valid_range(__first.base(), __last.base(), __dist); ! } template + _GLIBCXX20_CONSTEXPR inline typename _Distance_traits<_Iterator>::__type __get_distance(const std::move_iterator<_Iterator>& __first, const std::move_iterator<_Iterator>& __last) ! { return __gnu_debug::__get_distance(__first.base(), __last.base()); } template + _GLIBCXX20_CONSTEXPR inline bool __can_advance(const std::move_iterator<_Iterator>& __it, _Size __n) ! { return __gnu_debug::__can_advance(__it.base(), __n); } template + _GLIBCXX20_CONSTEXPR inline bool __can_advance(const std::move_iterator<_Iterator>& __it, const std::pair<_Diff, _Distance_precision>& __dist, int __way) ! { return __gnu_debug::__can_advance(__it.base(), __dist, __way); } template + _GLIBCXX20_CONSTEXPR inline auto __unsafe(const std::move_iterator<_Iterator>& __it) -> decltype(std::make_move_iterator(__unsafe(__it.base()))) { return std::make_move_iterator(__unsafe(__it.base())); } template + _GLIBCXX20_CONSTEXPR inline auto __base(const std::move_iterator<_Iterator>& __it) -> decltype(std::make_move_iterator(__base(__it.base()))) diff -Nrcpad gcc-11.4.0/libstdc++-v3/include/experimental/bits/fs_path.h gcc-11.5.0/libstdc++-v3/include/experimental/bits/fs_path.h *** gcc-11.4.0/libstdc++-v3/include/experimental/bits/fs_path.h Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/include/experimental/bits/fs_path.h Fri Jul 19 05:52:47 2024 *************** namespace __detail *** 748,762 **** --- 748,795 ---- template<> struct path::_Cvt { + // We need this type to be defined because we don't have `if constexpr` + // in C++11 and so path::string(const A&) needs to be able to + // declare a variable of this type and pass it to __str_codecvt_in_all. + using __codecvt_utf8_to_wide = _Cvt; + // Dummy overload used for unreachable calls in path::string. + template + friend bool + __str_codecvt_in_all(const char*, const char*, + _WStr&, __codecvt_utf8_to_wide&) noexcept + { return true; } + template static string_type _S_convert(_Iter __first, _Iter __last) { return string_type{__first, __last}; } }; + // Performs conversions from _CharT to path::string_type. template struct path::_Cvt { + // FIXME: We currently assume that the native wide encoding for wchar_t + // is either UTF-32 or UTF-16 (depending on the width of wchar_t). + // See comments in for further details. + using __codecvt_utf8_to_wchar + = typename conditional, // from UTF-32 + std::codecvt_utf8_utf16 // from UTF-16 + >::type; + + // Converts from char16_t or char32_t using std::codecvt. + // Need derived class here because std::codecvt has protected destructor. + struct __codecvt_utf8_to_utfNN : std::codecvt<_CharT, char, mbstate_t> + { }; + + // Convert from native pathname format (assumed to be UTF-8 everywhere) + // to the encoding implied by the wide character type _CharT. + using __codecvt_utf8_to_wide + = typename conditional::value, + __codecvt_utf8_to_wchar, + __codecvt_utf8_to_utfNN>::type; + #ifdef _GLIBCXX_FILESYSTEM_IS_WINDOWS #ifdef _GLIBCXX_USE_CHAR8_T static string_type *************** namespace __detail *** 774,781 **** static string_type _S_wconvert(const char* __f, const char* __l, const char*) { ! using _Cvt = std::codecvt; ! const auto& __cvt = std::use_facet<_Cvt>(std::locale{}); std::wstring __wstr; if (__str_codecvt_in_all(__f, __l, __wstr, __cvt)) return __wstr; --- 807,813 ---- static string_type _S_wconvert(const char* __f, const char* __l, const char*) { ! std::codecvt_utf8_utf16 __cvt; std::wstring __wstr; if (__str_codecvt_in_all(__f, __l, __wstr, __cvt)) return __wstr; *************** namespace __detail *** 787,794 **** static string_type _S_wconvert(const _CharT* __f, const _CharT* __l, const void*) { ! struct _UCvt : std::codecvt<_CharT, char, std::mbstate_t> ! { } __cvt; std::string __str; if (__str_codecvt_out_all(__f, __l, __str, __cvt)) { --- 819,825 ---- static string_type _S_wconvert(const _CharT* __f, const _CharT* __l, const void*) { ! __codecvt_utf8_to_wide __cvt; std::string __str; if (__str_codecvt_out_all(__f, __l, __str, __cvt)) { *************** namespace __detail *** 819,826 **** else #endif { ! struct _UCvt : std::codecvt<_CharT, char, std::mbstate_t> ! { } __cvt; std::string __str; if (__str_codecvt_out_all(__f, __l, __str, __cvt)) return __str; --- 850,856 ---- else #endif { ! __codecvt_utf8_to_wide __cvt; std::string __str; if (__str_codecvt_out_all(__f, __l, __str, __cvt)) return __str; *************** namespace __detail *** 990,996 **** inline std::basic_string<_CharT, _Traits, _Allocator> path::string(const _Allocator& __a) const { ! if (is_same<_CharT, value_type>::value) return { _M_pathname.begin(), _M_pathname.end(), __a }; using _WString = basic_string<_CharT, _Traits, _Allocator>; --- 1020,1026 ---- inline std::basic_string<_CharT, _Traits, _Allocator> path::string(const _Allocator& __a) const { ! if _GLIBCXX17_CONSTEXPR (is_same<_CharT, value_type>::value) return { _M_pathname.begin(), _M_pathname.end(), __a }; using _WString = basic_string<_CharT, _Traits, _Allocator>; *************** namespace __detail *** 1026,1034 **** else #endif { ! // Convert UTF-8 to wide string. ! struct _UCvt : std::codecvt<_CharT, char, std::mbstate_t> ! { } __cvt; const char* __f = __from.data(); const char* __l = __f + __from.size(); if (__str_codecvt_in_all(__f, __l, __to, __cvt)) --- 1056,1063 ---- else #endif { ! // Convert UTF-8 to char16_t or char32_t string. ! typename path::_Cvt<_CharT>::__codecvt_utf8_to_wide __cvt; const char* __f = __from.data(); const char* __l = __f + __from.size(); if (__str_codecvt_in_all(__f, __l, __to, __cvt)) *************** namespace __detail *** 1041,1054 **** if (auto* __p = __dispatch(__u8str, __wstr, is_same<_CharT, char>{})) return *__p; } ! #else #ifdef _GLIBCXX_USE_CHAR8_T if constexpr (is_same<_CharT, char8_t>::value) return _WString(__first, __last, __a); else #endif { ! struct _UCvt : std::codecvt<_CharT, char, std::mbstate_t> { } __cvt; _WString __wstr(__a); if (__str_codecvt_in_all(__first, __last, __wstr, __cvt)) return __wstr; --- 1070,1083 ---- if (auto* __p = __dispatch(__u8str, __wstr, is_same<_CharT, char>{})) return *__p; } ! #else // ! Windows #ifdef _GLIBCXX_USE_CHAR8_T if constexpr (is_same<_CharT, char8_t>::value) return _WString(__first, __last, __a); else #endif { ! typename path::_Cvt<_CharT>::__codecvt_utf8_to_wide __cvt; _WString __wstr(__a); if (__str_codecvt_in_all(__first, __last, __wstr, __cvt)) return __wstr; diff -Nrcpad gcc-11.4.0/libstdc++-v3/include/experimental/bits/numeric_traits.h gcc-11.5.0/libstdc++-v3/include/experimental/bits/numeric_traits.h *** gcc-11.4.0/libstdc++-v3/include/experimental/bits/numeric_traits.h Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/include/experimental/bits/numeric_traits.h Fri Jul 19 05:52:47 2024 *************** *** 22,27 **** --- 22,30 ---- // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see // . + #ifndef _GLIBCXX_EXPERIMENTAL_BITS_NUMERIC_TRAITS_H + #define _GLIBCXX_EXPERIMENTAL_BITS_NUMERIC_TRAITS_H + #include namespace std { *************** template <> *** 565,567 **** --- 568,571 ---- #endif // __FINITE_MATH_ONLY__ } // namespace std + #endif // _GLIBCXX_EXPERIMENTAL_BITS_NUMERIC_TRAITS_H diff -Nrcpad gcc-11.4.0/libstdc++-v3/include/experimental/bits/simd.h gcc-11.5.0/libstdc++-v3/include/experimental/bits/simd.h *** gcc-11.4.0/libstdc++-v3/include/experimental/bits/simd.h Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/include/experimental/bits/simd.h Fri Jul 19 05:52:47 2024 *************** *** 42,48 **** --- 42,53 ---- #if _GLIBCXX_SIMD_X86INTRIN #include #elif _GLIBCXX_SIMD_HAVE_NEON + #pragma GCC diagnostic push + // narrowing conversion of '__a' from 'uint64_t' {aka 'long long unsigned int'} to + // 'int64x1_t' {aka 'long long int'} [-Wnarrowing] + #pragma GCC diagnostic ignored "-Wnarrowing" #include + #pragma GCC diagnostic pop #endif /** @ingroup ts_simd *************** template *** 385,390 **** --- 390,396 ---- constexpr auto __int_for_sizeof() { + static_assert(_Bytes > 0); if constexpr (_Bytes == sizeof(int)) return int(); #ifdef __clang__ *************** template *** 450,456 **** return _Ip{}; } else ! static_assert(_Bytes != _Bytes, "this should be unreachable"); } #pragma GCC diagnostic pop --- 456,462 ---- return _Ip{}; } else ! static_assert(_Bytes == 0, "this should be unreachable"); } #pragma GCC diagnostic pop *************** template *** 1615,1632 **** return reinterpret_cast<_To>(__x); else if constexpr (__is_vector_type_v<_To> && __from_is_vectorizable) { ! using _FV [[gnu::vector_size(sizeof(_From))]] = _From; return reinterpret_cast<_To>(_FV{__x}); } else if constexpr (__to_is_vectorizable && __from_is_vectorizable) { ! using _TV [[gnu::vector_size(sizeof(_To))]] = _To; ! using _FV [[gnu::vector_size(sizeof(_From))]] = _From; return reinterpret_cast<_TV>(_FV{__x})[0]; } else if constexpr (__to_is_vectorizable && __is_vector_type_v<_From>) { ! using _TV [[gnu::vector_size(sizeof(_To))]] = _To; return reinterpret_cast<_TV>(__x)[0]; } else --- 1621,1638 ---- return reinterpret_cast<_To>(__x); else if constexpr (__is_vector_type_v<_To> && __from_is_vectorizable) { ! using _FV [[__gnu__::__vector_size__(sizeof(_From))]] = _From; return reinterpret_cast<_To>(_FV{__x}); } else if constexpr (__to_is_vectorizable && __from_is_vectorizable) { ! using _TV [[__gnu__::__vector_size__(sizeof(_To))]] = _To; ! using _FV [[__gnu__::__vector_size__(sizeof(_From))]] = _From; return reinterpret_cast<_TV>(_FV{__x})[0]; } else if constexpr (__to_is_vectorizable && __is_vector_type_v<_From>) { ! using _TV [[__gnu__::__vector_size__(sizeof(_To))]] = _To; return reinterpret_cast<_TV>(__x)[0]; } else *************** template *** 3123,3129 **** return {__mem, vector_aligned}; } ! template _GLIBCXX_SIMD_INTRINSIC enable_if_t<(_Np == native_simd_mask<_Tp>::size()), native_simd_mask<_Tp>> to_native(const fixed_size_simd_mask<_Tp, _Np>& __x) --- 3129,3135 ---- return {__mem, vector_aligned}; } ! template _GLIBCXX_SIMD_INTRINSIC enable_if_t<(_Np == native_simd_mask<_Tp>::size()), native_simd_mask<_Tp>> to_native(const fixed_size_simd_mask<_Tp, _Np>& __x) *************** template *** 3134,3140 **** } // to_compatible {{{2 ! template _GLIBCXX_SIMD_INTRINSIC enable_if_t<(_Np == simd<_Tp>::size()), simd<_Tp>> to_compatible(const simd<_Tp, simd_abi::fixed_size<_Np>>& __x) { --- 3140,3146 ---- } // to_compatible {{{2 ! template _GLIBCXX_SIMD_INTRINSIC enable_if_t<(_Np == simd<_Tp>::size()), simd<_Tp>> to_compatible(const simd<_Tp, simd_abi::fixed_size<_Np>>& __x) { *************** template *** 3143,3154 **** return {__mem, vector_aligned}; } ! template _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]; }); } --- 3149,3161 ---- return {__mem, vector_aligned}; } ! template _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>( + __private_init, [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { return __x[__i]; }); } diff -Nrcpad gcc-11.4.0/libstdc++-v3/include/experimental/bits/simd_builtin.h gcc-11.5.0/libstdc++-v3/include/experimental/bits/simd_builtin.h *** gcc-11.4.0/libstdc++-v3/include/experimental/bits/simd_builtin.h Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/include/experimental/bits/simd_builtin.h Fri Jul 19 05:52:47 2024 *************** template __x) { static_assert(_Combine == 1, "_Combine != 1 not implemented"); ! static_assert(__have_avx512f && _Np == _Np); ! static_assert(_Total >= 2 && _Index + _Combine <= _Total && _Index >= 0); return __x._M_data >> (_Index * _Np / _Total); } --- 276,282 ---- __extract_part(const _SimdWrapper __x) { static_assert(_Combine == 1, "_Combine != 1 not implemented"); ! static_assert(__have_avx512f && _Total >= 2 && _Index + _Combine <= _Total && _Index >= 0); return __x._M_data >> (_Index * _Np / _Total); } *************** template () const ! { return static_cast*>(this)->_M_data.__builtin(); } }; struct _SimdBase1 --- 839,845 ---- explicit operator __vector_type_t<_Tp, _Np>() const ! { return __data(*static_cast*>(this)); } }; struct _SimdBase1 *************** struct _CommonImplBuiltin *** 1291,1296 **** --- 1290,1307 ---- // }}} // _S_store {{{ + template + _GLIBCXX_SIMD_INTRINSIC static void + _S_memcpy(char* __dst, const char* __src) + { + if constexpr (_Bytes > 0) + { + constexpr size_t _Ns = std::__bit_floor(_Bytes); + __builtin_memcpy(__dst, __src, _Ns); + _S_memcpy<_Bytes - _Ns>(__dst + _Ns, __src + _Ns); + } + } + template _GLIBCXX_SIMD_INTRINSIC static void _S_store(_TV __x, void* __addr) *************** struct _CommonImplBuiltin *** 1298,1330 **** constexpr size_t _Bytes = _ReqBytes == 0 ? sizeof(__x) : _ReqBytes; static_assert(sizeof(__x) >= _Bytes); if constexpr (__is_vector_type_v<_TV>) ! { ! using _Tp = typename _VectorTraits<_TV>::value_type; ! constexpr size_t _Np = _Bytes / sizeof(_Tp); ! static_assert(_Np * sizeof(_Tp) == _Bytes); ! ! #ifdef _GLIBCXX_SIMD_WORKAROUND_PR90424 ! using _Up = conditional_t< ! (is_integral_v<_Tp> || _Bytes < 4), ! conditional_t<(sizeof(__x) > sizeof(long long)), long long, _Tp>, ! float>; ! const auto __v = __vector_bitcast<_Up>(__x); ! #else // _GLIBCXX_SIMD_WORKAROUND_PR90424 ! const __vector_type_t<_Tp, _Np> __v = __x; ! #endif // _GLIBCXX_SIMD_WORKAROUND_PR90424 ! ! if constexpr ((_Bytes & (_Bytes - 1)) != 0) ! { ! constexpr size_t _MoreBytes = std::__bit_ceil(_Bytes); ! alignas(decltype(__v)) char __tmp[_MoreBytes]; ! __builtin_memcpy(__tmp, &__v, _MoreBytes); ! __builtin_memcpy(__addr, __tmp, _Bytes); ! } ! else ! __builtin_memcpy(__addr, &__v, _Bytes); ! } else __builtin_memcpy(__addr, &__x, _Bytes); } --- 1309,1319 ---- constexpr size_t _Bytes = _ReqBytes == 0 ? sizeof(__x) : _ReqBytes; static_assert(sizeof(__x) >= _Bytes); + #if !defined __clang__ && _GLIBCXX_SIMD_WORKAROUND_PR90424 if constexpr (__is_vector_type_v<_TV>) ! _S_memcpy<_Bytes>(reinterpret_cast(__addr), reinterpret_cast(&__x)); else + #endif // _GLIBCXX_SIMD_WORKAROUND_PR90424 __builtin_memcpy(__addr, &__x, _Bytes); } *************** template *** 1470,1476 **** [&](auto __i) constexpr { return static_cast<_Tp>(__i < _Np ? __mem[__i] : 0); }); ! else if constexpr (sizeof(_Up) > 8) return __generate_vector<_Tp, _SimdMember<_Tp>::_S_full_size>( [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { return static_cast<_Tp>(__i < _Np ? __mem[__i] : 0); --- 1459,1465 ---- [&](auto __i) constexpr { return static_cast<_Tp>(__i < _Np ? __mem[__i] : 0); }); ! else if constexpr (sizeof(_Up) > 8 or __vectorized_sizeof<_Up>() <= sizeof(_Up)) return __generate_vector<_Tp, _SimdMember<_Tp>::_S_full_size>( [&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { return static_cast<_Tp>(__i < _Np ? __mem[__i] : 0); *************** template *** 1542,1548 **** for (size_t __i = 0; __i < _Np; ++__i) __mem[__i] = __v[__i]; } ! else if constexpr (sizeof(_Up) > 8) __execute_n_times<_Np>([&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { __mem[__i] = __v[__i]; }); --- 1531,1537 ---- for (size_t __i = 0; __i < _Np; ++__i) __mem[__i] = __v[__i]; } ! else if constexpr (sizeof(_Up) > 8 or __vectorized_sizeof<_Up>() <= sizeof(_Up)) __execute_n_times<_Np>([&](auto __i) constexpr _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { __mem[__i] = __v[__i]; }); *************** template *** 1624,1630 **** if constexpr (_UW_size == _TV_size) // one convert+store { const _UW __converted = __convert<_UW>(__v); ! _SuperImpl::_S_masked_store_nocvt( __converted, __mem, _UAbi::_MaskImpl::template _S_convert< __int_for_sizeof_t<_Up>>(__k)); --- 1613,1619 ---- if constexpr (_UW_size == _TV_size) // one convert+store { const _UW __converted = __convert<_UW>(__v); ! _UAbi::_SimdImpl::_S_masked_store_nocvt( __converted, __mem, _UAbi::_MaskImpl::template _S_convert< __int_for_sizeof_t<_Up>>(__k)); *************** template *** 1639,1645 **** const array<_UV, _NAllStores> __converted = __convert_all<_UV, _NAllStores>(__v); __execute_n_times<_NFullStores>([&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { ! _SuperImpl::_S_masked_store_nocvt( _UW(__converted[__i]), __mem + __i * _UW_size, _UAbi::_MaskImpl::template _S_convert< __int_for_sizeof_t<_Up>>( --- 1628,1634 ---- const array<_UV, _NAllStores> __converted = __convert_all<_UV, _NAllStores>(__v); __execute_n_times<_NFullStores>([&](auto __i) _GLIBCXX_SIMD_ALWAYS_INLINE_LAMBDA { ! _UAbi::_SimdImpl::_S_masked_store_nocvt( _UW(__converted[__i]), __mem + __i * _UW_size, _UAbi::_MaskImpl::template _S_convert< __int_for_sizeof_t<_Up>>( *************** template *** 1647,1653 **** }); if constexpr (_NAllStores > _NFullStores) // one partial at the end ! _SuperImpl::_S_masked_store_nocvt( _UW(__converted[_NFullStores]), __mem + _NFullStores * _UW_size, _UAbi::_MaskImpl::template _S_convert< --- 1636,1642 ---- }); if constexpr (_NAllStores > _NFullStores) // one partial at the end ! _UAbi::_SimdImpl::_S_masked_store_nocvt( _UW(__converted[_NFullStores]), __mem + _NFullStores * _UW_size, _UAbi::_MaskImpl::template _S_convert< diff -Nrcpad gcc-11.4.0/libstdc++-v3/include/experimental/bits/simd_ppc.h gcc-11.5.0/libstdc++-v3/include/experimental/bits/simd_ppc.h *** gcc-11.4.0/libstdc++-v3/include/experimental/bits/simd_ppc.h Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/include/experimental/bits/simd_ppc.h Fri Jul 19 05:52:47 2024 *************** template *** 64,70 **** __x = _Base::_S_bit_shift_left(__x, __y); if constexpr (sizeof(_Tp) < sizeof(int)) { ! if (__y >= sizeof(_Tp) * __CHAR_BIT__) return {}; } return __x; --- 64,70 ---- __x = _Base::_S_bit_shift_left(__x, __y); if constexpr (sizeof(_Tp) < sizeof(int)) { ! if (__y >= int(sizeof(_Tp) * __CHAR_BIT__)) return {}; } return __x; diff -Nrcpad gcc-11.4.0/libstdc++-v3/include/experimental/bits/simd_x86.h gcc-11.5.0/libstdc++-v3/include/experimental/bits/simd_x86.h *** gcc-11.4.0/libstdc++-v3/include/experimental/bits/simd_x86.h Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/include/experimental/bits/simd_x86.h Fri Jul 19 05:52:47 2024 *************** template *** 1106,1136 **** else _mm512_mask_storeu_pd(__mem, __k, __vi); } - #if 0 // with KNL either sizeof(_Tp) >= 4 or sizeof(_vi) <= 32 - // with Skylake-AVX512, __have_avx512bw is true - else if constexpr (__have_sse2) - { - using _M = __vector_type_t<_Tp, _Np>; - using _MVT = _VectorTraits<_M>; - _mm_maskmoveu_si128(__auto_bitcast(__extract<0, 4>(__v._M_data)), - __auto_bitcast(_MaskImpl::template _S_convert<_Tp, _Np>(__k._M_data)), - reinterpret_cast(__mem)); - _mm_maskmoveu_si128(__auto_bitcast(__extract<1, 4>(__v._M_data)), - __auto_bitcast(_MaskImpl::template _S_convert<_Tp, _Np>( - __k._M_data >> 1 * _MVT::_S_full_size)), - reinterpret_cast(__mem) + 1 * 16); - _mm_maskmoveu_si128(__auto_bitcast(__extract<2, 4>(__v._M_data)), - __auto_bitcast(_MaskImpl::template _S_convert<_Tp, _Np>( - __k._M_data >> 2 * _MVT::_S_full_size)), - reinterpret_cast(__mem) + 2 * 16); - if constexpr (_Np > 48 / sizeof(_Tp)) - _mm_maskmoveu_si128( - __auto_bitcast(__extract<3, 4>(__v._M_data)), - __auto_bitcast(_MaskImpl::template _S_convert<_Tp, _Np>( - __k._M_data >> 3 * _MVT::_S_full_size)), - reinterpret_cast(__mem) + 3 * 16); - } - #endif else __assert_unreachable<_Tp>(); } --- 1106,1111 ---- *************** template *** 1233,1240 **** else if constexpr (__have_avx && sizeof(_Tp) == 8) _mm_maskstore_pd(reinterpret_cast(__mem), __ki, __vector_bitcast(__vi)); ! else if constexpr (__have_sse2) ! _mm_maskmoveu_si128(__vi, __ki, reinterpret_cast(__mem)); } else if constexpr (sizeof(__v) == 32) { --- 1208,1215 ---- else if constexpr (__have_avx && sizeof(_Tp) == 8) _mm_maskstore_pd(reinterpret_cast(__mem), __ki, __vector_bitcast(__vi)); ! else ! _Base::_S_masked_store_nocvt(__v, __mem, __k); } else if constexpr (sizeof(__v) == 32) { *************** template *** 1259,1271 **** else if constexpr (__have_avx && sizeof(_Tp) == 8) _mm256_maskstore_pd(reinterpret_cast(__mem), __ki, __vector_bitcast(__v)); ! else if constexpr (__have_sse2) ! { ! _mm_maskmoveu_si128(__lo128(__vi), __lo128(__ki), ! reinterpret_cast(__mem)); ! _mm_maskmoveu_si128(__hi128(__vi), __hi128(__ki), ! reinterpret_cast(__mem) + 16); ! } } else __assert_unreachable<_Tp>(); --- 1234,1241 ---- else if constexpr (__have_avx && sizeof(_Tp) == 8) _mm256_maskstore_pd(reinterpret_cast(__mem), __ki, __vector_bitcast(__v)); ! else ! _Base::_S_masked_store_nocvt(__v, __mem, __k); } else __assert_unreachable<_Tp>(); *************** template *** 2369,2397 **** __assert_unreachable<_Tp>(); } else if constexpr (sizeof(__xi) == 64 && sizeof(_Tp) == 8) ! return ~_mm512_mask_cmpeq_epi64_mask(__k1, __xi, __yi); else if constexpr (sizeof(__xi) == 64 && sizeof(_Tp) == 4) ! return ~_mm512_mask_cmpeq_epi32_mask(__k1, __xi, __yi); else if constexpr (sizeof(__xi) == 64 && sizeof(_Tp) == 2) ! return ~_mm512_mask_cmpeq_epi16_mask(__k1, __xi, __yi); else if constexpr (sizeof(__xi) == 64 && sizeof(_Tp) == 1) ! return ~_mm512_mask_cmpeq_epi8_mask(__k1, __xi, __yi); else if constexpr (sizeof(__xi) == 32 && sizeof(_Tp) == 8) ! return ~_mm256_mask_cmpeq_epi64_mask(__k1, __xi, __yi); else if constexpr (sizeof(__xi) == 32 && sizeof(_Tp) == 4) ! return ~_mm256_mask_cmpeq_epi32_mask(__k1, __xi, __yi); else if constexpr (sizeof(__xi) == 32 && sizeof(_Tp) == 2) ! return ~_mm256_mask_cmpeq_epi16_mask(__k1, __xi, __yi); else if constexpr (sizeof(__xi) == 32 && sizeof(_Tp) == 1) ! return ~_mm256_mask_cmpeq_epi8_mask(__k1, __xi, __yi); else if constexpr (sizeof(__xi) == 16 && sizeof(_Tp) == 8) ! return ~_mm_mask_cmpeq_epi64_mask(__k1, __xi, __yi); else if constexpr (sizeof(__xi) == 16 && sizeof(_Tp) == 4) ! return ~_mm_mask_cmpeq_epi32_mask(__k1, __xi, __yi); else if constexpr (sizeof(__xi) == 16 && sizeof(_Tp) == 2) ! return ~_mm_mask_cmpeq_epi16_mask(__k1, __xi, __yi); else if constexpr (sizeof(__xi) == 16 && sizeof(_Tp) == 1) ! return ~_mm_mask_cmpeq_epi8_mask(__k1, __xi, __yi); else __assert_unreachable<_Tp>(); } // }}} --- 2339,2367 ---- __assert_unreachable<_Tp>(); } else if constexpr (sizeof(__xi) == 64 && sizeof(_Tp) == 8) ! return _mm512_mask_cmpneq_epi64_mask(__k1, __xi, __yi); else if constexpr (sizeof(__xi) == 64 && sizeof(_Tp) == 4) ! return _mm512_mask_cmpneq_epi32_mask(__k1, __xi, __yi); else if constexpr (sizeof(__xi) == 64 && sizeof(_Tp) == 2) ! return _mm512_mask_cmpneq_epi16_mask(__k1, __xi, __yi); else if constexpr (sizeof(__xi) == 64 && sizeof(_Tp) == 1) ! return _mm512_mask_cmpneq_epi8_mask(__k1, __xi, __yi); else if constexpr (sizeof(__xi) == 32 && sizeof(_Tp) == 8) ! return _mm256_mask_cmpneq_epi64_mask(__k1, __xi, __yi); else if constexpr (sizeof(__xi) == 32 && sizeof(_Tp) == 4) ! return _mm256_mask_cmpneq_epi32_mask(__k1, __xi, __yi); else if constexpr (sizeof(__xi) == 32 && sizeof(_Tp) == 2) ! return _mm256_mask_cmpneq_epi16_mask(__k1, __xi, __yi); else if constexpr (sizeof(__xi) == 32 && sizeof(_Tp) == 1) ! return _mm256_mask_cmpneq_epi8_mask(__k1, __xi, __yi); else if constexpr (sizeof(__xi) == 16 && sizeof(_Tp) == 8) ! return _mm_mask_cmpneq_epi64_mask(__k1, __xi, __yi); else if constexpr (sizeof(__xi) == 16 && sizeof(_Tp) == 4) ! return _mm_mask_cmpneq_epi32_mask(__k1, __xi, __yi); else if constexpr (sizeof(__xi) == 16 && sizeof(_Tp) == 2) ! return _mm_mask_cmpneq_epi16_mask(__k1, __xi, __yi); else if constexpr (sizeof(__xi) == 16 && sizeof(_Tp) == 1) ! return _mm_mask_cmpneq_epi8_mask(__k1, __xi, __yi); else __assert_unreachable<_Tp>(); } // }}} *************** template *** 3537,3542 **** --- 3507,3515 ---- #ifdef __clang__ return __movm<_Np, _Tp>(__k._M_data) ? __v._M_data - __pm_one : __v._M_data; #else // __clang__ + using _TV = __vector_type_t<_Tp, _Np>; + constexpr size_t __bytes = sizeof(__v) < 16 ? 16 : sizeof(__v); + constexpr size_t __width = __bytes / sizeof(_Tp); if constexpr (is_integral_v<_Tp>) { constexpr bool __lp64 = sizeof(long) == sizeof(long long); *************** template *** 3546,3556 **** std::conditional_t<__lp64, long long, int>, std::conditional_t< std::is_same_v<_Ip, signed char>, char, _Ip>>; ! const auto __value = __vector_bitcast<_Up>(__v._M_data); #define _GLIBCXX_SIMD_MASK_SUB(_Sizeof, _Width, _Instr) \ ! if constexpr (sizeof(_Tp) == _Sizeof && sizeof(__v) == _Width) \ ! return __vector_bitcast<_Tp>(__builtin_ia32_##_Instr##_mask(__value, \ ! __vector_broadcast<_Np>(_Up(__pm_one)), __value, __k._M_data)) _GLIBCXX_SIMD_MASK_SUB(1, 64, psubb512); _GLIBCXX_SIMD_MASK_SUB(1, 32, psubb256); _GLIBCXX_SIMD_MASK_SUB(1, 16, psubb128); --- 3519,3529 ---- std::conditional_t<__lp64, long long, int>, std::conditional_t< std::is_same_v<_Ip, signed char>, char, _Ip>>; ! const auto __value = __intrin_bitcast<__vector_type_t<_Up, __width>>(__v._M_data); #define _GLIBCXX_SIMD_MASK_SUB(_Sizeof, _Width, _Instr) \ ! if constexpr (sizeof(_Tp) == _Sizeof && sizeof(__value) == _Width) \ ! return __intrin_bitcast<_TV>(__builtin_ia32_##_Instr##_mask(__value, \ ! __vector_broadcast<__width>(_Up(__pm_one)), __value, __k._M_data)) _GLIBCXX_SIMD_MASK_SUB(1, 64, psubb512); _GLIBCXX_SIMD_MASK_SUB(1, 32, psubb256); _GLIBCXX_SIMD_MASK_SUB(1, 16, psubb128); *************** template *** 3567,3583 **** } else { ! #define _GLIBCXX_SIMD_MASK_SUB(_Sizeof, _Width, _Instr) \ ! if constexpr (sizeof(_Tp) == _Sizeof && sizeof(__v) == _Width) \ return __builtin_ia32_##_Instr##_mask( \ ! __v._M_data, __vector_broadcast<_Np>(_Tp(__pm_one)), __v._M_data, \ __k._M_data, _MM_FROUND_CUR_DIRECTION) ! _GLIBCXX_SIMD_MASK_SUB(4, 64, subps512); _GLIBCXX_SIMD_MASK_SUB(4, 32, subps256); _GLIBCXX_SIMD_MASK_SUB(4, 16, subps128); ! _GLIBCXX_SIMD_MASK_SUB(8, 64, subpd512); _GLIBCXX_SIMD_MASK_SUB(8, 32, subpd256); _GLIBCXX_SIMD_MASK_SUB(8, 16, subpd128); #undef _GLIBCXX_SIMD_MASK_SUB } #endif // __clang__ --- 3540,3563 ---- } else { ! const auto __value = __intrin_bitcast<__vector_type_t<_Tp, __width>>(__v._M_data); ! #define _GLIBCXX_SIMD_MASK_SUB_512(_Sizeof, _Width, _Instr) \ ! if constexpr (sizeof(_Tp) == _Sizeof && sizeof(__value) == _Width) \ return __builtin_ia32_##_Instr##_mask( \ ! __value, __vector_broadcast<__width>(_Tp(__pm_one)), __value, \ __k._M_data, _MM_FROUND_CUR_DIRECTION) ! #define _GLIBCXX_SIMD_MASK_SUB(_Sizeof, _Width, _Instr) \ ! if constexpr (sizeof(_Tp) == _Sizeof && sizeof(__value) == _Width) \ ! return __intrin_bitcast<_TV>(__builtin_ia32_##_Instr##_mask( \ ! __value, __vector_broadcast<__width>(_Tp(__pm_one)), __value, \ ! __k._M_data)) ! _GLIBCXX_SIMD_MASK_SUB_512(4, 64, subps512); _GLIBCXX_SIMD_MASK_SUB(4, 32, subps256); _GLIBCXX_SIMD_MASK_SUB(4, 16, subps128); ! _GLIBCXX_SIMD_MASK_SUB_512(8, 64, subpd512); _GLIBCXX_SIMD_MASK_SUB(8, 32, subpd256); _GLIBCXX_SIMD_MASK_SUB(8, 16, subpd128); + #undef _GLIBCXX_SIMD_MASK_SUB_512 #undef _GLIBCXX_SIMD_MASK_SUB } #endif // __clang__ *************** template *** 5311,5317 **** _S_find_last_set(simd_mask<_Tp, _Abi> __k) { if constexpr (__is_avx512_abi<_Abi>()) ! return std::__bit_width(__k._M_data._M_data) - 1; else return _Base::_S_find_last_set(__k); } --- 5291,5297 ---- _S_find_last_set(simd_mask<_Tp, _Abi> __k) { if constexpr (__is_avx512_abi<_Abi>()) ! return std::__bit_width(_Abi::_S_masked(__k._M_data)._M_data) - 1; else return _Base::_S_find_last_set(__k); } diff -Nrcpad gcc-11.4.0/libstdc++-v3/include/std/any gcc-11.5.0/libstdc++-v3/include/std/any *** gcc-11.4.0/libstdc++-v3/include/std/any Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/include/std/any Fri Jul 19 05:52:47 2024 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 184,191 **** /// Construct with a copy of @p __value as the contained object. template , typename _Mgr = _Manager<_VTp>, ! typename = _Require<__not_<__is_in_place_type<_VTp>>, ! is_copy_constructible<_VTp>>> any(_Tp&& __value) : _M_manager(&_Mgr::_S_manage) { --- 184,191 ---- /// Construct with a copy of @p __value as the contained object. template , typename _Mgr = _Manager<_VTp>, ! enable_if_t ! && !__is_in_place_type_v<_VTp>, bool> = true> any(_Tp&& __value) : _M_manager(&_Mgr::_S_manage) { diff -Nrcpad gcc-11.4.0/libstdc++-v3/include/std/array gcc-11.5.0/libstdc++-v3/include/std/array *** gcc-11.4.0/libstdc++-v3/include/std/array Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/include/std/array Fri Jul 19 05:52:47 2024 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 409,415 **** static_assert(!is_array_v<_Tp>); static_assert(is_constructible_v<_Tp, _Tp&>); if constexpr (is_constructible_v<_Tp, _Tp&>) ! return __to_array(__a, make_index_sequence<_Nm>{}); __builtin_unreachable(); // FIXME: see PR c++/91388 } --- 409,415 ---- static_assert(!is_array_v<_Tp>); static_assert(is_constructible_v<_Tp, _Tp&>); if constexpr (is_constructible_v<_Tp, _Tp&>) ! return std::__to_array(__a, make_index_sequence<_Nm>{}); __builtin_unreachable(); // FIXME: see PR c++/91388 } *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 421,427 **** static_assert(!is_array_v<_Tp>); static_assert(is_move_constructible_v<_Tp>); if constexpr (is_move_constructible_v<_Tp>) ! return __to_array<1>(__a, make_index_sequence<_Nm>{}); __builtin_unreachable(); // FIXME: see PR c++/91388 } #endif // C++20 --- 421,427 ---- static_assert(!is_array_v<_Tp>); static_assert(is_move_constructible_v<_Tp>); if constexpr (is_move_constructible_v<_Tp>) ! return std::__to_array<1>(__a, make_index_sequence<_Nm>{}); __builtin_unreachable(); // FIXME: see PR c++/91388 } #endif // C++20 diff -Nrcpad gcc-11.4.0/libstdc++-v3/include/std/charconv gcc-11.5.0/libstdc++-v3/include/std/charconv *** gcc-11.4.0/libstdc++-v3/include/std/charconv Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/include/std/charconv Fri Jul 19 05:52:47 2024 *************** namespace __detail *** 235,241 **** static_assert(is_unsigned<_Tp>::value, "implementation bug"); to_chars_result __res; ! unsigned __len; if _GLIBCXX17_CONSTEXPR (__gnu_cxx::__int_traits<_Tp>::__digits <= 16) { --- 235,241 ---- static_assert(is_unsigned<_Tp>::value, "implementation bug"); to_chars_result __res; ! unsigned __len = 0; if _GLIBCXX17_CONSTEXPR (__gnu_cxx::__int_traits<_Tp>::__digits <= 16) { diff -Nrcpad gcc-11.4.0/libstdc++-v3/include/std/optional gcc-11.5.0/libstdc++-v3/include/std/optional *** gcc-11.4.0/libstdc++-v3/include/std/optional Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/include/std/optional Fri Jul 19 05:52:47 2024 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 1248,1254 **** template requires (!__is_optional_v<_Up>) ! && three_way_comparable_with<_Tp, _Up> constexpr compare_three_way_result_t<_Tp, _Up> operator<=>(const optional<_Tp>& __x, const _Up& __v) { return bool(__x) ? *__x <=> __v : strong_ordering::less; } --- 1248,1254 ---- template requires (!__is_optional_v<_Up>) ! && three_way_comparable_with<_Up, _Tp> constexpr compare_three_way_result_t<_Tp, _Up> operator<=>(const optional<_Tp>& __x, const _Up& __v) { return bool(__x) ? *__x <=> __v : strong_ordering::less; } diff -Nrcpad gcc-11.4.0/libstdc++-v3/include/std/string_view gcc-11.5.0/libstdc++-v3/include/std/string_view *** gcc-11.4.0/libstdc++-v3/include/std/string_view Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/include/std/string_view Fri Jul 19 05:52:47 2024 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 275,281 **** constexpr void remove_suffix(size_type __n) noexcept ! { this->_M_len -= __n; } constexpr void swap(basic_string_view& __sv) noexcept --- 275,284 ---- constexpr void remove_suffix(size_type __n) noexcept ! { ! __glibcxx_assert(this->_M_len >= __n); ! this->_M_len -= __n; ! } constexpr void swap(basic_string_view& __sv) noexcept diff -Nrcpad gcc-11.4.0/libstdc++-v3/include/std/tuple gcc-11.5.0/libstdc++-v3/include/std/tuple *** gcc-11.4.0/libstdc++-v3/include/std/tuple Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/include/std/tuple Fri Jul 19 05:52:47 2024 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 801,806 **** --- 801,813 ---- tuple(allocator_arg_t __tag, const _Alloc& __a) : _Inherited(__tag, __a) { } + template::value> = false> + _GLIBCXX20_CONSTEXPR + explicit + tuple(allocator_arg_t __tag, const _Alloc& __a) + : _Inherited(__tag, __a) { } + template= 1), _ImplicitCtor<_NotEmpty, const _Elements&...> = true> _GLIBCXX20_CONSTEXPR *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 1155,1160 **** --- 1162,1174 ---- tuple(allocator_arg_t __tag, const _Alloc& __a) : _Inherited(__tag, __a) { } + template::value, _T1, _T2> = false> + _GLIBCXX20_CONSTEXPR + explicit + tuple(allocator_arg_t __tag, const _Alloc& __a) + : _Inherited(__tag, __a) { } + template = true> _GLIBCXX20_CONSTEXPR diff -Nrcpad gcc-11.4.0/libstdc++-v3/include/std/utility gcc-11.5.0/libstdc++-v3/include/std/utility *** gcc-11.4.0/libstdc++-v3/include/std/utility Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/include/std/utility Fri Jul 19 05:52:47 2024 *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 331,337 **** #if __has_builtin(__make_integer_seq) = __make_integer_seq; #else ! = integer_sequence<_Tp, __integer_pack(_Num)...>; #endif /// Alias template index_sequence --- 331,337 ---- #if __has_builtin(__make_integer_seq) = __make_integer_seq; #else ! = integer_sequence<_Tp, __integer_pack(_Tp(_Num))...>; #endif /// Alias template index_sequence *************** _GLIBCXX_BEGIN_NAMESPACE_VERSION *** 443,464 **** cmp_greater_equal(_Tp __t, _Up __u) noexcept { return !std::cmp_less(__t, __u); } ! template constexpr bool in_range(_Tp __t) noexcept { ! static_assert(__is_standard_integer<_Up>::value); static_assert(__is_standard_integer<_Tp>::value); using __gnu_cxx::__int_traits; ! if constexpr (is_signed_v<_Tp> == is_signed_v<_Up>) ! return __int_traits<_Up>::__min <= __t ! && __t <= __int_traits<_Up>::__max; else if constexpr (is_signed_v<_Tp>) return __t >= 0 ! && make_unsigned_t<_Tp>(__t) <= __int_traits<_Up>::__max; else ! return __t <= make_unsigned_t<_Up>(__int_traits<_Up>::__max); } #if __cplusplus > 202002L --- 443,464 ---- cmp_greater_equal(_Tp __t, _Up __u) noexcept { return !std::cmp_less(__t, __u); } ! template constexpr bool in_range(_Tp __t) noexcept { ! static_assert(__is_standard_integer<_Res>::value); static_assert(__is_standard_integer<_Tp>::value); using __gnu_cxx::__int_traits; ! if constexpr (is_signed_v<_Tp> == is_signed_v<_Res>) ! return __int_traits<_Res>::__min <= __t ! && __t <= __int_traits<_Res>::__max; else if constexpr (is_signed_v<_Tp>) return __t >= 0 ! && make_unsigned_t<_Tp>(__t) <= __int_traits<_Res>::__max; else ! return __t <= make_unsigned_t<_Res>(__int_traits<_Res>::__max); } #if __cplusplus > 202002L diff -Nrcpad gcc-11.4.0/libstdc++-v3/libsupc++/Makefile.am gcc-11.5.0/libstdc++-v3/libsupc++/Makefile.am *** gcc-11.4.0/libstdc++-v3/libsupc++/Makefile.am Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/libsupc++/Makefile.am Fri Jul 19 05:52:47 2024 *************** atomicity_file = ${glibcxx_srcdir}/$(ATO *** 132,137 **** --- 132,145 ---- atomicity.cc: ${atomicity_file} $(LN_S) ${atomicity_file} ./atomicity.cc || true + if OS_IS_DARWIN + # See PR 112397 + new_opvnt.lo: new_opvnt.cc + $(LTCXXCOMPILE) -fno-reorder-blocks-and-partition -I. -c $< + new_opvnt.o: new_opvnt.cc + $(CXXCOMPILE) -fno-reorder-blocks-and-partition -I. -c $< + endif + # AM_CXXFLAGS needs to be in each subdirectory so that it can be # modified in a per-library or per-sub-library way. Need to manually # set this option because CONFIG_CXXFLAGS has to be after diff -Nrcpad gcc-11.4.0/libstdc++-v3/libsupc++/Makefile.in gcc-11.5.0/libstdc++-v3/libsupc++/Makefile.in *** gcc-11.4.0/libstdc++-v3/libsupc++/Makefile.in Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/libsupc++/Makefile.in Fri Jul 19 05:52:47 2024 *************** cp-demangle.o: cp-demangle.c *** 965,970 **** --- 965,976 ---- atomicity.cc: ${atomicity_file} $(LN_S) ${atomicity_file} ./atomicity.cc || true + # See PR 112397 + @OS_IS_DARWIN_TRUE@new_opvnt.lo: new_opvnt.cc + @OS_IS_DARWIN_TRUE@ $(LTCXXCOMPILE) -fno-reorder-blocks-and-partition -I. -c $< + @OS_IS_DARWIN_TRUE@new_opvnt.o: new_opvnt.cc + @OS_IS_DARWIN_TRUE@ $(CXXCOMPILE) -fno-reorder-blocks-and-partition -I. -c $< + install-stdHEADERS: $(std_HEADERS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(stddir) diff -Nrcpad gcc-11.4.0/libstdc++-v3/python/libstdcxx/v6/printers.py gcc-11.5.0/libstdc++-v3/python/libstdcxx/v6/printers.py *** gcc-11.4.0/libstdc++-v3/python/libstdcxx/v6/printers.py Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/python/libstdcxx/v6/printers.py Fri Jul 19 05:52:47 2024 *************** def is_member_of_namespace(typ, *namespa *** 157,163 **** Test whether a type is a member of one of the specified namespaces. The type can be specified as a string or a gdb.Type object. """ ! if type(typ) is gdb.Type: typ = str(typ) typ = strip_versioned_namespace(typ) for namespace in namespaces: --- 157,163 ---- Test whether a type is a member of one of the specified namespaces. The type can be specified as a string or a gdb.Type object. """ ! if isinstance(typ, gdb.Type): typ = str(typ) typ = strip_versioned_namespace(typ) for namespace in namespaces: *************** def is_member_of_namespace(typ, *namespa *** 168,177 **** def is_specialization_of(x, template_name): "Test if a type is a given template instantiation." global _versioned_namespace ! if type(x) is gdb.Type: x = x.tag if _versioned_namespace: ! return re.match('^std::(%s)?%s<.*>$' % (_versioned_namespace, template_name), x) is not None return re.match('^std::%s<.*>$' % template_name, x) is not None def strip_versioned_namespace(typename): --- 168,177 ---- def is_specialization_of(x, template_name): "Test if a type is a given template instantiation." global _versioned_namespace ! if isinstance(x, gdb.Type): x = x.tag if _versioned_namespace: ! template_name = '(%s)?%s' % (_versioned_namespace, template_name) return re.match('^std::%s<.*>$' % template_name, x) is not None def strip_versioned_namespace(typename): *************** def strip_inline_namespaces(type_str): *** 186,194 **** type_str = type_str.replace('std::__cxx11::', 'std::') expt_ns = 'std::experimental::' for lfts_ns in ('fundamentals_v1', 'fundamentals_v2'): ! type_str = type_str.replace(expt_ns+lfts_ns+'::', expt_ns) fs_ns = expt_ns + 'filesystem::' ! type_str = type_str.replace(fs_ns+'v1::', fs_ns) return type_str def get_template_arg_list(type_obj): --- 186,194 ---- type_str = type_str.replace('std::__cxx11::', 'std::') expt_ns = 'std::experimental::' for lfts_ns in ('fundamentals_v1', 'fundamentals_v2'): ! type_str = type_str.replace(expt_ns + lfts_ns + '::', expt_ns) fs_ns = expt_ns + 'filesystem::' ! type_str = type_str.replace(fs_ns + 'v1::', fs_ns) return type_str def get_template_arg_list(type_obj): *************** class UniquePointerPrinter: *** 298,305 **** def children (self): return SmartPtrIterator(unique_ptr_get(self.val)) ! def to_string (self): ! return ('std::unique_ptr<%s>' % (str(self.val.type.template_argument(0)))) def get_value_from_aligned_membuf(buf, valtype): """Returns the value held in a __gnu_cxx::__aligned_membuf.""" --- 298,306 ---- def children (self): return SmartPtrIterator(unique_ptr_get(self.val)) ! def to_string(self): ! t = self.val.type.template_argument(0) ! return 'std::unique_ptr<{}>'.format(str(t)) def get_value_from_aligned_membuf(buf, valtype): """Returns the value held in a __gnu_cxx::__aligned_membuf.""" *************** class StdBitIteratorPrinter: *** 519,525 **** def to_string(self): if not self.val['_M_p']: return 'non-dereferenceable iterator for std::vector' ! return bool(self.val['_M_p'].dereference() & (1 << self.val['_M_offset'])) class StdBitReferencePrinter: "Print std::vector::reference" --- 520,527 ---- def to_string(self): if not self.val['_M_p']: return 'non-dereferenceable iterator for std::vector' ! return bool(self.val['_M_p'].dereference() ! & (1 << self.val['_M_offset'])) class StdBitReferencePrinter: "Print std::vector::reference" *************** class SingleObjContainerPrinter(object): *** 1151,1160 **** return self.visualizer.children () return self._contained (self.contained_value) ! def display_hint (self): ! # if contained value is a map we want to display in the same way ! if hasattr (self.visualizer, 'children') and hasattr (self.visualizer, 'display_hint'): ! return self.visualizer.display_hint () return self.hint def function_pointer_to_name(f): --- 1153,1163 ---- return self.visualizer.children () return self._contained (self.contained_value) ! def display_hint(self): ! if (hasattr(self.visualizer, 'children') ! and hasattr(self.visualizer, 'display_hint')): ! # If contained value is a map we want to display in the same way. ! return self.visualizer.display_hint() return self.hint def function_pointer_to_name(f): *************** class StdExpAnyPrinter(SingleObjContaine *** 1185,1191 **** def __init__ (self, typename, val): self.typename = strip_versioned_namespace(typename) ! self.typename = re.sub('^std::experimental::fundamentals_v\d::', 'std::experimental::', self.typename, 1) self.val = val self.contained_type = None contained_value = None --- 1188,1195 ---- def __init__ (self, typename, val): self.typename = strip_versioned_namespace(typename) ! self.typename = re.sub(r'^std::experimental::fundamentals_v\d::', ! 'std::experimental::', self.typename, 1) self.val = val self.contained_type = None contained_value = None *************** class StdExpAnyPrinter(SingleObjContaine *** 1194,1201 **** if mgr != 0: func = function_pointer_to_name(mgr) if not func: ! raise ValueError("Invalid function pointer in %s" % (self.typename)) ! rx = r"""({0}::_Manager_\w+<.*>)::_S_manage\((enum )?{0}::_Op, (const {0}|{0} const) ?\*, (union )?{0}::_Arg ?\*\)""".format(typename) m = re.match(rx, func) if not m: raise ValueError("Unknown manager function in %s" % self.typename) --- 1198,1215 ---- if mgr != 0: func = function_pointer_to_name(mgr) if not func: ! raise ValueError( ! "Invalid function pointer in %s" % (self.typename)) ! # We want to use this regular expression: ! # T::_Manager_xxx<.*>::_S_manage\(T::_Op, const T\*, T::_Arg\*\) ! # where T is std::any or std::experimental::any. ! # But we need to account for variances in demangled names ! # between GDB versions, e.g. 'enum T::_Op' instead of 'T::_Op'. ! rx = ( ! r"({0}::_Manager_\w+<.*>)::_S_manage\(" ! r"(enum )?{0}::_Op, (const {0}|{0} const) ?\*, " ! r"(union )?{0}::_Arg ?\*\)" ! ).format(typename) m = re.match(rx, func) if not m: raise ValueError("Unknown manager function in %s" % self.typename) *************** class StdExpAnyPrinter(SingleObjContaine *** 1203,1209 **** mgrname = m.group(1) # FIXME need to expand 'std::string' so that gdb.lookup_type works if 'std::string' in mgrname: ! mgrname = re.sub("std::string(?!\w)", str(gdb.lookup_type('std::string').strip_typedefs()), m.group(1)) mgrtype = gdb.lookup_type(mgrname) self.contained_type = mgrtype.template_argument(0) --- 1217,1223 ---- mgrname = m.group(1) # FIXME need to expand 'std::string' so that gdb.lookup_type works if 'std::string' in mgrname: ! mgrname = re.sub(r"std::string(?!\w)", str(gdb.lookup_type('std::string').strip_typedefs()), m.group(1)) mgrtype = gdb.lookup_type(mgrname) self.contained_type = mgrtype.template_argument(0) *************** class StdExpOptionalPrinter(SingleObjCon *** 1233,1239 **** def __init__ (self, typename, val): valtype = self._recognize (val.type.template_argument(0)) typename = strip_versioned_namespace(typename) ! self.typename = re.sub('^std::(experimental::|)(fundamentals_v\d::|)(.*)', r'std::\1\3<%s>' % valtype, typename, 1) payload = val['_M_payload'] if self.typename.startswith('std::experimental'): engaged = val['_M_engaged'] --- 1247,1255 ---- def __init__ (self, typename, val): valtype = self._recognize (val.type.template_argument(0)) typename = strip_versioned_namespace(typename) ! self.typename = re.sub( ! r'^std::(experimental::|)(fundamentals_v\d::|)(.*)', ! r'std::\1\3<%s>' % valtype, typename, 1) payload = val['_M_payload'] if self.typename.startswith('std::experimental'): engaged = val['_M_engaged'] *************** class StdPathPrinter: *** 1431,1437 **** # We can't access _Impl::_M_size because _Impl is incomplete # so cast to int* to access the _M_size member at offset zero, int_type = gdb.lookup_type('int') ! cmpt_type = gdb.lookup_type(pathtype+'::_Cmpt') char_type = gdb.lookup_type('char') impl = impl.cast(int_type.pointer()) size = impl.dereference() --- 1447,1453 ---- # We can't access _Impl::_M_size because _Impl is incomplete # so cast to int* to access the _M_size member at offset zero, int_type = gdb.lookup_type('int') ! cmpt_type = gdb.lookup_type(pathtype + '::_Cmpt') char_type = gdb.lookup_type('char') impl = impl.cast(int_type.pointer()) size = impl.dereference() *************** class StdPairPrinter: *** 1503,1510 **** class StdCmpCatPrinter: "Print a comparison category object" ! def __init__ (self, typename, val): ! self.typename = typename[typename.rfind(':')+1:] self.val = val['_M_value'] def to_string (self): --- 1519,1526 ---- class StdCmpCatPrinter: "Print a comparison category object" ! def __init__(self, typename, val): ! self.typename = typename[typename.rfind(':') + 1:] self.val = val['_M_value'] def to_string (self): *************** class StdErrorCodePrinter: *** 1555,1568 **** @classmethod def _category_info(cls, cat): ! "Return details of a std::error_category" name = None enum = None is_errno = False # Try these first, or we get "warning: RTTI symbol not found" when ! # using cat.dynamic_type on the local class types for Net TS categories. func, enum = cls._match_net_ts_category(cat) if func is not None: return (None, func, enum, is_errno) --- 1571,1585 ---- @classmethod def _category_info(cls, cat): ! """Return details of a std::error_category.""" name = None enum = None is_errno = False # Try these first, or we get "warning: RTTI symbol not found" when ! # using cat.dynamic_type on the local class types for Net TS ! # categories. func, enum = cls._match_net_ts_category(cat) if func is not None: return (None, func, enum, is_errno) *************** class StdSpanPrinter: *** 1649,1655 **** def __init__(self, typename, val): self.typename = strip_versioned_namespace(typename) self.val = val ! if val.type.template_argument(1) == gdb.parse_and_eval('static_cast(-1)'): self.size = val['_M_extent']['_M_extent_value'] else: self.size = val.type.template_argument(1) --- 1666,1673 ---- def __init__(self, typename, val): self.typename = strip_versioned_namespace(typename) self.val = val ! size_max = gdb.parse_and_eval('static_cast(-1)') ! if val.type.template_argument(1) == size_max: self.size = val['_M_extent']['_M_extent_value'] else: self.size = val.type.template_argument(1) *************** def add_one_template_type_printer(obj, n *** 1884,1902 **** 4: 'std::allocator >' } """ ! printer = TemplateTypePrinter('std::'+name, defargs) gdb.types.register_type_printer(obj, printer) # Add type printer for same type in debug namespace: ! printer = TemplateTypePrinter('std::__debug::'+name, defargs) gdb.types.register_type_printer(obj, printer) if _versioned_namespace: # Add second type printer for same type in versioned namespace: ns = 'std::' + _versioned_namespace # PR 86112 Cannot use dict comprehension here: ! defargs = dict((n, d.replace('std::', ns)) for (n,d) in defargs.items()) ! printer = TemplateTypePrinter(ns+name, defargs) gdb.types.register_type_printer(obj, printer) class FilteringTypePrinter(object): --- 1902,1921 ---- 4: 'std::allocator >' } """ ! printer = TemplateTypePrinter('std::' + name, defargs) gdb.types.register_type_printer(obj, printer) # Add type printer for same type in debug namespace: ! printer = TemplateTypePrinter('std::__debug::' + name, defargs) gdb.types.register_type_printer(obj, printer) if _versioned_namespace: # Add second type printer for same type in versioned namespace: ns = 'std::' + _versioned_namespace # PR 86112 Cannot use dict comprehension here: ! defargs = dict((n, d.replace('std::', ns)) ! for (n, d) in defargs.items()) ! printer = TemplateTypePrinter(ns + name, defargs) gdb.types.register_type_printer(obj, printer) class FilteringTypePrinter(object): diff -Nrcpad gcc-11.4.0/libstdc++-v3/python/libstdcxx/v6/xmethods.py gcc-11.5.0/libstdc++-v3/python/libstdcxx/v6/xmethods.py *** gcc-11.4.0/libstdc++-v3/python/libstdcxx/v6/xmethods.py Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/python/libstdcxx/v6/xmethods.py Fri Jul 19 05:52:47 2024 *************** class DequeWorkerBase(gdb.xmethod.XMetho *** 168,183 **** self._bufsize = 512 // val_type.sizeof or 1 def size(self, obj): ! first_node = obj['_M_impl']['_M_start']['_M_node'] ! last_node = obj['_M_impl']['_M_finish']['_M_node'] ! cur = obj['_M_impl']['_M_finish']['_M_cur'] ! first = obj['_M_impl']['_M_finish']['_M_first'] ! return (last_node - first_node) * self._bufsize + (cur - first) def index(self, obj, idx): ! first_node = obj['_M_impl']['_M_start']['_M_node'] ! index_node = first_node + int(idx) // self._bufsize ! return index_node[0][idx % self._bufsize] class DequeEmptyWorker(DequeWorkerBase): def get_arg_types(self): --- 168,190 ---- self._bufsize = 512 // val_type.sizeof or 1 def size(self, obj): ! start = obj['_M_impl']['_M_start'] ! finish = obj['_M_impl']['_M_finish'] ! if start['_M_cur'] == finish['_M_cur']: ! return 0 ! return (self._bufsize ! * (finish['_M_node'] - start['_M_node'] - 1) ! + (finish['_M_cur'] - finish['_M_first']) ! + (start['_M_last'] - start['_M_cur'])) def index(self, obj, idx): ! start = obj['_M_impl']['_M_start'] ! first_node_size = start['_M_last'] - start['_M_cur'] ! if idx < first_node_size: ! return start['_M_cur'][idx] ! idx = idx - first_node_size ! index_node = start['_M_node'][1 + int(idx) // self._bufsize] ! return index_node[idx % self._bufsize] class DequeEmptyWorker(DequeWorkerBase): def get_arg_types(self): diff -Nrcpad gcc-11.4.0/libstdc++-v3/src/c++11/compatibility-ldbl-alt128.cc gcc-11.5.0/libstdc++-v3/src/c++11/compatibility-ldbl-alt128.cc *** gcc-11.4.0/libstdc++-v3/src/c++11/compatibility-ldbl-alt128.cc Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/src/c++11/compatibility-ldbl-alt128.cc Fri Jul 19 05:52:47 2024 *************** _ZNKSt4hashIu9__ieee128EclEu9__ieee128 ( *** 241,244 **** --- 241,280 ---- # error "Configuration error" #endif + #if defined _GLIBCXX_USE_DUAL_ABI && defined __LONG_DOUBLE_IEEE128__ + // PR libstdc++/105417 + // The --with-long-double-abi=ibm build is missing some exports that are present in the + // --with-long-double-abi=ieee build. Those symbols never should have been exported at all, + // but now that they have been, they should be exported consistently by both ibm and ieee. + + #define STR_(X) #X + #define STR(X) STR_(X) + #define JOIN_(X,Y) X ## Y + #define JOIN(X,Y) JOIN_(X,Y) + + #define NUM_GET_TYPE(C, I) _ZNKSt17__gnu_cxx_ieee1287num_getI ## C ## St19istreambuf_iteratorI ## C ## St11char_traitsI ## C + #define FUNC_NAME(TAG, INT) EEE14_M_extract_int ## TAG ## I ## INT ## EES4_S4_S4_RSt8ios_baseRSt12_Ios_IostateRT_ + + // This defines __gnu_ieee128::num_get::_M_extract_int[abi:cxx11] as an alias for + // __gnu_ieee128::num_get::_M_extract_int (i.e. the same name without the abi-tag). + #define ALIAS(CHAR,MANGLED_CHAR,INT) extern "C" std::istreambuf_iterator \ + JOIN(NUM_GET_TYPE(MANGLED_CHAR,INT), FUNC_NAME(B5cxx11,INT)) (void) \ + __attribute__((alias (STR(NUM_GET_TYPE(MANGLED_CHAR,INT)) STR(FUNC_NAME(,INT))))) + + ALIAS(char,c,j); + ALIAS(char,c,l); + ALIAS(char,c,m); + ALIAS(char,c,t); + ALIAS(char,c,x); + ALIAS(char,c,y); + #ifdef _GLIBCXX_USE_WCHAR_T + ALIAS(wchar_t,w,j); + ALIAS(wchar_t,w,l); + ALIAS(wchar_t,w,m); + ALIAS(wchar_t,w,t); + ALIAS(wchar_t,w,x); + ALIAS(wchar_t,w,y); + #endif + #endif + #endif diff -Nrcpad gcc-11.4.0/libstdc++-v3/src/c++17/fs_dir.cc gcc-11.5.0/libstdc++-v3/src/c++17/fs_dir.cc *** gcc-11.4.0/libstdc++-v3/src/c++17/fs_dir.cc Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/src/c++17/fs_dir.cc Fri Jul 19 05:52:47 2024 *************** template class std::__shared_ptr ! dir_and_pathname() const noexcept ! { ! const fs::path& p = entry.path(); ! #if _GLIBCXX_HAVE_DIRFD && _GLIBCXX_HAVE_OPENAT ! if (!p.empty()) ! return {::dirfd(this->dirp), std::prev(p.end())->c_str()}; ! #endif ! return {this->fdcwd(), p.c_str()}; ! } ! ! // Create a new _Dir for the directory this->entry.path(). ! _Dir ! open_subdir(bool skip_permission_denied, bool nofollow, ! error_code& ec) const noexcept ! { ! auto [dirfd, pathname] = dir_and_pathname(); ! _Dir_base d(dirfd, pathname, skip_permission_denied, nofollow, ec); ! // If this->path is empty, the new _Dir should have an empty path too. ! const fs::path& p = this->path.empty() ? this->path : this->entry.path(); ! return _Dir(std::move(d), p); ! } ! ! bool ! do_unlink(bool is_directory, error_code& ec) const noexcept ! { ! #if _GLIBCXX_HAVE_UNLINKAT ! auto [dirfd, pathname] = dir_and_pathname(); ! if (::unlinkat(dirfd, pathname, is_directory ? AT_REMOVEDIR : 0) == -1) ! { ! ec.assign(errno, std::generic_category()); ! return false; ! } ! else ! { ! ec.clear(); ! return true; ! } ! #else ! return fs::remove(entry.path(), ec); ! #endif ! } ! ! // Remove the non-directory that this->entry refers to. ! bool ! unlink(error_code& ec) const noexcept ! { return do_unlink(/* is_directory*/ false, ec); } ! ! // Remove the directory that this->entry refers to. ! bool ! rmdir(error_code& ec) const noexcept ! { return do_unlink(/* is_directory*/ true, ec); } ! ! fs::path path; // Empty if only using unlinkat with file descr. directory_entry entry; }; *************** namespace *** 123,138 **** { return (obj & bits) != Bitmask::none; } } fs::directory_iterator:: directory_iterator(const path& p, directory_options options, error_code* ecptr) { const bool skip_permission_denied = is_set(options, directory_options::skip_permission_denied); error_code ec; ! _Dir dir(p, skip_permission_denied, ec); if (dir.dirp) { --- 185,217 ---- { return (obj & bits) != Bitmask::none; } + + // Non-standard directory option flags, currently only for internal use: + // + // Do not allow directory iterator to open a symlink. + // This might seem redundant given directory_options::follow_directory_symlink + // but that is only checked for recursing into sub-directories, and we need + // something that controls the initial opendir() call in the constructor. + constexpr fs::directory_options __directory_iterator_nofollow{64}; + // Do not store full paths in std::filesystem::recursive_directory_iterator. + // When fs::remove_all uses recursive_directory_iterator::__erase and unlinkat + // is available in libc, we do not need the parent directory's path, only the + // filenames of the directory entries (and a file descriptor for the parent). + // This flag avoids allocating memory for full paths that won't be needed. + constexpr fs::directory_options __directory_iterator_filename_only{128}; } fs::directory_iterator:: directory_iterator(const path& p, directory_options options, error_code* ecptr) { + // Do not report an error for permission denied errors. const bool skip_permission_denied = is_set(options, directory_options::skip_permission_denied); + // Do not allow opening a symlink. + const bool nofollow = is_set(options, __directory_iterator_nofollow); error_code ec; ! _Dir dir(p, skip_permission_denied, nofollow, /*filename only*/false, ec); if (dir.dirp) { *************** fs::directory_iterator::increment(error_ *** 180,227 **** struct fs::recursive_directory_iterator::_Dir_stack : std::stack<_Dir> { ! _Dir_stack(directory_options opts, posix::DIR* dirp, const path& p) : options(opts), pending(true) { ! this->emplace(dirp, p); } const directory_options options; bool pending; void clear() { c.clear(); } }; fs::recursive_directory_iterator:: recursive_directory_iterator(const path& p, directory_options options, error_code* ecptr) { ! if (posix::DIR* dirp = posix::opendir(p.c_str())) ! { ! if (ecptr) ! ecptr->clear(); ! auto sp = std::__make_shared<_Dir_stack>(options, dirp, p); ! if (ecptr ? sp->top().advance(*ecptr) : sp->top().advance()) ! _M_dirs.swap(sp); ! } ! else { ! const int err = errno; ! if (fs::is_permission_denied_error(err) ! && is_set(options, fs::directory_options::skip_permission_denied)) { ! if (ecptr) ! ecptr->clear(); ! return; } - - if (!ecptr) - _GLIBCXX_THROW_OR_ABORT(filesystem_error( - "recursive directory iterator cannot open directory", p, - std::error_code(err, std::generic_category()))); - - ecptr->assign(err, std::generic_category()); } } fs::recursive_directory_iterator::~recursive_directory_iterator() = default; --- 259,324 ---- struct fs::recursive_directory_iterator::_Dir_stack : std::stack<_Dir> { ! _Dir_stack(directory_options opts, _Dir&& dir) : options(opts), pending(true) { ! this->push(std::move(dir)); } + path::string_type orig; const directory_options options; bool pending; void clear() { c.clear(); } + + path current_path() const + { + path p; + if (top().path.empty()) + { + // Reconstruct path that failed from dir stack. + p = orig; + for (auto& d : this->c) + p /= d.entry.path(); + } + else + p = top().entry.path(); + return p; + } }; fs::recursive_directory_iterator:: recursive_directory_iterator(const path& p, directory_options options, error_code* ecptr) { ! // Do not report an error for permission denied errors. ! const bool skip_permission_denied ! = is_set(options, directory_options::skip_permission_denied); ! // Do not allow opening a symlink as the starting directory. ! const bool nofollow = is_set(options, __directory_iterator_nofollow); ! // Prefer to store only filenames (not full paths) in directory_entry values. ! const bool filename_only ! = is_set(options, __directory_iterator_filename_only); ! ! error_code ec; ! _Dir dir(p, skip_permission_denied, nofollow, filename_only, ec); ! ! if (dir.dirp) { ! auto sp = std::__make_shared<_Dir_stack>(options, std::move(dir)); ! if (ecptr ? sp->top().advance(skip_permission_denied, *ecptr) ! : sp->top().advance(skip_permission_denied)) { ! _M_dirs.swap(sp); ! if (filename_only) // Need to save original path for error reporting. ! _M_dirs->orig = p.native(); } } + else if (ecptr) + *ecptr = ec; + else if (ec) + _GLIBCXX_THROW_OR_ABORT(fs::filesystem_error( + "recursive directory iterator cannot open directory", p, ec)); } fs::recursive_directory_iterator::~recursive_directory_iterator() = default; *************** fs::recursive_directory_iterator::increm *** 287,300 **** if (std::exchange(_M_dirs->pending, true) && top.should_recurse(follow, ec)) { ! _Dir dir(top.entry.path(), skip_permission_denied, ec); if (ec) { _M_dirs.reset(); return *this; } if (dir.dirp) ! _M_dirs->push(std::move(dir)); } while (!_M_dirs->top().advance(skip_permission_denied, ec) && !ec) --- 384,397 ---- if (std::exchange(_M_dirs->pending, true) && top.should_recurse(follow, ec)) { ! _Dir dir = top.open_subdir(skip_permission_denied, !follow, ec); if (ec) { _M_dirs.reset(); return *this; } if (dir.dirp) ! _M_dirs->push(std::move(dir)); } while (!_M_dirs->top().advance(skip_permission_denied, ec) && !ec) *************** fs::recursive_directory_iterator::disabl *** 357,359 **** --- 454,561 ---- { _M_dirs->pending = false; } + + // Used to implement filesystem::remove_all. + fs::recursive_directory_iterator& + fs::recursive_directory_iterator::__erase(error_code* ecptr) + { + error_code ec; + if (!_M_dirs) + { + ec = std::make_error_code(errc::invalid_argument); + return *this; + } + + // We never want to skip permission denied when removing files. + const bool skip_permission_denied = false; + // We never want to follow directory symlinks when removing files. + const bool nofollow = true; + + // Loop until we find something we can remove. + while (!ec) + { + auto& top = _M_dirs->top(); + + #if _GLIBCXX_FILESYSTEM_IS_WINDOWS + // _Dir::unlink uses fs::remove which uses std::system_category() for + // Windows errror codes, so we can't just check for EPERM and EISDIR. + // Use directory_entry::refresh() here to check if we have a directory. + // This can be a TOCTTOU race, but we don't have openat or unlinkat to + // solve that on Windows, and generally don't support symlinks anyway. + if (top.entry._M_type == file_type::none) + top.entry.refresh(); + #endif + + if (top.entry._M_type == file_type::directory) + { + _Dir dir = top.open_subdir(skip_permission_denied, nofollow, ec); + if (!ec) + { + __glibcxx_assert(dir.dirp != nullptr); + if (dir.advance(skip_permission_denied, ec)) + { + // Non-empty directory, recurse into it. + _M_dirs->push(std::move(dir)); + continue; + } + if (!ec) + { + // Directory is empty so we can remove it. + if (top.rmdir(ec)) + break; // Success + } + } + } + else if (top.unlink(ec)) + break; // Success + #if ! _GLIBCXX_FILESYSTEM_IS_WINDOWS + else if (top.entry._M_type == file_type::none) + { + // We did not have a cached type, so it's possible that top.entry + // is actually a directory, and that's why the unlink above failed. + #ifdef EPERM + // POSIX.1-2017 says unlink on a directory returns EPERM, + // but LSB allows EISDIR too. Some targets don't even define EPERM. + if (ec.value() == EPERM || ec.value() == EISDIR) + #else + if (ec.value() == EISDIR) + #endif + { + // Retry, treating it as a directory. + top.entry._M_type = file_type::directory; + ec.clear(); + continue; + } + } + #endif + } + + if (!ec) + { + // We successfully removed the current entry, so advance to the next one. + if (_M_dirs->top().advance(skip_permission_denied, ec)) + return *this; + else if (!ec) + { + // Reached the end of the current directory. + _M_dirs->pop(); + if (_M_dirs->empty()) + _M_dirs.reset(); + return *this; + } + } + + // Reset _M_dirs to empty. + auto dirs = std::move(_M_dirs); + + // Need to report an error + if (ecptr) + *ecptr = ec; + else + _GLIBCXX_THROW_OR_ABORT(fs::filesystem_error("cannot remove all", + dirs->orig, + dirs->current_path(), + ec)); + + return *this; + } diff -Nrcpad gcc-11.4.0/libstdc++-v3/src/c++17/fs_ops.cc gcc-11.5.0/libstdc++-v3/src/c++17/fs_ops.cc *** gcc-11.4.0/libstdc++-v3/src/c++17/fs_ops.cc Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/src/c++17/fs_ops.cc Fri Jul 19 05:52:47 2024 *************** *** 61,70 **** #define _GLIBCXX_END_NAMESPACE_FILESYSTEM } #include "../filesystem/ops-common.h" - #ifdef __AVR__ - # define not_supported function_not_supported - #endif - #pragma GCC diagnostic ignored "-Wunused-parameter" namespace fs = std::filesystem; --- 61,66 ---- *************** fs::absolute(const path& p, error_code& *** 121,127 **** while (len > buf.size()); if (len == 0) ! ec.assign((int)GetLastError(), std::system_category()); else { buf.resize(len); --- 117,123 ---- while (len > buf.size()); if (len == 0) ! ec = __last_system_error(); else { buf.resize(len); *************** fs::copy(const path& from, const path& t *** 361,367 **** } if (is_other(f) || is_other(t)) { ! ec = std::make_error_code(std::errc::not_supported); return; } if (is_directory(f) && is_regular_file(t)) --- 357,363 ---- } if (is_other(f) || is_other(t)) { ! ec = std::make_error_code(std::errc::invalid_argument); return; } if (is_directory(f) && is_regular_file(t)) *************** fs::copy(const path& from, const path& t *** 424,430 **** else ec.clear(); #else ! ec = std::make_error_code(std::errc::not_supported); #endif } --- 420,426 ---- else ec.clear(); #else ! ec = std::make_error_code(std::errc::function_not_supported); #endif } *************** fs::copy_file(const path& from, const pa *** 447,453 **** return do_copy_file(from.c_str(), to.c_str(), copy_file_options(options), nullptr, nullptr, ec); #else ! ec = std::make_error_code(std::errc::not_supported); return false; #endif } --- 443,449 ---- return do_copy_file(from.c_str(), to.c_str(), copy_file_options(options), nullptr, nullptr, ec); #else ! ec = std::make_error_code(std::errc::function_not_supported); return false; #endif } *************** namespace *** 595,601 **** created = true; } #else ! ec = std::make_error_code(std::errc::not_supported); #endif return created; } --- 591,597 ---- created = true; } #else ! ec = std::make_error_code(std::errc::function_not_supported); #endif return created; } *************** fs::create_directory(const path& p, cons *** 643,649 **** } return create_dir(p, static_cast(st.st_mode), ec); #else ! ec = std::make_error_code(std::errc::not_supported); return false; #endif } --- 639,645 ---- } return create_dir(p, static_cast(st.st_mode), ec); #else ! ec = std::make_error_code(std::errc::function_not_supported); return false; #endif } *************** fs::create_directory_symlink(const path& *** 664,670 **** error_code& ec) noexcept { #ifdef _GLIBCXX_FILESYSTEM_IS_WINDOWS ! ec = std::make_error_code(std::errc::not_supported); #else create_symlink(to, new_symlink, ec); #endif --- 660,666 ---- error_code& ec) noexcept { #ifdef _GLIBCXX_FILESYSTEM_IS_WINDOWS ! ec = std::make_error_code(std::errc::function_not_supported); #else create_symlink(to, new_symlink, ec); #endif *************** fs::create_hard_link(const path& to, con *** 694,702 **** if (CreateHardLinkW(new_hard_link.c_str(), to.c_str(), NULL)) ec.clear(); else ! ec.assign((int)GetLastError(), system_category()); #else ! ec = std::make_error_code(std::errc::not_supported); #endif } --- 690,698 ---- if (CreateHardLinkW(new_hard_link.c_str(), to.c_str(), NULL)) ec.clear(); else ! ec = __last_system_error(); #else ! ec = std::make_error_code(std::errc::function_not_supported); #endif } *************** fs::create_symlink(const path& to, const *** 720,726 **** else ec.clear(); #else ! ec = std::make_error_code(std::errc::not_supported); #endif } --- 716,722 ---- else ec.clear(); #else ! ec = std::make_error_code(std::errc::function_not_supported); #endif } *************** fs::current_path(error_code& ec) *** 788,794 **** } #endif // __GLIBC__ #else // _GLIBCXX_HAVE_UNISTD_H ! ec = std::make_error_code(std::errc::not_supported); #endif return p; } --- 784,790 ---- } #endif // __GLIBC__ #else // _GLIBCXX_HAVE_UNISTD_H ! ec = std::make_error_code(std::errc::function_not_supported); #endif return p; } *************** fs::current_path(const path& p, error_co *** 811,817 **** else ec.clear(); #else ! ec = std::make_error_code(std::errc::not_supported); #endif } --- 807,813 ---- else ec.clear(); #else ! ec = std::make_error_code(std::errc::function_not_supported); #endif } *************** fs::equivalent(const path& p1, const pat *** 851,857 **** { if (is_other(s1) && is_other(s2)) { ! ec = std::make_error_code(std::errc::not_supported); return false; } ec.clear(); --- 847,853 ---- { if (is_other(s1) && is_other(s2)) { ! ec = std::__unsupported(); return false; } ec.clear(); *************** fs::equivalent(const path& p1, const pat *** 886,897 **** if (!h1 || !h2) { if (!h1 && !h2) ! ec.assign((int)GetLastError(), system_category()); return false; } if (!h1.get_info() || !h2.get_info()) { ! ec.assign((int)GetLastError(), system_category()); return false; } return h1.info.dwVolumeSerialNumber == h2.info.dwVolumeSerialNumber --- 882,893 ---- if (!h1 || !h2) { if (!h1 && !h2) ! ec = __last_system_error(); return false; } if (!h1.get_info() || !h2.get_info()) { ! ec = __last_system_error(); return false; } return h1.info.dwVolumeSerialNumber == h2.info.dwVolumeSerialNumber *************** fs::equivalent(const path& p1, const pat *** 901,907 **** return st1.st_dev == st2.st_dev && st1.st_ino == st2.st_ino; #endif } ! else if (!exists(s1) && !exists(s2)) ec = std::make_error_code(std::errc::no_such_file_or_directory); else if (err) ec.assign(err, std::generic_category()); --- 897,903 ---- return st1.st_dev == st2.st_dev && st1.st_ino == st2.st_ino; #endif } ! else if (!exists(s1) || !exists(s2)) ec = std::make_error_code(std::errc::no_such_file_or_directory); else if (err) ec.assign(err, std::generic_category()); *************** fs::equivalent(const path& p1, const pat *** 909,915 **** ec.clear(); return false; #else ! ec = std::make_error_code(std::errc::not_supported); #endif return false; } --- 905,911 ---- ec.clear(); return false; #else ! ec = std::make_error_code(std::errc::function_not_supported); #endif return false; } *************** namespace *** 940,946 **** ec.clear(); return f(st); #else ! ec = std::make_error_code(std::errc::not_supported); return deflt; #endif } --- 936,942 ---- ec.clear(); return f(st); #else ! ec = std::make_error_code(std::errc::function_not_supported); return deflt; #endif } *************** fs::file_size(const path& p, error_code& *** 965,974 **** if (s.type == file_type::directory) ec = std::make_error_code(std::errc::is_a_directory); else ! ec = std::make_error_code(std::errc::not_supported); } #else ! ec = std::make_error_code(std::errc::not_supported); #endif return -1; } --- 961,970 ---- if (s.type == file_type::directory) ec = std::make_error_code(std::errc::is_a_directory); else ! ec = std::__unsupported(); } #else ! ec = std::make_error_code(std::errc::function_not_supported); #endif return -1; } *************** fs::hard_link_count(const path& p, error *** 990,996 **** return do_stat(p, ec, std::mem_fn(&stat_type::st_nlink), static_cast(-1)); #else ! ec = std::make_error_code(std::errc::not_supported); return static_cast(-1); #endif } --- 986,992 ---- return do_stat(p, ec, std::mem_fn(&stat_type::st_nlink), static_cast(-1)); #else ! ec = std::make_error_code(std::errc::function_not_supported); return static_cast(-1); #endif } *************** fs::last_write_time(const path& p, error *** 1038,1044 **** }, file_time_type::min()); #else ! ec = std::make_error_code(std::errc::not_supported); return file_time_type::min(); #endif } --- 1034,1040 ---- }, file_time_type::min()); #else ! ec = std::make_error_code(std::errc::function_not_supported); return file_time_type::min(); #endif } *************** fs::last_write_time(const path& p, *** 1084,1090 **** else ec.clear(); #else ! ec = std::make_error_code(std::errc::not_supported); #endif } --- 1080,1086 ---- else ec.clear(); #else ! ec = std::make_error_code(std::errc::function_not_supported); #endif } *************** fs::permissions(const path& p, perms prm *** 1133,1139 **** err = errno; #else if (nofollow && is_symlink(st)) ! ec = std::make_error_code(std::errc::not_supported); else if (posix::chmod(p.c_str(), static_cast(prms))) err = errno; #endif --- 1129,1135 ---- err = errno; #else if (nofollow && is_symlink(st)) ! ec = std::__unsupported(); else if (posix::chmod(p.c_str(), static_cast(prms))) err = errno; #endif *************** fs::path fs::read_symlink(const path& p, *** 1218,1224 **** } while (true); #else ! ec = std::make_error_code(std::errc::not_supported); #endif return result; } --- 1214,1220 ---- } while (true); #else ! ec = std::make_error_code(std::errc::function_not_supported); #endif return result; } *************** fs::remove(const path& p, error_code& ec *** 1267,1273 **** return true; } else if (!ec) ! ec.assign((int)GetLastError(), system_category()); } else if (status_known(st)) ec.clear(); --- 1263,1269 ---- return true; } else if (!ec) ! ec = __last_system_error(); } else if (status_known(st)) ec.clear(); *************** fs::remove(const path& p, error_code& ec *** 1285,1389 **** return false; } ! namespace std::filesystem ! { ! namespace { ! struct ErrorReporter { ! explicit ! ErrorReporter(error_code& ec) : code(&ec) ! { } ! ! explicit ! ErrorReporter(const char* s, const path& p) ! : code(nullptr), msg(s), path1(&p) ! { } ! ! error_code* code; ! const char* msg; ! const path* path1; ! ! void ! report(const error_code& ec) const ! { ! if (code) ! *code = ec; ! else ! _GLIBCXX_THROW_OR_ABORT(filesystem_error(msg, *path1, ec)); ! } ! ! void ! report(const error_code& ec, const path& path2) const { ! if (code) ! *code = ec; ! else if (path2 != *path1) ! _GLIBCXX_THROW_OR_ABORT(filesystem_error(msg, *path1, path2, ec)); ! else ! _GLIBCXX_THROW_OR_ABORT(filesystem_error(msg, *path1, ec)); } ! }; ! ! uintmax_t ! do_remove_all(const path& p, const ErrorReporter& err) ! { ! error_code ec; ! const auto s = symlink_status(p, ec); ! if (!status_known(s)) ! { ! if (ec) ! err.report(ec, p); ! return -1; ! } ! ! ec.clear(); ! if (s.type() == file_type::not_found) ! return 0; ! ! uintmax_t count = 0; ! if (s.type() == file_type::directory) ! { ! directory_iterator d(p, ec), end; ! while (d != end) ! { ! const auto removed = fs::do_remove_all(d->path(), err); ! if (removed == numeric_limits::max()) ! return -1; ! count += removed; ! ! d.increment(ec); ! if (ec) ! { ! err.report(ec, p); ! return -1; ! } ! } ! } ! ! if (fs::remove(p, ec)) ! ++count; ! if (ec) ! { ! err.report(ec, p); ! return -1; ! } ! return count; } - } - } ! std::uintmax_t ! fs::remove_all(const path& p) ! { ! return fs::do_remove_all(p, ErrorReporter{"cannot remove all", p}); } std::uintmax_t fs::remove_all(const path& p, error_code& ec) { ! ec.clear(); ! return fs::do_remove_all(p, ErrorReporter{ec}); } void --- 1281,1364 ---- return false; } ! std::uintmax_t ! fs::remove_all(const path& p) { ! error_code ec; ! uintmax_t count = 0; ! recursive_directory_iterator dir(p, directory_options{64|128}, ec); ! switch (ec.value()) // N.B. assumes ec.category() == std::generic_category() { ! case 0: ! // Iterate over the directory removing everything. { ! const recursive_directory_iterator end; ! while (dir != end) ! { ! dir.__erase(); // throws on error ! ++count; ! } } ! // Directory is empty now, will remove it below. ! break; ! #ifndef __AVR__ ! case ENOENT: ! // Our work here is done. ! return 0; ! case ENOTDIR: ! case ELOOP: ! // Not a directory, will remove below. ! break; ! #endif ! default: ! // An error occurred. ! _GLIBCXX_THROW_OR_ABORT(filesystem_error("cannot remove all", p, ec)); } ! // Remove p itself, which is either a non-directory or is now empty. ! return count + fs::remove(p); } std::uintmax_t fs::remove_all(const path& p, error_code& ec) { ! uintmax_t count = 0; ! recursive_directory_iterator dir(p, directory_options{64|128}, ec); ! switch (ec.value()) // N.B. assumes ec.category() == std::generic_category() ! { ! case 0: ! // Iterate over the directory removing everything. ! { ! const recursive_directory_iterator end; ! while (dir != end) ! { ! dir.__erase(&ec); ! if (ec) ! return -1; ! ++count; ! } ! } ! // Directory is empty now, will remove it below. ! break; ! #ifndef __AVR__ ! case ENOENT: ! // Our work here is done. ! ec.clear(); ! return 0; ! case ENOTDIR: ! case ELOOP: ! // Not a directory, will remove below. ! break; ! #endif ! default: ! // An error occurred. ! return -1; ! } ! ! // Remove p itself, which is either a non-directory or is now empty. ! if (int last = fs::remove(p, ec); !ec) ! return count + last; ! return -1; } void *************** fs::resize_file(const path& p, uintmax_t *** 1446,1452 **** void fs::resize_file(const path& p, uintmax_t size, error_code& ec) noexcept { ! if (size > static_cast(std::numeric_limits::max())) ec.assign(EINVAL, std::generic_category()); else if (posix::truncate(p.c_str(), size)) ec.assign(errno, std::generic_category()); --- 1421,1427 ---- void fs::resize_file(const path& p, uintmax_t size, error_code& ec) noexcept { ! if (size > static_cast(std::numeric_limits::max())) ec.assign(EINVAL, std::generic_category()); else if (posix::truncate(p.c_str(), size)) ec.assign(errno, std::generic_category()); diff -Nrcpad gcc-11.4.0/libstdc++-v3/src/filesystem/dir-common.h gcc-11.5.0/libstdc++-v3/src/filesystem/dir-common.h *** gcc-11.4.0/libstdc++-v3/src/filesystem/dir-common.h Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/src/filesystem/dir-common.h Fri Jul 19 05:52:47 2024 *************** *** 34,40 **** # ifdef _GLIBCXX_HAVE_SYS_TYPES_H # include # endif ! # include #endif namespace std _GLIBCXX_VISIBILITY(default) --- 34,44 ---- # ifdef _GLIBCXX_HAVE_SYS_TYPES_H # include # endif ! # include // opendir, readdir, fdopendir, dirfd ! # ifdef _GLIBCXX_HAVE_FCNTL_H ! # include // open, openat, fcntl, AT_FDCWD, O_NOFOLLOW etc. ! # include // close, unlinkat ! # endif #endif namespace std _GLIBCXX_VISIBILITY(default) *************** struct DIR { }; *** 66,96 **** inline DIR* opendir(const char*) { return nullptr; } inline dirent* readdir(DIR*) { return nullptr; } inline int closedir(DIR*) { return -1; } #endif } // namespace __gnu_posix namespace posix = __gnu_posix; ! struct _Dir_base { ! _Dir_base(posix::DIR* dirp = nullptr) : dirp(dirp) { } // If no error occurs then dirp is non-null, ! // otherwise null (whether error ignored or not). ! _Dir_base(const posix::char_type* pathname, bool skip_permission_denied, error_code& ec) noexcept ! : dirp(posix::opendir(pathname)) { if (dirp) ec.clear(); else ! { ! const int err = errno; ! if (err == EACCES && skip_permission_denied) ! ec.clear(); ! else ! ec.assign(err, std::generic_category()); ! } } _Dir_base(_Dir_base&& d) : dirp(std::exchange(d.dirp, nullptr)) { } --- 70,109 ---- inline DIR* opendir(const char*) { return nullptr; } inline dirent* readdir(DIR*) { return nullptr; } inline int closedir(DIR*) { return -1; } + #undef _GLIBCXX_HAVE_DIRFD + #undef _GLIBCXX_HAVE_UNLINKAT #endif } // namespace __gnu_posix namespace posix = __gnu_posix; ! inline bool ! is_permission_denied_error(int e) { ! if (e == EACCES) ! return true; ! #ifdef __APPLE__ ! if (e == EPERM) // See PR 99533 ! return true; ! #endif ! return false; ! } + struct _Dir_base + { // If no error occurs then dirp is non-null, ! // otherwise null (even if a permission denied error is ignored). ! _Dir_base(int fd, const posix::char_type* pathname, ! bool skip_permission_denied, bool nofollow, error_code& ec) noexcept ! : dirp(_Dir_base::openat(fd, pathname, nofollow)) { if (dirp) ec.clear(); + else if (is_permission_denied_error(errno) && skip_permission_denied) + ec.clear(); else ! ec.assign(errno, std::generic_category()); } _Dir_base(_Dir_base&& d) : dirp(std::exchange(d.dirp, nullptr)) { } *************** struct _Dir_base *** 130,135 **** --- 143,158 ---- } } + static constexpr int + fdcwd() noexcept + { + #ifdef AT_FDCWD + return AT_FDCWD; + #else + return -1; // Use invalid fd if AT_FDCWD isn't supported. + #endif + } + static bool is_dot_or_dotdot(const char* s) noexcept { return !strcmp(s, ".") || !strcmp(s, ".."); } *************** struct _Dir_base *** 138,157 **** { return !wcscmp(s, L".") || !wcscmp(s, L".."); } #endif ! posix::DIR* dirp; ! }; ! ! inline bool ! is_permission_denied_error(int e) ! { ! if (e == EACCES) ! return true; ! #ifdef __APPLE__ ! if (e == EPERM) // See PR 99533 return true; #endif ! return false; ! } } // namespace filesystem --- 161,231 ---- { return !wcscmp(s, L".") || !wcscmp(s, L".."); } #endif ! // Set the close-on-exec flag if not already done via O_CLOEXEC. ! static bool ! set_close_on_exec([[maybe_unused]] int fd) ! { ! #if ! defined O_CLOEXEC && defined FD_CLOEXEC ! int flags = ::fcntl(fd, F_GETFD); ! if (flags == -1 || ::fcntl(fd, F_SETFD, flags | FD_CLOEXEC) == -1) ! return false; ! #endif return true; + } + + static posix::DIR* + openat(int fd, const posix::char_type* pathname, bool nofollow) + { + #if _GLIBCXX_HAVE_FDOPENDIR && defined O_RDONLY && defined O_DIRECTORY \ + && ! _GLIBCXX_FILESYSTEM_IS_WINDOWS + + // Any file descriptor we open here should be closed on exec. + #ifdef O_CLOEXEC + constexpr int close_on_exec = O_CLOEXEC; + #else + constexpr int close_on_exec = 0; + #endif + + int flags = O_RDONLY | O_DIRECTORY | close_on_exec; + + // Directory iterators are vulnerable to race conditions unless O_NOFOLLOW + // is supported, because a directory could be replaced with a symlink after + // checking is_directory(symlink_status(f)). O_NOFOLLOW avoids the race. + #ifdef O_NOFOLLOW + if (nofollow) + flags |= O_NOFOLLOW; + #else + nofollow = false; + #endif + + + #if _GLIBCXX_HAVE_OPENAT && defined AT_FDCWD + fd = ::openat(fd, pathname, flags); + #else + // If we cannot use openat, there's no benefit to using posix::open unless + // we will use O_NOFOLLOW, so just use the simpler posix::opendir. + if (!nofollow) + return posix::opendir(pathname); + + fd = ::open(pathname, flags); #endif ! ! if (fd == -1) ! return nullptr; ! if (set_close_on_exec(fd)) ! if (::DIR* dirp = ::fdopendir(fd)) ! return dirp; ! int err = errno; ! ::close(fd); ! errno = err; ! return nullptr; ! #else ! return posix::opendir(pathname); ! #endif ! } ! ! posix::DIR* dirp; ! }; } // namespace filesystem *************** get_file_type(const std::filesystem::__g *** 187,192 **** --- 261,267 ---- return file_type::none; #endif } + _GLIBCXX_END_NAMESPACE_FILESYSTEM _GLIBCXX_END_NAMESPACE_VERSION diff -Nrcpad gcc-11.4.0/libstdc++-v3/src/filesystem/dir.cc gcc-11.5.0/libstdc++-v3/src/filesystem/dir.cc *** gcc-11.4.0/libstdc++-v3/src/filesystem/dir.cc Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/src/filesystem/dir.cc Fri Jul 19 05:52:47 2024 *************** namespace posix = std::filesystem::__gnu *** 51,64 **** struct fs::_Dir : std::filesystem::_Dir_base { ! _Dir(const fs::path& p, bool skip_permission_denied, error_code& ec) ! : _Dir_base(p.c_str(), skip_permission_denied, ec) { if (!ec) path = p; } ! _Dir(posix::DIR* dirp, const path& p) : _Dir_base(dirp), path(p) { } _Dir(_Dir&&) = default; --- 51,65 ---- struct fs::_Dir : std::filesystem::_Dir_base { ! _Dir(const fs::path& p, bool skip_permission_denied, bool nofollow, ! error_code& ec) ! : _Dir_base(this->fdcwd(), p.c_str(), skip_permission_denied, nofollow, ec) { if (!ec) path = p; } ! _Dir(_Dir_base&& d, const path& p) : _Dir_base(std::move(d)), path(p) { } _Dir(_Dir&&) = default; *************** struct fs::_Dir : std::filesystem::_Dir_ *** 112,117 **** --- 113,141 ---- return false; } + // Return a file descriptor for the directory and current entry's path. + // If dirfd is available, use it and return only the filename. + // Otherwise, return AT_FDCWD and return the full path. + pair + dir_and_pathname() const noexcept + { + const fs::path& p = entry.path(); + #if _GLIBCXX_HAVE_DIRFD && _GLIBCXX_HAVE_OPENAT + return {::dirfd(this->dirp), std::prev(p.end())->c_str()}; + #endif + return {this->fdcwd(), p.c_str()}; + } + + // Create a new _Dir for the directory this->entry.path(). + _Dir + open_subdir(bool skip_permission_denied, bool nofollow, + error_code& ec) noexcept + { + auto [dirfd, pathname] = dir_and_pathname(); + _Dir_base d(dirfd, pathname, skip_permission_denied, nofollow, ec); + return _Dir(std::move(d), entry.path()); + } + fs::path path; directory_entry entry; file_type type = file_type::none; *************** namespace *** 130,140 **** fs::directory_iterator:: directory_iterator(const path& p, directory_options options, error_code* ecptr) { const bool skip_permission_denied = is_set(options, directory_options::skip_permission_denied); error_code ec; ! _Dir dir(p, skip_permission_denied, ec); if (dir.dirp) { --- 154,165 ---- fs::directory_iterator:: directory_iterator(const path& p, directory_options options, error_code* ecptr) { + // Do not report an error for permission denied errors. const bool skip_permission_denied = is_set(options, directory_options::skip_permission_denied); error_code ec; ! _Dir dir(p, skip_permission_denied, /*nofollow*/false, ec); if (dir.dirp) { *************** fs::directory_iterator::increment(error_ *** 186,191 **** --- 211,221 ---- struct fs::recursive_directory_iterator::_Dir_stack : std::stack<_Dir> { + _Dir_stack(_Dir&& dir) + { + this->push(std::move(dir)); + } + void clear() { c.clear(); } }; *************** recursive_directory_iterator(const path& *** 194,226 **** error_code* ecptr) : _M_options(options), _M_pending(true) { ! if (posix::DIR* dirp = posix::opendir(p.c_str())) ! { ! if (ecptr) ! ecptr->clear(); ! auto sp = std::make_shared<_Dir_stack>(); ! sp->push(_Dir{ dirp, p }); ! if (ecptr ? sp->top().advance(*ecptr) : sp->top().advance()) ! _M_dirs.swap(sp); ! } ! else { ! const int err = errno; ! if (std::filesystem::is_permission_denied_error(err) ! && is_set(options, fs::directory_options::skip_permission_denied)) { ! if (ecptr) ! ecptr->clear(); ! return; } - - if (!ecptr) - _GLIBCXX_THROW_OR_ABORT(filesystem_error( - "recursive directory iterator cannot open directory", p, - std::error_code(err, std::generic_category()))); - - ecptr->assign(err, std::generic_category()); } } fs::recursive_directory_iterator::~recursive_directory_iterator() = default; --- 224,250 ---- error_code* ecptr) : _M_options(options), _M_pending(true) { ! // Do not report an error for permission denied errors. ! const bool skip_permission_denied ! = is_set(options, directory_options::skip_permission_denied); ! ! error_code ec; ! _Dir dir(p, skip_permission_denied, /*nofollow*/false, ec); ! ! if (dir.dirp) { ! auto sp = std::__make_shared<_Dir_stack>(std::move(dir)); ! if (ecptr ? sp->top().advance(skip_permission_denied, *ecptr) ! : sp->top().advance(skip_permission_denied)) { ! _M_dirs.swap(sp); } } + else if (ecptr) + *ecptr = ec; + else if (ec) + _GLIBCXX_THROW_OR_ABORT(fs::filesystem_error( + "recursive directory iterator cannot open directory", p, ec)); } fs::recursive_directory_iterator::~recursive_directory_iterator() = default; *************** fs::recursive_directory_iterator::increm *** 274,280 **** if (std::exchange(_M_pending, true) && top.should_recurse(follow, ec)) { ! _Dir dir(top.entry.path(), skip_permission_denied, ec); if (ec) { _M_dirs.reset(); --- 298,304 ---- if (std::exchange(_M_pending, true) && top.should_recurse(follow, ec)) { ! _Dir dir = top.open_subdir(skip_permission_denied, !follow, ec); if (ec) { _M_dirs.reset(); diff -Nrcpad gcc-11.4.0/libstdc++-v3/src/filesystem/ops-common.h gcc-11.5.0/libstdc++-v3/src/filesystem/ops-common.h *** gcc-11.4.0/libstdc++-v3/src/filesystem/ops-common.h Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/src/filesystem/ops-common.h Fri Jul 19 05:52:47 2024 *************** *** 56,61 **** --- 56,103 ---- namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION + + // Get the last OS error (for POSIX this is just errno). + inline error_code + __last_system_error() noexcept + { + #ifdef _GLIBCXX_FILESYSTEM_IS_WINDOWS + // N.B. use error_code::default_error_condition() to convert to generic. + return {(int)::GetLastError(), std::system_category()}; + #else + return {errno, std::generic_category()}; + #endif + } + + // Get an error code indicating unsupported functionality. + // + // This should be used when a function is unable to behave as specified + // due to an incomplete or partial implementation, e.g. + // filesystem::equivalent(a, b) if is_other(a) && is_other(b) is true. + // + // Use errc::function_not_supported for functions that are entirely + // unimplemented, e.g. create_symlink on Windows. + // + // Use errc::invalid_argument for requests to perform operations outside + // the spec, e.g. trying to copy a directory using filesystem::copy_file. + inline error_code + __unsupported() noexcept + { + #if defined __AVR__ + // avr-libc defines ENOTSUP and EOPNOTSUPP but with nonsense values. + // ENOSYS is defined though, so use an error_code corresponding to that. + // This contradicts the comment above, but we don't have much choice. + return std::make_error_code(std::errc::function_not_supported); + #elif defined ENOTSUP + return std::make_error_code(std::errc::not_supported); + #elif defined EOPNOTSUPP + // This is supposed to be for socket operations + return std::make_error_code(std::errc::operation_not_supported); + #else + return std::make_error_code(std::errc::invalid_argument); + #endif + } + namespace filesystem { namespace __gnu_posix *************** namespace __gnu_posix *** 115,120 **** --- 157,163 ---- return -1; } + using off_t = _off64_t; inline int truncate(const wchar_t* path, _off64_t length) { const int fd = ::_wopen(path, _O_BINARY|_O_RDWR); *************** namespace __gnu_posix *** 151,156 **** --- 194,200 ---- using ::utime; # endif using ::rename; + using ::off_t; # ifdef _GLIBCXX_HAVE_TRUNCATE using ::truncate; # else *************** namespace __gnu_posix *** 170,188 **** # endif using char_type = char; #else // ! _GLIBCXX_FILESYSTEM_IS_WINDOWS && ! _GLIBCXX_HAVE_UNISTD_H ! #ifdef __AVR__ ! # define ENOTSUP ENOSYS ! #endif ! ! inline int open(const char*, int, ...) { errno = ENOTSUP; return -1; } ! inline int close(int) { errno = ENOTSUP; return -1; } using mode_t = int; ! inline int chmod(const char*, mode_t) { errno = ENOTSUP; return -1; } ! inline int mkdir(const char*, mode_t) { errno = ENOTSUP; return -1; } ! inline char* getcwd(char*, size_t) { errno = ENOTSUP; return nullptr; } ! inline int chdir(const char*) { errno = ENOTSUP; return -1; } ! inline int rename(const char*, const char*) { errno = ENOTSUP; return -1; } ! inline int truncate(const char*, long) { errno = ENOTSUP; return -1; } using char_type = char; #endif // _GLIBCXX_FILESYSTEM_IS_WINDOWS } // namespace __gnu_posix --- 214,229 ---- # endif using char_type = char; #else // ! _GLIBCXX_FILESYSTEM_IS_WINDOWS && ! _GLIBCXX_HAVE_UNISTD_H ! inline int open(const char*, int, ...) { errno = ENOSYS; return -1; } ! inline int close(int) { errno = ENOSYS; return -1; } using mode_t = int; ! inline int chmod(const char*, mode_t) { errno = ENOSYS; return -1; } ! inline int mkdir(const char*, mode_t) { errno = ENOSYS; return -1; } ! inline char* getcwd(char*, size_t) { errno = ENOSYS; return nullptr; } ! inline int chdir(const char*) { errno = ENOSYS; return -1; } ! inline int rename(const char*, const char*) { errno = ENOSYS; return -1; } ! using off_t = long; ! inline int truncate(const char*, off_t) { errno = ENOSYS; return -1; } using char_type = char; #endif // _GLIBCXX_FILESYSTEM_IS_WINDOWS } // namespace __gnu_posix *************** _GLIBCXX_BEGIN_NAMESPACE_FILESYSTEM *** 365,371 **** // 2712. copy_file() has a number of unspecified error conditions if (!is_regular_file(f)) { ! ec = std::make_error_code(std::errc::not_supported); return false; } --- 406,412 ---- // 2712. copy_file() has a number of unspecified error conditions if (!is_regular_file(f)) { ! ec = std::make_error_code(std::errc::invalid_argument); return false; } *************** _GLIBCXX_BEGIN_NAMESPACE_FILESYSTEM *** 373,379 **** { if (!is_regular_file(t)) { ! ec = std::make_error_code(std::errc::not_supported); return false; } --- 414,420 ---- { if (!is_regular_file(t)) { ! ec = std::make_error_code(std::errc::invalid_argument); return false; } *************** _GLIBCXX_BEGIN_NAMESPACE_FILESYSTEM *** 404,410 **** } else if (!is_regular_file(t)) { ! ec = std::make_error_code(std::errc::not_supported); return false; } } --- 445,451 ---- } else if (!is_regular_file(t)) { ! ec = std::make_error_code(std::errc::invalid_argument); return false; } } *************** _GLIBCXX_BEGIN_NAMESPACE_FILESYSTEM *** 415,439 **** int fd; }; ! int iflag = O_RDONLY; #ifdef _GLIBCXX_FILESYSTEM_IS_WINDOWS ! iflag |= O_BINARY; #endif CloseFD in = { posix::open(from, iflag) }; if (in.fd == -1) { ec.assign(errno, std::generic_category()); return false; } ! int oflag = O_WRONLY|O_CREAT; if (options.overwrite || options.update) oflag |= O_TRUNC; else oflag |= O_EXCL; - #ifdef _GLIBCXX_FILESYSTEM_IS_WINDOWS - oflag |= O_BINARY; - #endif CloseFD out = { posix::open(to, oflag, S_IWUSR) }; if (out.fd == -1) { --- 456,481 ---- int fd; }; ! int common_flags = 0; ! #ifdef O_CLOEXEC ! common_flags |= O_CLOEXEC; ! #endif #ifdef _GLIBCXX_FILESYSTEM_IS_WINDOWS ! common_flags |= O_BINARY; #endif + const int iflag = O_RDONLY | common_flags; CloseFD in = { posix::open(from, iflag) }; if (in.fd == -1) { ec.assign(errno, std::generic_category()); return false; } ! int oflag = O_WRONLY | O_CREAT | common_flags; if (options.overwrite || options.update) oflag |= O_TRUNC; else oflag |= O_EXCL; CloseFD out = { posix::open(to, oflag, S_IWUSR) }; if (out.fd == -1) { *************** _GLIBCXX_BEGIN_NAMESPACE_FILESYSTEM *** 458,482 **** size_t count = from_st->st_size; #if defined _GLIBCXX_USE_SENDFILE && ! defined _GLIBCXX_FILESYSTEM_IS_WINDOWS ! off_t offset = 0; ! ssize_t n = ::sendfile(out.fd, in.fd, &offset, count); ! if (n < 0 && errno != ENOSYS && errno != EINVAL) ! { ! ec.assign(errno, std::generic_category()); ! return false; ! } ! if ((size_t)n == count) { ! if (!out.close() || !in.close()) { ec.assign(errno, std::generic_category()); return false; } ! ec.clear(); ! return true; } - else if (n > 0) - count -= n; #endif // _GLIBCXX_USE_SENDFILE using std::ios; --- 500,528 ---- size_t count = from_st->st_size; #if defined _GLIBCXX_USE_SENDFILE && ! defined _GLIBCXX_FILESYSTEM_IS_WINDOWS ! ssize_t n = 0; ! if (count != 0) { ! off_t offset = 0; ! n = ::sendfile(out.fd, in.fd, &offset, count); ! if (n < 0 && errno != ENOSYS && errno != EINVAL) { ec.assign(errno, std::generic_category()); return false; } ! if ((size_t)n == count) ! { ! if (!out.close() || !in.close()) ! { ! ec.assign(errno, std::generic_category()); ! return false; ! } ! ec.clear(); ! return true; ! } ! else if (n > 0) ! count -= n; } #endif // _GLIBCXX_USE_SENDFILE using std::ios; *************** _GLIBCXX_BEGIN_NAMESPACE_FILESYSTEM *** 506,516 **** } #endif ! if (count && !(std::ostream(&sbout) << &sbin)) ! { ! ec = std::make_error_code(std::errc::io_error); ! return false; ! } if (!sbout.close() || !sbin.close()) { ec.assign(errno, std::generic_category()); --- 552,568 ---- } #endif ! // ostream::operator<<(streambuf*) fails if it extracts no characters, ! // so don't try to use it for empty files. But from_st->st_size == 0 for ! // some special files (e.g. procfs, see PR libstdc++/108178) so just try ! // to read a character to decide whether there is anything to copy or not. ! if (sbin.sgetc() != char_traits::eof()) ! if (!(std::ostream(&sbout) << &sbin)) ! { ! ec = std::make_error_code(std::errc::io_error); ! return false; ! } ! if (!sbout.close() || !sbin.close()) { ec.assign(errno, std::generic_category()); *************** _GLIBCXX_BEGIN_NAMESPACE_FILESYSTEM *** 561,569 **** ec.clear(); } else ! ec.assign((int)GetLastError(), std::system_category()); #else ! ec = std::make_error_code(std::errc::not_supported); #endif } #pragma GCC diagnostic pop --- 613,621 ---- ec.clear(); } else ! ec = std::__last_system_error(); #else ! ec = std::make_error_code(std::errc::function_not_supported); #endif } #pragma GCC diagnostic pop *************** _GLIBCXX_BEGIN_NAMESPACE_FILESYSTEM *** 583,592 **** { buf.resize(len); len = GetTempPathW(buf.size(), buf.data()); ! } while (len > buf.size()); if (len == 0) ! ec.assign((int)GetLastError(), std::system_category()); else ec.clear(); --- 635,645 ---- { buf.resize(len); len = GetTempPathW(buf.size(), buf.data()); ! } ! while (len > buf.size()); if (len == 0) ! ec = __last_system_error(); else ec.clear(); diff -Nrcpad gcc-11.4.0/libstdc++-v3/src/filesystem/ops.cc gcc-11.5.0/libstdc++-v3/src/filesystem/ops.cc *** gcc-11.4.0/libstdc++-v3/src/filesystem/ops.cc Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/src/filesystem/ops.cc Fri Jul 19 05:52:47 2024 *************** *** 63,68 **** --- 63,70 ---- #define _GLIBCXX_END_NAMESPACE_FILESYSTEM } } #include "ops-common.h" + #include // std::filesystem::remove_all + namespace fs = std::experimental::filesystem; namespace posix = std::filesystem::__gnu_posix; *************** fs::copy(const path& from, const path& t *** 297,303 **** } if (is_other(f) || is_other(t)) { ! ec = std::make_error_code(std::errc::not_supported); return; } if (is_directory(f) && is_regular_file(t)) --- 299,305 ---- } if (is_other(f) || is_other(t)) { ! ec = std::make_error_code(std::errc::invalid_argument); return; } if (is_directory(f) && is_regular_file(t)) *************** fs::copy_file(const path& from, const pa *** 380,386 **** return do_copy_file(from.c_str(), to.c_str(), copy_file_options(options), nullptr, nullptr, ec); #else ! ec = std::make_error_code(std::errc::not_supported); return false; #endif } --- 382,388 ---- return do_copy_file(from.c_str(), to.c_str(), copy_file_options(options), nullptr, nullptr, ec); #else ! ec = std::make_error_code(std::errc::function_not_supported); return false; #endif } *************** namespace *** 499,505 **** created = true; } #else ! ec = std::make_error_code(std::errc::not_supported); #endif return created; } --- 501,507 ---- created = true; } #else ! ec = std::make_error_code(std::errc::function_not_supported); #endif return created; } *************** fs::create_directory(const path& p, cons *** 547,553 **** } return create_dir(p, static_cast(st.st_mode), ec); #else ! ec = std::make_error_code(std::errc::not_supported); return false; #endif } --- 549,555 ---- } return create_dir(p, static_cast(st.st_mode), ec); #else ! ec = std::make_error_code(std::errc::function_not_supported); return false; #endif } *************** fs::create_directory_symlink(const path& *** 568,574 **** error_code& ec) noexcept { #ifdef _GLIBCXX_FILESYSTEM_IS_WINDOWS ! ec = std::make_error_code(std::errc::not_supported); #else create_symlink(to, new_symlink, ec); #endif --- 570,576 ---- error_code& ec) noexcept { #ifdef _GLIBCXX_FILESYSTEM_IS_WINDOWS ! ec = std::make_error_code(std::errc::function_not_supported); #else create_symlink(to, new_symlink, ec); #endif *************** fs::create_hard_link(const path& to, con *** 598,606 **** if (CreateHardLinkW(new_hard_link.c_str(), to.c_str(), NULL)) ec.clear(); else ! ec.assign((int)GetLastError(), system_category()); #else ! ec = std::make_error_code(std::errc::not_supported); #endif } --- 600,608 ---- if (CreateHardLinkW(new_hard_link.c_str(), to.c_str(), NULL)) ec.clear(); else ! ec = __last_system_error(); #else ! ec = std::make_error_code(std::errc::function_not_supported); #endif } *************** fs::create_symlink(const path& to, const *** 624,630 **** else ec.clear(); #else ! ec = std::make_error_code(std::errc::not_supported); #endif } --- 626,632 ---- else ec.clear(); #else ! ec = std::make_error_code(std::errc::function_not_supported); #endif } *************** fs::current_path(error_code& ec) *** 691,697 **** } #endif // __GLIBC__ #else // _GLIBCXX_HAVE_UNISTD_H ! ec = std::make_error_code(std::errc::not_supported); #endif return p; } --- 693,699 ---- } #endif // __GLIBC__ #else // _GLIBCXX_HAVE_UNISTD_H ! ec = std::make_error_code(std::errc::function_not_supported); #endif return p; } *************** fs::current_path(const path& p, error_co *** 714,720 **** else ec.clear(); #else ! ec = std::make_error_code(std::errc::not_supported); #endif } --- 716,722 ---- else ec.clear(); #else ! ec = std::make_error_code(std::errc::function_not_supported); #endif } *************** fs::equivalent(const path& p1, const pat *** 754,760 **** { if (is_other(s1) && is_other(s2)) { ! ec = std::make_error_code(std::errc::not_supported); return false; } ec.clear(); --- 756,762 ---- { if (is_other(s1) && is_other(s2)) { ! ec = std::__unsupported(); return false; } ec.clear(); *************** fs::equivalent(const path& p1, const pat *** 762,768 **** return false; return st1.st_dev == st2.st_dev && st1.st_ino == st2.st_ino; } ! else if (!exists(s1) && !exists(s2)) ec = std::make_error_code(std::errc::no_such_file_or_directory); else if (err) ec.assign(err, std::generic_category()); --- 764,770 ---- return false; return st1.st_dev == st2.st_dev && st1.st_ino == st2.st_ino; } ! else if (!exists(s1) || !exists(s2)) ec = std::make_error_code(std::errc::no_such_file_or_directory); else if (err) ec.assign(err, std::generic_category()); *************** fs::equivalent(const path& p1, const pat *** 770,776 **** ec.clear(); return false; #else ! ec = std::make_error_code(std::errc::not_supported); #endif return false; } --- 772,778 ---- ec.clear(); return false; #else ! ec = std::make_error_code(std::errc::function_not_supported); #endif return false; } *************** namespace *** 801,807 **** ec.clear(); return f(st); #else ! ec = std::make_error_code(std::errc::not_supported); return deflt; #endif } --- 803,809 ---- ec.clear(); return f(st); #else ! ec = std::make_error_code(std::errc::function_not_supported); return deflt; #endif } *************** fs::file_size(const path& p, error_code& *** 825,831 **** if (s.type == file_type::directory) ec = std::make_error_code(std::errc::is_a_directory); else ! ec = std::make_error_code(std::errc::not_supported); } return -1; } --- 827,833 ---- if (s.type == file_type::directory) ec = std::make_error_code(std::errc::is_a_directory); else ! ec = std::__unsupported(); } return -1; } *************** fs::last_write_time(const path& p __attr *** 928,934 **** else ec.clear(); #else ! ec = std::make_error_code(std::errc::not_supported); #endif } --- 930,936 ---- else ec.clear(); #else ! ec = std::make_error_code(std::errc::function_not_supported); #endif } *************** fs::permissions(const path& p, perms prm *** 975,981 **** err = errno; #else if (nofollow && is_symlink(st)) ! ec = std::make_error_code(std::errc::operation_not_supported); else if (posix::chmod(p.c_str(), static_cast(prms))) err = errno; #endif --- 977,983 ---- err = errno; #else if (nofollow && is_symlink(st)) ! ec = std::__unsupported(); else if (posix::chmod(p.c_str(), static_cast(prms))) err = errno; #endif *************** fs::path fs::read_symlink(const path& p *** 1040,1046 **** } while (true); #else ! ec = std::make_error_code(std::errc::not_supported); #endif return result; } --- 1042,1048 ---- } while (true); #else ! ec = std::make_error_code(std::errc::function_not_supported); #endif return result; } *************** fs::remove(const path& p, error_code& ec *** 1070,1076 **** return true; } else if (!ec) ! ec.assign((int)GetLastError(), system_category()); } else if (status_known(st)) ec.clear(); --- 1072,1078 ---- return true; } else if (!ec) ! ec = __last_system_error(); } else if (status_known(st)) ec.clear(); *************** fs::remove_all(const path& p) *** 1102,1134 **** std::uintmax_t fs::remove_all(const path& p, error_code& ec) { ! const auto s = symlink_status(p, ec); ! if (!status_known(s)) ! return -1; ! ! ec.clear(); ! if (s.type() == file_type::not_found) ! return 0; ! ! uintmax_t count = 0; ! if (s.type() == file_type::directory) ! { ! directory_iterator d(p, ec), end; ! while (!ec && d != end) ! { ! const auto removed = fs::remove_all(d->path(), ec); ! if (removed == numeric_limits::max()) ! return -1; ! count += removed; ! d.increment(ec); ! if (ec) ! return -1; ! } ! } ! ! if (fs::remove(p, ec)) ! ++count; ! return ec ? -1 : count; } void --- 1104,1111 ---- std::uintmax_t fs::remove_all(const path& p, error_code& ec) { ! // Use the C++17 implementation. ! return std::filesystem::remove_all(p.native(), ec); } void *************** fs::resize_file(const path& p, uintmax_t *** 1161,1176 **** void fs::resize_file(const path& p, uintmax_t size, error_code& ec) noexcept { ! #ifdef _GLIBCXX_HAVE_UNISTD_H ! if (size > static_cast(std::numeric_limits::max())) ec.assign(EINVAL, std::generic_category()); else if (posix::truncate(p.c_str(), size)) ec.assign(errno, std::generic_category()); else ec.clear(); - #else - ec = std::make_error_code(std::errc::not_supported); - #endif } --- 1138,1149 ---- void fs::resize_file(const path& p, uintmax_t size, error_code& ec) noexcept { ! if (size > static_cast(std::numeric_limits::max())) ec.assign(EINVAL, std::generic_category()); else if (posix::truncate(p.c_str(), size)) ec.assign(errno, std::generic_category()); else ec.clear(); } *************** fs::system_complete(const path& p, error *** 1340,1346 **** || p.root_name() == base.root_name()) return absolute(p, base); // else TODO ! ec = std::make_error_code(std::errc::not_supported); return {}; #else if (ec.value()) --- 1313,1319 ---- || p.root_name() == base.root_name()) return absolute(p, base); // else TODO ! ec = std::__unsupported(); return {}; #else if (ec.value()) diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/19_diagnostics/system_error/cons-1.cc gcc-11.5.0/libstdc++-v3/testsuite/19_diagnostics/system_error/cons-1.cc *** gcc-11.4.0/libstdc++-v3/testsuite/19_diagnostics/system_error/cons-1.cc Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/testsuite/19_diagnostics/system_error/cons-1.cc Fri Jul 19 05:52:47 2024 *************** int main() *** 26,44 **** { const std::string s("too late: boulangerie out of pain au raisin"); const std::error_code ! e(std::make_error_code(std::errc::operation_not_supported)); // 1 { std::system_error err1(e, s); ! VERIFY( err1.code() == e ); VERIFY( std::string(err1.what()).find(s) != std::string::npos ); } // 2 { std::system_error err2(95, std::system_category(), s); ! VERIFY( err2.code() == std::error_code(95, std::system_category()) ); VERIFY( std::string((err2.what(), s)).find(s) != std::string::npos ); } --- 26,44 ---- { const std::string s("too late: boulangerie out of pain au raisin"); const std::error_code ! e(std::make_error_code(std::errc::invalid_argument)); // 1 { std::system_error err1(e, s); ! VERIFY( err1.code() == e ); VERIFY( std::string(err1.what()).find(s) != std::string::npos ); } // 2 { std::system_error err2(95, std::system_category(), s); ! VERIFY( err2.code() == std::error_code(95, std::system_category()) ); VERIFY( std::string((err2.what(), s)).find(s) != std::string::npos ); } diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/20_util/any/cons/104242.cc gcc-11.5.0/libstdc++-v3/testsuite/20_util/any/cons/104242.cc *** gcc-11.4.0/libstdc++-v3/testsuite/20_util/any/cons/104242.cc Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/libstdc++-v3/testsuite/20_util/any/cons/104242.cc Fri Jul 19 05:52:47 2024 *************** *** 0 **** --- 1,12 ---- + // { dg-do compile { target c++17 } } + + // PR libstdc++/104242 - Class with constructor from std::any is not copyable + + #include + #include + + struct A { + A(const A&) = default; + explicit A(std::any value); + }; + static_assert(std::is_copy_constructible_v); diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal_neg.cc gcc-11.5.0/libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal_neg.cc *** gcc-11.4.0/libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal_neg.cc Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/testsuite/20_util/integer_comparisons/greater_equal_neg.cc Fri Jul 19 05:52:47 2024 *************** *** 15,21 **** // with this library; see the file COPYING3. If not see // . ! // { dg-options "-std=gnu++2a" } // { dg-do compile { target c++2a } } #include --- 15,21 ---- // with this library; see the file COPYING3. If not see // . ! // { dg-options "-std=gnu++2a -O2" } // { dg-do compile { target c++2a } } #include diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/20_util/integer_comparisons/greater_neg.cc gcc-11.5.0/libstdc++-v3/testsuite/20_util/integer_comparisons/greater_neg.cc *** gcc-11.4.0/libstdc++-v3/testsuite/20_util/integer_comparisons/greater_neg.cc Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/testsuite/20_util/integer_comparisons/greater_neg.cc Fri Jul 19 05:52:47 2024 *************** *** 15,21 **** // with this library; see the file COPYING3. If not see // . ! // { dg-options "-std=gnu++2a" } // { dg-do compile { target c++2a } } #include --- 15,21 ---- // with this library; see the file COPYING3. If not see // . ! // { dg-options "-std=gnu++2a -O2" } // { dg-do compile { target c++2a } } #include diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal_neg.cc gcc-11.5.0/libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal_neg.cc *** gcc-11.4.0/libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal_neg.cc Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/testsuite/20_util/integer_comparisons/less_equal_neg.cc Fri Jul 19 05:52:47 2024 *************** *** 15,21 **** // with this library; see the file COPYING3. If not see // . ! // { dg-options "-std=gnu++2a" } // { dg-do compile { target c++2a } } #include --- 15,21 ---- // with this library; see the file COPYING3. If not see // . ! // { dg-options "-std=gnu++2a -O2" } // { dg-do compile { target c++2a } } #include diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/20_util/integer_sequence/pr111357.cc gcc-11.5.0/libstdc++-v3/testsuite/20_util/integer_sequence/pr111357.cc *** gcc-11.4.0/libstdc++-v3/testsuite/20_util/integer_sequence/pr111357.cc Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/libstdc++-v3/testsuite/20_util/integer_sequence/pr111357.cc Fri Jul 19 05:52:47 2024 *************** *** 0 **** --- 1,34 ---- + // { dg-do compile { target c++14 } } + + // PR c++/111357 - __integer_pack fails to work with values of dependent type + // convertible to integers in noexcept context + + #include + + using std::integer_sequence; + using std::make_integer_sequence; + + template + void g(integer_sequence) + {} + + template + struct c1 + { + static constexpr int value = 1; + constexpr operator int() { return value; } + }; + + template + struct R + { + using S = make_integer_sequence{}>; + + R() noexcept(noexcept(g(S()))) // { dg-bogus "argument to .__integer_pack." } + {} + }; + + int main() + { + R(); + } diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/20_util/optional/relops/104606.cc gcc-11.5.0/libstdc++-v3/testsuite/20_util/optional/relops/104606.cc *** gcc-11.4.0/libstdc++-v3/testsuite/20_util/optional/relops/104606.cc Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/libstdc++-v3/testsuite/20_util/optional/relops/104606.cc Fri Jul 19 05:52:47 2024 *************** *** 0 **** --- 1,18 ---- + // { dg-do compile { target c++17 } } + + // Bug 104606 comparison operator resolution with std::optional and -std=c++20 + + #include + #include + #include + + struct Value : std::variant> { }; + + struct Comparator { + template bool operator<=(const T &) { return true; } + }; + + std::optional o; + Comparator c; + + auto x = c <= o; diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/20_util/tuple/cons/114147.cc gcc-11.5.0/libstdc++-v3/testsuite/20_util/tuple/cons/114147.cc *** gcc-11.4.0/libstdc++-v3/testsuite/20_util/tuple/cons/114147.cc Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/libstdc++-v3/testsuite/20_util/tuple/cons/114147.cc Fri Jul 19 05:52:47 2024 *************** *** 0 **** --- 1,15 ---- + // { dg-do compile { target c++11 } } + + // PR libstdc++/114147 + // tuple allocator-extended ctor requires non-explicit default ctor + + #include + #include + + struct X { explicit X(); }; + + std::allocator a; + std::tuple t0(std::allocator_arg, a); + std::tuple t1(std::allocator_arg, a); + std::tuple t2(std::allocator_arg, a); + std::tuple t3(std::allocator_arg, a); diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_prefix/debug.cc gcc-11.5.0/libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_prefix/debug.cc *** gcc-11.4.0/libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_prefix/debug.cc Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_prefix/debug.cc Fri Jul 19 05:52:47 2024 *************** *** 0 **** --- 1,14 ---- + // { dg-do compile { target c++17 } } + + #include + + constexpr bool + check_remove_prefix() + { + std::string_view sv("123"); + sv.remove_prefix(4); + // { dg-error "not a constant expression" "" { target *-*-* } 0 } + return true; + } + + constexpr bool test = check_remove_prefix(); diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_suffix/debug.cc gcc-11.5.0/libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_suffix/debug.cc *** gcc-11.4.0/libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_suffix/debug.cc Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/libstdc++-v3/testsuite/21_strings/basic_string_view/modifiers/remove_suffix/debug.cc Fri Jul 19 05:52:47 2024 *************** *** 0 **** --- 1,14 ---- + // { dg-do compile { target c++17 } } + + #include + + constexpr bool + check_remove_suffix() + { + std::string_view sv("123"); + sv.remove_suffix(4); + // { dg-error "not a constant expression" "" { target *-*-* } 0 } + return true; + } + + constexpr bool test = check_remove_suffix(); diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/23_containers/array/creation/111512.cc gcc-11.5.0/libstdc++-v3/testsuite/23_containers/array/creation/111512.cc *** gcc-11.4.0/libstdc++-v3/testsuite/23_containers/array/creation/111512.cc Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/libstdc++-v3/testsuite/23_containers/array/creation/111512.cc Fri Jul 19 05:52:47 2024 *************** *** 0 **** --- 1,25 ---- + // { dg-options "-std=gnu++20" } + // { dg-do compile { target c++20 } } + + // Bug libstdc++/111511 - Incorrect ADL in std::to_array in GCC 11/12/13 + // Bug c++/111512 - GCC's __builtin_memcpy can trigger ADL + + #include + #include + + struct incomplete; + + template + struct holder { + T t; // { dg-bogus "'holder::t' has incomplete type" } + }; + + // A complete type that cannot be used as an associated type for ADL. + using adl_bomb = holder*; + + int main() + { + adl_bomb a[1]{}; + (void) std::to_array(a); + (void) std::to_array(std::move(a)); + } diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/23_containers/multiset/modifiers/114401.cc gcc-11.5.0/libstdc++-v3/testsuite/23_containers/multiset/modifiers/114401.cc *** gcc-11.4.0/libstdc++-v3/testsuite/23_containers/multiset/modifiers/114401.cc Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/libstdc++-v3/testsuite/23_containers/multiset/modifiers/114401.cc Fri Jul 19 05:52:47 2024 *************** *** 0 **** --- 1,125 ---- + // { dg-do run { target c++17 } } + + // PR libstdc++/114401 allocator destructor omitted when reinserting node_handle + + #include + #include + #include + + template + struct Alloc + { + using value_type = T; + using propagate_on_container_copy_assignment = std::true_type; + using propagate_on_container_move_assignment = std::true_type; + using propagate_on_container_swap = std::true_type; + + Alloc(int identity) : id(std::make_shared(identity)) { } + + template + Alloc(const Alloc a) : id(a.id) { } + + T* allocate(std::size_t n) { return std::allocator().allocate(n); } + void deallocate(T* p, std::size_t n) { std::allocator().deallocate(p, n); } + + template + friend bool + operator==(const Alloc& a, const Alloc& a2) + { return a.id == a2.id; } + + template + friend bool + operator!=(const Alloc& a, const Alloc& a2) + { return !(a == a2); } + + std::shared_ptr id; + }; + + using test_type = std::multiset, Alloc>; + + void + test_node_ops() + { + test_type s1({1,3,5}, Alloc(1)); + test_type s2({2,4,6,8}, Alloc(2)); + VERIFY( s1.get_allocator() != s2.get_allocator() ); + + auto node_a = s1.extract(1); + VERIFY( ! node_a.empty() ); + VERIFY( node_a.get_allocator() == s1.get_allocator() ); + + node_a = std::move(node_a); // self-move + VERIFY( node_a.empty() ); + + swap(node_a, node_a); // self-swap + VERIFY( node_a.empty() ); + + auto node_b = s2.extract(2); + VERIFY( node_b.get_allocator() == s2.get_allocator() ); + + node_a = std::move(node_b); // empty = !empty + VERIFY( node_a.get_allocator() == s2.get_allocator() ); + VERIFY( node_b.empty() ); + + swap(node_a, node_b); // swap(!empty, empty) + VERIFY( node_a.empty() ); + VERIFY( node_b.get_allocator() == s2.get_allocator() ); + + swap(node_a, node_b); // swap(empty, !empty) + VERIFY( node_a.get_allocator() == s2.get_allocator() ); + VERIFY( node_b.empty() ); + + node_a = s1.extract(3); // !empty = !empty + VERIFY( node_a.get_allocator() == s1.get_allocator() ); + node_b = s2.extract(0); // empty = empty + VERIFY( node_b.empty() ); + node_b = s2.extract(6); // empty = !empty + VERIFY( node_b.get_allocator() == s2.get_allocator() ); + + swap(node_a, node_b); // swap(!empty, !empty) + VERIFY( node_a.get_allocator() == s2.get_allocator() ); + VERIFY( node_b.get_allocator() == s1.get_allocator() ); + + node_a = {}; + node_b = std::move(node_a); // !empty = empty + VERIFY( node_a.empty() ); + VERIFY( node_b.empty() ); + + swap(node_a, node_b); // swap(empty, empty) + VERIFY( node_a.empty() ); + VERIFY( node_b.empty() ); + } + + void + test_alloc_lifetime() + { + Alloc a(1); + test_type s({1,2,3}, a); + VERIFY( a.id.use_count() == 2 ); // a and the copy in s + + s.insert(s.extract(1)); + VERIFY( a.id.use_count() == 2 ); + + s.insert(s.begin(), s.extract(2)); + VERIFY( a.id.use_count() == 2 ); + + auto node = s.extract(1); + VERIFY( a.id.use_count() == 3 ); + node = s.extract(0); + VERIFY( a.id.use_count() == 2 ); + + s.insert(std::move(node)); + VERIFY( a.id.use_count() == 2 ); + + s.merge(test_type(s)); + VERIFY( a.id.use_count() == 2 ); + + s.merge(test_type({4,5,6}, a)); + VERIFY( a.id.use_count() == 2 ); + } + + int main() + { + test_node_ops(); + test_alloc_lifetime(); + } diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/23_containers/set/modifiers/114401.cc gcc-11.5.0/libstdc++-v3/testsuite/23_containers/set/modifiers/114401.cc *** gcc-11.4.0/libstdc++-v3/testsuite/23_containers/set/modifiers/114401.cc Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/libstdc++-v3/testsuite/23_containers/set/modifiers/114401.cc Fri Jul 19 05:52:47 2024 *************** *** 0 **** --- 1,125 ---- + // { dg-do run { target c++17 } } + + // PR libstdc++/114401 allocator destructor omitted when reinserting node_handle + + #include + #include + #include + + template + struct Alloc + { + using value_type = T; + using propagate_on_container_copy_assignment = std::true_type; + using propagate_on_container_move_assignment = std::true_type; + using propagate_on_container_swap = std::true_type; + + Alloc(int identity) : id(std::make_shared(identity)) { } + + template + Alloc(const Alloc a) : id(a.id) { } + + T* allocate(std::size_t n) { return std::allocator().allocate(n); } + void deallocate(T* p, std::size_t n) { std::allocator().deallocate(p, n); } + + template + friend bool + operator==(const Alloc& a, const Alloc& a2) + { return a.id == a2.id; } + + template + friend bool + operator!=(const Alloc& a, const Alloc& a2) + { return !(a == a2); } + + std::shared_ptr id; + }; + + using test_type = std::set, Alloc>; + + void + test_node_ops() + { + test_type s1({1,3,5}, Alloc(1)); + test_type s2({2,4,6,8}, Alloc(2)); + VERIFY( s1.get_allocator() != s2.get_allocator() ); + + auto node_a = s1.extract(1); + VERIFY( ! node_a.empty() ); + VERIFY( node_a.get_allocator() == s1.get_allocator() ); + + node_a = std::move(node_a); // self-move + VERIFY( node_a.empty() ); + + swap(node_a, node_a); // self-swap + VERIFY( node_a.empty() ); + + auto node_b = s2.extract(2); + VERIFY( node_b.get_allocator() == s2.get_allocator() ); + + node_a = std::move(node_b); // empty = !empty + VERIFY( node_a.get_allocator() == s2.get_allocator() ); + VERIFY( node_b.empty() ); + + swap(node_a, node_b); // swap(!empty, empty) + VERIFY( node_a.empty() ); + VERIFY( node_b.get_allocator() == s2.get_allocator() ); + + swap(node_a, node_b); // swap(empty, !empty) + VERIFY( node_a.get_allocator() == s2.get_allocator() ); + VERIFY( node_b.empty() ); + + node_a = s1.extract(3); // !empty = !empty + VERIFY( node_a.get_allocator() == s1.get_allocator() ); + node_b = s2.extract(0); // empty = empty + VERIFY( node_b.empty() ); + node_b = s2.extract(6); // empty = !empty + VERIFY( node_b.get_allocator() == s2.get_allocator() ); + + swap(node_a, node_b); // swap(!empty, !empty) + VERIFY( node_a.get_allocator() == s2.get_allocator() ); + VERIFY( node_b.get_allocator() == s1.get_allocator() ); + + node_a = {}; + node_b = std::move(node_a); // !empty = empty + VERIFY( node_a.empty() ); + VERIFY( node_b.empty() ); + + swap(node_a, node_b); // swap(empty, empty) + VERIFY( node_a.empty() ); + VERIFY( node_b.empty() ); + } + + void + test_alloc_lifetime() + { + Alloc a(1); + test_type s({1,2,3}, a); + VERIFY( a.id.use_count() == 2 ); // a and the copy in s + + s.insert(s.extract(1)); + VERIFY( a.id.use_count() == 2 ); + + s.insert(s.begin(), s.extract(2)); + VERIFY( a.id.use_count() == 2 ); + + auto node = s.extract(1); + VERIFY( a.id.use_count() == 3 ); + node = s.extract(0); + VERIFY( a.id.use_count() == 2 ); + + s.insert(std::move(node)); + VERIFY( a.id.use_count() == 2 ); + + s.merge(test_type(s)); + VERIFY( a.id.use_count() == 2 ); + + s.merge(test_type({4,5,6}, a)); + VERIFY( a.id.use_count() == 2 ); + } + + int main() + { + test_node_ops(); + test_alloc_lifetime(); + } diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/114401.cc gcc-11.5.0/libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/114401.cc *** gcc-11.4.0/libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/114401.cc Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/libstdc++-v3/testsuite/23_containers/unordered_multiset/modifiers/114401.cc Fri Jul 19 05:52:47 2024 *************** *** 0 **** --- 1,126 ---- + // { dg-do run { target c++17 } } + + // PR libstdc++/114401 allocator destructor omitted when reinserting node_handle + + #include + #include + #include + + template + struct Alloc + { + using value_type = T; + using propagate_on_container_copy_assignment = std::true_type; + using propagate_on_container_move_assignment = std::true_type; + using propagate_on_container_swap = std::true_type; + + Alloc(int identity) : id(std::make_shared(identity)) { } + + template + Alloc(const Alloc a) : id(a.id) { } + + T* allocate(std::size_t n) { return std::allocator().allocate(n); } + void deallocate(T* p, std::size_t n) { std::allocator().deallocate(p, n); } + + template + friend bool + operator==(const Alloc& a, const Alloc& a2) + { return a.id == a2.id; } + + template + friend bool + operator!=(const Alloc& a, const Alloc& a2) + { return !(a == a2); } + + std::shared_ptr id; + }; + + using test_type + = std::unordered_multiset, std::equal_to, Alloc>; + + void + test_node_ops() + { + test_type s1({1,3,5}, 3, Alloc(1)); + test_type s2({2,4,6,8}, 4, Alloc(2)); + VERIFY( s1.get_allocator() != s2.get_allocator() ); + + auto node_a = s1.extract(1); + VERIFY( ! node_a.empty() ); + VERIFY( node_a.get_allocator() == s1.get_allocator() ); + + node_a = std::move(node_a); // self-move + VERIFY( node_a.empty() ); + + swap(node_a, node_a); // self-swap + VERIFY( node_a.empty() ); + + auto node_b = s2.extract(2); + VERIFY( node_b.get_allocator() == s2.get_allocator() ); + + node_a = std::move(node_b); // empty = !empty + VERIFY( node_a.get_allocator() == s2.get_allocator() ); + VERIFY( node_b.empty() ); + + swap(node_a, node_b); // swap(!empty, empty) + VERIFY( node_a.empty() ); + VERIFY( node_b.get_allocator() == s2.get_allocator() ); + + swap(node_a, node_b); // swap(empty, !empty) + VERIFY( node_a.get_allocator() == s2.get_allocator() ); + VERIFY( node_b.empty() ); + + node_a = s1.extract(3); // !empty = !empty + VERIFY( node_a.get_allocator() == s1.get_allocator() ); + node_b = s2.extract(0); // empty = empty + VERIFY( node_b.empty() ); + node_b = s2.extract(6); // empty = !empty + VERIFY( node_b.get_allocator() == s2.get_allocator() ); + + swap(node_a, node_b); // swap(!empty, !empty) + VERIFY( node_a.get_allocator() == s2.get_allocator() ); + VERIFY( node_b.get_allocator() == s1.get_allocator() ); + + node_a = {}; + node_b = std::move(node_a); // !empty = empty + VERIFY( node_a.empty() ); + VERIFY( node_b.empty() ); + + swap(node_a, node_b); // swap(empty, empty) + VERIFY( node_a.empty() ); + VERIFY( node_b.empty() ); + } + + void + test_alloc_lifetime() + { + Alloc a(1); + test_type s({1,2,3}, 3, a); + VERIFY( a.id.use_count() == 2 ); // a and the copy in s + + s.insert(s.extract(1)); + VERIFY( a.id.use_count() == 2 ); + + s.insert(s.begin(), s.extract(2)); + VERIFY( a.id.use_count() == 2 ); + + auto node = s.extract(1); + VERIFY( a.id.use_count() == 3 ); + node = s.extract(0); + VERIFY( a.id.use_count() == 2 ); + + s.insert(std::move(node)); + VERIFY( a.id.use_count() == 2 ); + + s.merge(test_type(s)); + VERIFY( a.id.use_count() == 2 ); + + s.merge(test_type({4,5,6}, 3, a)); + VERIFY( a.id.use_count() == 2 ); + } + + int main() + { + test_node_ops(); + test_alloc_lifetime(); + } diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/114401.cc gcc-11.5.0/libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/114401.cc *** gcc-11.4.0/libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/114401.cc Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/libstdc++-v3/testsuite/23_containers/unordered_set/modifiers/114401.cc Fri Jul 19 05:52:47 2024 *************** *** 0 **** --- 1,126 ---- + // { dg-do run { target c++17 } } + + // PR libstdc++/114401 allocator destructor omitted when reinserting node_handle + + #include + #include + #include + + template + struct Alloc + { + using value_type = T; + using propagate_on_container_copy_assignment = std::true_type; + using propagate_on_container_move_assignment = std::true_type; + using propagate_on_container_swap = std::true_type; + + Alloc(int identity) : id(std::make_shared(identity)) { } + + template + Alloc(const Alloc a) : id(a.id) { } + + T* allocate(std::size_t n) { return std::allocator().allocate(n); } + void deallocate(T* p, std::size_t n) { std::allocator().deallocate(p, n); } + + template + friend bool + operator==(const Alloc& a, const Alloc& a2) + { return a.id == a2.id; } + + template + friend bool + operator!=(const Alloc& a, const Alloc& a2) + { return !(a == a2); } + + std::shared_ptr id; + }; + + using test_type + = std::unordered_set, std::equal_to, Alloc>; + + void + test_node_ops() + { + test_type s1({1,3,5}, 3, Alloc(1)); + test_type s2({2,4,6,8}, 4, Alloc(2)); + VERIFY( s1.get_allocator() != s2.get_allocator() ); + + auto node_a = s1.extract(1); + VERIFY( ! node_a.empty() ); + VERIFY( node_a.get_allocator() == s1.get_allocator() ); + + node_a = std::move(node_a); // self-move + VERIFY( node_a.empty() ); + + swap(node_a, node_a); // self-swap + VERIFY( node_a.empty() ); + + auto node_b = s2.extract(2); + VERIFY( node_b.get_allocator() == s2.get_allocator() ); + + node_a = std::move(node_b); // empty = !empty + VERIFY( node_a.get_allocator() == s2.get_allocator() ); + VERIFY( node_b.empty() ); + + swap(node_a, node_b); // swap(!empty, empty) + VERIFY( node_a.empty() ); + VERIFY( node_b.get_allocator() == s2.get_allocator() ); + + swap(node_a, node_b); // swap(empty, !empty) + VERIFY( node_a.get_allocator() == s2.get_allocator() ); + VERIFY( node_b.empty() ); + + node_a = s1.extract(3); // !empty = !empty + VERIFY( node_a.get_allocator() == s1.get_allocator() ); + node_b = s2.extract(0); // empty = empty + VERIFY( node_b.empty() ); + node_b = s2.extract(6); // empty = !empty + VERIFY( node_b.get_allocator() == s2.get_allocator() ); + + swap(node_a, node_b); // swap(!empty, !empty) + VERIFY( node_a.get_allocator() == s2.get_allocator() ); + VERIFY( node_b.get_allocator() == s1.get_allocator() ); + + node_a = {}; + node_b = std::move(node_a); // !empty = empty + VERIFY( node_a.empty() ); + VERIFY( node_b.empty() ); + + swap(node_a, node_b); // swap(empty, empty) + VERIFY( node_a.empty() ); + VERIFY( node_b.empty() ); + } + + void + test_alloc_lifetime() + { + Alloc a(1); + test_type s({1,2,3}, 3, a); + VERIFY( a.id.use_count() == 2 ); // a and the copy in s + + s.insert(s.extract(1)); + VERIFY( a.id.use_count() == 2 ); + + s.insert(s.begin(), s.extract(2)); + VERIFY( a.id.use_count() == 2 ); + + auto node = s.extract(1); + VERIFY( a.id.use_count() == 3 ); + node = s.extract(0); + VERIFY( a.id.use_count() == 2 ); + + s.insert(std::move(node)); + VERIFY( a.id.use_count() == 2 ); + + s.merge(test_type(s)); + VERIFY( a.id.use_count() == 2 ); + + s.merge(test_type({4,5,6}, 3, a)); + VERIFY( a.id.use_count() == 2 ); + } + + int main() + { + test_node_ops(); + test_alloc_lifetime(); + } diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/25_algorithms/move/constexpr.cc gcc-11.5.0/libstdc++-v3/testsuite/25_algorithms/move/constexpr.cc *** gcc-11.4.0/libstdc++-v3/testsuite/25_algorithms/move/constexpr.cc Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/testsuite/25_algorithms/move/constexpr.cc Fri Jul 19 05:52:47 2024 *************** test01() *** 17,19 **** --- 17,30 ---- } static_assert(test01()); + + constexpr bool + test02() + { + int x[2] = {1,2}, y[2]; + std::span in(x), out(y); + std::move(in.rbegin(), in.rend(), out.rbegin()); + return std::equal(in.rbegin(), in.rend(), out.rbegin()); + } + + static_assert(test02()); diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/iterators/97731.cc gcc-11.5.0/libstdc++-v3/testsuite/27_io/filesystem/iterators/97731.cc *** gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/iterators/97731.cc Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/libstdc++-v3/testsuite/27_io/filesystem/iterators/97731.cc Fri Jul 19 05:52:47 2024 *************** *** 0 **** --- 1,48 ---- + // Copyright (C) 2020-2022 Free Software Foundation, Inc. + // + // 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 + // terms of the GNU General Public License as published by the + // Free Software Foundation; either version 3, or (at your option) + // any later version. + + // This library is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License along + // with this library; see the file COPYING3. If not see + // . + + // { dg-do run { target c++17 } } + // { dg-require-filesystem-ts "" } + + #include + #include + #include + + bool used_custom_readdir = false; + + extern "C" void* readdir(void*) + { + used_custom_readdir = true; + errno = EIO; + return nullptr; + } + + void + test01() + { + using std::filesystem::recursive_directory_iterator; + std::error_code ec; + recursive_directory_iterator it(".", ec); + if (used_custom_readdir) + VERIFY( ec.value() == EIO ); + } + + int + main() + { + test01(); + } diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc gcc-11.5.0/libstdc++-v3/testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc *** gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/testsuite/27_io/filesystem/iterators/recursive_directory_iterator.cc Fri Jul 19 05:52:47 2024 *************** test05() *** 184,189 **** --- 184,207 ---- remove_all(p, ec); } + void + test06() + { + #if !(defined __MINGW32__ || defined __MINGW64__) + auto p = __gnu_test::nonexistent_path(); + create_directories(p/"d1/d2"); + create_directory_symlink("d1", p/"link"); + fs::recursive_directory_iterator it(p), endit; + VERIFY( std::distance(it, endit) == 3 ); // d1 and d2 and link + + it = fs::recursive_directory_iterator(p, fs::directory_options::follow_directory_symlink); + VERIFY( std::distance(it, endit) == 4 ); // d1 and d1/d2 and link and link/d2 + + std::error_code ec; + remove_all(p, ec); + #endif + } + int main() { *************** main() *** 192,195 **** --- 210,214 ---- test03(); test04(); test05(); + test06(); } diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/operations/copy_file_108178.cc gcc-11.5.0/libstdc++-v3/testsuite/27_io/filesystem/operations/copy_file_108178.cc *** gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/operations/copy_file_108178.cc Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/libstdc++-v3/testsuite/27_io/filesystem/operations/copy_file_108178.cc Fri Jul 19 05:52:47 2024 *************** *** 0 **** --- 1,33 ---- + // { dg-do run { target c++17 } } + // { dg-require-filesystem-ts "" } + + // C++17 30.10.15.4 Copy [fs.op.copy_file] + + #include + #include + #include // getpid + #include + #include + + namespace fs = std::filesystem; + + void + test_procfs() // PR libstdc++/108178 + { + auto pid = ::getpid(); + std::string from = "/proc/" + std::to_string(pid) + "/status"; + if (fs::exists(from)) + { + auto to = __gnu_test::nonexistent_path(); + fs::copy_file(from, to); + std::ifstream f(to); + VERIFY(f.is_open()); + VERIFY(f.peek() != std::char_traits::eof()); + fs::remove(to); + } + } + + int main() + { + test_procfs(); + } diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/operations/equivalent.cc gcc-11.5.0/libstdc++-v3/testsuite/27_io/filesystem/operations/equivalent.cc *** gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/operations/equivalent.cc Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/testsuite/27_io/filesystem/operations/equivalent.cc Fri Jul 19 05:52:47 2024 *************** test01() *** 34,46 **** bool result; result = equivalent(p1, p2, ec); ! VERIFY( ec ); VERIFY( !result ); __gnu_test::scoped_file f1(p1); ec = bad_ec; result = equivalent(p1, p2, ec); ! VERIFY( !ec ); VERIFY( !result ); __gnu_test::scoped_file f2(p2); --- 34,46 ---- bool result; result = equivalent(p1, p2, ec); ! VERIFY( ec == std::errc::no_such_file_or_directory ); VERIFY( !result ); __gnu_test::scoped_file f1(p1); ec = bad_ec; result = equivalent(p1, p2, ec); ! VERIFY( ec == std::errc::no_such_file_or_directory ); VERIFY( !result ); __gnu_test::scoped_file f2(p2); diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/path/construct/95048.cc gcc-11.5.0/libstdc++-v3/testsuite/27_io/filesystem/path/construct/95048.cc *** gcc-11.4.0/libstdc++-v3/testsuite/27_io/filesystem/path/construct/95048.cc Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/libstdc++-v3/testsuite/27_io/filesystem/path/construct/95048.cc Fri Jul 19 05:52:47 2024 *************** *** 0 **** --- 1,51 ---- + // { dg-do run { target c++17 } } + + // C++17 30.10.8.4.1 path constructors [fs.path.construct] + + #include + #include + + using std::filesystem::path; + + #define CHECK(E, S) (path(E##S) == path(u8##S)) + + void + test_wide() + { + VERIFY( CHECK(L, "\u00E4") ); // PR libstdc++/95048 + VERIFY( CHECK(L, "\U0001F4C1") ); // folder + VERIFY( CHECK(L, "\U0001F4C2") ); // open folder + VERIFY( CHECK(L, "\U0001F4C4") ); // filing cabient + + VERIFY( path(u8"\U0001D11E").wstring() == L"\U0001D11E" ); // G Clef + } + + void + test_u16() + { + VERIFY( CHECK(u, "\u00E4") ); // PR libstdc++/95048 + VERIFY( CHECK(u, "\U0001F4C1") ); // folder + VERIFY( CHECK(u, "\U0001F4C2") ); // open folder + VERIFY( CHECK(u, "\U0001F4C4") ); // filing cabient + + VERIFY( path(u8"\U0001D11E").u16string() == u"\U0001D11E" ); // G Clef + } + + void + test_u32() + { + VERIFY( CHECK(U, "\u00E4") ); // PR libstdc++/95048 + VERIFY( CHECK(U, "\U0001F4C1") ); // folder + VERIFY( CHECK(U, "\U0001F4C2") ); // open folder + VERIFY( CHECK(U, "\U0001F4C4") ); // filing cabient + + VERIFY( path(u8"\U0001D11E").u32string() == U"\U0001D11E" ); // G Clef + } + + int + main() + { + test_wide(); + test_u16(); + test_u32(); + } diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc gcc-11.5.0/libstdc++-v3/testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc *** gcc-11.4.0/libstdc++-v3/testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/testsuite/experimental/filesystem/iterators/recursive_directory_iterator.cc Fri Jul 19 05:52:47 2024 *************** test05() *** 174,180 **** { auto p = __gnu_test::nonexistent_path(); create_directory(p); ! create_directory_symlink(p, p / "l"); fs::recursive_directory_iterator it(p), endit; VERIFY( begin(it) == it ); static_assert( noexcept(begin(it)), "begin is noexcept" ); --- 174,180 ---- { auto p = __gnu_test::nonexistent_path(); create_directory(p); ! create_directory(p / "x"); fs::recursive_directory_iterator it(p), endit; VERIFY( begin(it) == it ); static_assert( noexcept(begin(it)), "begin is noexcept" ); *************** test05() *** 185,190 **** --- 185,208 ---- remove_all(p, ec); } + void + test06() + { + #if !(defined __MINGW32__ || defined __MINGW64__) + auto p = __gnu_test::nonexistent_path(); + create_directories(p/"d1/d2"); + create_directory_symlink("d1", p/"link"); + fs::recursive_directory_iterator it(p), endit; + VERIFY( std::distance(it, endit) == 3 ); // d1 and d2 and link + + it = fs::recursive_directory_iterator(p, fs::directory_options::follow_directory_symlink); + VERIFY( std::distance(it, endit) == 4 ); // d1 and d1/d2 and link and link/d2 + + std::error_code ec; + remove_all(p, ec); + #endif + } + int main() { *************** main() *** 193,196 **** --- 211,215 ---- test03(); test04(); test05(); + test06(); } diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/experimental/filesystem/operations/equivalent.cc gcc-11.5.0/libstdc++-v3/testsuite/experimental/filesystem/operations/equivalent.cc *** gcc-11.4.0/libstdc++-v3/testsuite/experimental/filesystem/operations/equivalent.cc Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/testsuite/experimental/filesystem/operations/equivalent.cc Fri Jul 19 05:52:47 2024 *************** test01() *** 35,47 **** bool result; result = equivalent(p1, p2, ec); ! VERIFY( ec ); VERIFY( !result ); const auto bad_ec = ec; __gnu_test::scoped_file f1(p1); result = equivalent(p1, p2, ec); ! VERIFY( !ec ); VERIFY( !result ); __gnu_test::scoped_file f2(p2); --- 35,47 ---- bool result; result = equivalent(p1, p2, ec); ! VERIFY( ec == std::errc::no_such_file_or_directory ); VERIFY( !result ); const auto bad_ec = ec; __gnu_test::scoped_file f1(p1); result = equivalent(p1, p2, ec); ! VERIFY( ec == std::errc::no_such_file_or_directory ); VERIFY( !result ); __gnu_test::scoped_file f2(p2); diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/experimental/filesystem/path/construct/95048.cc gcc-11.5.0/libstdc++-v3/testsuite/experimental/filesystem/path/construct/95048.cc *** gcc-11.4.0/libstdc++-v3/testsuite/experimental/filesystem/path/construct/95048.cc Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/libstdc++-v3/testsuite/experimental/filesystem/path/construct/95048.cc Fri Jul 19 05:52:47 2024 *************** *** 0 **** --- 1,53 ---- + // { dg-options "-lstdc++fs" } + // { dg-do run { target c++11 } } + // { dg-require-filesystem-ts "" } + + // 8.4.1 path constructors [path.construct] + + #include + #include + + using std::experimental::filesystem::path; + + #define CHECK(E, S) (path(E##S) == path(u8##S)) + + void + test_wide() + { + VERIFY( CHECK(L, "\u00E4") ); // PR libstdc++/95048 + VERIFY( CHECK(L, "\U0001F4C1") ); // folder + VERIFY( CHECK(L, "\U0001F4C2") ); // open folder + VERIFY( CHECK(L, "\U0001F4C4") ); // filing cabient + + VERIFY( path(u8"\U0001D11E").wstring() == L"\U0001D11E" ); // G Clef + } + + void + test_u16() + { + VERIFY( CHECK(u, "\u00E4") ); // PR libstdc++/95048 + VERIFY( CHECK(u, "\U0001F4C1") ); // folder + VERIFY( CHECK(u, "\U0001F4C2") ); // open folder + VERIFY( CHECK(u, "\U0001F4C4") ); // filing cabient + + VERIFY( path(u8"\U0001D11E").u16string() == u"\U0001D11E" ); // G Clef + } + + void + test_u32() + { + VERIFY( CHECK(U, "\u00E4") ); // PR libstdc++/95048 + VERIFY( CHECK(U, "\U0001F4C1") ); // folder + VERIFY( CHECK(U, "\U0001F4C2") ); // open folder + VERIFY( CHECK(U, "\U0001F4C4") ); // filing cabient + + VERIFY( path(u8"\U0001D11E").u32string() == U"\U0001D11E" ); // G Clef + } + + int + main() + { + test_wide(); + test_u16(); + test_u32(); + } diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/experimental/simd/pr109822_cast_functions.cc gcc-11.5.0/libstdc++-v3/testsuite/experimental/simd/pr109822_cast_functions.cc *** gcc-11.4.0/libstdc++-v3/testsuite/experimental/simd/pr109822_cast_functions.cc Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/libstdc++-v3/testsuite/experimental/simd/pr109822_cast_functions.cc Fri Jul 19 05:52:47 2024 *************** *** 0 **** --- 1,63 ---- + // { dg-options "-std=gnu++17" } + // { dg-do compile { target c++17 } } + + #include + + namespace stdx = std::experimental; + + template + void + test01() + { + using M = typename V::mask_type; + [[maybe_unused]] auto x = to_fixed_size(V()); + [[maybe_unused]] auto k = to_fixed_size(M()); + if constexpr (stdx::simd::size() == V::size()) + { + [[maybe_unused]] auto xx = to_compatible(x); + [[maybe_unused]] auto kk = to_compatible(k); + x = to_fixed_size(xx); + k = to_fixed_size(kk); + } + if constexpr (stdx::native_simd::size() == V::size()) + { + [[maybe_unused]] auto xx = to_native(x); + [[maybe_unused]] auto kk = to_native(k); + x = to_fixed_size(xx); + k = to_fixed_size(kk); + } + } + + template + void + iterate_abis() + { + test01>(); + test01>(); + test01>(); + test01>(); + test01 - 4>>(); + } + + int + main() + { + iterate_abis(); + iterate_abis(); + iterate_abis(); + iterate_abis(); + + iterate_abis(); + iterate_abis(); + iterate_abis(); + iterate_abis(); + iterate_abis(); + iterate_abis(); + iterate_abis(); + iterate_abis(); + iterate_abis(); + iterate_abis(); + iterate_abis(); + iterate_abis(); + iterate_abis(); + } diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/experimental/simd/pr114803_vecbuiltin_cvt.cc gcc-11.5.0/libstdc++-v3/testsuite/experimental/simd/pr114803_vecbuiltin_cvt.cc *** gcc-11.4.0/libstdc++-v3/testsuite/experimental/simd/pr114803_vecbuiltin_cvt.cc Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/libstdc++-v3/testsuite/experimental/simd/pr114803_vecbuiltin_cvt.cc Fri Jul 19 05:52:47 2024 *************** *** 0 **** --- 1,105 ---- + // { dg-options "-std=gnu++17" } + // { dg-do compile { target c++17 } } + + #include + + template + void + maybe_test() + { + using V = std::experimental::simd>; + if constexpr (std::is_destructible_v) + { + using V2 [[gnu::vector_size(16)]] = T; + V x = {}; + V2 x2 = static_cast(x); + x = static_cast(x2); + for (unsigned i = 0; i < V::size(); ++i) + { + if (x2[i] != 0) + __builtin_abort(); + } + #ifdef __SSE__ + if constexpr (std::is_same_v) + x = static_cast(static_cast<__m128>(x)); + else if constexpr (std::is_same_v) + x = static_cast(static_cast<__m128d>(x)); + else if constexpr (std::is_integral_v) + x = static_cast(static_cast<__m128i>(x)); + #elif __ALTIVEC__ + if constexpr (std::is_same_v) + x = static_cast(static_cast<__vector float>(x)); + #ifdef __VSX__ + else if constexpr (std::is_same_v) + x = static_cast(static_cast<__vector double>(x)); + #endif + else if constexpr (std::is_integral_v && sizeof(T) == sizeof(signed char) + && std::is_signed_v) + x = static_cast(static_cast<__vector signed char>(x)); + else if constexpr (std::is_integral_v && sizeof(T) == sizeof(signed char)) + x = static_cast(static_cast<__vector unsigned char>(x)); + else if constexpr (std::is_integral_v && sizeof(T) == sizeof(short) + && std::is_signed_v) + x = static_cast(static_cast<__vector signed short>(x)); + else if constexpr (std::is_integral_v && sizeof(T) == sizeof(short)) + x = static_cast(static_cast<__vector unsigned short>(x)); + else if constexpr (std::is_integral_v && sizeof(T) == sizeof(int) + && std::is_signed_v) + x = static_cast(static_cast<__vector signed int>(x)); + else if constexpr (std::is_integral_v && sizeof(T) == sizeof(int)) + x = static_cast(static_cast<__vector unsigned int>(x)); + #ifdef __VSX__ + else if constexpr (std::is_integral_v && sizeof(T) == sizeof(long long) + && std::is_signed_v) + x = static_cast(static_cast<__vector signed long long>(x)); + else if constexpr (std::is_integral_v && sizeof(T) == sizeof(long long)) + x = static_cast(static_cast<__vector unsigned long long>(x)); + #endif + #elif __ARM_NEON + if constexpr (std::is_same_v) + x = static_cast(static_cast(x)); + #ifdef __aarch64__ + else if constexpr (std::is_same_v) + x = static_cast(static_cast(x)); + #endif + else if constexpr (std::is_integral_v && sizeof(T) == 1 && std::is_signed_v) + x = static_cast(static_cast(x)); + else if constexpr (std::is_integral_v && sizeof(T) == 1) + x = static_cast(static_cast(x)); + else if constexpr (std::is_integral_v && sizeof(T) == 2 && std::is_signed_v) + x = static_cast(static_cast(x)); + else if constexpr (std::is_integral_v && sizeof(T) == 2) + x = static_cast(static_cast(x)); + else if constexpr (std::is_integral_v && sizeof(T) == 4 && std::is_signed_v) + x = static_cast(static_cast(x)); + else if constexpr (std::is_integral_v && sizeof(T) == 4) + x = static_cast(static_cast(x)); + else if constexpr (std::is_integral_v && sizeof(T) == 8 && std::is_signed_v) + x = static_cast(static_cast(x)); + else if constexpr (std::is_integral_v && sizeof(T) == 8) + x = static_cast(static_cast(x)); + #endif + } + } + + int main() + { + maybe_test(); + maybe_test(); + maybe_test(); + maybe_test(); + + maybe_test(); + maybe_test(); + maybe_test(); + maybe_test(); + maybe_test(); + maybe_test(); + maybe_test(); + maybe_test(); + maybe_test(); + maybe_test(); + maybe_test(); + maybe_test(); + maybe_test(); + } diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/experimental/simd/pr115454_find_last_set.cc gcc-11.5.0/libstdc++-v3/testsuite/experimental/simd/pr115454_find_last_set.cc *** gcc-11.4.0/libstdc++-v3/testsuite/experimental/simd/pr115454_find_last_set.cc Thu Jan 1 00:00:00 1970 --- gcc-11.5.0/libstdc++-v3/testsuite/experimental/simd/pr115454_find_last_set.cc Fri Jul 19 05:52:47 2024 *************** *** 0 **** --- 1,51 ---- + // { dg-options "-std=gnu++17" } + // { dg-do run { target *-*-* } } + // { dg-require-effective-target c++17 } + // { dg-additional-options "-march=x86-64-v4" { target avx512f_runtime } } + // { dg-require-cmath "" } + + #include + + namespace stdx = std::experimental; + + using T = std::uint64_t; + + template + using V = stdx::simd>; + + [[gnu::noinline, gnu::noipa]] + int reduce(V x) + { + static_assert(stdx::find_last_set(V([](unsigned i) { return i; }) != V(0)) == 3); + return stdx::find_last_set(x != -1); + } + + [[gnu::noinline, gnu::noipa]] + int reduce2() + { + using M8 = typename V::mask_type; + using M4 = typename V::mask_type; + if constexpr (sizeof(M8) == sizeof(M4) + && !std::is_same_v>) + // fixed_size invariant: padding bits of masks are zero, the memcpy would violate that + { + M4 k; + __builtin_memcpy(&__data(k), &__data(M8(true)), sizeof(M4)); + return stdx::find_last_set(k); + } + return 3; + } + + + int main() + { + const V x {}; + + const int r = reduce(x); + if (r != 3) + __builtin_abort(); + + const int r2 = reduce2(); + if (r2 != 3) + __builtin_abort(); + } diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/experimental/simd/tests/integer_operators.cc gcc-11.5.0/libstdc++-v3/testsuite/experimental/simd/tests/integer_operators.cc *** gcc-11.4.0/libstdc++-v3/testsuite/experimental/simd/tests/integer_operators.cc Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/testsuite/experimental/simd/tests/integer_operators.cc Fri Jul 19 05:52:47 2024 *************** template *** 180,190 **** for (int j = 0; j < 100; ++j) { const V seq([&](auto i) -> T { return (j + i) % n_promo_bits; }); ! COMPARE(V(1) >> seq, V([&](auto i) { return T(T(1) >> seq[i]); })) ! << "seq = " << seq; ! COMPARE(make_value_unknown(V(1)) >> make_value_unknown(seq), ! V([&](auto i) { return T(T(1) >> seq[i]); })) ! << "seq = " << seq; } for_constexpr([](auto shift_ic) { constexpr int shift = shift_ic; --- 180,189 ---- for (int j = 0; j < 100; ++j) { const V seq([&](auto i) -> T { return (j + i) % n_promo_bits; }); ! const V expect([&](auto i) { return seq[i] == 0 ? T(1) : T(0); }); ! COMPARE(V(1) >> seq, expect) << "\nseq = " << seq; ! COMPARE(make_value_unknown(V(1)) >> make_value_unknown(seq), expect) ! << "\nseq = " << seq; } for_constexpr([](auto shift_ic) { constexpr int shift = shift_ic; diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/experimental/simd/tests/operator_cvt.cc gcc-11.5.0/libstdc++-v3/testsuite/experimental/simd/tests/operator_cvt.cc *** gcc-11.4.0/libstdc++-v3/testsuite/experimental/simd/tests/operator_cvt.cc Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/testsuite/experimental/simd/tests/operator_cvt.cc Fri Jul 19 05:52:47 2024 *************** template *** 220,227 **** binary_op_return_type(); binary_op_return_type(); binary_op_return_type(); - binary_op_return_type(); - binary_op_return_type(); binary_op_return_type(); binary_op_return_type(); --- 220,225 ---- *************** template *** 231,238 **** binary_op_return_type, ushort>(); binary_op_return_type, int>(); binary_op_return_type, uint>(); - binary_op_return_type, long>(); - binary_op_return_type, ulong>(); binary_op_return_type, float>(); binary_op_return_type, double>(); binary_op_return_type, vf64>(); --- 229,234 ---- *************** template *** 245,252 **** binary_op_return_type, ushort>(); binary_op_return_type, int>(); binary_op_return_type, uint>(); - binary_op_return_type, long>(); - binary_op_return_type, ulong>(); binary_op_return_type, float>(); binary_op_return_type, double>(); --- 241,246 ---- *************** template *** 258,263 **** --- 252,275 ---- VERIFY((is_substitution_failure, ullong>)); VERIFY((is_substitution_failure, llong>)); VERIFY((is_substitution_failure, ullong>)); + if constexpr (sizeof(long) == sizeof(llong)) + { + VERIFY((is_substitution_failure)); + VERIFY((is_substitution_failure)); + VERIFY((is_substitution_failure, long>)); + VERIFY((is_substitution_failure, ulong>)); + VERIFY((is_substitution_failure, long>)); + VERIFY((is_substitution_failure, ulong>)); + } + else + { + binary_op_return_type(); + binary_op_return_type(); + binary_op_return_type, long>(); + binary_op_return_type, ulong>(); + binary_op_return_type, long>(); + binary_op_return_type, ulong>(); + } } else { *************** template *** 267,272 **** --- 279,290 ---- binary_op_return_type, ullong>(); binary_op_return_type, llong>(); binary_op_return_type, ullong>(); + binary_op_return_type(); + binary_op_return_type(); + binary_op_return_type, long>(); + binary_op_return_type, ulong>(); + binary_op_return_type, long>(); + binary_op_return_type, ulong>(); } VERIFY((is_substitution_failure, vldouble>)); diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/lib/dg-options.exp gcc-11.5.0/libstdc++-v3/testsuite/lib/dg-options.exp *** gcc-11.4.0/libstdc++-v3/testsuite/lib/dg-options.exp Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/testsuite/lib/dg-options.exp Fri Jul 19 05:52:47 2024 *************** proc atomic_link_flags { paths } { *** 274,280 **** if { [file exists "${gccpath}/libatomic/.libs/libatomic.a"] || [file exists "${gccpath}/libatomic/.libs/libatomic.${shlib_ext}"] } { append flags " -B${gccpath}/libatomic/ " ! append flags " -L${gccpath}/libatomic/.libs" append ld_library_path ":${gccpath}/libatomic/.libs" } } else { --- 274,280 ---- if { [file exists "${gccpath}/libatomic/.libs/libatomic.a"] || [file exists "${gccpath}/libatomic/.libs/libatomic.${shlib_ext}"] } { append flags " -B${gccpath}/libatomic/ " ! append flags " -B${gccpath}/libatomic/.libs" append ld_library_path ":${gccpath}/libatomic/.libs" } } else { diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/lib/libstdc++.exp gcc-11.5.0/libstdc++-v3/testsuite/lib/libstdc++.exp *** gcc-11.4.0/libstdc++-v3/testsuite/lib/libstdc++.exp Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/testsuite/lib/libstdc++.exp Fri Jul 19 05:52:47 2024 *************** proc libstdc++_init { testfile } { *** 133,141 **** if ![info exists DEFAULT_CXXFLAGS] then { set DEFAULT_CXXFLAGS "" # Host specific goo here. - if { [string match "powerpc-*-darwin*" $target_triplet] } { - append DEFAULT_CXXFLAGS " -multiply_defined suppress" - } if { [string match "powerpc-ibm-aix*" $target_triplet] } { append DEFAULT_CXXFLAGS " -Wl,-bmaxdata:0x20000000" } --- 133,138 ---- *************** proc v3_target_compile { source dest typ *** 510,520 **** } } lappend options "compiler=$cxx_final" lappend options "timeout=[timeout_value]" set comp_output [target_compile $source $dest $type $options] ! return $comp_output } --- 507,547 ---- } } + # For Windows and Darwin we might want to create a temporary file. + # Note that it needs deleting. + set file_to_delete "" + # Small adjustment for Windows hosts. + if { $dest == "/dev/null" + && [info exists ::env(OS)] && [string match "Windows*" $::env(OS)] } { + if { $type == "executable" } { + set dest "x.exe" + set file_to_delete ${dest} + } else { + # Windows uses special file named "nul" as a substitute for + # /dev/null + set dest "nul" + } + } + + # Using /dev/null as the executable name does not work on Darwin when + # debug is enabled, since the debug linker does not accept /dev/null as + # a valid executable name. + if { $dest == "/dev/null" && [istarget *-*-darwin*] + && $type == "executable" } { + set dest dev-null-[pid].exe + set file_to_delete ${dest} + } + lappend options "compiler=$cxx_final" lappend options "timeout=[timeout_value]" set comp_output [target_compile $source $dest $type $options] ! if { $type == "executable" && $file_to_delete != "" } { ! file delete $file_to_delete ! if { [istarget *-*-darwin*] && [file exists $file_to_delete.dSYM] } { ! file delete -force $file_to_delete.dSYM ! } ! } return $comp_output } diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/lib/prune.exp gcc-11.5.0/libstdc++-v3/testsuite/lib/prune.exp *** gcc-11.4.0/libstdc++-v3/testsuite/lib/prune.exp Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/testsuite/lib/prune.exp Fri Jul 19 05:52:47 2024 *************** proc libstdc++-dg-prune { system text } *** 46,51 **** --- 46,52 ---- regsub -all "(^|\n)\[^\n\]*(: )?At (top level|global scope):\[^\n\]*" $text "" text regsub -all "(^|\n)\[^\n\]*: (recursively )?required \[^\n\]*" $text "" text regsub -all "(^|\n)\[^\n\]*: . skipping \[0-9\]* instantiation contexts \[^\n\]*" $text "" text + regsub -all "(^|\n)\[^\n\]*: in .constexpr. expansion \[^\n\]*" $text "" text regsub -all "(^|\n) inlined from \[^\n\]*" $text "" text # Why doesn't GCC need these to strip header context? regsub -all "(^|\n)In file included from \[^\n\]*" $text "" text diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/libstdc++-xmethods/deque.cc gcc-11.5.0/libstdc++-v3/testsuite/libstdc++-xmethods/deque.cc *** gcc-11.4.0/libstdc++-v3/testsuite/libstdc++-xmethods/deque.cc Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/testsuite/libstdc++-xmethods/deque.cc Fri Jul 19 05:52:47 2024 *************** main () *** 67,72 **** --- 67,96 ---- // { dg-final { whatis-test q1.back() int } } // { dg-final { whatis-test q3\[0\] int } } + // PR libstdc++/112491 + std::deque q5; + q5.push_front(5); + // { dg-final { note-test q5.size() 1 } } + // { dg-final { note-test q5\[0\] 5 } } + std::deque q6 = q1; + q6.pop_front(); + // { dg-final { note-test {q6.size() == (q1_size-1)} true } } + // { dg-final { note-test q6\[1\] 102 } } + std::deque q7 = q2; + q7.pop_front(); + q7.pop_front(); + // { dg-final { note-test {q7.size() == (q2_size-2)} true } } + // { dg-final { note-test q7\[1\] 203 } } + std::deque q8 = q3; + q8.pop_front(); + q8.pop_front(); + q8.pop_front(); + // { dg-final { note-test {q8.size() == (q3_size-3)} true } } + // { dg-final { note-test q8\[1\] 304 } } + std::deque q9 = q8; + q9.clear(); + // { dg-final { note-test q9.size() 0 } } + return 0; // Mark SPOT } diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc gcc-11.5.0/libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc *** gcc-11.4.0/libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/testsuite/std/ranges/iota/max_size_type.cc Fri Jul 19 05:52:47 2024 *************** test02() *** 199,206 **** using max_type = std::conditional_t; using shorten_type = std::conditional_t; const int hw_type_bit_size = sizeof(hw_type) * __CHAR_BIT__; ! const int limit = 1000; ! const int log2_limit = 10; static_assert((1 << log2_limit) >= limit); const int min = (signed_p ? -limit : 0); const int max = limit; --- 199,206 ---- using max_type = std::conditional_t; using shorten_type = std::conditional_t; const int hw_type_bit_size = sizeof(hw_type) * __CHAR_BIT__; ! const unsigned limit = 100; ! const int log2_limit = 7; static_assert((1 << log2_limit) >= limit); const int min = (signed_p ? -limit : 0); const int max = limit; *************** test03() *** 257,264 **** using max_type = std::conditional_t; using base_type = std::conditional_t; constexpr int hw_type_bit_size = sizeof(hw_type) * __CHAR_BIT__; ! constexpr int limit = 1000; ! constexpr int log2_limit = 10; static_assert((1 << log2_limit) >= limit); const int min = (signed_p ? -limit : 0); const int max = limit; --- 257,264 ---- using max_type = std::conditional_t; using base_type = std::conditional_t; constexpr int hw_type_bit_size = sizeof(hw_type) * __CHAR_BIT__; ! constexpr unsigned limit = 100; ! constexpr int log2_limit = 7; static_assert((1 << log2_limit) >= limit); const int min = (signed_p ? -limit : 0); const int max = limit; diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdio/functions.cc gcc-11.5.0/libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdio/functions.cc *** gcc-11.4.0/libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdio/functions.cc Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/testsuite/tr1/8_c_compatibility/cstdio/functions.cc Fri Jul 19 05:52:47 2024 *************** void test01(int dummy, ...) *** 35,41 **** char* s = 0; const char* cs = 0; const char* format = "%i"; ! FILE* stream = 0; std::size_t n = 0; int ret; --- 35,41 ---- char* s = 0; const char* cs = 0; const char* format = "%i"; ! FILE* stream = va_arg(ap, FILE*); std::size_t n = 0; int ret; diff -Nrcpad gcc-11.4.0/libstdc++-v3/testsuite/tr1/8_c_compatibility/cwchar/functions.cc gcc-11.5.0/libstdc++-v3/testsuite/tr1/8_c_compatibility/cwchar/functions.cc *** gcc-11.4.0/libstdc++-v3/testsuite/tr1/8_c_compatibility/cwchar/functions.cc Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/testsuite/tr1/8_c_compatibility/cwchar/functions.cc Fri Jul 19 05:52:47 2024 *************** void test01(int dummy, ...) *** 42,48 **** #endif #if _GLIBCXX_HAVE_VFWSCANF ! FILE* stream = 0; const wchar_t* format1 = 0; int ret1; ret1 = std::tr1::vfwscanf(stream, format1, arg); --- 42,48 ---- #endif #if _GLIBCXX_HAVE_VFWSCANF ! FILE* stream = va_arg(arg, FILE*); const wchar_t* format1 = 0; int ret1; ret1 = std::tr1::vfwscanf(stream, format1, arg); diff -Nrcpad gcc-11.4.0/libvtv/ChangeLog gcc-11.5.0/libvtv/ChangeLog *** gcc-11.4.0/libvtv/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/libvtv/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/lto-plugin/ChangeLog gcc-11.5.0/lto-plugin/ChangeLog *** gcc-11.4.0/lto-plugin/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/lto-plugin/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/maintainer-scripts/ChangeLog gcc-11.5.0/maintainer-scripts/ChangeLog *** gcc-11.4.0/maintainer-scripts/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/maintainer-scripts/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released. diff -Nrcpad gcc-11.4.0/zlib/ChangeLog gcc-11.5.0/zlib/ChangeLog *** gcc-11.4.0/zlib/ChangeLog Mon May 29 08:46:50 2023 --- gcc-11.5.0/zlib/ChangeLog Fri Jul 19 05:53:32 2024 *************** *** 1,3 **** --- 1,7 ---- + 2024-07-19 Release Manager + + * GCC 11.5.0 released. + 2023-05-29 Release Manager * GCC 11.4.0 released.
Option FlagsDescription
-std ! ! Select the C++ standard, and whether to use the base standard ! or GNU dialect. !
-fexceptionsSee exception-free dialect
-frttiAs above, but RTTI-free dialect.
-pthreadFor ISO C++11 <thread>, <future>, <mutex>, diff -Nrcpad gcc-11.4.0/libstdc++-v3/doc/xml/manual/evolution.xml gcc-11.5.0/libstdc++-v3/doc/xml/manual/evolution.xml *** gcc-11.4.0/libstdc++-v3/doc/xml/manual/evolution.xml Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/doc/xml/manual/evolution.xml Fri Jul 19 05:52:47 2024 *************** now defaults to zero. *** 911,916 **** --- 911,923 ---- libstdc++.so.8. + + The extension allowing containers to be instantiated with an allocator + that doesn't match the container's value type is no longer allowed in + strict () modes, only in + modes. + +
<constant>9</constant> *************** now defaults to zero. *** 994,999 **** --- 1001,1012 ---- added. + + The extension allowing containers to be instantiated with an allocator + that doesn't match the container's value type is no longer allowed in + C++20 mode, even in non-strict mode. + +
<constant>11</constant> diff -Nrcpad gcc-11.4.0/libstdc++-v3/doc/xml/manual/status_cxx2023.xml gcc-11.5.0/libstdc++-v3/doc/xml/manual/status_cxx2023.xml *** gcc-11.4.0/libstdc++-v3/doc/xml/manual/status_cxx2023.xml Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/doc/xml/manual/status_cxx2023.xml Fri Jul 19 05:52:47 2024 *************** presence of the required flag. *** 20,27 **** ! This section describes the C++23 and library TS support in mainline GCC, ! not in any particular release. --- 20,26 ---- ! This section describes the C++23 and library TS support in the GCC 11 release series. diff -Nrcpad gcc-11.4.0/libstdc++-v3/doc/xml/manual/using.xml gcc-11.5.0/libstdc++-v3/doc/xml/manual/using.xml *** gcc-11.4.0/libstdc++-v3/doc/xml/manual/using.xml Mon May 29 08:46:33 2023 --- gcc-11.5.0/libstdc++-v3/doc/xml/manual/using.xml Fri Jul 19 05:52:47 2024 *************** *** 7,13 **** The set of features available in the GNU C++ library is shaped by ! several GCC Command Options. Options that impact libstdc++ are enumerated and detailed in the table below. --- 7,13 ---- The set of features available in the GNU C++ library is shaped by ! several GCC Command Options. Options that impact libstdc++ are enumerated and detailed in the table below. *************** *** 37,71 ****